@kne-components/components-core 0.4.66 → 0.4.67
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/build/asset-manifest.json +91 -91
- package/build/index.html +1 -1
- package/build/remoteEntry.js +1 -1
- package/build/remoteEntry.js.map +1 -1
- package/build/static/css/111.f68f5313.chunk.css +2 -0
- package/build/static/css/{111.af43bf41.chunk.css.map → 111.f68f5313.chunk.css.map} +1 -1
- package/build/static/css/2753.e7949ab3.chunk.css +2 -0
- package/build/static/css/{2753.65190152.chunk.css.map → 2753.e7949ab3.chunk.css.map} +1 -1
- package/build/static/css/{3771.a16d89be.chunk.css → 3771.ff018f27.chunk.css} +2 -2
- package/build/static/css/{3771.a16d89be.chunk.css.map → 3771.ff018f27.chunk.css.map} +1 -1
- package/build/static/css/{3790.5abb16a3.chunk.css → 3790.4526e53c.chunk.css} +2 -2
- package/build/static/css/{3790.5abb16a3.chunk.css.map → 3790.4526e53c.chunk.css.map} +1 -1
- package/build/static/css/3841.c7026264.chunk.css +2 -0
- package/build/static/css/{3841.9195867c.chunk.css.map → 3841.c7026264.chunk.css.map} +1 -1
- package/build/static/css/3874.5d044f62.chunk.css +2 -0
- package/build/static/css/{3874.4a2de703.chunk.css.map → 3874.5d044f62.chunk.css.map} +1 -1
- package/build/static/css/{4302.dad10603.chunk.css → 4302.651d68fa.chunk.css} +2 -2
- package/build/static/css/{4302.dad10603.chunk.css.map → 4302.651d68fa.chunk.css.map} +1 -1
- package/build/static/css/4666.8f03839e.chunk.css +2 -0
- package/build/static/css/{4666.2c927cd4.chunk.css.map → 4666.8f03839e.chunk.css.map} +1 -1
- package/build/static/css/5628.e4fcb2cc.chunk.css +12 -0
- package/build/static/css/{5628.97e556c6.chunk.css.map → 5628.e4fcb2cc.chunk.css.map} +1 -1
- package/build/static/css/{6763.3f4c0ba1.chunk.css → 6763.a832c4fd.chunk.css} +2 -2
- package/build/static/css/{6763.3f4c0ba1.chunk.css.map → 6763.a832c4fd.chunk.css.map} +1 -1
- package/build/static/css/7227.031856f2.chunk.css +2 -0
- package/build/static/css/{7227.2a0a9dd0.chunk.css.map → 7227.031856f2.chunk.css.map} +1 -1
- package/build/static/css/7372.5d6553e3.chunk.css +2 -0
- package/build/static/css/{7372.e23f18b8.chunk.css.map → 7372.5d6553e3.chunk.css.map} +1 -1
- package/build/static/css/{760.7bd56434.chunk.css → 760.27c95225.chunk.css} +2 -2
- package/build/static/css/{760.7bd56434.chunk.css.map → 760.27c95225.chunk.css.map} +1 -1
- package/build/static/css/{8221.99a45fda.chunk.css → 8221.bcf604af.chunk.css} +2 -2
- package/build/static/css/{8221.99a45fda.chunk.css.map → 8221.bcf604af.chunk.css.map} +1 -1
- package/build/static/css/8377.1bbf012a.chunk.css +2 -0
- package/build/static/css/{8377.a8cb24d1.chunk.css.map → 8377.1bbf012a.chunk.css.map} +1 -1
- package/build/static/css/{8593.11db5d93.chunk.css → 8593.e59836d7.chunk.css} +2 -2
- package/build/static/css/{8593.11db5d93.chunk.css.map → 8593.e59836d7.chunk.css.map} +1 -1
- package/build/static/css/9387.59954fd1.chunk.css +2 -0
- package/build/static/css/{9387.d02253f6.chunk.css.map → 9387.59954fd1.chunk.css.map} +1 -1
- package/build/static/css/9556.27566499.chunk.css +2 -0
- package/build/static/css/{9556.828a556c.chunk.css.map → 9556.27566499.chunk.css.map} +1 -1
- package/build/static/css/9666.a4e2b163.chunk.css +2 -0
- package/build/static/css/{9666.d8c91149.chunk.css.map → 9666.a4e2b163.chunk.css.map} +1 -1
- package/build/static/js/{111.f812617f.chunk.js → 111.f4b5ea98.chunk.js} +2 -2
- package/build/static/js/{111.f812617f.chunk.js.map → 111.f4b5ea98.chunk.js.map} +1 -1
- package/build/static/js/{196.74a1326d.chunk.js → 196.80a3177c.chunk.js} +1 -1
- package/build/static/js/{2833.2cdd46e6.chunk.js → 2833.1d09d414.chunk.js} +2 -2
- package/build/static/js/2833.1d09d414.chunk.js.map +1 -0
- package/build/static/js/3771.0d3884d1.chunk.js +2 -0
- package/build/static/js/{3771.e50184d9.chunk.js.map → 3771.0d3884d1.chunk.js.map} +1 -1
- package/build/static/js/{3790.03afba35.chunk.js → 3790.595590c0.chunk.js} +2 -2
- package/build/static/js/{3790.03afba35.chunk.js.map → 3790.595590c0.chunk.js.map} +1 -1
- package/build/static/js/{3841.de64ea1f.chunk.js → 3841.bcb1e477.chunk.js} +2 -2
- package/build/static/js/{3841.de64ea1f.chunk.js.map → 3841.bcb1e477.chunk.js.map} +1 -1
- package/build/static/js/{3856.3bc4f554.chunk.js → 3856.9b306735.chunk.js} +2 -2
- package/build/static/js/{3856.3bc4f554.chunk.js.map → 3856.9b306735.chunk.js.map} +1 -1
- package/build/static/js/{3874.43b3a191.chunk.js → 3874.f239c12f.chunk.js} +3 -3
- package/build/static/js/{3874.43b3a191.chunk.js.map → 3874.f239c12f.chunk.js.map} +1 -1
- package/build/static/js/4302.1e65d1a3.chunk.js +2 -0
- package/build/static/js/{4302.77e57d61.chunk.js.map → 4302.1e65d1a3.chunk.js.map} +1 -1
- package/build/static/js/4474.25d1469a.chunk.js +2 -0
- package/build/static/js/{4474.19db5271.chunk.js.map → 4474.25d1469a.chunk.js.map} +1 -1
- package/build/static/js/{4666.ced49dea.chunk.js → 4666.da12dcad.chunk.js} +3 -3
- package/build/static/js/{4666.ced49dea.chunk.js.map → 4666.da12dcad.chunk.js.map} +1 -1
- package/build/static/js/{2363.e9d2eed8.chunk.js → 4744.68f457ed.chunk.js} +2 -2
- package/build/static/js/{2363.e9d2eed8.chunk.js.map → 4744.68f457ed.chunk.js.map} +1 -1
- package/build/static/js/5628.92cde7ac.chunk.js +2 -0
- package/build/static/js/{5628.72e29acc.chunk.js.map → 5628.92cde7ac.chunk.js.map} +1 -1
- package/build/static/js/6460.c05b642e.chunk.js +9 -0
- package/build/static/js/6460.c05b642e.chunk.js.map +1 -0
- package/build/static/js/6763.f212e86e.chunk.js +2 -0
- package/build/static/js/{6763.3a0a852f.chunk.js.map → 6763.f212e86e.chunk.js.map} +1 -1
- package/build/static/js/{7227.d189f8e3.chunk.js → 7227.9ba0d1ca.chunk.js} +3 -3
- package/build/static/js/{7227.d189f8e3.chunk.js.map → 7227.9ba0d1ca.chunk.js.map} +1 -1
- package/build/static/js/{7372.7e6e421a.chunk.js → 7372.2abd5112.chunk.js} +2 -2
- package/build/static/js/{7372.7e6e421a.chunk.js.map → 7372.2abd5112.chunk.js.map} +1 -1
- package/build/static/js/{760.185e0aa5.chunk.js → 760.64ddb4b7.chunk.js} +2 -2
- package/build/static/js/{760.185e0aa5.chunk.js.map → 760.64ddb4b7.chunk.js.map} +1 -1
- package/build/static/js/7857.07e102fc.chunk.js +2 -0
- package/build/static/js/{7857.6ed907e0.chunk.js.map → 7857.07e102fc.chunk.js.map} +1 -1
- package/build/static/js/8221.5cde284c.chunk.js +2 -0
- package/build/static/js/{8221.c93d129f.chunk.js.map → 8221.5cde284c.chunk.js.map} +1 -1
- package/build/static/js/{8377.f4903a9e.chunk.js → 8377.32461eb9.chunk.js} +2 -2
- package/build/static/js/{8377.f4903a9e.chunk.js.map → 8377.32461eb9.chunk.js.map} +1 -1
- package/build/static/js/8593.53fd497a.chunk.js +2 -0
- package/build/static/js/{8593.18b7475f.chunk.js.map → 8593.53fd497a.chunk.js.map} +1 -1
- package/build/static/js/{9223.800c4315.chunk.js → 9223.0adf8af5.chunk.js} +2 -2
- package/build/static/js/9223.0adf8af5.chunk.js.map +1 -0
- package/build/static/js/9556.59fe644a.chunk.js +3 -0
- package/build/static/js/{9556.2fa191f6.chunk.js.map → 9556.59fe644a.chunk.js.map} +1 -1
- package/build/static/js/9666.51562fa6.chunk.js +2 -0
- package/build/static/js/{9666.61a8e69f.chunk.js.map → 9666.51562fa6.chunk.js.map} +1 -1
- package/build/static/js/{main.94eeacc5.js → main.3892a3eb.js} +2 -2
- package/build/static/js/{main.94eeacc5.js.map → main.3892a3eb.js.map} +1 -1
- package/package.json +2 -2
- package/build/static/css/111.af43bf41.chunk.css +0 -2
- package/build/static/css/2753.65190152.chunk.css +0 -2
- package/build/static/css/3841.9195867c.chunk.css +0 -2
- package/build/static/css/3874.4a2de703.chunk.css +0 -2
- package/build/static/css/4666.2c927cd4.chunk.css +0 -2
- package/build/static/css/5628.97e556c6.chunk.css +0 -12
- package/build/static/css/7227.2a0a9dd0.chunk.css +0 -2
- package/build/static/css/7372.e23f18b8.chunk.css +0 -2
- package/build/static/css/8377.a8cb24d1.chunk.css +0 -2
- package/build/static/css/9387.d02253f6.chunk.css +0 -2
- package/build/static/css/9556.828a556c.chunk.css +0 -2
- package/build/static/css/9666.d8c91149.chunk.css +0 -2
- package/build/static/js/2833.2cdd46e6.chunk.js.map +0 -1
- package/build/static/js/3771.e50184d9.chunk.js +0 -2
- package/build/static/js/4302.77e57d61.chunk.js +0 -2
- package/build/static/js/4474.19db5271.chunk.js +0 -2
- package/build/static/js/5628.72e29acc.chunk.js +0 -2
- package/build/static/js/6460.02f933ea.chunk.js +0 -9
- package/build/static/js/6460.02f933ea.chunk.js.map +0 -1
- package/build/static/js/6763.3a0a852f.chunk.js +0 -2
- package/build/static/js/7857.6ed907e0.chunk.js +0 -2
- package/build/static/js/8221.c93d129f.chunk.js +0 -2
- package/build/static/js/8593.18b7475f.chunk.js +0 -2
- package/build/static/js/9223.800c4315.chunk.js.map +0 -1
- package/build/static/js/9556.2fa191f6.chunk.js +0 -3
- package/build/static/js/9666.61a8e69f.chunk.js +0 -2
- /package/build/static/js/{3874.43b3a191.chunk.js.LICENSE.txt → 3874.f239c12f.chunk.js.LICENSE.txt} +0 -0
- /package/build/static/js/{4666.ced49dea.chunk.js.LICENSE.txt → 4666.da12dcad.chunk.js.LICENSE.txt} +0 -0
- /package/build/static/js/{6460.02f933ea.chunk.js.LICENSE.txt → 6460.c05b642e.chunk.js.LICENSE.txt} +0 -0
- /package/build/static/js/{7227.d189f8e3.chunk.js.LICENSE.txt → 7227.9ba0d1ca.chunk.js.LICENSE.txt} +0 -0
- /package/build/static/js/{9556.2fa191f6.chunk.js.LICENSE.txt → 9556.59fe644a.chunk.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/js/6460.02f933ea.chunk.js","mappings":"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AAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,C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AAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,U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AW,SAAS/D,QAAQ+D,IAC3BwoC,EAAWxoC,GAAQ,IAAIq9F,EACrBr9F,EAtOY,GAwOZ,EACAA,EAAK9J,cACL,MACA,GACA,KAIJ,MAAMynG,EAAW,iBACXC,EAAatqF,GAASA,EAAM,GAAGpT,cAOrC,CACE,gBACA,qBACA,cACA,iBACA,aACA,YACA,YACA,sBACA,8BACA,gBACA,kBACA,oBACA,oBACA,eACA,YACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,aACA,+BACA,6BACA,cACA,iBACA,kBACA,iBACA,iBACA,aACA,aACA,eACA,oBACA,qBACA,cACA,WACA,iBACA,mBACA,kBACA,aACA,eACA,yBACA,0BACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,eACA,cACA,kBACA,iBACA,qBACA,sBACA,eACA,gBACA,eACA,eACA,YACA,gBACA,iBACA,gBACA,aACA,gBACA,gBACA,eACA,eACA,cACA,YAKAjE,QAAQysF,IACR,MAAM1oF,EAAO0oF,EAAcxkF,QAAQy5F,EAAUC,GAC7Cp1D,EAAWxoC,GAAQ,IAAIq9F,EACrBr9F,EA9VW,GAgWX,EACA0oF,EACA,MACA,GACA,KAKJ,CACE,gBACA,gBACA,aACA,aACA,cACA,cAKAzsF,QAAQysF,IACR,MAAM1oF,EAAO0oF,EAAcxkF,QAAQy5F,EAAUC,GAC7Cp1D,EAAWxoC,GAAQ,IAAIq9F,EACrBr9F,EAvXW,GAyXX,EACA0oF,EACA,gCACA,GACA,KAKJ,CACE,WACA,WACA,aAKAzsF,QAAQysF,IACR,MAAM1oF,EAAO0oF,EAAcxkF,QAAQy5F,EAAUC,GAC7Cp1D,EAAWxoC,GAAQ,IAAIq9F,EACrBr9F,EA7YW,GA+YX,EACA0oF,EACA,wCACA,GACA,KAOJ,CAAC,WAAY,eAAezsF,QAAQysF,IAClClgD,EAAWkgD,GAAiB,IAAI2U,EAC9B3U,EA5ZW,GA8ZX,EACAA,EAAcxyF,cACd,MACA,GACA,KAOJsyC,EAAoB,UAAI,IAAI60D,EAC1B,YA1aa,GA4ab,EACA,aACA,gCACA,GACA,GAGF,CAAC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","sources":["../node_modules/@ant-design/icons-svg/es/asn/DeleteOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DownloadOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/EditOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/EyeOutlined.js","../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js","../node_modules/@ant-design/icons/es/icons/DownloadOutlined.js","../node_modules/@ant-design/icons/es/icons/EditOutlined.js","../node_modules/@ant-design/icons/es/icons/EyeOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LinkOutlined.js","../node_modules/@ant-design/icons/es/icons/LinkOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PrinterOutlined.js","../node_modules/@ant-design/icons/es/icons/PrinterOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/UploadOutlined.js","../node_modules/@ant-design/icons/es/icons/UploadOutlined.js","../node_modules/@kne/iframe-resizer/src/index.js","../node_modules/@kne/markdown-components-render/node_modules/mdurl/lib/decode.mjs","../node_modules/@kne/markdown-components-render/node_modules/mdurl/lib/encode.mjs","../node_modules/@kne/markdown-components-render/node_modules/mdurl/lib/format.mjs","../node_modules/@kne/markdown-components-render/node_modules/mdurl/lib/parse.mjs","../node_modules/@kne/markdown-components-render/node_modules/uc.micro/categories/P/regex.mjs","../node_modules/@kne/markdown-components-render/node_modules/uc.micro/categories/S/regex.mjs","../node_modules/@kne/markdown-components-render/node_modules/uc.micro/properties/Any/regex.mjs","../node_modules/@kne/markdown-components-render/node_modules/uc.micro/categories/Cc/regex.mjs","../node_modules/@kne/markdown-components-render/node_modules/uc.micro/categories/Cf/regex.mjs","../node_modules/@kne/markdown-components-render/node_modules/uc.micro/categories/Z/regex.mjs","https://raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/generated/decode-data-html.ts","https://raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/generated/decode-data-xml.ts","https://raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/decode_codepoint.ts","https://raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/decode.ts","https://raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/generated/encode-html.ts","https://raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/escape.ts","https://raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/index.ts","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/common/utils.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/helpers/parse_link_label.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/helpers/parse_link_destination.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/helpers/parse_link_title.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/renderer.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/ruler.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/token.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_core/state_core.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_core/normalize.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_core/linkify.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_core/replacements.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_core/smartquotes.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/parser_core.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_core/block.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_core/inline.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_core/text_join.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_block/state_block.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_block/table.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_block/list.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/common/html_blocks.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/common/html_re.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_block/html_block.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/parser_block.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_block/code.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_block/fence.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_block/blockquote.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_block/hr.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_block/reference.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_block/heading.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_block/lheading.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_block/paragraph.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_inline/state_inline.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_inline/text.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_inline/linkify.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_inline/escape.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_inline/strikethrough.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_inline/emphasis.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_inline/autolink.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_inline/entity.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/parser_inline.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_inline/newline.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_inline/backticks.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_inline/link.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_inline/image.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_inline/html_inline.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/rules_inline/fragments_join.mjs","../node_modules/@kne/markdown-components-render/node_modules/linkify-it/index.mjs","../node_modules/@kne/markdown-components-render/node_modules/linkify-it/lib/re.mjs","../node_modules/punycode.js/punycode.es6.js","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/index.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/presets/default.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/presets/zero.mjs","../node_modules/@kne/markdown-components-render/node_modules/markdown-it/lib/presets/commonmark.mjs","../node_modules/js-yaml/dist/js-yaml.mjs","../node_modules/html-react-parser/esm/index.mjs","../node_modules/@kne/markdown-components-render/src/md-components-plugin.js","../node_modules/@kne/markdown-components-render/src/compile-variables.js","../node_modules/@kne/markdown-components-render/node_modules/classnames/index.js","../node_modules/@kne/markdown-components-render/src/md-components.js","../node_modules/@kne/markdown-components-render/src/preset.js","../node_modules/@kne/markdown-components-render/src/index.js","../node_modules/react-to-print/dist/react-to-print.mjs","../node_modules/@kne/react-file/dist/photo-fail~pgpCmVwu.svg","../node_modules/@kne/react-file/dist/avatar-default~zCLybCAb.svg","../node_modules/@kne/react-file/dist/avatar-female~IlLWtNkS.svg","../node_modules/@kne/react-file/dist/avatar-male~yBohnCwo.svg","../node_modules/@kne/react-file/src/hocs/withOSSFile.js","../node_modules/@kne/react-file/src/components/File/index.js","../node_modules/@kne/react-file/src/components/Download/downloadAction.js","../node_modules/@kne/react-file/src/components/Download/downloadBlobFile.js","../node_modules/@kne/react-file/src/common/useStaticUrl.js","../node_modules/@kne/react-file/src/components/Download/useDownload.js","../node_modules/@kne/react-file/src/locale/zh-CN.js","../node_modules/@kne/react-file/src/components/Download/Download.js","../node_modules/@kne/react-file/src/components/FilePreview/HtmlPreview.js","../node_modules/@kne/react-file/src/components/FilePreview/TypePreview.js","../node_modules/@kne/react-file/src/components/FilePreview/OfficePreview.js","../node_modules/@kne/react-file/src/components/FilePreview/PdfPreview.js","../node_modules/@kne/react-file/src/components/FilePreview/TextPreview.js","../node_modules/@kne/react-file/src/components/FilePreview/UnknownPreview.js","../node_modules/@kne/react-file/src/components/FilePreview/ImagePreview.js","../node_modules/@kne/react-file/src/components/FilePreview/AudioPreview.js","../node_modules/@kne/react-file/src/components/FilePreview/VideoPreview.js","../node_modules/@kne/react-file/src/components/FilePreview/MarkdownPreview.js","../node_modules/@kne/react-file/src/components/FilePreview/typeFormat.js","../node_modules/@kne/react-file/src/components/FilePreview/OSSFilePreview.js","../node_modules/@kne/react-file/src/components/FilePreview/FilePreview.js","../node_modules/@kne/react-file/src/components/PrintButton/index.js","../node_modules/@kne/react-file/src/components/FileButton/FileModal.js","../node_modules/@kne/react-file/src/components/FileButton/FileButton.js","../node_modules/@kne/react-file/src/components/Image/loadImage.js","../node_modules/@kne/react-file/src/components/Image/index.js","../node_modules/@kne/react-file/src/components/FileList/OptionButtons.js","../node_modules/@kne/react-file/src/components/FileList/index.js","../node_modules/@kne/react-file/src/components/FileUpload/useFileUpload.js","../node_modules/@kne/react-file/src/components/FileUpload/defaultAccept.js","../node_modules/@kne/react-file/src/components/FileUpload/FileInput.js","../node_modules/@kne/react-file/src/components/FileUpload/FileUpload.js","../node_modules/@kne/react-file/src/components/FileUpload/computedAccept.js","../node_modules/ajv/lib/ajv.ts","../node_modules/ajv/lib/compile/codegen/code.ts","../node_modules/ajv/lib/compile/codegen/index.ts","../node_modules/ajv/lib/compile/codegen/scope.ts","../node_modules/ajv/lib/compile/errors.ts","../node_modules/ajv/lib/compile/index.ts","../node_modules/ajv/lib/compile/names.ts","../node_modules/ajv/lib/compile/ref_error.ts","../node_modules/ajv/lib/compile/resolve.ts","../node_modules/ajv/lib/compile/rules.ts","../node_modules/ajv/lib/compile/util.ts","../node_modules/ajv/lib/compile/validate/applicability.ts","../node_modules/ajv/lib/compile/validate/boolSchema.ts","../node_modules/ajv/lib/compile/validate/dataType.ts","../node_modules/ajv/lib/compile/validate/defaults.ts","../node_modules/ajv/lib/compile/validate/index.ts","../node_modules/ajv/lib/compile/validate/keyword.ts","../node_modules/ajv/lib/compile/validate/subschema.ts","../node_modules/ajv/lib/core.ts","../node_modules/ajv/lib/runtime/equal.ts","../node_modules/ajv/lib/runtime/ucs2length.ts","../node_modules/ajv/lib/runtime/uri.ts","../node_modules/ajv/lib/runtime/validation_error.ts","../node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts","../node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts","../node_modules/ajv/lib/vocabularies/applicator/allOf.ts","../node_modules/ajv/lib/vocabularies/applicator/anyOf.ts","../node_modules/ajv/lib/vocabularies/applicator/contains.ts","../node_modules/ajv/lib/vocabularies/applicator/dependencies.ts","../node_modules/ajv/lib/vocabularies/applicator/if.ts","../node_modules/ajv/lib/vocabularies/applicator/index.ts","../node_modules/ajv/lib/vocabularies/applicator/items.ts","../node_modules/ajv/lib/vocabularies/applicator/items2020.ts","../node_modules/ajv/lib/vocabularies/applicator/not.ts","../node_modules/ajv/lib/vocabularies/applicator/oneOf.ts","../node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts","../node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts","../node_modules/ajv/lib/vocabularies/applicator/properties.ts","../node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts","../node_modules/ajv/lib/vocabularies/applicator/thenElse.ts","../node_modules/ajv/lib/vocabularies/code.ts","../node_modules/ajv/lib/vocabularies/core/id.ts","../node_modules/ajv/lib/vocabularies/core/index.ts","../node_modules/ajv/lib/vocabularies/core/ref.ts","../node_modules/ajv/lib/vocabularies/discriminator/index.ts","../node_modules/ajv/lib/vocabularies/discriminator/types.ts","../node_modules/ajv/lib/vocabularies/draft7.ts","../node_modules/ajv/lib/vocabularies/format/format.ts","../node_modules/ajv/lib/vocabularies/format/index.ts","../node_modules/ajv/lib/vocabularies/metadata.ts","../node_modules/ajv/lib/vocabularies/validation/const.ts","../node_modules/ajv/lib/vocabularies/validation/enum.ts","../node_modules/ajv/lib/vocabularies/validation/index.ts","../node_modules/ajv/lib/vocabularies/validation/limitItems.ts","../node_modules/ajv/lib/vocabularies/validation/limitLength.ts","../node_modules/ajv/lib/vocabularies/validation/limitNumber.ts","../node_modules/ajv/lib/vocabularies/validation/limitProperties.ts","../node_modules/ajv/lib/vocabularies/validation/multipleOf.ts","../node_modules/ajv/lib/vocabularies/validation/pattern.ts","../node_modules/ajv/lib/vocabularies/validation/required.ts","../node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts","../node_modules/domelementtype/lib/index.js","../node_modules/domhandler/lib/index.js","../node_modules/domhandler/lib/node.js","../node_modules/fast-deep-equal/index.js","../node_modules/html-dom-parser/src/client/constants.ts","../node_modules/html-dom-parser/src/client/domparser.ts","../node_modules/html-dom-parser/src/client/html-to-dom.ts","../node_modules/html-dom-parser/src/client/utilities.ts","../node_modules/html-react-parser/src/attributes-to-props.ts","../node_modules/html-react-parser/src/dom-to-react.ts","../node_modules/html-react-parser/src/index.ts","../node_modules/html-react-parser/src/utilities.ts","../node_modules/inline-style-parser/index.js","../node_modules/json-schema-traverse/index.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_arrayEach.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_assignMergeValue.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAssign.js","../node_modules/lodash/_baseAssignIn.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseClone.js","../node_modules/lodash/_baseCreate.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsMap.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsSet.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseKeysIn.js","../node_modules/lodash/_baseMerge.js","../node_modules/lodash/_baseMergeDeep.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_baseUnset.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_cloneArrayBuffer.js","../node_modules/lodash/_cloneBuffer.js","../node_modules/lodash/_cloneDataView.js","../node_modules/lodash/_cloneRegExp.js","../node_modules/lodash/_cloneSymbol.js","../node_modules/lodash/_cloneTypedArray.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/_copyObject.js","../node_modules/lodash/_copySymbols.js","../node_modules/lodash/_copySymbolsIn.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createAssigner.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_customOmitClone.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_flatRest.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getAllKeysIn.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getSymbolsIn.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_initCloneArray.js","../node_modules/lodash/_initCloneByTag.js","../node_modules/lodash/_initCloneObject.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nativeKeysIn.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_parent.js","../node_modules/lodash/_root.js","../node_modules/lodash/_safeGet.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/constant.js","../node_modules/lodash/eq.js","../node_modules/lodash/flatten.js","../node_modules/lodash/identity.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isArrayLikeObject.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isMap.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isPlainObject.js","../node_modules/lodash/isSet.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/keysIn.js","../node_modules/lodash/last.js","../node_modules/lodash/memoize.js","../node_modules/lodash/merge.js","../node_modules/lodash/omit.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/toPlainObject.js","../node_modules/lodash/toString.js","../node_modules/lodash/uniqueId.js","../node_modules/react-property/lib/index.js","../node_modules/react-property/lib/possibleStandardNamesOptimized.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/jsx-runtime.js","../node_modules/style-to-js/src/index.ts","../node_modules/style-to-js/src/utilities.ts","../node_modules/style-to-object/src/index.ts","../node_modules/fast-uri/index.js","../node_modules/fast-uri/lib/schemes.js","../node_modules/fast-uri/lib/utils.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js"],"sourcesContent":["// This icon file is generated automatically.\nvar DeleteOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z\" } }] }, \"name\": \"delete\", \"theme\": \"outlined\" };\nexport default DeleteOutlined;\n","// This icon file is generated automatically.\nvar DownloadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"download\", \"theme\": \"outlined\" };\nexport default DownloadOutlined;\n","// This icon file is generated automatically.\nvar EditOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z\" } }] }, \"name\": \"edit\", \"theme\": \"outlined\" };\nexport default EditOutlined;\n","// This icon file is generated automatically.\nvar EyeOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z\" } }] }, \"name\": \"eye\", \"theme\": \"outlined\" };\nexport default EyeOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DeleteOutlinedSvg from \"@ant-design/icons-svg/es/asn/DeleteOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DeleteOutlined = function DeleteOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DeleteOutlinedSvg\n }));\n};\n\n/** */\nvar RefIcon = /*#__PURE__*/React.forwardRef(DeleteOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'DeleteOutlined';\n}\nexport default RefIcon;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DownloadOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownloadOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DownloadOutlined = function DownloadOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DownloadOutlinedSvg\n }));\n};\n\n/** */\nvar RefIcon = /*#__PURE__*/React.forwardRef(DownloadOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'DownloadOutlined';\n}\nexport default RefIcon;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport EditOutlinedSvg from \"@ant-design/icons-svg/es/asn/EditOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EditOutlined = function EditOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: EditOutlinedSvg\n }));\n};\n\n/** */\nvar RefIcon = /*#__PURE__*/React.forwardRef(EditOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'EditOutlined';\n}\nexport default RefIcon;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport EyeOutlinedSvg from \"@ant-design/icons-svg/es/asn/EyeOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EyeOutlined = function EyeOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: EyeOutlinedSvg\n }));\n};\n\n/** */\nvar RefIcon = /*#__PURE__*/React.forwardRef(EyeOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'EyeOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar LinkOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" } }] }, \"name\": \"link\", \"theme\": \"outlined\" };\nexport default LinkOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport LinkOutlinedSvg from \"@ant-design/icons-svg/es/asn/LinkOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar LinkOutlined = function LinkOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: LinkOutlinedSvg\n }));\n};\n\n/** */\nvar RefIcon = /*#__PURE__*/React.forwardRef(LinkOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'LinkOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar PrinterOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M820 436h-40c-4.4 0-8 3.6-8 8v40c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-40c0-4.4-3.6-8-8-8zm32-104H732V120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM360 180h304v152H360V180zm304 664H360V568h304v276zm200-140H732V500H292v204H160V412c0-6.6 5.4-12 12-12h680c6.6 0 12 5.4 12 12v292z\" } }] }, \"name\": \"printer\", \"theme\": \"outlined\" };\nexport default PrinterOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport PrinterOutlinedSvg from \"@ant-design/icons-svg/es/asn/PrinterOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar PrinterOutlined = function PrinterOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: PrinterOutlinedSvg\n }));\n};\n\n/** */\nvar RefIcon = /*#__PURE__*/React.forwardRef(PrinterOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'PrinterOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar UploadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"upload\", \"theme\": \"outlined\" };\nexport default UploadOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UploadOutlinedSvg from \"@ant-design/icons-svg/es/asn/UploadOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar UploadOutlined = function UploadOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UploadOutlinedSvg\n }));\n};\n\n/** */\nvar RefIcon = /*#__PURE__*/React.forwardRef(UploadOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'UploadOutlined';\n}\nexport default RefIcon;","/*\n * File: iframeResizer.js\n * Desc: Force iframes to size to content.\n * Requires: iframeResizer.contentWindow.js to be loaded into the target frame.\n * Doc: https://iframe-resizer.com\n * Author: David J. Bradshaw - info@iframe-resizer.com\n */\n\n// eslint-disable-next-line sonarjs/cognitive-complexity, no-shadow-restricted-names\n// var VERSION = '4.3.11'\n\nvar count = 0,\n destroyObserver,\n logEnabled = false,\n hiddenCheckEnabled = false,\n msgHeader = 'message',\n msgHeaderLen = msgHeader.length,\n msgId = '[iFrameSizer]', // Must match iframe msg ID\n msgIdLen = msgId.length,\n pagePosition = null,\n requestAnimationFrame = window.requestAnimationFrame,\n resetRequiredMethods = Object.freeze({\n max: 1,\n scroll: 1,\n bodyScroll: 1,\n documentElementScroll: 1\n }),\n settings = {},\n timer = null,\n defaults = Object.freeze({\n autoResize: true,\n bodyBackground: null,\n bodyMargin: null,\n bodyMarginV1: 8,\n bodyPadding: null,\n checkOrigin: true,\n inPageLinks: false,\n enablePublicMethods: true,\n heightCalculationMethod: 'bodyOffset',\n id: 'iFrameResizer',\n interval: 32,\n license: '1jqr0si6pnt',\n log: false,\n maxHeight: Infinity,\n maxWidth: Infinity,\n minHeight: 0,\n minWidth: 0,\n mouseEvents: true,\n resizeFrom: 'parent',\n scrolling: false,\n sizeHeight: true,\n sizeWidth: false,\n warningTimeout: 5000,\n tolerance: 0,\n widthCalculationMethod: 'scroll',\n onClose: function () {\n return true;\n },\n onClosed: function () {},\n onInit: function () {},\n onMessage: function () {\n warn('onMessage function not defined');\n },\n onMouseEnter: function () {},\n onMouseLeave: function () {},\n onResized: function () {},\n onScroll: function () {\n return true;\n }\n });\n\nfunction getMutationObserver() {\n return window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n}\n\nfunction addEventListener(el, evt, func) {\n el.addEventListener(evt, func, false);\n}\n\nfunction removeEventListener(el, evt, func) {\n el.removeEventListener(evt, func, false);\n}\n\nfunction setupRequestAnimationFrame() {\n var vendors = ['moz', 'webkit', 'o', 'ms'];\n var x;\n\n // Remove vendor prefixing if prefixed and break early if not\n for (x = 0; x < vendors.length && !requestAnimationFrame; x += 1) {\n requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\n }\n\n if (requestAnimationFrame) {\n // Firefox extension content-scripts have a globalThis object that is not the same as window.\n // Binding `requestAnimationFrame` to window allows the function to work and prevents errors\n // being thrown when run in that context, and should be a no-op in every other context.\n requestAnimationFrame = requestAnimationFrame.bind(window);\n } else {\n log('setup', 'RequestAnimationFrame not supported');\n }\n}\n\nfunction getMyID(iframeId) {\n var retStr = 'Host page: ' + iframeId;\n\n if (window.top !== window.self) {\n retStr = window.parentIFrame && window.parentIFrame.getId ? window.parentIFrame.getId() + ': ' + iframeId : 'Nested host page: ' + iframeId;\n }\n\n return retStr;\n}\n\nfunction formatLogHeader(iframeId) {\n return msgId + '[' + getMyID(iframeId) + ']';\n}\n\nfunction isLogEnabled(iframeId) {\n return settings[iframeId] ? settings[iframeId].log : logEnabled;\n}\n\nfunction log(iframeId, msg) {\n output('log', iframeId, msg, isLogEnabled(iframeId));\n}\n\nfunction info(iframeId, msg) {\n output('info', iframeId, msg, isLogEnabled(iframeId));\n}\n\nfunction warn(iframeId, msg) {\n output('warn', iframeId, msg, true);\n}\n\nfunction output(type, iframeId, msg, enabled) {\n if (true === enabled && 'object' === typeof window.console) {\n // eslint-disable-next-line no-console\n console[type](formatLogHeader(iframeId), msg);\n }\n}\n\nfunction iFrameListener(event) {\n function resizeIFrame() {\n function resize() {\n setSize(messageData);\n setPagePosition(iframeId);\n on('onResized', messageData);\n }\n\n ensureInRange('Height');\n ensureInRange('Width');\n\n syncResize(resize, messageData, 'init');\n }\n\n function processMsg() {\n var data = msg.slice(msgIdLen).split(':');\n var height = data[1] ? parseInt(data[1], 10) : 0;\n var iframe = settings[data[0]] && settings[data[0]].iframe;\n var compStyle = getComputedStyle(iframe);\n\n return {\n iframe: iframe,\n id: data[0],\n height: height + getPaddingEnds(compStyle) + getBorderEnds(compStyle),\n width: data[2],\n type: data[3]\n };\n }\n\n function getPaddingEnds(compStyle) {\n if (compStyle.boxSizing !== 'border-box') {\n return 0;\n }\n var top = compStyle.paddingTop ? parseInt(compStyle.paddingTop, 10) : 0;\n var bot = compStyle.paddingBottom ? parseInt(compStyle.paddingBottom, 10) : 0;\n return top + bot;\n }\n\n function getBorderEnds(compStyle) {\n if (compStyle.boxSizing !== 'border-box') {\n return 0;\n }\n var top = compStyle.borderTopWidth ? parseInt(compStyle.borderTopWidth, 10) : 0;\n var bot = compStyle.borderBottomWidth ? parseInt(compStyle.borderBottomWidth, 10) : 0;\n return top + bot;\n }\n\n function ensureInRange(Dimension) {\n var max = Number(settings[iframeId]['max' + Dimension]),\n min = Number(settings[iframeId]['min' + Dimension]),\n dimension = Dimension.toLowerCase(),\n size = Number(messageData[dimension]);\n\n log(iframeId, 'Checking ' + dimension + ' is in range ' + min + '-' + max);\n\n if (size < min) {\n size = min;\n log(iframeId, 'Set ' + dimension + ' to min value');\n }\n\n if (size > max) {\n size = max;\n log(iframeId, 'Set ' + dimension + ' to max value');\n }\n\n messageData[dimension] = '' + size;\n }\n\n function isMessageFromIFrame() {\n function checkAllowedOrigin() {\n function checkList() {\n var i = 0,\n retCode = false;\n\n log(iframeId, 'Checking connection is from allowed list of origins: ' + checkOrigin);\n\n for (; i < checkOrigin.length; i++) {\n if (checkOrigin[i] === origin) {\n retCode = true;\n break;\n }\n }\n return retCode;\n }\n\n function checkSingle() {\n var remoteHost = settings[iframeId] && settings[iframeId].remoteHost;\n log(iframeId, 'Checking connection is from: ' + remoteHost);\n return origin === remoteHost;\n }\n\n return checkOrigin.constructor === Array ? checkList() : checkSingle();\n }\n\n var origin = event.origin,\n checkOrigin = settings[iframeId] && settings[iframeId].checkOrigin;\n\n if (checkOrigin && '' + origin !== 'null' && !checkAllowedOrigin()) {\n throw new Error(\n 'Unexpected message received from: ' + origin + ' for ' + messageData.iframe.id + '. Message was: ' + event.data + '. This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.'\n );\n }\n\n return true;\n }\n\n function isMessageForUs() {\n return msgId === ('' + msg).slice(0, msgIdLen) && msg.slice(msgIdLen).split(':')[0] in settings; // ''+Protects against non-string msg\n }\n\n function isMessageFromMetaParent() {\n // Test if this message is from a parent above us. This is an ugly test, however, updating\n // the message format would break backwards compatibility.\n var retCode = messageData.type in { true: 1, false: 1, undefined: 1 };\n\n if (retCode) {\n log(iframeId, 'Ignoring init message from meta parent page');\n }\n\n return retCode;\n }\n\n function getMsgBody(offset) {\n return msg.slice(msg.indexOf(':') + msgHeaderLen + offset);\n }\n\n function forwardMsgFromIFrame(msgBody) {\n log(iframeId, 'onMessage passed: {iframe: ' + messageData.iframe.id + ', message: ' + msgBody + '}');\n\n on('onMessage', {\n iframe: messageData.iframe,\n message: JSON.parse(msgBody)\n });\n\n log(iframeId, '--');\n }\n\n function getPageInfo() {\n var bodyPosition = document.body.getBoundingClientRect(),\n iFramePosition = messageData.iframe.getBoundingClientRect();\n\n return JSON.stringify({\n iframeHeight: iFramePosition.height,\n iframeWidth: iFramePosition.width,\n clientHeight: Math.max(document.documentElement.clientHeight, window.innerHeight || 0),\n clientWidth: Math.max(document.documentElement.clientWidth, window.innerWidth || 0),\n offsetTop: parseInt(iFramePosition.top - bodyPosition.top, 10),\n offsetLeft: parseInt(iFramePosition.left - bodyPosition.left, 10),\n scrollTop: window.pageYOffset,\n scrollLeft: window.pageXOffset,\n documentHeight: document.documentElement.clientHeight,\n documentWidth: document.documentElement.clientWidth,\n windowHeight: window.innerHeight,\n windowWidth: window.innerWidth\n });\n }\n\n function sendPageInfoToIframe(iframe, iframeId) {\n function debouncedTrigger() {\n trigger('Send Page Info', 'pageInfo:' + getPageInfo(), iframe, iframeId);\n }\n\n debounceFrameEvents(debouncedTrigger, 32, iframeId);\n }\n\n function startPageInfoMonitor() {\n function setListener(type, func) {\n function sendPageInfo() {\n if (settings[id]) {\n sendPageInfoToIframe(settings[id].iframe, id);\n } else {\n stop();\n }\n }\n\n ['scroll', 'resize'].forEach(function (evt) {\n log(id, type + evt + ' listener for sendPageInfo');\n func(window, evt, sendPageInfo);\n });\n }\n\n function stop() {\n setListener('Remove ', removeEventListener);\n }\n\n function start() {\n setListener('Add ', addEventListener);\n }\n\n var id = iframeId; // Create locally scoped copy of iFrame ID\n\n start();\n\n if (settings[id]) {\n settings[id].stopPageInfo = stop;\n }\n }\n\n function stopPageInfoMonitor() {\n if (settings[iframeId] && settings[iframeId].stopPageInfo) {\n settings[iframeId].stopPageInfo();\n delete settings[iframeId].stopPageInfo;\n }\n }\n\n function checkIFrameExists() {\n var retBool = true;\n\n if (null === messageData.iframe) {\n warn(iframeId, 'IFrame (' + messageData.id + ') not found');\n retBool = false;\n }\n return retBool;\n }\n\n function getElementPosition(target) {\n var iFramePosition = target.getBoundingClientRect();\n\n getPagePosition(iframeId);\n\n return {\n x: Math.floor(Number(iFramePosition.left) + Number(pagePosition.x)),\n y: Math.floor(Number(iFramePosition.top) + Number(pagePosition.y))\n };\n }\n\n function scrollRequestFromChild(addOffset) {\n /* istanbul ignore next */ // Not testable in Karma\n function reposition() {\n pagePosition = newPosition;\n scrollTo();\n log(iframeId, '--');\n }\n\n function calcOffset() {\n return {\n x: Number(messageData.width) + offset.x,\n y: Number(messageData.height) + offset.y\n };\n }\n\n function scrollParent() {\n if (window.parentIFrame) {\n window.parentIFrame['scrollTo' + (addOffset ? 'Offset' : '')](newPosition.x, newPosition.y);\n } else {\n warn(iframeId, 'Unable to scroll to requested position, window.parentIFrame not found');\n }\n }\n\n var offset = addOffset ? getElementPosition(messageData.iframe) : { x: 0, y: 0 },\n newPosition = calcOffset();\n\n log(iframeId, 'Reposition requested from iFrame (offset x:' + offset.x + ' y:' + offset.y + ')');\n\n if (window.top === window.self) {\n reposition();\n } else {\n scrollParent();\n }\n }\n\n function scrollTo() {\n if (false === on('onScroll', pagePosition)) {\n unsetPagePosition();\n } else {\n setPagePosition(iframeId);\n }\n }\n\n function findTarget(location) {\n function jumpToTarget() {\n var jumpPosition = getElementPosition(target);\n\n log(iframeId, 'Moving to in page link (#' + hash + ') at x: ' + jumpPosition.x + ' y: ' + jumpPosition.y);\n pagePosition = {\n x: jumpPosition.x,\n y: jumpPosition.y\n };\n\n scrollTo();\n log(iframeId, '--');\n }\n\n function jumpToParent() {\n if (window.parentIFrame) {\n window.parentIFrame.moveToAnchor(hash);\n } else {\n log(iframeId, 'In page link #' + hash + ' not found and window.parentIFrame not found');\n }\n }\n\n var hash = location.split('#')[1] || '',\n hashData = decodeURIComponent(hash),\n target = document.getElementById(hashData) || document.getElementsByName(hashData)[0];\n\n if (target) {\n jumpToTarget();\n } else if (window.top === window.self) {\n log(iframeId, 'In page link #' + hash + ' not found');\n } else {\n jumpToParent();\n }\n }\n\n function onMouse(event) {\n var mousePos = {};\n\n if (Number(messageData.width) === 0 && Number(messageData.height) === 0) {\n var data = getMsgBody(9).split(':');\n mousePos = {\n x: data[1],\n y: data[0]\n };\n } else {\n mousePos = {\n x: messageData.width,\n y: messageData.height\n };\n }\n\n on(event, {\n iframe: messageData.iframe,\n screenX: Number(mousePos.x),\n screenY: Number(mousePos.y),\n type: messageData.type\n });\n }\n\n function on(funcName, val) {\n return chkEvent(iframeId, funcName, val);\n }\n\n function actionMsg() {\n if (settings[iframeId] && settings[iframeId].firstRun) firstRun();\n\n switch (messageData.type) {\n case 'close': {\n closeIFrame(messageData.iframe);\n break;\n }\n\n case 'message': {\n forwardMsgFromIFrame(getMsgBody(6));\n break;\n }\n\n case 'mouseenter': {\n onMouse('onMouseEnter');\n break;\n }\n\n case 'mouseleave': {\n onMouse('onMouseLeave');\n break;\n }\n\n case 'autoResize': {\n settings[iframeId].autoResize = JSON.parse(getMsgBody(9));\n break;\n }\n\n case 'scrollTo': {\n scrollRequestFromChild(false);\n break;\n }\n\n case 'scrollToOffset': {\n scrollRequestFromChild(true);\n break;\n }\n\n case 'pageInfo': {\n sendPageInfoToIframe(settings[iframeId] && settings[iframeId].iframe, iframeId);\n startPageInfoMonitor();\n break;\n }\n\n case 'pageInfoStop': {\n stopPageInfoMonitor();\n break;\n }\n\n case 'inPageLink': {\n findTarget(getMsgBody(9));\n break;\n }\n\n case 'reset': {\n resetIFrame(messageData);\n break;\n }\n\n case 'init': {\n resizeIFrame();\n on('onInit', messageData.iframe);\n break;\n }\n\n default: {\n if (Number(messageData.width) === 0 && Number(messageData.height) === 0) {\n warn('Unsupported message received (' + messageData.type + '), this is likely due to the iframe containing a later ' + 'version of iframe-resizer than the parent page');\n } else {\n resizeIFrame();\n }\n }\n }\n }\n\n function hasSettings(iframeId) {\n var retBool = true;\n\n if (!settings[iframeId]) {\n retBool = false;\n warn(messageData.type + ' No settings for ' + iframeId + '. Message was: ' + msg);\n }\n\n return retBool;\n }\n\n function iFrameReadyMsgReceived() {\n // eslint-disable-next-line no-restricted-syntax, guard-for-in\n for (var iframeId in settings) {\n trigger('iFrame requested init', createOutgoingMsg(iframeId), settings[iframeId].iframe, iframeId);\n }\n }\n\n function firstRun() {\n if (settings[iframeId]) {\n settings[iframeId].firstRun = false;\n }\n }\n\n var msg = event.data,\n messageData = {},\n iframeId = null;\n\n if ('[iFrameResizerChild]Ready' === msg) {\n iFrameReadyMsgReceived();\n } else if (isMessageForUs()) {\n messageData = processMsg();\n iframeId = messageData.id;\n if (settings[iframeId]) {\n settings[iframeId].loaded = true;\n }\n\n if (!isMessageFromMetaParent() && hasSettings(iframeId)) {\n log(iframeId, 'Received: ' + msg);\n\n if (checkIFrameExists() && isMessageFromIFrame()) {\n actionMsg();\n }\n }\n } else {\n info(iframeId, 'Ignored: ' + msg);\n }\n}\n\nfunction chkEvent(iframeId, funcName, val) {\n var func = null,\n retVal = null;\n\n if (settings[iframeId]) {\n func = settings[iframeId][funcName];\n\n if ('function' === typeof func) {\n retVal = func(val);\n } else {\n throw new TypeError(funcName + ' on iFrame[' + iframeId + '] is not a function');\n }\n }\n\n return retVal;\n}\n\nfunction removeIframeListeners(iframe) {\n var iframeId = iframe.id;\n delete settings[iframeId];\n}\n\nfunction closeIFrame(iframe) {\n var iframeId = iframe.id;\n if (chkEvent(iframeId, 'onClose', iframeId) === false) {\n log(iframeId, 'Close iframe cancelled by onClose event');\n return;\n }\n log(iframeId, 'Removing iFrame: ' + iframeId);\n\n try {\n // Catch race condition error with React\n if (iframe.parentNode) {\n iframe.parentNode.removeChild(iframe);\n }\n } catch (error) {\n warn(error);\n }\n\n chkEvent(iframeId, 'onClosed', iframeId);\n log(iframeId, '--');\n removeIframeListeners(iframe);\n if (destroyObserver) {\n destroyObserver.disconnect();\n destroyObserver = null;\n }\n}\n\nfunction getPagePosition(iframeId) {\n if (null === pagePosition) {\n pagePosition = {\n x: window.pageXOffset === undefined ? document.documentElement.scrollLeft : window.pageXOffset,\n y: window.pageYOffset === undefined ? document.documentElement.scrollTop : window.pageYOffset\n };\n log(iframeId, 'Get page position: ' + pagePosition.x + ',' + pagePosition.y);\n }\n}\n\nfunction setPagePosition(iframeId) {\n if (null !== pagePosition) {\n window.scrollTo(pagePosition.x, pagePosition.y);\n log(iframeId, 'Set page position: ' + pagePosition.x + ',' + pagePosition.y);\n unsetPagePosition();\n }\n}\n\nfunction unsetPagePosition() {\n pagePosition = null;\n}\n\nfunction resetIFrame(messageData) {\n function reset() {\n setSize(messageData);\n trigger('reset', 'reset', messageData.iframe, messageData.id);\n }\n\n log(messageData.id, 'Size reset requested by ' + ('init' === messageData.type ? 'host page' : 'iFrame'));\n getPagePosition(messageData.id);\n syncResize(reset, messageData, 'reset');\n}\n\nfunction setSize(messageData) {\n function setDimension(dimension) {\n if (!messageData.id) {\n log('undefined', 'messageData id not set');\n return;\n }\n messageData.iframe.style[dimension] = messageData[dimension] + 'px';\n log(messageData.id, 'IFrame (' + iframeId + ') ' + dimension + ' set to ' + messageData[dimension] + 'px');\n }\n\n function chkZero(dimension) {\n // FireFox sets dimension of hidden iFrames to zero.\n // So if we detect that set up an event to check for\n // when iFrame becomes visible.\n\n /* istanbul ignore next */ // Not testable in PhantomJS\n if (!hiddenCheckEnabled && '0' === messageData[dimension]) {\n hiddenCheckEnabled = true;\n log(iframeId, 'Hidden iFrame detected, creating visibility listener');\n fixHiddenIFrames();\n }\n }\n\n function processDimension(dimension) {\n setDimension(dimension);\n chkZero(dimension);\n }\n\n var iframeId = messageData.iframe.id;\n\n if (settings[iframeId]) {\n if (settings[iframeId].sizeHeight) {\n processDimension('height');\n }\n if (settings[iframeId].sizeWidth) {\n processDimension('width');\n }\n }\n}\n\nfunction syncResize(func, messageData, doNotSync) {\n /* istanbul ignore if */ // Not testable in PhantomJS\n if (\n doNotSync !== messageData.type &&\n requestAnimationFrame && // including check for jasmine because had trouble getting spy to work in unit test using requestAnimationFrame\n !window.jasmine\n ) {\n log(messageData.id, 'Requesting animation frame');\n requestAnimationFrame(func);\n } else {\n func();\n }\n}\n\nfunction trigger(calleeMsg, msg, iframe, id, noResponseWarning) {\n function postMessageToIFrame() {\n var target = settings[id] && settings[id].targetOrigin;\n log(id, '[' + calleeMsg + '] Sending msg to iframe[' + id + '] (' + msg + ') targetOrigin: ' + target);\n iframe.contentWindow.postMessage(msgId + msg, target);\n }\n\n function iFrameNotFound() {\n warn(id, '[' + calleeMsg + '] IFrame(' + id + ') not found');\n }\n\n function chkAndSend() {\n if (iframe && 'contentWindow' in iframe && null !== iframe.contentWindow) {\n // Null test for PhantomJS\n postMessageToIFrame();\n } else {\n iFrameNotFound();\n }\n }\n\n function warnOnNoResponse() {\n function warning() {\n if (settings[id] && !settings[id].loaded && !errorShown) {\n errorShown = true;\n warn(\n id,\n 'IFrame has not responded within ' +\n settings[id].warningTimeout / 1000 +\n ' seconds. Check iFrameResizer.contentWindow.js has been loaded in iFrame. This message can be ignored if everything is working, or you can set the warningTimeout option to a higher value or zero to suppress this warning.'\n );\n }\n }\n\n if (!!noResponseWarning && settings[id] && !!settings[id].warningTimeout) {\n settings[id].msgTimeout = setTimeout(warning, settings[id].warningTimeout);\n }\n }\n\n var errorShown = false;\n\n id = id || iframe.id;\n\n if (settings[id]) {\n chkAndSend();\n warnOnNoResponse();\n }\n}\n\nfunction createOutgoingMsg(iframeId) {\n return (\n iframeId +\n ':' +\n settings[iframeId].bodyMarginV1 +\n ':' +\n settings[iframeId].sizeWidth +\n ':' +\n settings[iframeId].log +\n ':' +\n settings[iframeId].interval +\n ':' +\n settings[iframeId].enablePublicMethods +\n ':' +\n settings[iframeId].autoResize +\n ':' +\n settings[iframeId].bodyMargin +\n ':' +\n settings[iframeId].heightCalculationMethod +\n ':' +\n settings[iframeId].bodyBackground +\n ':' +\n settings[iframeId].bodyPadding +\n ':' +\n settings[iframeId].tolerance +\n ':' +\n settings[iframeId].inPageLinks +\n ':' +\n settings[iframeId].resizeFrom +\n ':' +\n settings[iframeId].widthCalculationMethod +\n ':' +\n settings[iframeId].mouseEvents\n );\n}\n\nfunction isNumber(value) {\n return typeof value === 'number';\n}\n\nfunction setupIFrame(iframe, options) {\n function setLimits() {\n function addStyle(style) {\n var styleValue = settings[iframeId][style];\n if (Infinity !== styleValue && 0 !== styleValue) {\n iframe.style[style] = isNumber(styleValue) ? styleValue + 'px' : styleValue;\n log(iframeId, 'Set ' + style + ' = ' + iframe.style[style]);\n }\n }\n\n function chkMinMax(dimension) {\n if (settings[iframeId]['min' + dimension] > settings[iframeId]['max' + dimension]) {\n throw new Error('Value for min' + dimension + ' can not be greater than max' + dimension);\n }\n }\n\n chkMinMax('Height');\n chkMinMax('Width');\n\n addStyle('maxHeight');\n addStyle('minHeight');\n addStyle('maxWidth');\n addStyle('minWidth');\n }\n\n function newId() {\n var id = (options && options.id) || defaults.id + count++;\n if (null !== document.getElementById(id)) {\n id += count++;\n }\n return id;\n }\n\n function ensureHasId(iframeId) {\n if (typeof iframeId !== 'string') {\n throw new TypeError('Invaild id for iFrame. Expected String');\n }\n\n if ('' === iframeId) {\n // eslint-disable-next-line no-multi-assign\n iframe.id = iframeId = newId();\n logEnabled = (options || {}).log;\n log(iframeId, 'Added missing iframe ID: ' + iframeId + ' (' + iframe.src + ')');\n }\n\n return iframeId;\n }\n\n function setScrolling() {\n log(iframeId, 'IFrame scrolling ' + (settings[iframeId] && settings[iframeId].scrolling ? 'enabled' : 'disabled') + ' for ' + iframeId);\n iframe.style.overflow = false === (settings[iframeId] && settings[iframeId].scrolling) ? 'hidden' : 'auto';\n switch (settings[iframeId] && settings[iframeId].scrolling) {\n case 'omit': {\n break;\n }\n\n case true: {\n iframe.scrolling = 'yes';\n break;\n }\n\n case false: {\n iframe.scrolling = 'no';\n break;\n }\n\n default: {\n iframe.scrolling = settings[iframeId] ? settings[iframeId].scrolling : 'no';\n }\n }\n }\n\n // The V1 iFrame script expects an int, where as in V2 expects a CSS\n // string value such as '1px 3em', so if we have an int for V2, set V1=V2\n // and then convert V2 to a string PX value.\n function setupBodyMarginValues() {\n if ('number' === typeof (settings[iframeId] && settings[iframeId].bodyMargin) || '0' === (settings[iframeId] && settings[iframeId].bodyMargin)) {\n settings[iframeId].bodyMarginV1 = settings[iframeId].bodyMargin;\n settings[iframeId].bodyMargin = '' + settings[iframeId].bodyMargin + 'px';\n }\n }\n\n function checkReset() {\n // Reduce scope of firstRun to function, because IE8's JS execution\n // context stack is borked and this value gets externally\n // changed midway through running this function!!!\n var firstRun = settings[iframeId] && settings[iframeId].firstRun,\n resetRequertMethod = settings[iframeId] && settings[iframeId].heightCalculationMethod in resetRequiredMethods;\n\n if (!firstRun && resetRequertMethod) {\n resetIFrame({ iframe: iframe, height: 0, width: 0, type: 'init' });\n }\n }\n\n function setupIFrameObject() {\n if (settings[iframeId]) {\n settings[iframeId].iframe.iFrameResizer = {\n close: closeIFrame.bind(null, settings[iframeId].iframe),\n\n removeListeners: removeIframeListeners.bind(null, settings[iframeId].iframe),\n\n resize: trigger.bind(null, 'Window resize', 'resize', settings[iframeId].iframe),\n\n moveToAnchor: function (anchor) {\n trigger('Move to anchor', 'moveToAnchor:' + anchor, settings[iframeId].iframe, iframeId);\n },\n\n sendMessage: function (message) {\n message = JSON.stringify(message);\n trigger('Send Message', 'message:' + message, settings[iframeId].iframe, iframeId);\n }\n };\n }\n }\n\n // We have to call trigger twice, as we can not be sure if all\n // iframes have completed loading when this code runs. The\n // event listener also catches the page changing in the iFrame.\n function init(msg) {\n function iFrameLoaded() {\n trigger('iFrame.onload', msg, iframe, undefined, true);\n checkReset();\n }\n\n function createDestroyObserver(MutationObserver) {\n if (!iframe.parentNode) {\n return null;\n }\n\n var destroyObserver = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n var removedNodes = Array.prototype.slice.call(mutation.removedNodes); // Transform NodeList into an Array\n removedNodes.forEach(function (removedNode) {\n if (removedNode === iframe) {\n closeIFrame(iframe);\n }\n });\n });\n });\n destroyObserver.observe(iframe.parentNode, {\n childList: true\n });\n return destroyObserver;\n }\n\n var MutationObserver = getMutationObserver();\n if (MutationObserver) {\n destroyObserver = createDestroyObserver(MutationObserver);\n }\n\n addEventListener(iframe, 'load', iFrameLoaded);\n trigger('init', msg, iframe, undefined, true);\n }\n\n function checkOptions(options) {\n if ('object' !== typeof options) {\n throw new TypeError('Options is not an object');\n }\n }\n\n function copyOptions(options) {\n // eslint-disable-next-line no-restricted-syntax\n for (var option in defaults) {\n if (Object.prototype.hasOwnProperty.call(defaults, option)) {\n settings[iframeId][option] = Object.prototype.hasOwnProperty.call(options, option) ? options[option] : defaults[option];\n }\n }\n }\n\n function getTargetOrigin(remoteHost) {\n return '' === remoteHost || null !== remoteHost.match(/^(about:blank|javascript:|file:\\/\\/)/) ? '*' : remoteHost;\n }\n\n function depricate(key) {\n var splitName = key.split('Callback');\n\n if (splitName.length === 2) {\n var name = 'on' + splitName[0].charAt(0).toUpperCase() + splitName[0].slice(1);\n this[name] = this[key];\n delete this[key];\n warn(iframeId, \"Deprecated: '\" + key + \"' has been renamed '\" + name + \"'. The old method will be removed in the next major version.\");\n }\n }\n\n function processOptions(options) {\n options = options || {};\n\n settings[iframeId] = Object.create(null); // Protect against prototype attacks\n settings[iframeId].iframe = iframe;\n settings[iframeId].firstRun = true;\n settings[iframeId].remoteHost = iframe.src && iframe.src.split('/').slice(0, 3).join('/');\n\n checkOptions(options);\n Object.keys(options).forEach(depricate, options);\n copyOptions(options);\n\n if (settings[iframeId]) {\n settings[iframeId].targetOrigin = true === settings[iframeId].checkOrigin ? getTargetOrigin(settings[iframeId].remoteHost) : '*';\n }\n }\n\n function beenHere() {\n return iframeId in settings && 'iFrameResizer' in iframe;\n }\n\n var iframeId = ensureHasId(iframe.id);\n\n if (beenHere()) {\n warn(iframeId, 'Ignored iFrame, already setup.');\n } else {\n processOptions(options);\n setScrolling();\n setLimits();\n setupBodyMarginValues();\n init(createOutgoingMsg(iframeId));\n setupIFrameObject();\n }\n}\n\nfunction debouce(fn, time) {\n if (null === timer) {\n timer = setTimeout(function () {\n timer = null;\n fn();\n }, time);\n }\n}\n\nvar frameTimer = {};\n\nfunction debounceFrameEvents(fn, time, frameId) {\n if (!frameTimer[frameId]) {\n frameTimer[frameId] = setTimeout(function () {\n frameTimer[frameId] = null;\n fn();\n }, time);\n }\n}\n\n// Not testable in PhantomJS\n/* istanbul ignore next */\n\nfunction fixHiddenIFrames() {\n function checkIFrames() {\n function checkIFrame(settingId) {\n function chkDimension(dimension) {\n return '0px' === (settings[settingId] && settings[settingId].iframe.style[dimension]);\n }\n\n function isVisible(el) {\n return null !== el.offsetParent;\n }\n\n if (settings[settingId] && isVisible(settings[settingId].iframe) && (chkDimension('height') || chkDimension('width'))) {\n trigger('Visibility change', 'resize', settings[settingId].iframe, settingId);\n }\n }\n\n Object.keys(settings).forEach(function (key) {\n checkIFrame(key);\n });\n }\n\n function mutationObserved(mutations) {\n log('window', 'Mutation observed: ' + mutations[0].target + ' ' + mutations[0].type);\n debouce(checkIFrames, 16);\n }\n\n function createMutationObserver() {\n var target = document.querySelector('body'),\n config = {\n attributes: true,\n attributeOldValue: false,\n characterData: true,\n characterDataOldValue: false,\n childList: true,\n subtree: true\n },\n observer = new MutationObserver(mutationObserved);\n\n observer.observe(target, config);\n }\n\n var MutationObserver = getMutationObserver();\n if (MutationObserver) {\n createMutationObserver();\n }\n}\n\nfunction resizeIFrames(event) {\n function resize() {\n sendTriggerMsg('Window ' + event, 'resize');\n }\n\n log('window', 'Trigger event: ' + event);\n debouce(resize, 16);\n}\n\n// Not testable in PhantomJS\n/* istanbul ignore next */\nfunction tabVisible() {\n function resize() {\n sendTriggerMsg('Tab Visible', 'resize');\n }\n\n if ('hidden' !== document.visibilityState) {\n log('document', 'Trigger event: Visibility change');\n debouce(resize, 16);\n }\n}\n\nfunction sendTriggerMsg(eventName, event) {\n function isIFrameResizeEnabled(iframeId) {\n return settings[iframeId] && 'parent' === settings[iframeId].resizeFrom && settings[iframeId].autoResize && !settings[iframeId].firstRun;\n }\n\n Object.keys(settings).forEach(function (iframeId) {\n if (isIFrameResizeEnabled(iframeId)) {\n trigger(eventName, event, settings[iframeId].iframe, iframeId);\n }\n });\n}\n\nfunction setupEventListeners() {\n addEventListener(window, 'message', iFrameListener);\n\n addEventListener(window, 'resize', function () {\n resizeIFrames('resize');\n });\n\n addEventListener(document, 'visibilitychange', tabVisible);\n\n addEventListener(document, '-webkit-visibilitychange', tabVisible);\n}\n\nfunction factory() {\n function init(options, element) {\n function chkType() {\n if (!element.tagName) {\n throw new TypeError('Object is not a valid DOM element');\n } else if ('IFRAME' !== element.tagName.toUpperCase()) {\n throw new TypeError('Expected <IFRAME> tag, found <' + element.tagName + '>');\n }\n }\n\n if (element) {\n chkType();\n setupIFrame(element, options);\n iFrames.push(element);\n }\n }\n\n function warnDeprecatedOptions(options) {\n if (options && options.enablePublicMethods) {\n warn('enablePublicMethods option has been removed, public methods are now always available in the iFrame');\n }\n }\n\n var iFrames;\n\n setupRequestAnimationFrame();\n setupEventListeners();\n\n return function iFrameResizeF(options, target) {\n iFrames = []; // Only return iFrames past in on this call\n\n warnDeprecatedOptions(options);\n\n switch (typeof target) {\n case 'undefined':\n case 'string': {\n Array.prototype.forEach.call(document.querySelectorAll(target || 'iframe'), init.bind(undefined, options));\n break;\n }\n\n case 'object': {\n init(options, target);\n break;\n }\n\n default: {\n throw new TypeError('Unexpected data type (' + typeof target + ')');\n }\n }\n\n return iFrames;\n };\n}\n\nexport default factory();\n","/* eslint-disable no-bitwise */\n\nconst decodeCache = {}\n\nfunction getDecodeCache (exclude) {\n let cache = decodeCache[exclude]\n if (cache) { return cache }\n\n cache = decodeCache[exclude] = []\n\n for (let i = 0; i < 128; i++) {\n const ch = String.fromCharCode(i)\n cache.push(ch)\n }\n\n for (let i = 0; i < exclude.length; i++) {\n const ch = exclude.charCodeAt(i)\n cache[ch] = '%' + ('0' + ch.toString(16).toUpperCase()).slice(-2)\n }\n\n return cache\n}\n\n// Decode percent-encoded string.\n//\nfunction decode (string, exclude) {\n if (typeof exclude !== 'string') {\n exclude = decode.defaultChars\n }\n\n const cache = getDecodeCache(exclude)\n\n return string.replace(/(%[a-f0-9]{2})+/gi, function (seq) {\n let result = ''\n\n for (let i = 0, l = seq.length; i < l; i += 3) {\n const b1 = parseInt(seq.slice(i + 1, i + 3), 16)\n\n if (b1 < 0x80) {\n result += cache[b1]\n continue\n }\n\n if ((b1 & 0xE0) === 0xC0 && (i + 3 < l)) {\n // 110xxxxx 10xxxxxx\n const b2 = parseInt(seq.slice(i + 4, i + 6), 16)\n\n if ((b2 & 0xC0) === 0x80) {\n const chr = ((b1 << 6) & 0x7C0) | (b2 & 0x3F)\n\n if (chr < 0x80) {\n result += '\\ufffd\\ufffd'\n } else {\n result += String.fromCharCode(chr)\n }\n\n i += 3\n continue\n }\n }\n\n if ((b1 & 0xF0) === 0xE0 && (i + 6 < l)) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n const b2 = parseInt(seq.slice(i + 4, i + 6), 16)\n const b3 = parseInt(seq.slice(i + 7, i + 9), 16)\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n const chr = ((b1 << 12) & 0xF000) | ((b2 << 6) & 0xFC0) | (b3 & 0x3F)\n\n if (chr < 0x800 || (chr >= 0xD800 && chr <= 0xDFFF)) {\n result += '\\ufffd\\ufffd\\ufffd'\n } else {\n result += String.fromCharCode(chr)\n }\n\n i += 6\n continue\n }\n }\n\n if ((b1 & 0xF8) === 0xF0 && (i + 9 < l)) {\n // 111110xx 10xxxxxx 10xxxxxx 10xxxxxx\n const b2 = parseInt(seq.slice(i + 4, i + 6), 16)\n const b3 = parseInt(seq.slice(i + 7, i + 9), 16)\n const b4 = parseInt(seq.slice(i + 10, i + 12), 16)\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80 && (b4 & 0xC0) === 0x80) {\n let chr = ((b1 << 18) & 0x1C0000) | ((b2 << 12) & 0x3F000) | ((b3 << 6) & 0xFC0) | (b4 & 0x3F)\n\n if (chr < 0x10000 || chr > 0x10FFFF) {\n result += '\\ufffd\\ufffd\\ufffd\\ufffd'\n } else {\n chr -= 0x10000\n result += String.fromCharCode(0xD800 + (chr >> 10), 0xDC00 + (chr & 0x3FF))\n }\n\n i += 9\n continue\n }\n }\n\n result += '\\ufffd'\n }\n\n return result\n })\n}\n\ndecode.defaultChars = ';/?:@&=+$,#'\ndecode.componentChars = ''\n\nexport default decode\n","const encodeCache = {}\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache (exclude) {\n let cache = encodeCache[exclude]\n if (cache) { return cache }\n\n cache = encodeCache[exclude] = []\n\n for (let i = 0; i < 128; i++) {\n const ch = String.fromCharCode(i)\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch)\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2))\n }\n }\n\n for (let i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i]\n }\n\n return cache\n}\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode (string, exclude, keepEscaped) {\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude\n exclude = encode.defaultChars\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true\n }\n\n const cache = getEncodeCache(exclude)\n let result = ''\n\n for (let i = 0, l = string.length; i < l; i++) {\n const code = string.charCodeAt(i)\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3)\n i += 2\n continue\n }\n }\n\n if (code < 128) {\n result += cache[code]\n continue\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n const nextCode = string.charCodeAt(i + 1)\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1])\n i++\n continue\n }\n }\n result += '%EF%BF%BD'\n continue\n }\n\n result += encodeURIComponent(string[i])\n }\n\n return result\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\"\nencode.componentChars = \"-_.!~*'()\"\n\nexport default encode\n","export default function format (url) {\n let result = ''\n\n result += url.protocol || ''\n result += url.slashes ? '//' : ''\n result += url.auth ? url.auth + '@' : ''\n\n if (url.hostname && url.hostname.indexOf(':') !== -1) {\n // ipv6 address\n result += '[' + url.hostname + ']'\n } else {\n result += url.hostname || ''\n }\n\n result += url.port ? ':' + url.port : ''\n result += url.pathname || ''\n result += url.search || ''\n result += url.hash || ''\n\n return result\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n//\n// Changes from joyent/node:\n//\n// 1. No leading slash in paths,\n// e.g. in `url.parse('http://foo?bar')` pathname is ``, not `/`\n//\n// 2. Backslashes are not replaced with slashes,\n// so `http:\\\\example.org\\` is treated like a relative path\n//\n// 3. Trailing colon is treated like a part of the path,\n// i.e. in `http://example.org:foo` pathname is `:foo`\n//\n// 4. Nothing is URL-encoded in the resulting object,\n// (in joyent/node some chars in auth and paths are encoded)\n//\n// 5. `url.parse()` does not have `parseQueryString` argument\n//\n// 6. Removed extraneous result properties: `host`, `path`, `query`, etc.,\n// which can be constructed using other parts of the url.\n//\n\nfunction Url () {\n this.protocol = null\n this.slashes = null\n this.auth = null\n this.port = null\n this.hostname = null\n this.hash = null\n this.search = null\n this.pathname = null\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nconst protocolPattern = /^([a-z0-9.+-]+:)/i\nconst portPattern = /:[0-9]*$/\n\n// Special case for a simple path URL\n/* eslint-disable-next-line no-useless-escape */\nconst simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/\n\n// RFC 2396: characters reserved for delimiting URLs.\n// We actually just auto-escape these.\nconst delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t']\n\n// RFC 2396: characters not allowed for various reasons.\nconst unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims)\n\n// Allowed by RFCs, but cause of XSS attacks. Always escape these.\nconst autoEscape = ['\\''].concat(unwise)\n// Characters that are never ever allowed in a hostname.\n// Note that any invalid chars are also handled, but these\n// are the ones that are *expected* to be seen, so we fast-path\n// them.\nconst nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape)\nconst hostEndingChars = ['/', '?', '#']\nconst hostnameMaxLen = 255\nconst hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/\nconst hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/\n// protocols that can allow \"unsafe\" and \"unwise\" chars.\n// protocols that never have a hostname.\nconst hostlessProtocol = {\n javascript: true,\n 'javascript:': true\n}\n// protocols that always contain a // bit.\nconst slashedProtocol = {\n http: true,\n https: true,\n ftp: true,\n gopher: true,\n file: true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n}\n\nfunction urlParse (url, slashesDenoteHost) {\n if (url && url instanceof Url) return url\n\n const u = new Url()\n u.parse(url, slashesDenoteHost)\n return u\n}\n\nUrl.prototype.parse = function (url, slashesDenoteHost) {\n let lowerProto, hec, slashes\n let rest = url\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim()\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n const simplePath = simplePathPattern.exec(rest)\n if (simplePath) {\n this.pathname = simplePath[1]\n if (simplePath[2]) {\n this.search = simplePath[2]\n }\n return this\n }\n }\n\n let proto = protocolPattern.exec(rest)\n if (proto) {\n proto = proto[0]\n lowerProto = proto.toLowerCase()\n this.protocol = proto\n rest = rest.substr(proto.length)\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n /* eslint-disable-next-line no-useless-escape */\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n slashes = rest.substr(0, 2) === '//'\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2)\n this.slashes = true\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n let hostEnd = -1\n for (let i = 0; i < hostEndingChars.length; i++) {\n hec = rest.indexOf(hostEndingChars[i])\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec\n }\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n let auth, atSign\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@')\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd)\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign)\n rest = rest.slice(atSign + 1)\n this.auth = auth\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1\n for (let i = 0; i < nonHostChars.length; i++) {\n hec = rest.indexOf(nonHostChars[i])\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec\n }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) {\n hostEnd = rest.length\n }\n\n if (rest[hostEnd - 1] === ':') { hostEnd-- }\n const host = rest.slice(0, hostEnd)\n rest = rest.slice(hostEnd)\n\n // pull out port.\n this.parseHost(host)\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || ''\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n const ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']'\n\n // validate a little.\n if (!ipv6Hostname) {\n const hostparts = this.hostname.split(/\\./)\n for (let i = 0, l = hostparts.length; i < l; i++) {\n const part = hostparts[i]\n if (!part) { continue }\n if (!part.match(hostnamePartPattern)) {\n let newpart = ''\n for (let j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x'\n } else {\n newpart += part[j]\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n const validParts = hostparts.slice(0, i)\n const notHost = hostparts.slice(i + 1)\n const bit = part.match(hostnamePartStart)\n if (bit) {\n validParts.push(bit[1])\n notHost.unshift(bit[2])\n }\n if (notHost.length) {\n rest = notHost.join('.') + rest\n }\n this.hostname = validParts.join('.')\n break\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = ''\n }\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2)\n }\n }\n\n // chop off from the tail first.\n const hash = rest.indexOf('#')\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash)\n rest = rest.slice(0, hash)\n }\n const qm = rest.indexOf('?')\n if (qm !== -1) {\n this.search = rest.substr(qm)\n rest = rest.slice(0, qm)\n }\n if (rest) { this.pathname = rest }\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = ''\n }\n\n return this\n}\n\nUrl.prototype.parseHost = function (host) {\n let port = portPattern.exec(host)\n if (port) {\n port = port[0]\n if (port !== ':') {\n this.port = port.substr(1)\n }\n host = host.substr(0, host.length - port.length)\n }\n if (host) { this.hostname = host }\n}\n\nexport default urlParse\n","export default /[!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061D-\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1B7D\\u1B7E\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52-\\u2E5D\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD803[\\uDEAD\\uDF55-\\uDF59\\uDF86-\\uDF89]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDC4B-\\uDC4F\\uDC5A\\uDC5B\\uDC5D\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDE60-\\uDE6C\\uDEB9\\uDF3C-\\uDF3E]|\\uD806[\\uDC3B\\uDD44-\\uDD46\\uDDE2\\uDE3F-\\uDE46\\uDE9A-\\uDE9C\\uDE9E-\\uDEA2\\uDF00-\\uDF09]|\\uD807[\\uDC41-\\uDC45\\uDC70\\uDC71\\uDEF7\\uDEF8\\uDF43-\\uDF4F\\uDFFF]|\\uD809[\\uDC70-\\uDC74]|\\uD80B[\\uDFF1\\uDFF2]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD81B[\\uDE97-\\uDE9A\\uDFE2]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]|\\uD83A[\\uDD5E\\uDD5F]/","export default /[\\$\\+<->\\^`\\|~\\xA2-\\xA6\\xA8\\xA9\\xAC\\xAE-\\xB1\\xB4\\xB8\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0384\\u0385\\u03F6\\u0482\\u058D-\\u058F\\u0606-\\u0608\\u060B\\u060E\\u060F\\u06DE\\u06E9\\u06FD\\u06FE\\u07F6\\u07FE\\u07FF\\u0888\\u09F2\\u09F3\\u09FA\\u09FB\\u0AF1\\u0B70\\u0BF3-\\u0BFA\\u0C7F\\u0D4F\\u0D79\\u0E3F\\u0F01-\\u0F03\\u0F13\\u0F15-\\u0F17\\u0F1A-\\u0F1F\\u0F34\\u0F36\\u0F38\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE\\u0FCF\\u0FD5-\\u0FD8\\u109E\\u109F\\u1390-\\u1399\\u166D\\u17DB\\u1940\\u19DE-\\u19FF\\u1B61-\\u1B6A\\u1B74-\\u1B7C\\u1FBD\\u1FBF-\\u1FC1\\u1FCD-\\u1FCF\\u1FDD-\\u1FDF\\u1FED-\\u1FEF\\u1FFD\\u1FFE\\u2044\\u2052\\u207A-\\u207C\\u208A-\\u208C\\u20A0-\\u20C0\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F\\u218A\\u218B\\u2190-\\u2307\\u230C-\\u2328\\u232B-\\u2426\\u2440-\\u244A\\u249C-\\u24E9\\u2500-\\u2767\\u2794-\\u27C4\\u27C7-\\u27E5\\u27F0-\\u2982\\u2999-\\u29D7\\u29DC-\\u29FB\\u29FE-\\u2B73\\u2B76-\\u2B95\\u2B97-\\u2BFF\\u2CE5-\\u2CEA\\u2E50\\u2E51\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFF\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303E\\u303F\\u309B\\u309C\\u3190\\u3191\\u3196-\\u319F\\u31C0-\\u31E3\\u31EF\\u3200-\\u321E\\u322A-\\u3247\\u3250\\u3260-\\u327F\\u328A-\\u32B0\\u32C0-\\u33FF\\u4DC0-\\u4DFF\\uA490-\\uA4C6\\uA700-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA828-\\uA82B\\uA836-\\uA839\\uAA77-\\uAA79\\uAB5B\\uAB6A\\uAB6B\\uFB29\\uFBB2-\\uFBC2\\uFD40-\\uFD4F\\uFDCF\\uFDFC-\\uFDFF\\uFE62\\uFE64-\\uFE66\\uFE69\\uFF04\\uFF0B\\uFF1C-\\uFF1E\\uFF3E\\uFF40\\uFF5C\\uFF5E\\uFFE0-\\uFFE6\\uFFE8-\\uFFEE\\uFFFC\\uFFFD]|\\uD800[\\uDD37-\\uDD3F\\uDD79-\\uDD89\\uDD8C-\\uDD8E\\uDD90-\\uDD9C\\uDDA0\\uDDD0-\\uDDFC]|\\uD802[\\uDC77\\uDC78\\uDEC8]|\\uD805\\uDF3F|\\uD807[\\uDFD5-\\uDFF1]|\\uD81A[\\uDF3C-\\uDF3F\\uDF45]|\\uD82F\\uDC9C|\\uD833[\\uDF50-\\uDFC3]|\\uD834[\\uDC00-\\uDCF5\\uDD00-\\uDD26\\uDD29-\\uDD64\\uDD6A-\\uDD6C\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDDEA\\uDE00-\\uDE41\\uDE45\\uDF00-\\uDF56]|\\uD835[\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85\\uDE86]|\\uD838[\\uDD4F\\uDEFF]|\\uD83B[\\uDCAC\\uDCB0\\uDD2E\\uDEF0\\uDEF1]|\\uD83C[\\uDC00-\\uDC2B\\uDC30-\\uDC93\\uDCA0-\\uDCAE\\uDCB1-\\uDCBF\\uDCC1-\\uDCCF\\uDCD1-\\uDCF5\\uDD0D-\\uDDAD\\uDDE6-\\uDE02\\uDE10-\\uDE3B\\uDE40-\\uDE48\\uDE50\\uDE51\\uDE60-\\uDE65\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDED7\\uDEDC-\\uDEEC\\uDEF0-\\uDEFC\\uDF00-\\uDF76\\uDF7B-\\uDFD9\\uDFE0-\\uDFEB\\uDFF0]|\\uD83E[\\uDC00-\\uDC0B\\uDC10-\\uDC47\\uDC50-\\uDC59\\uDC60-\\uDC87\\uDC90-\\uDCAD\\uDCB0\\uDCB1\\uDD00-\\uDE53\\uDE60-\\uDE6D\\uDE70-\\uDE7C\\uDE80-\\uDE88\\uDE90-\\uDEBD\\uDEBF-\\uDEC5\\uDECE-\\uDEDB\\uDEE0-\\uDEE8\\uDEF0-\\uDEF8\\uDF00-\\uDF92\\uDF94-\\uDFCA]/","export default /[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/","export default /[\\0-\\x1F\\x7F-\\x9F]/","export default /[\\xAD\\u0600-\\u0605\\u061C\\u06DD\\u070F\\u0890\\u0891\\u08E2\\u180E\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF\\uFFF9-\\uFFFB]|\\uD804[\\uDCBD\\uDCCD]|\\uD80D[\\uDC30-\\uDC3F]|\\uD82F[\\uDCA0-\\uDCA3]|\\uD834[\\uDD73-\\uDD7A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F]/","export default /[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/",null,null,null,null,null,null,null,"// Utilities\n//\n\nimport * as mdurl from 'mdurl'\nimport * as ucmicro from 'uc.micro'\nimport { decodeHTML } from 'entities'\n\nfunction _class (obj) { return Object.prototype.toString.call(obj) }\n\nfunction isString (obj) { return _class(obj) === '[object String]' }\n\nconst _hasOwnProperty = Object.prototype.hasOwnProperty\n\nfunction has (object, key) {\n return _hasOwnProperty.call(object, key)\n}\n\n// Merge objects\n//\nfunction assign (obj /* from1, from2, from3, ... */) {\n const sources = Array.prototype.slice.call(arguments, 1)\n\n sources.forEach(function (source) {\n if (!source) { return }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be object')\n }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key]\n })\n })\n\n return obj\n}\n\n// Remove element from array and put another array at those position.\n// Useful for some operations with tokens\nfunction arrayReplaceAt (src, pos, newElements) {\n return [].concat(src.slice(0, pos), newElements, src.slice(pos + 1))\n}\n\nfunction isValidEntityCode (c) {\n /* eslint no-bitwise:0 */\n // broken sequence\n if (c >= 0xD800 && c <= 0xDFFF) { return false }\n // never used\n if (c >= 0xFDD0 && c <= 0xFDEF) { return false }\n if ((c & 0xFFFF) === 0xFFFF || (c & 0xFFFF) === 0xFFFE) { return false }\n // control codes\n if (c >= 0x00 && c <= 0x08) { return false }\n if (c === 0x0B) { return false }\n if (c >= 0x0E && c <= 0x1F) { return false }\n if (c >= 0x7F && c <= 0x9F) { return false }\n // out of range\n if (c > 0x10FFFF) { return false }\n return true\n}\n\nfunction fromCodePoint (c) {\n /* eslint no-bitwise:0 */\n if (c > 0xffff) {\n c -= 0x10000\n const surrogate1 = 0xd800 + (c >> 10)\n const surrogate2 = 0xdc00 + (c & 0x3ff)\n\n return String.fromCharCode(surrogate1, surrogate2)\n }\n return String.fromCharCode(c)\n}\n\nconst UNESCAPE_MD_RE = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_`{|}~])/g\nconst ENTITY_RE = /&([a-z#][a-z0-9]{1,31});/gi\nconst UNESCAPE_ALL_RE = new RegExp(UNESCAPE_MD_RE.source + '|' + ENTITY_RE.source, 'gi')\n\nconst DIGITAL_ENTITY_TEST_RE = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i\n\nfunction replaceEntityPattern (match, name) {\n if (name.charCodeAt(0) === 0x23/* # */ && DIGITAL_ENTITY_TEST_RE.test(name)) {\n const code = name[1].toLowerCase() === 'x'\n ? parseInt(name.slice(2), 16)\n : parseInt(name.slice(1), 10)\n\n if (isValidEntityCode(code)) {\n return fromCodePoint(code)\n }\n\n return match\n }\n\n const decoded = decodeHTML(match)\n if (decoded !== match) {\n return decoded\n }\n\n return match\n}\n\n/* function replaceEntities(str) {\n if (str.indexOf('&') < 0) { return str; }\n\n return str.replace(ENTITY_RE, replaceEntityPattern);\n} */\n\nfunction unescapeMd (str) {\n if (str.indexOf('\\\\') < 0) { return str }\n return str.replace(UNESCAPE_MD_RE, '$1')\n}\n\nfunction unescapeAll (str) {\n if (str.indexOf('\\\\') < 0 && str.indexOf('&') < 0) { return str }\n\n return str.replace(UNESCAPE_ALL_RE, function (match, escaped, entity) {\n if (escaped) { return escaped }\n return replaceEntityPattern(match, entity)\n })\n}\n\nconst HTML_ESCAPE_TEST_RE = /[&<>\"]/\nconst HTML_ESCAPE_REPLACE_RE = /[&<>\"]/g\nconst HTML_REPLACEMENTS = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"'\n}\n\nfunction replaceUnsafeChar (ch) {\n return HTML_REPLACEMENTS[ch]\n}\n\nfunction escapeHtml (str) {\n if (HTML_ESCAPE_TEST_RE.test(str)) {\n return str.replace(HTML_ESCAPE_REPLACE_RE, replaceUnsafeChar)\n }\n return str\n}\n\nconst REGEXP_ESCAPE_RE = /[.?*+^$[\\]\\\\(){}|-]/g\n\nfunction escapeRE (str) {\n return str.replace(REGEXP_ESCAPE_RE, '\\\\$&')\n}\n\nfunction isSpace (code) {\n switch (code) {\n case 0x09:\n case 0x20:\n return true\n }\n return false\n}\n\n// Zs (unicode class) || [\\t\\f\\v\\r\\n]\nfunction isWhiteSpace (code) {\n if (code >= 0x2000 && code <= 0x200A) { return true }\n switch (code) {\n case 0x09: // \\t\n case 0x0A: // \\n\n case 0x0B: // \\v\n case 0x0C: // \\f\n case 0x0D: // \\r\n case 0x20:\n case 0xA0:\n case 0x1680:\n case 0x202F:\n case 0x205F:\n case 0x3000:\n return true\n }\n return false\n}\n\n/* eslint-disable max-len */\n\n// Currently without astral characters support.\nfunction isPunctChar (ch) {\n return ucmicro.P.test(ch) || ucmicro.S.test(ch)\n}\n\n// Markdown ASCII punctuation characters.\n//\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\n//\n// Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.\n//\nfunction isMdAsciiPunct (ch) {\n switch (ch) {\n case 0x21/* ! */:\n case 0x22/* \" */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x27/* ' */:\n case 0x28/* ( */:\n case 0x29/* ) */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2C/* , */:\n case 0x2D/* - */:\n case 0x2E/* . */:\n case 0x2F/* / */:\n case 0x3A/* : */:\n case 0x3B/* ; */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x3F/* ? */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7C/* | */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true\n default:\n return false\n }\n}\n\n// Hepler to unify [reference labels].\n//\nfunction normalizeReference (str) {\n // Trim and collapse whitespace\n //\n str = str.trim().replace(/\\s+/g, ' ')\n\n // In node v10 'ẞ'.toLowerCase() === 'Ṿ', which is presumed to be a bug\n // fixed in v12 (couldn't find any details).\n //\n // So treat this one as a special case\n // (remove this when node v10 is no longer supported).\n //\n if ('ẞ'.toLowerCase() === 'Ṿ') {\n str = str.replace(/ẞ/g, 'ß')\n }\n\n // .toLowerCase().toUpperCase() should get rid of all differences\n // between letter variants.\n //\n // Simple .toLowerCase() doesn't normalize 125 code points correctly,\n // and .toUpperCase doesn't normalize 6 of them (list of exceptions:\n // İ, ϴ, ẞ, Ω, K, Å - those are already uppercased, but have differently\n // uppercased versions).\n //\n // Here's an example showing how it happens. Lets take greek letter omega:\n // uppercase U+0398 (Θ), U+03f4 (ϴ) and lowercase U+03b8 (θ), U+03d1 (ϑ)\n //\n // Unicode entries:\n // 0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;\n // 03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398\n // 03D1;GREEK THETA SYMBOL;Ll;0;L;<compat> 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398\n // 03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L;<compat> 0398;;;;N;;;;03B8;\n //\n // Case-insensitive comparison should treat all of them as equivalent.\n //\n // But .toLowerCase() doesn't change ϑ (it's already lowercase),\n // and .toUpperCase() doesn't change ϴ (already uppercase).\n //\n // Applying first lower then upper case normalizes any character:\n // '\\u0398\\u03f4\\u03b8\\u03d1'.toLowerCase().toUpperCase() === '\\u0398\\u0398\\u0398\\u0398'\n //\n // Note: this is equivalent to unicode case folding; unicode normalization\n // is a different step that is not required here.\n //\n // Final result should be uppercased, because it's later stored in an object\n // (this avoid a conflict with Object.prototype members,\n // most notably, `__proto__`)\n //\n return str.toLowerCase().toUpperCase()\n}\n\n// Re-export libraries commonly used in both markdown-it and its plugins,\n// so plugins won't have to depend on them explicitly, which reduces their\n// bundled size (e.g. a browser build).\n//\nconst lib = { mdurl, ucmicro }\n\nexport {\n lib,\n assign,\n isString,\n has,\n unescapeMd,\n unescapeAll,\n isValidEntityCode,\n fromCodePoint,\n escapeHtml,\n arrayReplaceAt,\n isSpace,\n isWhiteSpace,\n isMdAsciiPunct,\n isPunctChar,\n escapeRE,\n normalizeReference\n}\n","// Parse link label\n//\n// this function assumes that first character (\"[\") already matches;\n// returns the end of the label\n//\n\nexport default function parseLinkLabel (state, start, disableNested) {\n let level, found, marker, prevPos\n\n const max = state.posMax\n const oldPos = state.pos\n\n state.pos = start + 1\n level = 1\n\n while (state.pos < max) {\n marker = state.src.charCodeAt(state.pos)\n if (marker === 0x5D /* ] */) {\n level--\n if (level === 0) {\n found = true\n break\n }\n }\n\n prevPos = state.pos\n state.md.inline.skipToken(state)\n if (marker === 0x5B /* [ */) {\n if (prevPos === state.pos - 1) {\n // increase level if we find text `[`, which is not a part of any token\n level++\n } else if (disableNested) {\n state.pos = oldPos\n return -1\n }\n }\n }\n\n let labelEnd = -1\n\n if (found) {\n labelEnd = state.pos\n }\n\n // restore old state\n state.pos = oldPos\n\n return labelEnd\n}\n","// Parse link destination\n//\n\nimport { unescapeAll } from '../common/utils.mjs'\n\nexport default function parseLinkDestination (str, start, max) {\n let code\n let pos = start\n\n const result = {\n ok: false,\n pos: 0,\n str: ''\n }\n\n if (str.charCodeAt(pos) === 0x3C /* < */) {\n pos++\n while (pos < max) {\n code = str.charCodeAt(pos)\n if (code === 0x0A /* \\n */) { return result }\n if (code === 0x3C /* < */) { return result }\n if (code === 0x3E /* > */) {\n result.pos = pos + 1\n result.str = unescapeAll(str.slice(start + 1, pos))\n result.ok = true\n return result\n }\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos += 2\n continue\n }\n\n pos++\n }\n\n // no closing '>'\n return result\n }\n\n // this should be ... } else { ... branch\n\n let level = 0\n while (pos < max) {\n code = str.charCodeAt(pos)\n\n if (code === 0x20) { break }\n\n // ascii control characters\n if (code < 0x20 || code === 0x7F) { break }\n\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n if (str.charCodeAt(pos + 1) === 0x20) { break }\n pos += 2\n continue\n }\n\n if (code === 0x28 /* ( */) {\n level++\n if (level > 32) { return result }\n }\n\n if (code === 0x29 /* ) */) {\n if (level === 0) { break }\n level--\n }\n\n pos++\n }\n\n if (start === pos) { return result }\n if (level !== 0) { return result }\n\n result.str = unescapeAll(str.slice(start, pos))\n result.pos = pos\n result.ok = true\n return result\n}\n","// Parse link title\n//\n\nimport { unescapeAll } from '../common/utils.mjs'\n\n// Parse link title within `str` in [start, max] range,\n// or continue previous parsing if `prev_state` is defined (equal to result of last execution).\n//\nexport default function parseLinkTitle (str, start, max, prev_state) {\n let code\n let pos = start\n\n const state = {\n // if `true`, this is a valid link title\n ok: false,\n // if `true`, this link can be continued on the next line\n can_continue: false,\n // if `ok`, it's the position of the first character after the closing marker\n pos: 0,\n // if `ok`, it's the unescaped title\n str: '',\n // expected closing marker character code\n marker: 0\n }\n\n if (prev_state) {\n // this is a continuation of a previous parseLinkTitle call on the next line,\n // used in reference links only\n state.str = prev_state.str\n state.marker = prev_state.marker\n } else {\n if (pos >= max) { return state }\n\n let marker = str.charCodeAt(pos)\n if (marker !== 0x22 /* \" */ && marker !== 0x27 /* ' */ && marker !== 0x28 /* ( */) { return state }\n\n start++\n pos++\n\n // if opening marker is \"(\", switch it to closing marker \")\"\n if (marker === 0x28) { marker = 0x29 }\n\n state.marker = marker\n }\n\n while (pos < max) {\n code = str.charCodeAt(pos)\n if (code === state.marker) {\n state.pos = pos + 1\n state.str += unescapeAll(str.slice(start, pos))\n state.ok = true\n return state\n } else if (code === 0x28 /* ( */ && state.marker === 0x29 /* ) */) {\n return state\n } else if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos++\n }\n\n pos++\n }\n\n // no closing marker found, but this link title may continue on the next line (for references)\n state.can_continue = true\n state.str += unescapeAll(str.slice(start, pos))\n return state\n}\n","/**\n * class Renderer\n *\n * Generates HTML from parsed token stream. Each instance has independent\n * copy of rules. Those can be rewritten with ease. Also, you can add new\n * rules if you create plugin and adds new token types.\n **/\n\nimport { assign, unescapeAll, escapeHtml } from './common/utils.mjs'\n\nconst default_rules = {}\n\ndefault_rules.code_inline = function (tokens, idx, options, env, slf) {\n const token = tokens[idx]\n\n return '<code' + slf.renderAttrs(token) + '>' +\n escapeHtml(token.content) +\n '</code>'\n}\n\ndefault_rules.code_block = function (tokens, idx, options, env, slf) {\n const token = tokens[idx]\n\n return '<pre' + slf.renderAttrs(token) + '><code>' +\n escapeHtml(tokens[idx].content) +\n '</code></pre>\\n'\n}\n\ndefault_rules.fence = function (tokens, idx, options, env, slf) {\n const token = tokens[idx]\n const info = token.info ? unescapeAll(token.info).trim() : ''\n let langName = ''\n let langAttrs = ''\n\n if (info) {\n const arr = info.split(/(\\s+)/g)\n langName = arr[0]\n langAttrs = arr.slice(2).join('')\n }\n\n let highlighted\n if (options.highlight) {\n highlighted = options.highlight(token.content, langName, langAttrs) || escapeHtml(token.content)\n } else {\n highlighted = escapeHtml(token.content)\n }\n\n if (highlighted.indexOf('<pre') === 0) {\n return highlighted + '\\n'\n }\n\n // If language exists, inject class gently, without modifying original token.\n // May be, one day we will add .deepClone() for token and simplify this part, but\n // now we prefer to keep things local.\n if (info) {\n const i = token.attrIndex('class')\n const tmpAttrs = token.attrs ? token.attrs.slice() : []\n\n if (i < 0) {\n tmpAttrs.push(['class', options.langPrefix + langName])\n } else {\n tmpAttrs[i] = tmpAttrs[i].slice()\n tmpAttrs[i][1] += ' ' + options.langPrefix + langName\n }\n\n // Fake token just to render attributes\n const tmpToken = {\n attrs: tmpAttrs\n }\n\n return `<pre><code${slf.renderAttrs(tmpToken)}>${highlighted}</code></pre>\\n`\n }\n\n return `<pre><code${slf.renderAttrs(token)}>${highlighted}</code></pre>\\n`\n}\n\ndefault_rules.image = function (tokens, idx, options, env, slf) {\n const token = tokens[idx]\n\n // \"alt\" attr MUST be set, even if empty. Because it's mandatory and\n // should be placed on proper position for tests.\n //\n // Replace content with actual value\n\n token.attrs[token.attrIndex('alt')][1] =\n slf.renderInlineAsText(token.children, options, env)\n\n return slf.renderToken(tokens, idx, options)\n}\n\ndefault_rules.hardbreak = function (tokens, idx, options /*, env */) {\n return options.xhtmlOut ? '<br />\\n' : '<br>\\n'\n}\ndefault_rules.softbreak = function (tokens, idx, options /*, env */) {\n return options.breaks ? (options.xhtmlOut ? '<br />\\n' : '<br>\\n') : '\\n'\n}\n\ndefault_rules.text = function (tokens, idx /*, options, env */) {\n return escapeHtml(tokens[idx].content)\n}\n\ndefault_rules.html_block = function (tokens, idx /*, options, env */) {\n return tokens[idx].content\n}\ndefault_rules.html_inline = function (tokens, idx /*, options, env */) {\n return tokens[idx].content\n}\n\n/**\n * new Renderer()\n *\n * Creates new [[Renderer]] instance and fill [[Renderer#rules]] with defaults.\n **/\nfunction Renderer () {\n /**\n * Renderer#rules -> Object\n *\n * Contains render rules for tokens. Can be updated and extended.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.renderer.rules.strong_open = function () { return '<b>'; };\n * md.renderer.rules.strong_close = function () { return '</b>'; };\n *\n * var result = md.renderInline(...);\n * ```\n *\n * Each rule is called as independent static function with fixed signature:\n *\n * ```javascript\n * function my_token_render(tokens, idx, options, env, renderer) {\n * // ...\n * return renderedHTML;\n * }\n * ```\n *\n * See [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.mjs)\n * for more details and examples.\n **/\n this.rules = assign({}, default_rules)\n}\n\n/**\n * Renderer.renderAttrs(token) -> String\n *\n * Render token attributes to string.\n **/\nRenderer.prototype.renderAttrs = function renderAttrs (token) {\n let i, l, result\n\n if (!token.attrs) { return '' }\n\n result = ''\n\n for (i = 0, l = token.attrs.length; i < l; i++) {\n result += ' ' + escapeHtml(token.attrs[i][0]) + '=\"' + escapeHtml(token.attrs[i][1]) + '\"'\n }\n\n return result\n}\n\n/**\n * Renderer.renderToken(tokens, idx, options) -> String\n * - tokens (Array): list of tokens\n * - idx (Numbed): token index to render\n * - options (Object): params of parser instance\n *\n * Default token renderer. Can be overriden by custom function\n * in [[Renderer#rules]].\n **/\nRenderer.prototype.renderToken = function renderToken (tokens, idx, options) {\n const token = tokens[idx]\n let result = ''\n\n // Tight list paragraphs\n if (token.hidden) {\n return ''\n }\n\n // Insert a newline between hidden paragraph and subsequent opening\n // block-level tag.\n //\n // For example, here we should insert a newline before blockquote:\n // - a\n // >\n //\n if (token.block && token.nesting !== -1 && idx && tokens[idx - 1].hidden) {\n result += '\\n'\n }\n\n // Add token name, e.g. `<img`\n result += (token.nesting === -1 ? '</' : '<') + token.tag\n\n // Encode attributes, e.g. `<img src=\"foo\"`\n result += this.renderAttrs(token)\n\n // Add a slash for self-closing tags, e.g. `<img src=\"foo\" /`\n if (token.nesting === 0 && options.xhtmlOut) {\n result += ' /'\n }\n\n // Check if we need to add a newline after this tag\n let needLf = false\n if (token.block) {\n needLf = true\n\n if (token.nesting === 1) {\n if (idx + 1 < tokens.length) {\n const nextToken = tokens[idx + 1]\n\n if (nextToken.type === 'inline' || nextToken.hidden) {\n // Block-level tag containing an inline tag.\n //\n needLf = false\n } else if (nextToken.nesting === -1 && nextToken.tag === token.tag) {\n // Opening tag + closing tag of the same type. E.g. `<li></li>`.\n //\n needLf = false\n }\n }\n }\n }\n\n result += needLf ? '>\\n' : '>'\n\n return result\n}\n\n/**\n * Renderer.renderInline(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to render\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * The same as [[Renderer.render]], but for single token of `inline` type.\n **/\nRenderer.prototype.renderInline = function (tokens, options, env) {\n let result = ''\n const rules = this.rules\n\n for (let i = 0, len = tokens.length; i < len; i++) {\n const type = tokens[i].type\n\n if (typeof rules[type] !== 'undefined') {\n result += rules[type](tokens, i, options, env, this)\n } else {\n result += this.renderToken(tokens, i, options)\n }\n }\n\n return result\n}\n\n/** internal\n * Renderer.renderInlineAsText(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to render\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Special kludge for image `alt` attributes to conform CommonMark spec.\n * Don't try to use it! Spec requires to show `alt` content with stripped markup,\n * instead of simple escaping.\n **/\nRenderer.prototype.renderInlineAsText = function (tokens, options, env) {\n let result = ''\n\n for (let i = 0, len = tokens.length; i < len; i++) {\n switch (tokens[i].type) {\n case 'text':\n result += tokens[i].content\n break\n case 'image':\n result += this.renderInlineAsText(tokens[i].children, options, env)\n break\n case 'html_inline':\n case 'html_block':\n result += tokens[i].content\n break\n case 'softbreak':\n case 'hardbreak':\n result += '\\n'\n break\n default:\n // all other tokens are skipped\n }\n }\n\n return result\n}\n\n/**\n * Renderer.render(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to render\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Takes token stream and generates HTML. Probably, you will never need to call\n * this method directly.\n **/\nRenderer.prototype.render = function (tokens, options, env) {\n let result = ''\n const rules = this.rules\n\n for (let i = 0, len = tokens.length; i < len; i++) {\n const type = tokens[i].type\n\n if (type === 'inline') {\n result += this.renderInline(tokens[i].children, options, env)\n } else if (typeof rules[type] !== 'undefined') {\n result += rules[type](tokens, i, options, env, this)\n } else {\n result += this.renderToken(tokens, i, options, env)\n }\n }\n\n return result\n}\n\nexport default Renderer\n","/**\n * class Ruler\n *\n * Helper class, used by [[MarkdownIt#core]], [[MarkdownIt#block]] and\n * [[MarkdownIt#inline]] to manage sequences of functions (rules):\n *\n * - keep rules in defined order\n * - assign the name to each rule\n * - enable/disable rules\n * - add/replace rules\n * - allow assign rules to additional named chains (in the same)\n * - cacheing lists of active rules\n *\n * You will not need use this class directly until write plugins. For simple\n * rules control use [[MarkdownIt.disable]], [[MarkdownIt.enable]] and\n * [[MarkdownIt.use]].\n **/\n\n/**\n * new Ruler()\n **/\nfunction Ruler () {\n // List of added rules. Each element is:\n //\n // {\n // name: XXX,\n // enabled: Boolean,\n // fn: Function(),\n // alt: [ name2, name3 ]\n // }\n //\n this.__rules__ = []\n\n // Cached rule chains.\n //\n // First level - chain name, '' for default.\n // Second level - diginal anchor for fast filtering by charcodes.\n //\n this.__cache__ = null\n}\n\n// Helper methods, should not be used directly\n\n// Find rule index by name\n//\nRuler.prototype.__find__ = function (name) {\n for (let i = 0; i < this.__rules__.length; i++) {\n if (this.__rules__[i].name === name) {\n return i\n }\n }\n return -1\n}\n\n// Build rules lookup cache\n//\nRuler.prototype.__compile__ = function () {\n const self = this\n const chains = ['']\n\n // collect unique names\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) { return }\n\n rule.alt.forEach(function (altName) {\n if (chains.indexOf(altName) < 0) {\n chains.push(altName)\n }\n })\n })\n\n self.__cache__ = {}\n\n chains.forEach(function (chain) {\n self.__cache__[chain] = []\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) { return }\n\n if (chain && rule.alt.indexOf(chain) < 0) { return }\n\n self.__cache__[chain].push(rule.fn)\n })\n })\n}\n\n/**\n * Ruler.at(name, fn [, options])\n * - name (String): rule name to replace.\n * - fn (Function): new rule function.\n * - options (Object): new rule options (not mandatory).\n *\n * Replace rule by name with new function & options. Throws error if name not\n * found.\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * Replace existing typographer replacement rule with new one:\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.at('replacements', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.at = function (name, fn, options) {\n const index = this.__find__(name)\n const opt = options || {}\n\n if (index === -1) { throw new Error('Parser rule not found: ' + name) }\n\n this.__rules__[index].fn = fn\n this.__rules__[index].alt = opt.alt || []\n this.__cache__ = null\n}\n\n/**\n * Ruler.before(beforeName, ruleName, fn [, options])\n * - beforeName (String): new rule will be added before this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain before one with given name. See also\n * [[Ruler.after]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.block.ruler.before('paragraph', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.before = function (beforeName, ruleName, fn, options) {\n const index = this.__find__(beforeName)\n const opt = options || {}\n\n if (index === -1) { throw new Error('Parser rule not found: ' + beforeName) }\n\n this.__rules__.splice(index, 0, {\n name: ruleName,\n enabled: true,\n fn,\n alt: opt.alt || []\n })\n\n this.__cache__ = null\n}\n\n/**\n * Ruler.after(afterName, ruleName, fn [, options])\n * - afterName (String): new rule will be added after this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain after one with given name. See also\n * [[Ruler.before]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.inline.ruler.after('text', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.after = function (afterName, ruleName, fn, options) {\n const index = this.__find__(afterName)\n const opt = options || {}\n\n if (index === -1) { throw new Error('Parser rule not found: ' + afterName) }\n\n this.__rules__.splice(index + 1, 0, {\n name: ruleName,\n enabled: true,\n fn,\n alt: opt.alt || []\n })\n\n this.__cache__ = null\n}\n\n/**\n * Ruler.push(ruleName, fn [, options])\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Push new rule to the end of chain. See also\n * [[Ruler.before]], [[Ruler.after]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.push('my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.push = function (ruleName, fn, options) {\n const opt = options || {}\n\n this.__rules__.push({\n name: ruleName,\n enabled: true,\n fn,\n alt: opt.alt || []\n })\n\n this.__cache__ = null\n}\n\n/**\n * Ruler.enable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to enable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.disable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.enable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [list] }\n\n const result = []\n\n // Search by name and enable\n list.forEach(function (name) {\n const idx = this.__find__(name)\n\n if (idx < 0) {\n if (ignoreInvalid) { return }\n throw new Error('Rules manager: invalid rule name ' + name)\n }\n this.__rules__[idx].enabled = true\n result.push(name)\n }, this)\n\n this.__cache__ = null\n return result\n}\n\n/**\n * Ruler.enableOnly(list [, ignoreInvalid])\n * - list (String|Array): list of rule names to enable (whitelist).\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names, and disable everything else. If any rule name\n * not found - throw Error. Errors can be disabled by second param.\n *\n * See also [[Ruler.disable]], [[Ruler.enable]].\n **/\nRuler.prototype.enableOnly = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [list] }\n\n this.__rules__.forEach(function (rule) { rule.enabled = false })\n\n this.enable(list, ignoreInvalid)\n}\n\n/**\n * Ruler.disable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Disable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.enable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.disable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [list] }\n\n const result = []\n\n // Search by name and disable\n list.forEach(function (name) {\n const idx = this.__find__(name)\n\n if (idx < 0) {\n if (ignoreInvalid) { return }\n throw new Error('Rules manager: invalid rule name ' + name)\n }\n this.__rules__[idx].enabled = false\n result.push(name)\n }, this)\n\n this.__cache__ = null\n return result\n}\n\n/**\n * Ruler.getRules(chainName) -> Array\n *\n * Return array of active functions (rules) for given chain name. It analyzes\n * rules configuration, compiles caches if not exists and returns result.\n *\n * Default chain name is `''` (empty string). It can't be skipped. That's\n * done intentionally, to keep signature monomorphic for high speed.\n **/\nRuler.prototype.getRules = function (chainName) {\n if (this.__cache__ === null) {\n this.__compile__()\n }\n\n // Chain can be empty, if rules disabled. But we still have to return Array.\n return this.__cache__[chainName] || []\n}\n\nexport default Ruler\n","// Token class\n\n/**\n * class Token\n **/\n\n/**\n * new Token(type, tag, nesting)\n *\n * Create new token and fill passed properties.\n **/\nfunction Token (type, tag, nesting) {\n /**\n * Token#type -> String\n *\n * Type of the token (string, e.g. \"paragraph_open\")\n **/\n this.type = type\n\n /**\n * Token#tag -> String\n *\n * html tag name, e.g. \"p\"\n **/\n this.tag = tag\n\n /**\n * Token#attrs -> Array\n *\n * Html attributes. Format: `[ [ name1, value1 ], [ name2, value2 ] ]`\n **/\n this.attrs = null\n\n /**\n * Token#map -> Array\n *\n * Source map info. Format: `[ line_begin, line_end ]`\n **/\n this.map = null\n\n /**\n * Token#nesting -> Number\n *\n * Level change (number in {-1, 0, 1} set), where:\n *\n * - `1` means the tag is opening\n * - `0` means the tag is self-closing\n * - `-1` means the tag is closing\n **/\n this.nesting = nesting\n\n /**\n * Token#level -> Number\n *\n * nesting level, the same as `state.level`\n **/\n this.level = 0\n\n /**\n * Token#children -> Array\n *\n * An array of child nodes (inline and img tokens)\n **/\n this.children = null\n\n /**\n * Token#content -> String\n *\n * In a case of self-closing tag (code, html, fence, etc.),\n * it has contents of this tag.\n **/\n this.content = ''\n\n /**\n * Token#markup -> String\n *\n * '*' or '_' for emphasis, fence string for fence, etc.\n **/\n this.markup = ''\n\n /**\n * Token#info -> String\n *\n * Additional information:\n *\n * - Info string for \"fence\" tokens\n * - The value \"auto\" for autolink \"link_open\" and \"link_close\" tokens\n * - The string value of the item marker for ordered-list \"list_item_open\" tokens\n **/\n this.info = ''\n\n /**\n * Token#meta -> Object\n *\n * A place for plugins to store an arbitrary data\n **/\n this.meta = null\n\n /**\n * Token#block -> Boolean\n *\n * True for block-level tokens, false for inline tokens.\n * Used in renderer to calculate line breaks\n **/\n this.block = false\n\n /**\n * Token#hidden -> Boolean\n *\n * If it's true, ignore this element when rendering. Used for tight lists\n * to hide paragraphs.\n **/\n this.hidden = false\n}\n\n/**\n * Token.attrIndex(name) -> Number\n *\n * Search attribute index by name.\n **/\nToken.prototype.attrIndex = function attrIndex (name) {\n if (!this.attrs) { return -1 }\n\n const attrs = this.attrs\n\n for (let i = 0, len = attrs.length; i < len; i++) {\n if (attrs[i][0] === name) { return i }\n }\n return -1\n}\n\n/**\n * Token.attrPush(attrData)\n *\n * Add `[ name, value ]` attribute to list. Init attrs if necessary\n **/\nToken.prototype.attrPush = function attrPush (attrData) {\n if (this.attrs) {\n this.attrs.push(attrData)\n } else {\n this.attrs = [attrData]\n }\n}\n\n/**\n * Token.attrSet(name, value)\n *\n * Set `name` attribute to `value`. Override old value if exists.\n **/\nToken.prototype.attrSet = function attrSet (name, value) {\n const idx = this.attrIndex(name)\n const attrData = [name, value]\n\n if (idx < 0) {\n this.attrPush(attrData)\n } else {\n this.attrs[idx] = attrData\n }\n}\n\n/**\n * Token.attrGet(name)\n *\n * Get the value of attribute `name`, or null if it does not exist.\n **/\nToken.prototype.attrGet = function attrGet (name) {\n const idx = this.attrIndex(name)\n let value = null\n if (idx >= 0) {\n value = this.attrs[idx][1]\n }\n return value\n}\n\n/**\n * Token.attrJoin(name, value)\n *\n * Join value to existing attribute via space. Or create new attribute if not\n * exists. Useful to operate with token classes.\n **/\nToken.prototype.attrJoin = function attrJoin (name, value) {\n const idx = this.attrIndex(name)\n\n if (idx < 0) {\n this.attrPush([name, value])\n } else {\n this.attrs[idx][1] = this.attrs[idx][1] + ' ' + value\n }\n}\n\nexport default Token\n","// Core state object\n//\n\nimport Token from '../token.mjs'\n\nfunction StateCore (src, md, env) {\n this.src = src\n this.env = env\n this.tokens = []\n this.inlineMode = false\n this.md = md // link to parser instance\n}\n\n// re-export Token class to use in core rules\nStateCore.prototype.Token = Token\n\nexport default StateCore\n","// Normalize input string\n\n// https://spec.commonmark.org/0.29/#line-ending\nconst NEWLINES_RE = /\\r\\n?|\\n/g\nconst NULL_RE = /\\0/g\n\nexport default function normalize (state) {\n let str\n\n // Normalize newlines\n str = state.src.replace(NEWLINES_RE, '\\n')\n\n // Replace NULL characters\n str = str.replace(NULL_RE, '\\uFFFD')\n\n state.src = str\n}\n","// Replace link-like texts with link nodes.\n//\n// Currently restricted by `md.validateLink()` to http/https/ftp\n//\n\nimport { arrayReplaceAt } from '../common/utils.mjs'\n\nfunction isLinkOpen (str) {\n return /^<a[>\\s]/i.test(str)\n}\nfunction isLinkClose (str) {\n return /^<\\/a\\s*>/i.test(str)\n}\n\nexport default function linkify (state) {\n const blockTokens = state.tokens\n\n if (!state.md.options.linkify) { return }\n\n for (let j = 0, l = blockTokens.length; j < l; j++) {\n if (blockTokens[j].type !== 'inline' ||\n !state.md.linkify.pretest(blockTokens[j].content)) {\n continue\n }\n\n let tokens = blockTokens[j].children\n\n let htmlLinkLevel = 0\n\n // We scan from the end, to keep position when new tags added.\n // Use reversed logic in links start/end match\n for (let i = tokens.length - 1; i >= 0; i--) {\n const currentToken = tokens[i]\n\n // Skip content of markdown links\n if (currentToken.type === 'link_close') {\n i--\n while (tokens[i].level !== currentToken.level && tokens[i].type !== 'link_open') {\n i--\n }\n continue\n }\n\n // Skip content of html tag links\n if (currentToken.type === 'html_inline') {\n if (isLinkOpen(currentToken.content) && htmlLinkLevel > 0) {\n htmlLinkLevel--\n }\n if (isLinkClose(currentToken.content)) {\n htmlLinkLevel++\n }\n }\n if (htmlLinkLevel > 0) { continue }\n\n if (currentToken.type === 'text' && state.md.linkify.test(currentToken.content)) {\n const text = currentToken.content\n let links = state.md.linkify.match(text)\n\n // Now split string to nodes\n const nodes = []\n let level = currentToken.level\n let lastPos = 0\n\n // forbid escape sequence at the start of the string,\n // this avoids http\\://example.com/ from being linkified as\n // http:<a href=\"//example.com/\">//example.com/</a>\n if (links.length > 0 &&\n links[0].index === 0 &&\n i > 0 &&\n tokens[i - 1].type === 'text_special') {\n links = links.slice(1)\n }\n\n for (let ln = 0; ln < links.length; ln++) {\n const url = links[ln].url\n const fullUrl = state.md.normalizeLink(url)\n if (!state.md.validateLink(fullUrl)) { continue }\n\n let urlText = links[ln].text\n\n // Linkifier might send raw hostnames like \"example.com\", where url\n // starts with domain name. So we prepend http:// in those cases,\n // and remove it afterwards.\n //\n if (!links[ln].schema) {\n urlText = state.md.normalizeLinkText('http://' + urlText).replace(/^http:\\/\\//, '')\n } else if (links[ln].schema === 'mailto:' && !/^mailto:/i.test(urlText)) {\n urlText = state.md.normalizeLinkText('mailto:' + urlText).replace(/^mailto:/, '')\n } else {\n urlText = state.md.normalizeLinkText(urlText)\n }\n\n const pos = links[ln].index\n\n if (pos > lastPos) {\n const token = new state.Token('text', '', 0)\n token.content = text.slice(lastPos, pos)\n token.level = level\n nodes.push(token)\n }\n\n const token_o = new state.Token('link_open', 'a', 1)\n token_o.attrs = [['href', fullUrl]]\n token_o.level = level++\n token_o.markup = 'linkify'\n token_o.info = 'auto'\n nodes.push(token_o)\n\n const token_t = new state.Token('text', '', 0)\n token_t.content = urlText\n token_t.level = level\n nodes.push(token_t)\n\n const token_c = new state.Token('link_close', 'a', -1)\n token_c.level = --level\n token_c.markup = 'linkify'\n token_c.info = 'auto'\n nodes.push(token_c)\n\n lastPos = links[ln].lastIndex\n }\n if (lastPos < text.length) {\n const token = new state.Token('text', '', 0)\n token.content = text.slice(lastPos)\n token.level = level\n nodes.push(token)\n }\n\n // replace current node\n blockTokens[j].children = tokens = arrayReplaceAt(tokens, i, nodes)\n }\n }\n }\n}\n","// Simple typographic replacements\n//\n// (c) (C) → ©\n// (tm) (TM) → ™\n// (r) (R) → ®\n// +- → ±\n// ... → … (also ?.... → ?.., !.... → !..)\n// ???????? → ???, !!!!! → !!!, `,,` → `,`\n// -- → –, --- → —\n//\n\n// TODO:\n// - fractionals 1/2, 1/4, 3/4 -> ½, ¼, ¾\n// - multiplications 2 x 4 -> 2 × 4\n\nconst RARE_RE = /\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/\n\n// Workaround for phantomjs - need regex without /g flag,\n// or root check will fail every second time\nconst SCOPED_ABBR_TEST_RE = /\\((c|tm|r)\\)/i\n\nconst SCOPED_ABBR_RE = /\\((c|tm|r)\\)/ig\nconst SCOPED_ABBR = {\n c: '©',\n r: '®',\n tm: '™'\n}\n\nfunction replaceFn (match, name) {\n return SCOPED_ABBR[name.toLowerCase()]\n}\n\nfunction replace_scoped (inlineTokens) {\n let inside_autolink = 0\n\n for (let i = inlineTokens.length - 1; i >= 0; i--) {\n const token = inlineTokens[i]\n\n if (token.type === 'text' && !inside_autolink) {\n token.content = token.content.replace(SCOPED_ABBR_RE, replaceFn)\n }\n\n if (token.type === 'link_open' && token.info === 'auto') {\n inside_autolink--\n }\n\n if (token.type === 'link_close' && token.info === 'auto') {\n inside_autolink++\n }\n }\n}\n\nfunction replace_rare (inlineTokens) {\n let inside_autolink = 0\n\n for (let i = inlineTokens.length - 1; i >= 0; i--) {\n const token = inlineTokens[i]\n\n if (token.type === 'text' && !inside_autolink) {\n if (RARE_RE.test(token.content)) {\n token.content = token.content\n .replace(/\\+-/g, '±')\n // .., ..., ....... -> …\n // but ?..... & !..... -> ?.. & !..\n .replace(/\\.{2,}/g, '…').replace(/([?!])…/g, '$1..')\n .replace(/([?!]){4,}/g, '$1$1$1').replace(/,{2,}/g, ',')\n // em-dash\n .replace(/(^|[^-])---(?=[^-]|$)/mg, '$1\\u2014')\n // en-dash\n .replace(/(^|\\s)--(?=\\s|$)/mg, '$1\\u2013')\n .replace(/(^|[^-\\s])--(?=[^-\\s]|$)/mg, '$1\\u2013')\n }\n }\n\n if (token.type === 'link_open' && token.info === 'auto') {\n inside_autolink--\n }\n\n if (token.type === 'link_close' && token.info === 'auto') {\n inside_autolink++\n }\n }\n}\n\nexport default function replace (state) {\n let blkIdx\n\n if (!state.md.options.typographer) { return }\n\n for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n if (state.tokens[blkIdx].type !== 'inline') { continue }\n\n if (SCOPED_ABBR_TEST_RE.test(state.tokens[blkIdx].content)) {\n replace_scoped(state.tokens[blkIdx].children)\n }\n\n if (RARE_RE.test(state.tokens[blkIdx].content)) {\n replace_rare(state.tokens[blkIdx].children)\n }\n }\n}\n","// Convert straight quotation marks to typographic ones\n//\n\nimport { isWhiteSpace, isPunctChar, isMdAsciiPunct } from '../common/utils.mjs'\n\nconst QUOTE_TEST_RE = /['\"]/\nconst QUOTE_RE = /['\"]/g\nconst APOSTROPHE = '\\u2019' /* ’ */\n\nfunction replaceAt (str, index, ch) {\n return str.slice(0, index) + ch + str.slice(index + 1)\n}\n\nfunction process_inlines (tokens, state) {\n let j\n\n const stack = []\n\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i]\n\n const thisLevel = tokens[i].level\n\n for (j = stack.length - 1; j >= 0; j--) {\n if (stack[j].level <= thisLevel) { break }\n }\n stack.length = j + 1\n\n if (token.type !== 'text') { continue }\n\n let text = token.content\n let pos = 0\n let max = text.length\n\n /* eslint no-labels:0,block-scoped-var:0 */\n OUTER:\n while (pos < max) {\n QUOTE_RE.lastIndex = pos\n const t = QUOTE_RE.exec(text)\n if (!t) { break }\n\n let canOpen = true\n let canClose = true\n pos = t.index + 1\n const isSingle = (t[0] === \"'\")\n\n // Find previous character,\n // default to space if it's the beginning of the line\n //\n let lastChar = 0x20\n\n if (t.index - 1 >= 0) {\n lastChar = text.charCodeAt(t.index - 1)\n } else {\n for (j = i - 1; j >= 0; j--) {\n if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break // lastChar defaults to 0x20\n if (!tokens[j].content) continue // should skip all tokens except 'text', 'html_inline' or 'code_inline'\n\n lastChar = tokens[j].content.charCodeAt(tokens[j].content.length - 1)\n break\n }\n }\n\n // Find next character,\n // default to space if it's the end of the line\n //\n let nextChar = 0x20\n\n if (pos < max) {\n nextChar = text.charCodeAt(pos)\n } else {\n for (j = i + 1; j < tokens.length; j++) {\n if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break // nextChar defaults to 0x20\n if (!tokens[j].content) continue // should skip all tokens except 'text', 'html_inline' or 'code_inline'\n\n nextChar = tokens[j].content.charCodeAt(0)\n break\n }\n }\n\n const isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar))\n const isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar))\n\n const isLastWhiteSpace = isWhiteSpace(lastChar)\n const isNextWhiteSpace = isWhiteSpace(nextChar)\n\n if (isNextWhiteSpace) {\n canOpen = false\n } else if (isNextPunctChar) {\n if (!(isLastWhiteSpace || isLastPunctChar)) {\n canOpen = false\n }\n }\n\n if (isLastWhiteSpace) {\n canClose = false\n } else if (isLastPunctChar) {\n if (!(isNextWhiteSpace || isNextPunctChar)) {\n canClose = false\n }\n }\n\n if (nextChar === 0x22 /* \" */ && t[0] === '\"') {\n if (lastChar >= 0x30 /* 0 */ && lastChar <= 0x39 /* 9 */) {\n // special case: 1\"\" - count first quote as an inch\n canClose = canOpen = false\n }\n }\n\n if (canOpen && canClose) {\n // Replace quotes in the middle of punctuation sequence, but not\n // in the middle of the words, i.e.:\n //\n // 1. foo \" bar \" baz - not replaced\n // 2. foo-\"-bar-\"-baz - replaced\n // 3. foo\"bar\"baz - not replaced\n //\n canOpen = isLastPunctChar\n canClose = isNextPunctChar\n }\n\n if (!canOpen && !canClose) {\n // middle of word\n if (isSingle) {\n token.content = replaceAt(token.content, t.index, APOSTROPHE)\n }\n continue\n }\n\n if (canClose) {\n // this could be a closing quote, rewind the stack to get a match\n for (j = stack.length - 1; j >= 0; j--) {\n let item = stack[j]\n if (stack[j].level < thisLevel) { break }\n if (item.single === isSingle && stack[j].level === thisLevel) {\n item = stack[j]\n\n let openQuote\n let closeQuote\n if (isSingle) {\n openQuote = state.md.options.quotes[2]\n closeQuote = state.md.options.quotes[3]\n } else {\n openQuote = state.md.options.quotes[0]\n closeQuote = state.md.options.quotes[1]\n }\n\n // replace token.content *before* tokens[item.token].content,\n // because, if they are pointing at the same token, replaceAt\n // could mess up indices when quote length != 1\n token.content = replaceAt(token.content, t.index, closeQuote)\n tokens[item.token].content = replaceAt(\n tokens[item.token].content, item.pos, openQuote)\n\n pos += closeQuote.length - 1\n if (item.token === i) { pos += openQuote.length - 1 }\n\n text = token.content\n max = text.length\n\n stack.length = j\n continue OUTER\n }\n }\n }\n\n if (canOpen) {\n stack.push({\n token: i,\n pos: t.index,\n single: isSingle,\n level: thisLevel\n })\n } else if (canClose && isSingle) {\n token.content = replaceAt(token.content, t.index, APOSTROPHE)\n }\n }\n }\n}\n\nexport default function smartquotes (state) {\n /* eslint max-depth:0 */\n if (!state.md.options.typographer) { return }\n\n for (let blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n if (state.tokens[blkIdx].type !== 'inline' ||\n !QUOTE_TEST_RE.test(state.tokens[blkIdx].content)) {\n continue\n }\n\n process_inlines(state.tokens[blkIdx].children, state)\n }\n}\n","/** internal\n * class Core\n *\n * Top-level rules executor. Glues block/inline parsers and does intermediate\n * transformations.\n **/\n\nimport Ruler from './ruler.mjs'\nimport StateCore from './rules_core/state_core.mjs'\n\nimport r_normalize from './rules_core/normalize.mjs'\nimport r_block from './rules_core/block.mjs'\nimport r_inline from './rules_core/inline.mjs'\nimport r_linkify from './rules_core/linkify.mjs'\nimport r_replacements from './rules_core/replacements.mjs'\nimport r_smartquotes from './rules_core/smartquotes.mjs'\nimport r_text_join from './rules_core/text_join.mjs'\n\nconst _rules = [\n ['normalize', r_normalize],\n ['block', r_block],\n ['inline', r_inline],\n ['linkify', r_linkify],\n ['replacements', r_replacements],\n ['smartquotes', r_smartquotes],\n // `text_join` finds `text_special` tokens (for escape sequences)\n // and joins them with the rest of the text\n ['text_join', r_text_join]\n]\n\n/**\n * new Core()\n **/\nfunction Core () {\n /**\n * Core#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of core rules.\n **/\n this.ruler = new Ruler()\n\n for (let i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1])\n }\n}\n\n/**\n * Core.process(state)\n *\n * Executes core chain rules.\n **/\nCore.prototype.process = function (state) {\n const rules = this.ruler.getRules('')\n\n for (let i = 0, l = rules.length; i < l; i++) {\n rules[i](state)\n }\n}\n\nCore.prototype.State = StateCore\n\nexport default Core\n","export default function block (state) {\n let token\n\n if (state.inlineMode) {\n token = new state.Token('inline', '', 0)\n token.content = state.src\n token.map = [0, 1]\n token.children = []\n state.tokens.push(token)\n } else {\n state.md.block.parse(state.src, state.md, state.env, state.tokens)\n }\n}\n","export default function inline (state) {\n const tokens = state.tokens\n\n // Parse inlines\n for (let i = 0, l = tokens.length; i < l; i++) {\n const tok = tokens[i]\n if (tok.type === 'inline') {\n state.md.inline.parse(tok.content, state.md, state.env, tok.children)\n }\n }\n}\n","// Join raw text tokens with the rest of the text\n//\n// This is set as a separate rule to provide an opportunity for plugins\n// to run text replacements after text join, but before escape join.\n//\n// For example, `\\:)` shouldn't be replaced with an emoji.\n//\n\nexport default function text_join (state) {\n let curr, last\n const blockTokens = state.tokens\n const l = blockTokens.length\n\n for (let j = 0; j < l; j++) {\n if (blockTokens[j].type !== 'inline') continue\n\n const tokens = blockTokens[j].children\n const max = tokens.length\n\n for (curr = 0; curr < max; curr++) {\n if (tokens[curr].type === 'text_special') {\n tokens[curr].type = 'text'\n }\n }\n\n for (curr = last = 0; curr < max; curr++) {\n if (tokens[curr].type === 'text' &&\n curr + 1 < max &&\n tokens[curr + 1].type === 'text') {\n // collapse two adjacent text nodes\n tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content\n } else {\n if (curr !== last) { tokens[last] = tokens[curr] }\n\n last++\n }\n }\n\n if (curr !== last) {\n tokens.length = last\n }\n }\n}\n","// Parser state class\n\nimport Token from '../token.mjs'\nimport { isSpace } from '../common/utils.mjs'\n\nfunction StateBlock (src, md, env, tokens) {\n this.src = src\n\n // link to parser instance\n this.md = md\n\n this.env = env\n\n //\n // Internal state vartiables\n //\n\n this.tokens = tokens\n\n this.bMarks = [] // line begin offsets for fast jumps\n this.eMarks = [] // line end offsets for fast jumps\n this.tShift = [] // offsets of the first non-space characters (tabs not expanded)\n this.sCount = [] // indents for each line (tabs expanded)\n\n // An amount of virtual spaces (tabs expanded) between beginning\n // of each line (bMarks) and real beginning of that line.\n //\n // It exists only as a hack because blockquotes override bMarks\n // losing information in the process.\n //\n // It's used only when expanding tabs, you can think about it as\n // an initial tab length, e.g. bsCount=21 applied to string `\\t123`\n // means first tab should be expanded to 4-21%4 === 3 spaces.\n //\n this.bsCount = []\n\n // block parser variables\n\n // required block content indent (for example, if we are\n // inside a list, it would be positioned after list marker)\n this.blkIndent = 0\n this.line = 0 // line index in src\n this.lineMax = 0 // lines count\n this.tight = false // loose/tight mode for lists\n this.ddIndent = -1 // indent of the current dd block (-1 if there isn't any)\n this.listIndent = -1 // indent of the current list block (-1 if there isn't any)\n\n // can be 'blockquote', 'list', 'root', 'paragraph' or 'reference'\n // used in lists to determine if they interrupt a paragraph\n this.parentType = 'root'\n\n this.level = 0\n\n // Create caches\n // Generate markers.\n const s = this.src\n\n for (let start = 0, pos = 0, indent = 0, offset = 0, len = s.length, indent_found = false; pos < len; pos++) {\n const ch = s.charCodeAt(pos)\n\n if (!indent_found) {\n if (isSpace(ch)) {\n indent++\n\n if (ch === 0x09) {\n offset += 4 - offset % 4\n } else {\n offset++\n }\n continue\n } else {\n indent_found = true\n }\n }\n\n if (ch === 0x0A || pos === len - 1) {\n if (ch !== 0x0A) { pos++ }\n this.bMarks.push(start)\n this.eMarks.push(pos)\n this.tShift.push(indent)\n this.sCount.push(offset)\n this.bsCount.push(0)\n\n indent_found = false\n indent = 0\n offset = 0\n start = pos + 1\n }\n }\n\n // Push fake entry to simplify cache bounds checks\n this.bMarks.push(s.length)\n this.eMarks.push(s.length)\n this.tShift.push(0)\n this.sCount.push(0)\n this.bsCount.push(0)\n\n this.lineMax = this.bMarks.length - 1 // don't count last fake line\n}\n\n// Push new token to \"stream\".\n//\nStateBlock.prototype.push = function (type, tag, nesting) {\n const token = new Token(type, tag, nesting)\n token.block = true\n\n if (nesting < 0) this.level-- // closing tag\n token.level = this.level\n if (nesting > 0) this.level++ // opening tag\n\n this.tokens.push(token)\n return token\n}\n\nStateBlock.prototype.isEmpty = function isEmpty (line) {\n return this.bMarks[line] + this.tShift[line] >= this.eMarks[line]\n}\n\nStateBlock.prototype.skipEmptyLines = function skipEmptyLines (from) {\n for (let max = this.lineMax; from < max; from++) {\n if (this.bMarks[from] + this.tShift[from] < this.eMarks[from]) {\n break\n }\n }\n return from\n}\n\n// Skip spaces from given position.\nStateBlock.prototype.skipSpaces = function skipSpaces (pos) {\n for (let max = this.src.length; pos < max; pos++) {\n const ch = this.src.charCodeAt(pos)\n if (!isSpace(ch)) { break }\n }\n return pos\n}\n\n// Skip spaces from given position in reverse.\nStateBlock.prototype.skipSpacesBack = function skipSpacesBack (pos, min) {\n if (pos <= min) { return pos }\n\n while (pos > min) {\n if (!isSpace(this.src.charCodeAt(--pos))) { return pos + 1 }\n }\n return pos\n}\n\n// Skip char codes from given position\nStateBlock.prototype.skipChars = function skipChars (pos, code) {\n for (let max = this.src.length; pos < max; pos++) {\n if (this.src.charCodeAt(pos) !== code) { break }\n }\n return pos\n}\n\n// Skip char codes reverse from given position - 1\nStateBlock.prototype.skipCharsBack = function skipCharsBack (pos, code, min) {\n if (pos <= min) { return pos }\n\n while (pos > min) {\n if (code !== this.src.charCodeAt(--pos)) { return pos + 1 }\n }\n return pos\n}\n\n// cut lines range from source.\nStateBlock.prototype.getLines = function getLines (begin, end, indent, keepLastLF) {\n if (begin >= end) {\n return ''\n }\n\n const queue = new Array(end - begin)\n\n for (let i = 0, line = begin; line < end; line++, i++) {\n let lineIndent = 0\n const lineStart = this.bMarks[line]\n let first = lineStart\n let last\n\n if (line + 1 < end || keepLastLF) {\n // No need for bounds check because we have fake entry on tail.\n last = this.eMarks[line] + 1\n } else {\n last = this.eMarks[line]\n }\n\n while (first < last && lineIndent < indent) {\n const ch = this.src.charCodeAt(first)\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n lineIndent += 4 - (lineIndent + this.bsCount[line]) % 4\n } else {\n lineIndent++\n }\n } else if (first - lineStart < this.tShift[line]) {\n // patched tShift masked characters to look like spaces (blockquotes, list markers)\n lineIndent++\n } else {\n break\n }\n\n first++\n }\n\n if (lineIndent > indent) {\n // partially expanding tabs in code blocks, e.g '\\t\\tfoobar'\n // with indent=2 becomes ' \\tfoobar'\n queue[i] = new Array(lineIndent - indent + 1).join(' ') + this.src.slice(first, last)\n } else {\n queue[i] = this.src.slice(first, last)\n }\n }\n\n return queue.join('')\n}\n\n// re-export Token class to use in block rules\nStateBlock.prototype.Token = Token\n\nexport default StateBlock\n","// GFM table, https://github.github.com/gfm/#tables-extension-\n\nimport { isSpace } from '../common/utils.mjs'\n\n// Limit the amount of empty autocompleted cells in a table,\n// see https://github.com/markdown-it/markdown-it/issues/1000,\n//\n// Both pulldown-cmark and commonmark-hs limit the number of cells this way to ~200k.\n// We set it to 65k, which can expand user input by a factor of x370\n// (256x256 square is 1.8kB expanded into 650kB).\nconst MAX_AUTOCOMPLETED_CELLS = 0x10000\n\nfunction getLine (state, line) {\n const pos = state.bMarks[line] + state.tShift[line]\n const max = state.eMarks[line]\n\n return state.src.slice(pos, max)\n}\n\nfunction escapedSplit (str) {\n const result = []\n const max = str.length\n\n let pos = 0\n let ch = str.charCodeAt(pos)\n let isEscaped = false\n let lastPos = 0\n let current = ''\n\n while (pos < max) {\n if (ch === 0x7c/* | */) {\n if (!isEscaped) {\n // pipe separating cells, '|'\n result.push(current + str.substring(lastPos, pos))\n current = ''\n lastPos = pos + 1\n } else {\n // escaped pipe, '\\|'\n current += str.substring(lastPos, pos - 1)\n lastPos = pos\n }\n }\n\n isEscaped = (ch === 0x5c/* \\ */)\n pos++\n\n ch = str.charCodeAt(pos)\n }\n\n result.push(current + str.substring(lastPos))\n\n return result\n}\n\nexport default function table (state, startLine, endLine, silent) {\n // should have at least two lines\n if (startLine + 2 > endLine) { return false }\n\n let nextLine = startLine + 1\n\n if (state.sCount[nextLine] < state.blkIndent) { return false }\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[nextLine] - state.blkIndent >= 4) { return false }\n\n // first character of the second line should be '|', '-', ':',\n // and no other characters are allowed but spaces;\n // basically, this is the equivalent of /^[-:|][-:|\\s]*$/ regexp\n\n let pos = state.bMarks[nextLine] + state.tShift[nextLine]\n if (pos >= state.eMarks[nextLine]) { return false }\n\n const firstCh = state.src.charCodeAt(pos++)\n if (firstCh !== 0x7C/* | */ && firstCh !== 0x2D/* - */ && firstCh !== 0x3A/* : */) { return false }\n\n if (pos >= state.eMarks[nextLine]) { return false }\n\n const secondCh = state.src.charCodeAt(pos++)\n if (secondCh !== 0x7C/* | */ && secondCh !== 0x2D/* - */ && secondCh !== 0x3A/* : */ && !isSpace(secondCh)) {\n return false\n }\n\n // if first character is '-', then second character must not be a space\n // (due to parsing ambiguity with list)\n if (firstCh === 0x2D/* - */ && isSpace(secondCh)) { return false }\n\n while (pos < state.eMarks[nextLine]) {\n const ch = state.src.charCodeAt(pos)\n\n if (ch !== 0x7C/* | */ && ch !== 0x2D/* - */ && ch !== 0x3A/* : */ && !isSpace(ch)) { return false }\n\n pos++\n }\n\n let lineText = getLine(state, startLine + 1)\n let columns = lineText.split('|')\n const aligns = []\n for (let i = 0; i < columns.length; i++) {\n const t = columns[i].trim()\n if (!t) {\n // allow empty columns before and after table, but not in between columns;\n // e.g. allow ` |---| `, disallow ` ---||--- `\n if (i === 0 || i === columns.length - 1) {\n continue\n } else {\n return false\n }\n }\n\n if (!/^:?-+:?$/.test(t)) { return false }\n if (t.charCodeAt(t.length - 1) === 0x3A/* : */) {\n aligns.push(t.charCodeAt(0) === 0x3A/* : */ ? 'center' : 'right')\n } else if (t.charCodeAt(0) === 0x3A/* : */) {\n aligns.push('left')\n } else {\n aligns.push('')\n }\n }\n\n lineText = getLine(state, startLine).trim()\n if (lineText.indexOf('|') === -1) { return false }\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n columns = escapedSplit(lineText)\n if (columns.length && columns[0] === '') columns.shift()\n if (columns.length && columns[columns.length - 1] === '') columns.pop()\n\n // header row will define an amount of columns in the entire table,\n // and align row should be exactly the same (the rest of the rows can differ)\n const columnCount = columns.length\n if (columnCount === 0 || columnCount !== aligns.length) { return false }\n\n if (silent) { return true }\n\n const oldParentType = state.parentType\n state.parentType = 'table'\n\n // use 'blockquote' lists for termination because it's\n // the most similar to tables\n const terminatorRules = state.md.block.ruler.getRules('blockquote')\n\n const token_to = state.push('table_open', 'table', 1)\n const tableLines = [startLine, 0]\n token_to.map = tableLines\n\n const token_tho = state.push('thead_open', 'thead', 1)\n token_tho.map = [startLine, startLine + 1]\n\n const token_htro = state.push('tr_open', 'tr', 1)\n token_htro.map = [startLine, startLine + 1]\n\n for (let i = 0; i < columns.length; i++) {\n const token_ho = state.push('th_open', 'th', 1)\n if (aligns[i]) {\n token_ho.attrs = [['style', 'text-align:' + aligns[i]]]\n }\n\n const token_il = state.push('inline', '', 0)\n token_il.content = columns[i].trim()\n token_il.children = []\n\n state.push('th_close', 'th', -1)\n }\n\n state.push('tr_close', 'tr', -1)\n state.push('thead_close', 'thead', -1)\n\n let tbodyLines\n let autocompletedCells = 0\n\n for (nextLine = startLine + 2; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) { break }\n\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n\n if (terminate) { break }\n lineText = getLine(state, nextLine).trim()\n if (!lineText) { break }\n if (state.sCount[nextLine] - state.blkIndent >= 4) { break }\n columns = escapedSplit(lineText)\n if (columns.length && columns[0] === '') columns.shift()\n if (columns.length && columns[columns.length - 1] === '') columns.pop()\n\n // note: autocomplete count can be negative if user specifies more columns than header,\n // but that does not affect intended use (which is limiting expansion)\n autocompletedCells += columnCount - columns.length\n if (autocompletedCells > MAX_AUTOCOMPLETED_CELLS) { break }\n\n if (nextLine === startLine + 2) {\n const token_tbo = state.push('tbody_open', 'tbody', 1)\n token_tbo.map = tbodyLines = [startLine + 2, 0]\n }\n\n const token_tro = state.push('tr_open', 'tr', 1)\n token_tro.map = [nextLine, nextLine + 1]\n\n for (let i = 0; i < columnCount; i++) {\n const token_tdo = state.push('td_open', 'td', 1)\n if (aligns[i]) {\n token_tdo.attrs = [['style', 'text-align:' + aligns[i]]]\n }\n\n const token_il = state.push('inline', '', 0)\n token_il.content = columns[i] ? columns[i].trim() : ''\n token_il.children = []\n\n state.push('td_close', 'td', -1)\n }\n state.push('tr_close', 'tr', -1)\n }\n\n if (tbodyLines) {\n state.push('tbody_close', 'tbody', -1)\n tbodyLines[1] = nextLine\n }\n\n state.push('table_close', 'table', -1)\n tableLines[1] = nextLine\n\n state.parentType = oldParentType\n state.line = nextLine\n return true\n}\n","// Lists\n\nimport { isSpace } from '../common/utils.mjs'\n\n// Search `[-+*][\\n ]`, returns next pos after marker on success\n// or -1 on fail.\nfunction skipBulletListMarker (state, startLine) {\n const max = state.eMarks[startLine]\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n\n const marker = state.src.charCodeAt(pos++)\n // Check bullet\n if (marker !== 0x2A/* * */ &&\n marker !== 0x2D/* - */ &&\n marker !== 0x2B/* + */) {\n return -1\n }\n\n if (pos < max) {\n const ch = state.src.charCodeAt(pos)\n\n if (!isSpace(ch)) {\n // \" -test \" - is not a list item\n return -1\n }\n }\n\n return pos\n}\n\n// Search `\\d+[.)][\\n ]`, returns next pos after marker on success\n// or -1 on fail.\nfunction skipOrderedListMarker (state, startLine) {\n const start = state.bMarks[startLine] + state.tShift[startLine]\n const max = state.eMarks[startLine]\n let pos = start\n\n // List marker should have at least 2 chars (digit + dot)\n if (pos + 1 >= max) { return -1 }\n\n let ch = state.src.charCodeAt(pos++)\n\n if (ch < 0x30/* 0 */ || ch > 0x39/* 9 */) { return -1 }\n\n for (;;) {\n // EOL -> fail\n if (pos >= max) { return -1 }\n\n ch = state.src.charCodeAt(pos++)\n\n if (ch >= 0x30/* 0 */ && ch <= 0x39/* 9 */) {\n // List marker should have no more than 9 digits\n // (prevents integer overflow in browsers)\n if (pos - start >= 10) { return -1 }\n\n continue\n }\n\n // found valid marker\n if (ch === 0x29/* ) */ || ch === 0x2e/* . */) {\n break\n }\n\n return -1\n }\n\n if (pos < max) {\n ch = state.src.charCodeAt(pos)\n\n if (!isSpace(ch)) {\n // \" 1.test \" - is not a list item\n return -1\n }\n }\n return pos\n}\n\nfunction markTightParagraphs (state, idx) {\n const level = state.level + 2\n\n for (let i = idx + 2, l = state.tokens.length - 2; i < l; i++) {\n if (state.tokens[i].level === level && state.tokens[i].type === 'paragraph_open') {\n state.tokens[i + 2].hidden = true\n state.tokens[i].hidden = true\n i += 2\n }\n }\n}\n\nexport default function list (state, startLine, endLine, silent) {\n let max, pos, start, token\n let nextLine = startLine\n let tight = true\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[nextLine] - state.blkIndent >= 4) { return false }\n\n // Special case:\n // - item 1\n // - item 2\n // - item 3\n // - item 4\n // - this one is a paragraph continuation\n if (state.listIndent >= 0 &&\n state.sCount[nextLine] - state.listIndent >= 4 &&\n state.sCount[nextLine] < state.blkIndent) {\n return false\n }\n\n let isTerminatingParagraph = false\n\n // limit conditions when list can interrupt\n // a paragraph (validation mode only)\n if (silent && state.parentType === 'paragraph') {\n // Next list item should still terminate previous list item;\n //\n // This code can fail if plugins use blkIndent as well as lists,\n // but I hope the spec gets fixed long before that happens.\n //\n if (state.sCount[nextLine] >= state.blkIndent) {\n isTerminatingParagraph = true\n }\n }\n\n // Detect list type and position after marker\n let isOrdered\n let markerValue\n let posAfterMarker\n if ((posAfterMarker = skipOrderedListMarker(state, nextLine)) >= 0) {\n isOrdered = true\n start = state.bMarks[nextLine] + state.tShift[nextLine]\n markerValue = Number(state.src.slice(start, posAfterMarker - 1))\n\n // If we're starting a new ordered list right after\n // a paragraph, it should start with 1.\n if (isTerminatingParagraph && markerValue !== 1) return false\n } else if ((posAfterMarker = skipBulletListMarker(state, nextLine)) >= 0) {\n isOrdered = false\n } else {\n return false\n }\n\n // If we're starting a new unordered list right after\n // a paragraph, first line should not be empty.\n if (isTerminatingParagraph) {\n if (state.skipSpaces(posAfterMarker) >= state.eMarks[nextLine]) return false\n }\n\n // For validation mode we can terminate immediately\n if (silent) { return true }\n\n // We should terminate list on style change. Remember first one to compare.\n const markerCharCode = state.src.charCodeAt(posAfterMarker - 1)\n\n // Start list\n const listTokIdx = state.tokens.length\n\n if (isOrdered) {\n token = state.push('ordered_list_open', 'ol', 1)\n if (markerValue !== 1) {\n token.attrs = [['start', markerValue]]\n }\n } else {\n token = state.push('bullet_list_open', 'ul', 1)\n }\n\n const listLines = [nextLine, 0]\n token.map = listLines\n token.markup = String.fromCharCode(markerCharCode)\n\n //\n // Iterate list items\n //\n\n let prevEmptyEnd = false\n const terminatorRules = state.md.block.ruler.getRules('list')\n\n const oldParentType = state.parentType\n state.parentType = 'list'\n\n while (nextLine < endLine) {\n pos = posAfterMarker\n max = state.eMarks[nextLine]\n\n const initial = state.sCount[nextLine] + posAfterMarker - (state.bMarks[nextLine] + state.tShift[nextLine])\n let offset = initial\n\n while (pos < max) {\n const ch = state.src.charCodeAt(pos)\n\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[nextLine]) % 4\n } else if (ch === 0x20) {\n offset++\n } else {\n break\n }\n\n pos++\n }\n\n const contentStart = pos\n let indentAfterMarker\n\n if (contentStart >= max) {\n // trimming space in \"- \\n 3\" case, indent is 1 here\n indentAfterMarker = 1\n } else {\n indentAfterMarker = offset - initial\n }\n\n // If we have more than 4 spaces, the indent is 1\n // (the rest is just indented code block)\n if (indentAfterMarker > 4) { indentAfterMarker = 1 }\n\n // \" - test\"\n // ^^^^^ - calculating total length of this thing\n const indent = initial + indentAfterMarker\n\n // Run subparser & write tokens\n token = state.push('list_item_open', 'li', 1)\n token.markup = String.fromCharCode(markerCharCode)\n const itemLines = [nextLine, 0]\n token.map = itemLines\n if (isOrdered) {\n token.info = state.src.slice(start, posAfterMarker - 1)\n }\n\n // change current state, then restore it after parser subcall\n const oldTight = state.tight\n const oldTShift = state.tShift[nextLine]\n const oldSCount = state.sCount[nextLine]\n\n // - example list\n // ^ listIndent position will be here\n // ^ blkIndent position will be here\n //\n const oldListIndent = state.listIndent\n state.listIndent = state.blkIndent\n state.blkIndent = indent\n\n state.tight = true\n state.tShift[nextLine] = contentStart - state.bMarks[nextLine]\n state.sCount[nextLine] = offset\n\n if (contentStart >= max && state.isEmpty(nextLine + 1)) {\n // workaround for this case\n // (list item is empty, list terminates before \"foo\"):\n // ~~~~~~~~\n // -\n //\n // foo\n // ~~~~~~~~\n state.line = Math.min(state.line + 2, endLine)\n } else {\n state.md.block.tokenize(state, nextLine, endLine, true)\n }\n\n // If any of list item is tight, mark list as tight\n if (!state.tight || prevEmptyEnd) {\n tight = false\n }\n // Item become loose if finish with empty line,\n // but we should filter last element, because it means list finish\n prevEmptyEnd = (state.line - nextLine) > 1 && state.isEmpty(state.line - 1)\n\n state.blkIndent = state.listIndent\n state.listIndent = oldListIndent\n state.tShift[nextLine] = oldTShift\n state.sCount[nextLine] = oldSCount\n state.tight = oldTight\n\n token = state.push('list_item_close', 'li', -1)\n token.markup = String.fromCharCode(markerCharCode)\n\n nextLine = state.line\n itemLines[1] = nextLine\n\n if (nextLine >= endLine) { break }\n\n //\n // Try to check if list is terminated or continued.\n //\n if (state.sCount[nextLine] < state.blkIndent) { break }\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[nextLine] - state.blkIndent >= 4) { break }\n\n // fail if terminating block found\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n if (terminate) { break }\n\n // fail if list has another type\n if (isOrdered) {\n posAfterMarker = skipOrderedListMarker(state, nextLine)\n if (posAfterMarker < 0) { break }\n start = state.bMarks[nextLine] + state.tShift[nextLine]\n } else {\n posAfterMarker = skipBulletListMarker(state, nextLine)\n if (posAfterMarker < 0) { break }\n }\n\n if (markerCharCode !== state.src.charCodeAt(posAfterMarker - 1)) { break }\n }\n\n // Finalize list\n if (isOrdered) {\n token = state.push('ordered_list_close', 'ol', -1)\n } else {\n token = state.push('bullet_list_close', 'ul', -1)\n }\n token.markup = String.fromCharCode(markerCharCode)\n\n listLines[1] = nextLine\n state.line = nextLine\n\n state.parentType = oldParentType\n\n // mark paragraphs tight if needed\n if (tight) {\n markTightParagraphs(state, listTokIdx)\n }\n\n return true\n}\n","// List of valid html blocks names, according to commonmark spec\n// https://spec.commonmark.org/0.30/#html-blocks\n\nexport default [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n","// Regexps to match html elements\n\nconst attr_name = '[a-zA-Z_:][a-zA-Z0-9:._-]*'\n\nconst unquoted = '[^\"\\'=<>`\\\\x00-\\\\x20]+'\nconst single_quoted = \"'[^']*'\"\nconst double_quoted = '\"[^\"]*\"'\n\nconst attr_value = '(?:' + unquoted + '|' + single_quoted + '|' + double_quoted + ')'\n\nconst attribute = '(?:\\\\s+' + attr_name + '(?:\\\\s*=\\\\s*' + attr_value + ')?)'\n\nconst open_tag = '<[A-Za-z][A-Za-z0-9\\\\-]*' + attribute + '*\\\\s*\\\\/?>'\n\nconst close_tag = '<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>'\nconst comment = '<!---?>|<!--(?:[^-]|-[^-]|--[^>])*-->'\nconst processing = '<[?][\\\\s\\\\S]*?[?]>'\nconst declaration = '<![A-Za-z][^>]*>'\nconst cdata = '<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>'\n\nconst HTML_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + '|' + comment +\n '|' + processing + '|' + declaration + '|' + cdata + ')')\nconst HTML_OPEN_CLOSE_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + ')')\n\nexport { HTML_TAG_RE, HTML_OPEN_CLOSE_TAG_RE }\n","// HTML block\n\nimport block_names from '../common/html_blocks.mjs'\nimport { HTML_OPEN_CLOSE_TAG_RE } from '../common/html_re.mjs'\n\n// An array of opening and corresponding closing sequences for html tags,\n// last argument defines whether it can terminate a paragraph or not\n//\nconst HTML_SEQUENCES = [\n [/^<(script|pre|style|textarea)(?=(\\s|>|$))/i, /<\\/(script|pre|style|textarea)>/i, true],\n [/^<!--/, /-->/, true],\n [/^<\\?/, /\\?>/, true],\n [/^<![A-Z]/, />/, true],\n [/^<!\\[CDATA\\[/, /\\]\\]>/, true],\n [new RegExp('^</?(' + block_names.join('|') + ')(?=(\\\\s|/?>|$))', 'i'), /^$/, true],\n [new RegExp(HTML_OPEN_CLOSE_TAG_RE.source + '\\\\s*$'), /^$/, false]\n]\n\nexport default function html_block (state, startLine, endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n let max = state.eMarks[startLine]\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n if (!state.md.options.html) { return false }\n\n if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false }\n\n let lineText = state.src.slice(pos, max)\n\n let i = 0\n for (; i < HTML_SEQUENCES.length; i++) {\n if (HTML_SEQUENCES[i][0].test(lineText)) { break }\n }\n if (i === HTML_SEQUENCES.length) { return false }\n\n if (silent) {\n // true if this sequence can be a terminator, false otherwise\n return HTML_SEQUENCES[i][2]\n }\n\n let nextLine = startLine + 1\n\n // If we are here - we detected HTML block.\n // Let's roll down till block end.\n if (!HTML_SEQUENCES[i][1].test(lineText)) {\n for (; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) { break }\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine]\n max = state.eMarks[nextLine]\n lineText = state.src.slice(pos, max)\n\n if (HTML_SEQUENCES[i][1].test(lineText)) {\n if (lineText.length !== 0) { nextLine++ }\n break\n }\n }\n }\n\n state.line = nextLine\n\n const token = state.push('html_block', '', 0)\n token.map = [startLine, nextLine]\n token.content = state.getLines(startLine, nextLine, state.blkIndent, true)\n\n return true\n}\n","/** internal\n * class ParserBlock\n *\n * Block-level tokenizer.\n **/\n\nimport Ruler from './ruler.mjs'\nimport StateBlock from './rules_block/state_block.mjs'\n\nimport r_table from './rules_block/table.mjs'\nimport r_code from './rules_block/code.mjs'\nimport r_fence from './rules_block/fence.mjs'\nimport r_blockquote from './rules_block/blockquote.mjs'\nimport r_hr from './rules_block/hr.mjs'\nimport r_list from './rules_block/list.mjs'\nimport r_reference from './rules_block/reference.mjs'\nimport r_html_block from './rules_block/html_block.mjs'\nimport r_heading from './rules_block/heading.mjs'\nimport r_lheading from './rules_block/lheading.mjs'\nimport r_paragraph from './rules_block/paragraph.mjs'\n\nconst _rules = [\n // First 2 params - rule name & source. Secondary array - list of rules,\n // which can be terminated by this one.\n ['table', r_table, ['paragraph', 'reference']],\n ['code', r_code],\n ['fence', r_fence, ['paragraph', 'reference', 'blockquote', 'list']],\n ['blockquote', r_blockquote, ['paragraph', 'reference', 'blockquote', 'list']],\n ['hr', r_hr, ['paragraph', 'reference', 'blockquote', 'list']],\n ['list', r_list, ['paragraph', 'reference', 'blockquote']],\n ['reference', r_reference],\n ['html_block', r_html_block, ['paragraph', 'reference', 'blockquote']],\n ['heading', r_heading, ['paragraph', 'reference', 'blockquote']],\n ['lheading', r_lheading],\n ['paragraph', r_paragraph]\n]\n\n/**\n * new ParserBlock()\n **/\nfunction ParserBlock () {\n /**\n * ParserBlock#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of block rules.\n **/\n this.ruler = new Ruler()\n\n for (let i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1], { alt: (_rules[i][2] || []).slice() })\n }\n}\n\n// Generate tokens for input range\n//\nParserBlock.prototype.tokenize = function (state, startLine, endLine) {\n const rules = this.ruler.getRules('')\n const len = rules.length\n const maxNesting = state.md.options.maxNesting\n let line = startLine\n let hasEmptyLines = false\n\n while (line < endLine) {\n state.line = line = state.skipEmptyLines(line)\n if (line >= endLine) { break }\n\n // Termination condition for nested calls.\n // Nested calls currently used for blockquotes & lists\n if (state.sCount[line] < state.blkIndent) { break }\n\n // If nesting level exceeded - skip tail to the end. That's not ordinary\n // situation and we should not care about content.\n if (state.level >= maxNesting) {\n state.line = endLine\n break\n }\n\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.line`\n // - update `state.tokens`\n // - return true\n const prevLine = state.line\n let ok = false\n\n for (let i = 0; i < len; i++) {\n ok = rules[i](state, line, endLine, false)\n if (ok) {\n if (prevLine >= state.line) {\n throw new Error(\"block rule didn't increment state.line\")\n }\n break\n }\n }\n\n // this can only happen if user disables paragraph rule\n if (!ok) throw new Error('none of the block rules matched')\n\n // set state.tight if we had an empty line before current tag\n // i.e. latest empty line should not count\n state.tight = !hasEmptyLines\n\n // paragraph might \"eat\" one newline after it in nested lists\n if (state.isEmpty(state.line - 1)) {\n hasEmptyLines = true\n }\n\n line = state.line\n\n if (line < endLine && state.isEmpty(line)) {\n hasEmptyLines = true\n line++\n state.line = line\n }\n }\n}\n\n/**\n * ParserBlock.parse(str, md, env, outTokens)\n *\n * Process input string and push block tokens into `outTokens`\n **/\nParserBlock.prototype.parse = function (src, md, env, outTokens) {\n if (!src) { return }\n\n const state = new this.State(src, md, env, outTokens)\n\n this.tokenize(state, state.line, state.lineMax)\n}\n\nParserBlock.prototype.State = StateBlock\n\nexport default ParserBlock\n","// Code block (4 spaces padded)\n\nexport default function code (state, startLine, endLine/*, silent */) {\n if (state.sCount[startLine] - state.blkIndent < 4) { return false }\n\n let nextLine = startLine + 1\n let last = nextLine\n\n while (nextLine < endLine) {\n if (state.isEmpty(nextLine)) {\n nextLine++\n continue\n }\n\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n nextLine++\n last = nextLine\n continue\n }\n break\n }\n\n state.line = last\n\n const token = state.push('code_block', 'code', 0)\n token.content = state.getLines(startLine, last, 4 + state.blkIndent, false) + '\\n'\n token.map = [startLine, state.line]\n\n return true\n}\n","// fences (``` lang, ~~~ lang)\n\nexport default function fence (state, startLine, endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n let max = state.eMarks[startLine]\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n if (pos + 3 > max) { return false }\n\n const marker = state.src.charCodeAt(pos)\n\n if (marker !== 0x7E/* ~ */ && marker !== 0x60 /* ` */) {\n return false\n }\n\n // scan marker length\n let mem = pos\n pos = state.skipChars(pos, marker)\n\n let len = pos - mem\n\n if (len < 3) { return false }\n\n const markup = state.src.slice(mem, pos)\n const params = state.src.slice(pos, max)\n\n if (marker === 0x60 /* ` */) {\n if (params.indexOf(String.fromCharCode(marker)) >= 0) {\n return false\n }\n }\n\n // Since start is found, we can report success here in validation mode\n if (silent) { return true }\n\n // search end of block\n let nextLine = startLine\n let haveEndMarker = false\n\n for (;;) {\n nextLine++\n if (nextLine >= endLine) {\n // unclosed block should be autoclosed by end of document.\n // also block seems to be autoclosed by end of parent\n break\n }\n\n pos = mem = state.bMarks[nextLine] + state.tShift[nextLine]\n max = state.eMarks[nextLine]\n\n if (pos < max && state.sCount[nextLine] < state.blkIndent) {\n // non-empty line with negative indent should stop the list:\n // - ```\n // test\n break\n }\n\n if (state.src.charCodeAt(pos) !== marker) { continue }\n\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n // closing fence should be indented less than 4 spaces\n continue\n }\n\n pos = state.skipChars(pos, marker)\n\n // closing code fence must be at least as long as the opening one\n if (pos - mem < len) { continue }\n\n // make sure tail has spaces only\n pos = state.skipSpaces(pos)\n\n if (pos < max) { continue }\n\n haveEndMarker = true\n // found!\n break\n }\n\n // If a fence has heading spaces, they should be removed from its inner block\n len = state.sCount[startLine]\n\n state.line = nextLine + (haveEndMarker ? 1 : 0)\n\n const token = state.push('fence', 'code', 0)\n token.info = params\n token.content = state.getLines(startLine + 1, nextLine, len, true)\n token.markup = markup\n token.map = [startLine, state.line]\n\n return true\n}\n","// Block quotes\n\nimport { isSpace } from '../common/utils.mjs'\n\nexport default function blockquote (state, startLine, endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n let max = state.eMarks[startLine]\n\n const oldLineMax = state.lineMax\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n // check the block quote marker\n if (state.src.charCodeAt(pos) !== 0x3E/* > */) { return false }\n\n // we know that it's going to be a valid blockquote,\n // so no point trying to find the end of it in silent mode\n if (silent) { return true }\n\n const oldBMarks = []\n const oldBSCount = []\n const oldSCount = []\n const oldTShift = []\n\n const terminatorRules = state.md.block.ruler.getRules('blockquote')\n\n const oldParentType = state.parentType\n state.parentType = 'blockquote'\n let lastLineEmpty = false\n let nextLine\n\n // Search the end of the block\n //\n // Block ends with either:\n // 1. an empty line outside:\n // ```\n // > test\n //\n // ```\n // 2. an empty line inside:\n // ```\n // >\n // test\n // ```\n // 3. another tag:\n // ```\n // > test\n // - - -\n // ```\n for (nextLine = startLine; nextLine < endLine; nextLine++) {\n // check if it's outdented, i.e. it's inside list item and indented\n // less than said list item:\n //\n // ```\n // 1. anything\n // > current blockquote\n // 2. checking this line\n // ```\n const isOutdented = state.sCount[nextLine] < state.blkIndent\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine]\n max = state.eMarks[nextLine]\n\n if (pos >= max) {\n // Case 1: line is not inside the blockquote, and this line is empty.\n break\n }\n\n if (state.src.charCodeAt(pos++) === 0x3E/* > */ && !isOutdented) {\n // This line is inside the blockquote.\n\n // set offset past spaces and \">\"\n let initial = state.sCount[nextLine] + 1\n let spaceAfterMarker\n let adjustTab\n\n // skip one optional space after '>'\n if (state.src.charCodeAt(pos) === 0x20 /* space */) {\n // ' > test '\n // ^ -- position start of line here:\n pos++\n initial++\n adjustTab = false\n spaceAfterMarker = true\n } else if (state.src.charCodeAt(pos) === 0x09 /* tab */) {\n spaceAfterMarker = true\n\n if ((state.bsCount[nextLine] + initial) % 4 === 3) {\n // ' >\\t test '\n // ^ -- position start of line here (tab has width===1)\n pos++\n initial++\n adjustTab = false\n } else {\n // ' >\\t test '\n // ^ -- position start of line here + shift bsCount slightly\n // to make extra space appear\n adjustTab = true\n }\n } else {\n spaceAfterMarker = false\n }\n\n let offset = initial\n oldBMarks.push(state.bMarks[nextLine])\n state.bMarks[nextLine] = pos\n\n while (pos < max) {\n const ch = state.src.charCodeAt(pos)\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[nextLine] + (adjustTab ? 1 : 0)) % 4\n } else {\n offset++\n }\n } else {\n break\n }\n\n pos++\n }\n\n lastLineEmpty = pos >= max\n\n oldBSCount.push(state.bsCount[nextLine])\n state.bsCount[nextLine] = state.sCount[nextLine] + 1 + (spaceAfterMarker ? 1 : 0)\n\n oldSCount.push(state.sCount[nextLine])\n state.sCount[nextLine] = offset - initial\n\n oldTShift.push(state.tShift[nextLine])\n state.tShift[nextLine] = pos - state.bMarks[nextLine]\n continue\n }\n\n // Case 2: line is not inside the blockquote, and the last line was empty.\n if (lastLineEmpty) { break }\n\n // Case 3: another tag found.\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n\n if (terminate) {\n // Quirk to enforce \"hard termination mode\" for paragraphs;\n // normally if you call `tokenize(state, startLine, nextLine)`,\n // paragraphs will look below nextLine for paragraph continuation,\n // but if blockquote is terminated by another tag, they shouldn't\n state.lineMax = nextLine\n\n if (state.blkIndent !== 0) {\n // state.blkIndent was non-zero, we now set it to zero,\n // so we need to re-calculate all offsets to appear as\n // if indent wasn't changed\n oldBMarks.push(state.bMarks[nextLine])\n oldBSCount.push(state.bsCount[nextLine])\n oldTShift.push(state.tShift[nextLine])\n oldSCount.push(state.sCount[nextLine])\n state.sCount[nextLine] -= state.blkIndent\n }\n\n break\n }\n\n oldBMarks.push(state.bMarks[nextLine])\n oldBSCount.push(state.bsCount[nextLine])\n oldTShift.push(state.tShift[nextLine])\n oldSCount.push(state.sCount[nextLine])\n\n // A negative indentation means that this is a paragraph continuation\n //\n state.sCount[nextLine] = -1\n }\n\n const oldIndent = state.blkIndent\n state.blkIndent = 0\n\n const token_o = state.push('blockquote_open', 'blockquote', 1)\n token_o.markup = '>'\n const lines = [startLine, 0]\n token_o.map = lines\n\n state.md.block.tokenize(state, startLine, nextLine)\n\n const token_c = state.push('blockquote_close', 'blockquote', -1)\n token_c.markup = '>'\n\n state.lineMax = oldLineMax\n state.parentType = oldParentType\n lines[1] = state.line\n\n // Restore original tShift; this might not be necessary since the parser\n // has already been here, but just to make sure we can do that.\n for (let i = 0; i < oldTShift.length; i++) {\n state.bMarks[i + startLine] = oldBMarks[i]\n state.tShift[i + startLine] = oldTShift[i]\n state.sCount[i + startLine] = oldSCount[i]\n state.bsCount[i + startLine] = oldBSCount[i]\n }\n state.blkIndent = oldIndent\n\n return true\n}\n","// Horizontal rule\n\nimport { isSpace } from '../common/utils.mjs'\n\nexport default function hr (state, startLine, endLine, silent) {\n const max = state.eMarks[startLine]\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n const marker = state.src.charCodeAt(pos++)\n\n // Check hr marker\n if (marker !== 0x2A/* * */ &&\n marker !== 0x2D/* - */ &&\n marker !== 0x5F/* _ */) {\n return false\n }\n\n // markers can be mixed with spaces, but there should be at least 3 of them\n\n let cnt = 1\n while (pos < max) {\n const ch = state.src.charCodeAt(pos++)\n if (ch !== marker && !isSpace(ch)) { return false }\n if (ch === marker) { cnt++ }\n }\n\n if (cnt < 3) { return false }\n\n if (silent) { return true }\n\n state.line = startLine + 1\n\n const token = state.push('hr', 'hr', 0)\n token.map = [startLine, state.line]\n token.markup = Array(cnt + 1).join(String.fromCharCode(marker))\n\n return true\n}\n","import { isSpace, normalizeReference } from '../common/utils.mjs'\n\nexport default function reference (state, startLine, _endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n let max = state.eMarks[startLine]\n let nextLine = startLine + 1\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n if (state.src.charCodeAt(pos) !== 0x5B/* [ */) { return false }\n\n function getNextLine (nextLine) {\n const endLine = state.lineMax\n\n if (nextLine >= endLine || state.isEmpty(nextLine)) {\n // empty line or end of input\n return null\n }\n\n let isContinuation = false\n\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { isContinuation = true }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { isContinuation = true }\n\n if (!isContinuation) {\n const terminatorRules = state.md.block.ruler.getRules('reference')\n const oldParentType = state.parentType\n state.parentType = 'reference'\n\n // Some tags can terminate paragraph without empty line.\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n\n state.parentType = oldParentType\n if (terminate) {\n // terminated by another block\n return null\n }\n }\n\n const pos = state.bMarks[nextLine] + state.tShift[nextLine]\n const max = state.eMarks[nextLine]\n\n // max + 1 explicitly includes the newline\n return state.src.slice(pos, max + 1)\n }\n\n let str = state.src.slice(pos, max + 1)\n\n max = str.length\n let labelEnd = -1\n\n for (pos = 1; pos < max; pos++) {\n const ch = str.charCodeAt(pos)\n if (ch === 0x5B /* [ */) {\n return false\n } else if (ch === 0x5D /* ] */) {\n labelEnd = pos\n break\n } else if (ch === 0x0A /* \\n */) {\n const lineContent = getNextLine(nextLine)\n if (lineContent !== null) {\n str += lineContent\n max = str.length\n nextLine++\n }\n } else if (ch === 0x5C /* \\ */) {\n pos++\n if (pos < max && str.charCodeAt(pos) === 0x0A) {\n const lineContent = getNextLine(nextLine)\n if (lineContent !== null) {\n str += lineContent\n max = str.length\n nextLine++\n }\n }\n }\n }\n\n if (labelEnd < 0 || str.charCodeAt(labelEnd + 1) !== 0x3A/* : */) { return false }\n\n // [label]: destination 'title'\n // ^^^ skip optional whitespace here\n for (pos = labelEnd + 2; pos < max; pos++) {\n const ch = str.charCodeAt(pos)\n if (ch === 0x0A) {\n const lineContent = getNextLine(nextLine)\n if (lineContent !== null) {\n str += lineContent\n max = str.length\n nextLine++\n }\n } else if (isSpace(ch)) {\n /* eslint no-empty:0 */\n } else {\n break\n }\n }\n\n // [label]: destination 'title'\n // ^^^^^^^^^^^ parse this\n const destRes = state.md.helpers.parseLinkDestination(str, pos, max)\n if (!destRes.ok) { return false }\n\n const href = state.md.normalizeLink(destRes.str)\n if (!state.md.validateLink(href)) { return false }\n\n pos = destRes.pos\n\n // save cursor state, we could require to rollback later\n const destEndPos = pos\n const destEndLineNo = nextLine\n\n // [label]: destination 'title'\n // ^^^ skipping those spaces\n const start = pos\n for (; pos < max; pos++) {\n const ch = str.charCodeAt(pos)\n if (ch === 0x0A) {\n const lineContent = getNextLine(nextLine)\n if (lineContent !== null) {\n str += lineContent\n max = str.length\n nextLine++\n }\n } else if (isSpace(ch)) {\n /* eslint no-empty:0 */\n } else {\n break\n }\n }\n\n // [label]: destination 'title'\n // ^^^^^^^ parse this\n let titleRes = state.md.helpers.parseLinkTitle(str, pos, max)\n while (titleRes.can_continue) {\n const lineContent = getNextLine(nextLine)\n if (lineContent === null) break\n str += lineContent\n pos = max\n max = str.length\n nextLine++\n titleRes = state.md.helpers.parseLinkTitle(str, pos, max, titleRes)\n }\n let title\n\n if (pos < max && start !== pos && titleRes.ok) {\n title = titleRes.str\n pos = titleRes.pos\n } else {\n title = ''\n pos = destEndPos\n nextLine = destEndLineNo\n }\n\n // skip trailing spaces until the rest of the line\n while (pos < max) {\n const ch = str.charCodeAt(pos)\n if (!isSpace(ch)) { break }\n pos++\n }\n\n if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n if (title) {\n // garbage at the end of the line after title,\n // but it could still be a valid reference if we roll back\n title = ''\n pos = destEndPos\n nextLine = destEndLineNo\n while (pos < max) {\n const ch = str.charCodeAt(pos)\n if (!isSpace(ch)) { break }\n pos++\n }\n }\n }\n\n if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n // garbage at the end of the line\n return false\n }\n\n const label = normalizeReference(str.slice(1, labelEnd))\n if (!label) {\n // CommonMark 0.20 disallows empty labels\n return false\n }\n\n // Reference can not terminate anything. This check is for safety only.\n /* istanbul ignore if */\n if (silent) { return true }\n\n if (typeof state.env.references === 'undefined') {\n state.env.references = {}\n }\n if (typeof state.env.references[label] === 'undefined') {\n state.env.references[label] = { title, href }\n }\n\n state.line = nextLine\n return true\n}\n","// heading (#, ##, ...)\n\nimport { isSpace } from '../common/utils.mjs'\n\nexport default function heading (state, startLine, endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n let max = state.eMarks[startLine]\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n let ch = state.src.charCodeAt(pos)\n\n if (ch !== 0x23/* # */ || pos >= max) { return false }\n\n // count heading level\n let level = 1\n ch = state.src.charCodeAt(++pos)\n while (ch === 0x23/* # */ && pos < max && level <= 6) {\n level++\n ch = state.src.charCodeAt(++pos)\n }\n\n if (level > 6 || (pos < max && !isSpace(ch))) { return false }\n\n if (silent) { return true }\n\n // Let's cut tails like ' ### ' from the end of string\n\n max = state.skipSpacesBack(max, pos)\n const tmp = state.skipCharsBack(max, 0x23, pos) // #\n if (tmp > pos && isSpace(state.src.charCodeAt(tmp - 1))) {\n max = tmp\n }\n\n state.line = startLine + 1\n\n const token_o = state.push('heading_open', 'h' + String(level), 1)\n token_o.markup = '########'.slice(0, level)\n token_o.map = [startLine, state.line]\n\n const token_i = state.push('inline', '', 0)\n token_i.content = state.src.slice(pos, max).trim()\n token_i.map = [startLine, state.line]\n token_i.children = []\n\n const token_c = state.push('heading_close', 'h' + String(level), -1)\n token_c.markup = '########'.slice(0, level)\n\n return true\n}\n","// lheading (---, ===)\n\nexport default function lheading (state, startLine, endLine/*, silent */) {\n const terminatorRules = state.md.block.ruler.getRules('paragraph')\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n const oldParentType = state.parentType\n state.parentType = 'paragraph' // use paragraph to match terminatorRules\n\n // jump line-by-line until empty one or EOF\n let level = 0\n let marker\n let nextLine = startLine + 1\n\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue }\n\n //\n // Check for underline in setext header\n //\n if (state.sCount[nextLine] >= state.blkIndent) {\n let pos = state.bMarks[nextLine] + state.tShift[nextLine]\n const max = state.eMarks[nextLine]\n\n if (pos < max) {\n marker = state.src.charCodeAt(pos)\n\n if (marker === 0x2D/* - */ || marker === 0x3D/* = */) {\n pos = state.skipChars(pos, marker)\n pos = state.skipSpaces(pos)\n\n if (pos >= max) {\n level = (marker === 0x3D/* = */ ? 1 : 2)\n break\n }\n }\n }\n }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue }\n\n // Some tags can terminate paragraph without empty line.\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n if (terminate) { break }\n }\n\n if (!level) {\n // Didn't find valid underline\n return false\n }\n\n const content = state.getLines(startLine, nextLine, state.blkIndent, false).trim()\n\n state.line = nextLine + 1\n\n const token_o = state.push('heading_open', 'h' + String(level), 1)\n token_o.markup = String.fromCharCode(marker)\n token_o.map = [startLine, state.line]\n\n const token_i = state.push('inline', '', 0)\n token_i.content = content\n token_i.map = [startLine, state.line - 1]\n token_i.children = []\n\n const token_c = state.push('heading_close', 'h' + String(level), -1)\n token_c.markup = String.fromCharCode(marker)\n\n state.parentType = oldParentType\n\n return true\n}\n","// Paragraph\n\nexport default function paragraph (state, startLine, endLine) {\n const terminatorRules = state.md.block.ruler.getRules('paragraph')\n const oldParentType = state.parentType\n let nextLine = startLine + 1\n state.parentType = 'paragraph'\n\n // jump line-by-line until empty one or EOF\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue }\n\n // Some tags can terminate paragraph without empty line.\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n if (terminate) { break }\n }\n\n const content = state.getLines(startLine, nextLine, state.blkIndent, false).trim()\n\n state.line = nextLine\n\n const token_o = state.push('paragraph_open', 'p', 1)\n token_o.map = [startLine, state.line]\n\n const token_i = state.push('inline', '', 0)\n token_i.content = content\n token_i.map = [startLine, state.line]\n token_i.children = []\n\n state.push('paragraph_close', 'p', -1)\n\n state.parentType = oldParentType\n\n return true\n}\n","// Inline parser state\n\nimport Token from '../token.mjs'\nimport { isWhiteSpace, isPunctChar, isMdAsciiPunct } from '../common/utils.mjs'\n\nfunction StateInline (src, md, env, outTokens) {\n this.src = src\n this.env = env\n this.md = md\n this.tokens = outTokens\n this.tokens_meta = Array(outTokens.length)\n\n this.pos = 0\n this.posMax = this.src.length\n this.level = 0\n this.pending = ''\n this.pendingLevel = 0\n\n // Stores { start: end } pairs. Useful for backtrack\n // optimization of pairs parse (emphasis, strikes).\n this.cache = {}\n\n // List of emphasis-like delimiters for current tag\n this.delimiters = []\n\n // Stack of delimiter lists for upper level tags\n this._prev_delimiters = []\n\n // backtick length => last seen position\n this.backticks = {}\n this.backticksScanned = false\n\n // Counter used to disable inline linkify-it execution\n // inside <a> and markdown links\n this.linkLevel = 0\n}\n\n// Flush pending text\n//\nStateInline.prototype.pushPending = function () {\n const token = new Token('text', '', 0)\n token.content = this.pending\n token.level = this.pendingLevel\n this.tokens.push(token)\n this.pending = ''\n return token\n}\n\n// Push new token to \"stream\".\n// If pending text exists - flush it as text token\n//\nStateInline.prototype.push = function (type, tag, nesting) {\n if (this.pending) {\n this.pushPending()\n }\n\n const token = new Token(type, tag, nesting)\n let token_meta = null\n\n if (nesting < 0) {\n // closing tag\n this.level--\n this.delimiters = this._prev_delimiters.pop()\n }\n\n token.level = this.level\n\n if (nesting > 0) {\n // opening tag\n this.level++\n this._prev_delimiters.push(this.delimiters)\n this.delimiters = []\n token_meta = { delimiters: this.delimiters }\n }\n\n this.pendingLevel = this.level\n this.tokens.push(token)\n this.tokens_meta.push(token_meta)\n return token\n}\n\n// Scan a sequence of emphasis-like markers, and determine whether\n// it can start an emphasis sequence or end an emphasis sequence.\n//\n// - start - position to scan from (it should point at a valid marker);\n// - canSplitWord - determine if these markers can be found inside a word\n//\nStateInline.prototype.scanDelims = function (start, canSplitWord) {\n const max = this.posMax\n const marker = this.src.charCodeAt(start)\n\n // treat beginning of the line as a whitespace\n const lastChar = start > 0 ? this.src.charCodeAt(start - 1) : 0x20\n\n let pos = start\n while (pos < max && this.src.charCodeAt(pos) === marker) { pos++ }\n\n const count = pos - start\n\n // treat end of the line as a whitespace\n const nextChar = pos < max ? this.src.charCodeAt(pos) : 0x20\n\n const isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar))\n const isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar))\n\n const isLastWhiteSpace = isWhiteSpace(lastChar)\n const isNextWhiteSpace = isWhiteSpace(nextChar)\n\n const left_flanking =\n !isNextWhiteSpace && (!isNextPunctChar || isLastWhiteSpace || isLastPunctChar)\n const right_flanking =\n !isLastWhiteSpace && (!isLastPunctChar || isNextWhiteSpace || isNextPunctChar)\n\n const can_open = left_flanking && (canSplitWord || !right_flanking || isLastPunctChar)\n const can_close = right_flanking && (canSplitWord || !left_flanking || isNextPunctChar)\n\n return { can_open, can_close, length: count }\n}\n\n// re-export Token class to use in block rules\nStateInline.prototype.Token = Token\n\nexport default StateInline\n","// Skip text characters for text token, place those to pending buffer\n// and increment current pos\n\n// Rule to skip pure text\n// '{}$%@~+=:' reserved for extentions\n\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n\n// !!!! Don't confuse with \"Markdown ASCII Punctuation\" chars\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\nfunction isTerminatorChar (ch) {\n switch (ch) {\n case 0x0A/* \\n */:\n case 0x21/* ! */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2D/* - */:\n case 0x3A/* : */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true\n default:\n return false\n }\n}\n\nexport default function text (state, silent) {\n let pos = state.pos\n\n while (pos < state.posMax && !isTerminatorChar(state.src.charCodeAt(pos))) {\n pos++\n }\n\n if (pos === state.pos) { return false }\n\n if (!silent) { state.pending += state.src.slice(state.pos, pos) }\n\n state.pos = pos\n\n return true\n}\n\n// Alternative implementation, for memory.\n//\n// It costs 10% of performance, but allows extend terminators list, if place it\n// to `ParserInline` property. Probably, will switch to it sometime, such\n// flexibility required.\n\n/*\nvar TERMINATOR_RE = /[\\n!#$%&*+\\-:<=>@[\\\\\\]^_`{}~]/;\n\nmodule.exports = function text(state, silent) {\n var pos = state.pos,\n idx = state.src.slice(pos).search(TERMINATOR_RE);\n\n // first char is terminator -> empty text\n if (idx === 0) { return false; }\n\n // no terminator -> text till end of string\n if (idx < 0) {\n if (!silent) { state.pending += state.src.slice(pos); }\n state.pos = state.src.length;\n return true;\n }\n\n if (!silent) { state.pending += state.src.slice(pos, pos + idx); }\n\n state.pos += idx;\n\n return true;\n}; */\n","// Process links like https://example.org/\n\n// RFC3986: scheme = ALPHA *( ALPHA / DIGIT / \"+\" / \"-\" / \".\" )\nconst SCHEME_RE = /(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i\n\nexport default function linkify (state, silent) {\n if (!state.md.options.linkify) return false\n if (state.linkLevel > 0) return false\n\n const pos = state.pos\n const max = state.posMax\n\n if (pos + 3 > max) return false\n if (state.src.charCodeAt(pos) !== 0x3A/* : */) return false\n if (state.src.charCodeAt(pos + 1) !== 0x2F/* / */) return false\n if (state.src.charCodeAt(pos + 2) !== 0x2F/* / */) return false\n\n const match = state.pending.match(SCHEME_RE)\n if (!match) return false\n\n const proto = match[1]\n\n const link = state.md.linkify.matchAtStart(state.src.slice(pos - proto.length))\n if (!link) return false\n\n let url = link.url\n\n // invalid link, but still detected by linkify somehow;\n // need to check to prevent infinite loop below\n if (url.length <= proto.length) return false\n\n // disallow '*' at the end of the link (conflicts with emphasis)\n // do manual backsearch to avoid perf issues with regex /\\*+$/ on \"****...****a\".\n let urlEnd = url.length\n while (urlEnd > 0 && url.charCodeAt(urlEnd - 1) === 0x2A/* * */) {\n urlEnd--\n }\n if (urlEnd !== url.length) {\n url = url.slice(0, urlEnd)\n }\n\n const fullUrl = state.md.normalizeLink(url)\n if (!state.md.validateLink(fullUrl)) return false\n\n if (!silent) {\n state.pending = state.pending.slice(0, -proto.length)\n\n const token_o = state.push('link_open', 'a', 1)\n token_o.attrs = [['href', fullUrl]]\n token_o.markup = 'linkify'\n token_o.info = 'auto'\n\n const token_t = state.push('text', '', 0)\n token_t.content = state.md.normalizeLinkText(url)\n\n const token_c = state.push('link_close', 'a', -1)\n token_c.markup = 'linkify'\n token_c.info = 'auto'\n }\n\n state.pos += url.length - proto.length\n return true\n}\n","// Process escaped chars and hardbreaks\n\nimport { isSpace } from '../common/utils.mjs'\n\nconst ESCAPED = []\n\nfor (let i = 0; i < 256; i++) { ESCAPED.push(0) }\n\n'\\\\!\"#$%&\\'()*+,./:;<=>?@[]^_`{|}~-'\n .split('').forEach(function (ch) { ESCAPED[ch.charCodeAt(0)] = 1 })\n\nexport default function escape (state, silent) {\n let pos = state.pos\n const max = state.posMax\n\n if (state.src.charCodeAt(pos) !== 0x5C/* \\ */) return false\n pos++\n\n // '\\' at the end of the inline block\n if (pos >= max) return false\n\n let ch1 = state.src.charCodeAt(pos)\n\n if (ch1 === 0x0A) {\n if (!silent) {\n state.push('hardbreak', 'br', 0)\n }\n\n pos++\n // skip leading whitespaces from next line\n while (pos < max) {\n ch1 = state.src.charCodeAt(pos)\n if (!isSpace(ch1)) break\n pos++\n }\n\n state.pos = pos\n return true\n }\n\n let escapedStr = state.src[pos]\n\n if (ch1 >= 0xD800 && ch1 <= 0xDBFF && pos + 1 < max) {\n const ch2 = state.src.charCodeAt(pos + 1)\n\n if (ch2 >= 0xDC00 && ch2 <= 0xDFFF) {\n escapedStr += state.src[pos + 1]\n pos++\n }\n }\n\n const origStr = '\\\\' + escapedStr\n\n if (!silent) {\n const token = state.push('text_special', '', 0)\n\n if (ch1 < 256 && ESCAPED[ch1] !== 0) {\n token.content = escapedStr\n } else {\n token.content = origStr\n }\n\n token.markup = origStr\n token.info = 'escape'\n }\n\n state.pos = pos + 1\n return true\n}\n","// ~~strike through~~\n//\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nfunction strikethrough_tokenize (state, silent) {\n const start = state.pos\n const marker = state.src.charCodeAt(start)\n\n if (silent) { return false }\n\n if (marker !== 0x7E/* ~ */) { return false }\n\n const scanned = state.scanDelims(state.pos, true)\n let len = scanned.length\n const ch = String.fromCharCode(marker)\n\n if (len < 2) { return false }\n\n let token\n\n if (len % 2) {\n token = state.push('text', '', 0)\n token.content = ch\n len--\n }\n\n for (let i = 0; i < len; i += 2) {\n token = state.push('text', '', 0)\n token.content = ch + ch\n\n state.delimiters.push({\n marker,\n length: 0, // disable \"rule of 3\" length checks meant for emphasis\n token: state.tokens.length - 1,\n end: -1,\n open: scanned.can_open,\n close: scanned.can_close\n })\n }\n\n state.pos += scanned.length\n\n return true\n}\n\nfunction postProcess (state, delimiters) {\n let token\n const loneMarkers = []\n const max = delimiters.length\n\n for (let i = 0; i < max; i++) {\n const startDelim = delimiters[i]\n\n if (startDelim.marker !== 0x7E/* ~ */) {\n continue\n }\n\n if (startDelim.end === -1) {\n continue\n }\n\n const endDelim = delimiters[startDelim.end]\n\n token = state.tokens[startDelim.token]\n token.type = 's_open'\n token.tag = 's'\n token.nesting = 1\n token.markup = '~~'\n token.content = ''\n\n token = state.tokens[endDelim.token]\n token.type = 's_close'\n token.tag = 's'\n token.nesting = -1\n token.markup = '~~'\n token.content = ''\n\n if (state.tokens[endDelim.token - 1].type === 'text' &&\n state.tokens[endDelim.token - 1].content === '~') {\n loneMarkers.push(endDelim.token - 1)\n }\n }\n\n // If a marker sequence has an odd number of characters, it's splitted\n // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n // start of the sequence.\n //\n // So, we have to move all those markers after subsequent s_close tags.\n //\n while (loneMarkers.length) {\n const i = loneMarkers.pop()\n let j = i + 1\n\n while (j < state.tokens.length && state.tokens[j].type === 's_close') {\n j++\n }\n\n j--\n\n if (i !== j) {\n token = state.tokens[j]\n state.tokens[j] = state.tokens[i]\n state.tokens[i] = token\n }\n }\n}\n\n// Walk through delimiter list and replace text tokens with tags\n//\nfunction strikethrough_postProcess (state) {\n const tokens_meta = state.tokens_meta\n const max = state.tokens_meta.length\n\n postProcess(state, state.delimiters)\n\n for (let curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters)\n }\n }\n}\n\nexport default {\n tokenize: strikethrough_tokenize,\n postProcess: strikethrough_postProcess\n}\n","// Process *this* and _that_\n//\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nfunction emphasis_tokenize (state, silent) {\n const start = state.pos\n const marker = state.src.charCodeAt(start)\n\n if (silent) { return false }\n\n if (marker !== 0x5F /* _ */ && marker !== 0x2A /* * */) { return false }\n\n const scanned = state.scanDelims(state.pos, marker === 0x2A)\n\n for (let i = 0; i < scanned.length; i++) {\n const token = state.push('text', '', 0)\n token.content = String.fromCharCode(marker)\n\n state.delimiters.push({\n // Char code of the starting marker (number).\n //\n marker,\n\n // Total length of these series of delimiters.\n //\n length: scanned.length,\n\n // A position of the token this delimiter corresponds to.\n //\n token: state.tokens.length - 1,\n\n // If this delimiter is matched as a valid opener, `end` will be\n // equal to its position, otherwise it's `-1`.\n //\n end: -1,\n\n // Boolean flags that determine if this delimiter could open or close\n // an emphasis.\n //\n open: scanned.can_open,\n close: scanned.can_close\n })\n }\n\n state.pos += scanned.length\n\n return true\n}\n\nfunction postProcess (state, delimiters) {\n const max = delimiters.length\n\n for (let i = max - 1; i >= 0; i--) {\n const startDelim = delimiters[i]\n\n if (startDelim.marker !== 0x5F/* _ */ && startDelim.marker !== 0x2A/* * */) {\n continue\n }\n\n // Process only opening markers\n if (startDelim.end === -1) {\n continue\n }\n\n const endDelim = delimiters[startDelim.end]\n\n // If the previous delimiter has the same marker and is adjacent to this one,\n // merge those into one strong delimiter.\n //\n // `<em><em>whatever</em></em>` -> `<strong>whatever</strong>`\n //\n const isStrong = i > 0 &&\n delimiters[i - 1].end === startDelim.end + 1 &&\n // check that first two markers match and adjacent\n delimiters[i - 1].marker === startDelim.marker &&\n delimiters[i - 1].token === startDelim.token - 1 &&\n // check that last two markers are adjacent (we can safely assume they match)\n delimiters[startDelim.end + 1].token === endDelim.token + 1\n\n const ch = String.fromCharCode(startDelim.marker)\n\n const token_o = state.tokens[startDelim.token]\n token_o.type = isStrong ? 'strong_open' : 'em_open'\n token_o.tag = isStrong ? 'strong' : 'em'\n token_o.nesting = 1\n token_o.markup = isStrong ? ch + ch : ch\n token_o.content = ''\n\n const token_c = state.tokens[endDelim.token]\n token_c.type = isStrong ? 'strong_close' : 'em_close'\n token_c.tag = isStrong ? 'strong' : 'em'\n token_c.nesting = -1\n token_c.markup = isStrong ? ch + ch : ch\n token_c.content = ''\n\n if (isStrong) {\n state.tokens[delimiters[i - 1].token].content = ''\n state.tokens[delimiters[startDelim.end + 1].token].content = ''\n i--\n }\n }\n}\n\n// Walk through delimiter list and replace text tokens with tags\n//\nfunction emphasis_post_process (state) {\n const tokens_meta = state.tokens_meta\n const max = state.tokens_meta.length\n\n postProcess(state, state.delimiters)\n\n for (let curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters)\n }\n }\n}\n\nexport default {\n tokenize: emphasis_tokenize,\n postProcess: emphasis_post_process\n}\n","// Process autolinks '<protocol:...>'\n\n/* eslint max-len:0 */\nconst EMAIL_RE = /^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/\n/* eslint-disable-next-line no-control-regex */\nconst AUTOLINK_RE = /^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\\x00-\\x20]*)$/\n\nexport default function autolink (state, silent) {\n let pos = state.pos\n\n if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false }\n\n const start = state.pos\n const max = state.posMax\n\n for (;;) {\n if (++pos >= max) return false\n\n const ch = state.src.charCodeAt(pos)\n\n if (ch === 0x3C /* < */) return false\n if (ch === 0x3E /* > */) break\n }\n\n const url = state.src.slice(start + 1, pos)\n\n if (AUTOLINK_RE.test(url)) {\n const fullUrl = state.md.normalizeLink(url)\n if (!state.md.validateLink(fullUrl)) { return false }\n\n if (!silent) {\n const token_o = state.push('link_open', 'a', 1)\n token_o.attrs = [['href', fullUrl]]\n token_o.markup = 'autolink'\n token_o.info = 'auto'\n\n const token_t = state.push('text', '', 0)\n token_t.content = state.md.normalizeLinkText(url)\n\n const token_c = state.push('link_close', 'a', -1)\n token_c.markup = 'autolink'\n token_c.info = 'auto'\n }\n\n state.pos += url.length + 2\n return true\n }\n\n if (EMAIL_RE.test(url)) {\n const fullUrl = state.md.normalizeLink('mailto:' + url)\n if (!state.md.validateLink(fullUrl)) { return false }\n\n if (!silent) {\n const token_o = state.push('link_open', 'a', 1)\n token_o.attrs = [['href', fullUrl]]\n token_o.markup = 'autolink'\n token_o.info = 'auto'\n\n const token_t = state.push('text', '', 0)\n token_t.content = state.md.normalizeLinkText(url)\n\n const token_c = state.push('link_close', 'a', -1)\n token_c.markup = 'autolink'\n token_c.info = 'auto'\n }\n\n state.pos += url.length + 2\n return true\n }\n\n return false\n}\n","// Process html entity - {, ¯, ", ...\n\nimport { decodeHTML } from 'entities'\nimport { isValidEntityCode, fromCodePoint } from '../common/utils.mjs'\n\nconst DIGITAL_RE = /^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i\nconst NAMED_RE = /^&([a-z][a-z0-9]{1,31});/i\n\nexport default function entity (state, silent) {\n const pos = state.pos\n const max = state.posMax\n\n if (state.src.charCodeAt(pos) !== 0x26/* & */) return false\n\n if (pos + 1 >= max) return false\n\n const ch = state.src.charCodeAt(pos + 1)\n\n if (ch === 0x23 /* # */) {\n const match = state.src.slice(pos).match(DIGITAL_RE)\n if (match) {\n if (!silent) {\n const code = match[1][0].toLowerCase() === 'x' ? parseInt(match[1].slice(1), 16) : parseInt(match[1], 10)\n\n const token = state.push('text_special', '', 0)\n token.content = isValidEntityCode(code) ? fromCodePoint(code) : fromCodePoint(0xFFFD)\n token.markup = match[0]\n token.info = 'entity'\n }\n state.pos += match[0].length\n return true\n }\n } else {\n const match = state.src.slice(pos).match(NAMED_RE)\n if (match) {\n const decoded = decodeHTML(match[0])\n if (decoded !== match[0]) {\n if (!silent) {\n const token = state.push('text_special', '', 0)\n token.content = decoded\n token.markup = match[0]\n token.info = 'entity'\n }\n state.pos += match[0].length\n return true\n }\n }\n }\n\n return false\n}\n","// For each opening emphasis-like marker find a matching closing one\n//\n\nfunction processDelimiters (delimiters) {\n const openersBottom = {}\n const max = delimiters.length\n\n if (!max) return\n\n // headerIdx is the first delimiter of the current (where closer is) delimiter run\n let headerIdx = 0\n let lastTokenIdx = -2 // needs any value lower than -1\n const jumps = []\n\n for (let closerIdx = 0; closerIdx < max; closerIdx++) {\n const closer = delimiters[closerIdx]\n\n jumps.push(0)\n\n // markers belong to same delimiter run if:\n // - they have adjacent tokens\n // - AND markers are the same\n //\n if (delimiters[headerIdx].marker !== closer.marker || lastTokenIdx !== closer.token - 1) {\n headerIdx = closerIdx\n }\n\n lastTokenIdx = closer.token\n\n // Length is only used for emphasis-specific \"rule of 3\",\n // if it's not defined (in strikethrough or 3rd party plugins),\n // we can default it to 0 to disable those checks.\n //\n closer.length = closer.length || 0\n\n if (!closer.close) continue\n\n // Previously calculated lower bounds (previous fails)\n // for each marker, each delimiter length modulo 3,\n // and for whether this closer can be an opener;\n // https://github.com/commonmark/cmark/commit/34250e12ccebdc6372b8b49c44fab57c72443460\n /* eslint-disable-next-line no-prototype-builtins */\n if (!openersBottom.hasOwnProperty(closer.marker)) {\n openersBottom[closer.marker] = [-1, -1, -1, -1, -1, -1]\n }\n\n const minOpenerIdx = openersBottom[closer.marker][(closer.open ? 3 : 0) + (closer.length % 3)]\n\n let openerIdx = headerIdx - jumps[headerIdx] - 1\n\n let newMinOpenerIdx = openerIdx\n\n for (; openerIdx > minOpenerIdx; openerIdx -= jumps[openerIdx] + 1) {\n const opener = delimiters[openerIdx]\n\n if (opener.marker !== closer.marker) continue\n\n if (opener.open && opener.end < 0) {\n let isOddMatch = false\n\n // from spec:\n //\n // If one of the delimiters can both open and close emphasis, then the\n // sum of the lengths of the delimiter runs containing the opening and\n // closing delimiters must not be a multiple of 3 unless both lengths\n // are multiples of 3.\n //\n if (opener.close || closer.open) {\n if ((opener.length + closer.length) % 3 === 0) {\n if (opener.length % 3 !== 0 || closer.length % 3 !== 0) {\n isOddMatch = true\n }\n }\n }\n\n if (!isOddMatch) {\n // If previous delimiter cannot be an opener, we can safely skip\n // the entire sequence in future checks. This is required to make\n // sure algorithm has linear complexity (see *_*_*_*_*_... case).\n //\n const lastJump = openerIdx > 0 && !delimiters[openerIdx - 1].open\n ? jumps[openerIdx - 1] + 1\n : 0\n\n jumps[closerIdx] = closerIdx - openerIdx + lastJump\n jumps[openerIdx] = lastJump\n\n closer.open = false\n opener.end = closerIdx\n opener.close = false\n newMinOpenerIdx = -1\n // treat next token as start of run,\n // it optimizes skips in **<...>**a**<...>** pathological case\n lastTokenIdx = -2\n break\n }\n }\n }\n\n if (newMinOpenerIdx !== -1) {\n // If match for this delimiter run failed, we want to set lower bound for\n // future lookups. This is required to make sure algorithm has linear\n // complexity.\n //\n // See details here:\n // https://github.com/commonmark/cmark/issues/178#issuecomment-270417442\n //\n openersBottom[closer.marker][(closer.open ? 3 : 0) + ((closer.length || 0) % 3)] = newMinOpenerIdx\n }\n }\n}\n\nexport default function link_pairs (state) {\n const tokens_meta = state.tokens_meta\n const max = state.tokens_meta.length\n\n processDelimiters(state.delimiters)\n\n for (let curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n processDelimiters(tokens_meta[curr].delimiters)\n }\n }\n}\n","/** internal\n * class ParserInline\n *\n * Tokenizes paragraph content.\n **/\n\nimport Ruler from './ruler.mjs'\nimport StateInline from './rules_inline/state_inline.mjs'\n\nimport r_text from './rules_inline/text.mjs'\nimport r_linkify from './rules_inline/linkify.mjs'\nimport r_newline from './rules_inline/newline.mjs'\nimport r_escape from './rules_inline/escape.mjs'\nimport r_backticks from './rules_inline/backticks.mjs'\nimport r_strikethrough from './rules_inline/strikethrough.mjs'\nimport r_emphasis from './rules_inline/emphasis.mjs'\nimport r_link from './rules_inline/link.mjs'\nimport r_image from './rules_inline/image.mjs'\nimport r_autolink from './rules_inline/autolink.mjs'\nimport r_html_inline from './rules_inline/html_inline.mjs'\nimport r_entity from './rules_inline/entity.mjs'\n\nimport r_balance_pairs from './rules_inline/balance_pairs.mjs'\nimport r_fragments_join from './rules_inline/fragments_join.mjs'\n\n// Parser rules\n\nconst _rules = [\n ['text', r_text],\n ['linkify', r_linkify],\n ['newline', r_newline],\n ['escape', r_escape],\n ['backticks', r_backticks],\n ['strikethrough', r_strikethrough.tokenize],\n ['emphasis', r_emphasis.tokenize],\n ['link', r_link],\n ['image', r_image],\n ['autolink', r_autolink],\n ['html_inline', r_html_inline],\n ['entity', r_entity]\n]\n\n// `rule2` ruleset was created specifically for emphasis/strikethrough\n// post-processing and may be changed in the future.\n//\n// Don't use this for anything except pairs (plugins working with `balance_pairs`).\n//\nconst _rules2 = [\n ['balance_pairs', r_balance_pairs],\n ['strikethrough', r_strikethrough.postProcess],\n ['emphasis', r_emphasis.postProcess],\n // rules for pairs separate '**' into its own text tokens, which may be left unused,\n // rule below merges unused segments back with the rest of the text\n ['fragments_join', r_fragments_join]\n]\n\n/**\n * new ParserInline()\n **/\nfunction ParserInline () {\n /**\n * ParserInline#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of inline rules.\n **/\n this.ruler = new Ruler()\n\n for (let i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1])\n }\n\n /**\n * ParserInline#ruler2 -> Ruler\n *\n * [[Ruler]] instance. Second ruler used for post-processing\n * (e.g. in emphasis-like rules).\n **/\n this.ruler2 = new Ruler()\n\n for (let i = 0; i < _rules2.length; i++) {\n this.ruler2.push(_rules2[i][0], _rules2[i][1])\n }\n}\n\n// Skip single token by running all rules in validation mode;\n// returns `true` if any rule reported success\n//\nParserInline.prototype.skipToken = function (state) {\n const pos = state.pos\n const rules = this.ruler.getRules('')\n const len = rules.length\n const maxNesting = state.md.options.maxNesting\n const cache = state.cache\n\n if (typeof cache[pos] !== 'undefined') {\n state.pos = cache[pos]\n return\n }\n\n let ok = false\n\n if (state.level < maxNesting) {\n for (let i = 0; i < len; i++) {\n // Increment state.level and decrement it later to limit recursion.\n // It's harmless to do here, because no tokens are created. But ideally,\n // we'd need a separate private state variable for this purpose.\n //\n state.level++\n ok = rules[i](state, true)\n state.level--\n\n if (ok) {\n if (pos >= state.pos) { throw new Error(\"inline rule didn't increment state.pos\") }\n break\n }\n }\n } else {\n // Too much nesting, just skip until the end of the paragraph.\n //\n // NOTE: this will cause links to behave incorrectly in the following case,\n // when an amount of `[` is exactly equal to `maxNesting + 1`:\n //\n // [[[[[[[[[[[[[[[[[[[[[foo]()\n //\n // TODO: remove this workaround when CM standard will allow nested links\n // (we can replace it by preventing links from being parsed in\n // validation mode)\n //\n state.pos = state.posMax\n }\n\n if (!ok) { state.pos++ }\n cache[pos] = state.pos\n}\n\n// Generate tokens for input range\n//\nParserInline.prototype.tokenize = function (state) {\n const rules = this.ruler.getRules('')\n const len = rules.length\n const end = state.posMax\n const maxNesting = state.md.options.maxNesting\n\n while (state.pos < end) {\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.pos`\n // - update `state.tokens`\n // - return true\n const prevPos = state.pos\n let ok = false\n\n if (state.level < maxNesting) {\n for (let i = 0; i < len; i++) {\n ok = rules[i](state, false)\n if (ok) {\n if (prevPos >= state.pos) { throw new Error(\"inline rule didn't increment state.pos\") }\n break\n }\n }\n }\n\n if (ok) {\n if (state.pos >= end) { break }\n continue\n }\n\n state.pending += state.src[state.pos++]\n }\n\n if (state.pending) {\n state.pushPending()\n }\n}\n\n/**\n * ParserInline.parse(str, md, env, outTokens)\n *\n * Process input string and push inline tokens into `outTokens`\n **/\nParserInline.prototype.parse = function (str, md, env, outTokens) {\n const state = new this.State(str, md, env, outTokens)\n\n this.tokenize(state)\n\n const rules = this.ruler2.getRules('')\n const len = rules.length\n\n for (let i = 0; i < len; i++) {\n rules[i](state)\n }\n}\n\nParserInline.prototype.State = StateInline\n\nexport default ParserInline\n","// Proceess '\\n'\n\nimport { isSpace } from '../common/utils.mjs'\n\nexport default function newline (state, silent) {\n let pos = state.pos\n\n if (state.src.charCodeAt(pos) !== 0x0A/* \\n */) { return false }\n\n const pmax = state.pending.length - 1\n const max = state.posMax\n\n // ' \\n' -> hardbreak\n // Lookup in pending chars is bad practice! Don't copy to other rules!\n // Pending string is stored in concat mode, indexed lookups will cause\n // convertion to flat mode.\n if (!silent) {\n if (pmax >= 0 && state.pending.charCodeAt(pmax) === 0x20) {\n if (pmax >= 1 && state.pending.charCodeAt(pmax - 1) === 0x20) {\n // Find whitespaces tail of pending chars.\n let ws = pmax - 1\n while (ws >= 1 && state.pending.charCodeAt(ws - 1) === 0x20) ws--\n\n state.pending = state.pending.slice(0, ws)\n state.push('hardbreak', 'br', 0)\n } else {\n state.pending = state.pending.slice(0, -1)\n state.push('softbreak', 'br', 0)\n }\n } else {\n state.push('softbreak', 'br', 0)\n }\n }\n\n pos++\n\n // skip heading spaces for next line\n while (pos < max && isSpace(state.src.charCodeAt(pos))) { pos++ }\n\n state.pos = pos\n return true\n}\n","// Parse backticks\n\nexport default function backtick (state, silent) {\n let pos = state.pos\n const ch = state.src.charCodeAt(pos)\n\n if (ch !== 0x60/* ` */) { return false }\n\n const start = pos\n pos++\n const max = state.posMax\n\n // scan marker length\n while (pos < max && state.src.charCodeAt(pos) === 0x60/* ` */) { pos++ }\n\n const marker = state.src.slice(start, pos)\n const openerLength = marker.length\n\n if (state.backticksScanned && (state.backticks[openerLength] || 0) <= start) {\n if (!silent) state.pending += marker\n state.pos += openerLength\n return true\n }\n\n let matchEnd = pos\n let matchStart\n\n // Nothing found in the cache, scan until the end of the line (or until marker is found)\n while ((matchStart = state.src.indexOf('`', matchEnd)) !== -1) {\n matchEnd = matchStart + 1\n\n // scan marker length\n while (matchEnd < max && state.src.charCodeAt(matchEnd) === 0x60/* ` */) { matchEnd++ }\n\n const closerLength = matchEnd - matchStart\n\n if (closerLength === openerLength) {\n // Found matching closer length.\n if (!silent) {\n const token = state.push('code_inline', 'code', 0)\n token.markup = marker\n token.content = state.src.slice(pos, matchStart)\n .replace(/\\n/g, ' ')\n .replace(/^ (.+) $/, '$1')\n }\n state.pos = matchEnd\n return true\n }\n\n // Some different length found, put it in cache as upper limit of where closer can be found\n state.backticks[closerLength] = matchStart\n }\n\n // Scanned through the end, didn't find anything\n state.backticksScanned = true\n\n if (!silent) state.pending += marker\n state.pos += openerLength\n return true\n}\n","// Process [link](<to> \"stuff\")\n\nimport { normalizeReference, isSpace } from '../common/utils.mjs'\n\nexport default function link (state, silent) {\n let code, label, res, ref\n let href = ''\n let title = ''\n let start = state.pos\n let parseReference = true\n\n if (state.src.charCodeAt(state.pos) !== 0x5B/* [ */) { return false }\n\n const oldPos = state.pos\n const max = state.posMax\n const labelStart = state.pos + 1\n const labelEnd = state.md.helpers.parseLinkLabel(state, state.pos, true)\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false }\n\n let pos = labelEnd + 1\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // might have found a valid shortcut link, disable reference parsing\n parseReference = false\n\n // [link]( <href> \"title\" )\n // ^^ skipping these spaces\n pos++\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n if (pos >= max) { return false }\n\n // [link]( <href> \"title\" )\n // ^^^^^^ parsing link destination\n start = pos\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax)\n if (res.ok) {\n href = state.md.normalizeLink(res.str)\n if (state.md.validateLink(href)) {\n pos = res.pos\n } else {\n href = ''\n }\n\n // [link]( <href> \"title\" )\n // ^^ skipping these spaces\n start = pos\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n\n // [link]( <href> \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax)\n if (pos < max && start !== pos && res.ok) {\n title = res.str\n pos = res.pos\n\n // [link]( <href> \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n }\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n // parsing a valid shortcut link failed, fallback to reference\n parseReference = true\n }\n pos++\n }\n\n if (parseReference) {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1\n pos = state.md.helpers.parseLinkLabel(state, pos)\n if (pos >= 0) {\n label = state.src.slice(start, pos++)\n } else {\n pos = labelEnd + 1\n }\n } else {\n pos = labelEnd + 1\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd) }\n\n ref = state.env.references[normalizeReference(label)]\n if (!ref) {\n state.pos = oldPos\n return false\n }\n href = ref.href\n title = ref.title\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n state.pos = labelStart\n state.posMax = labelEnd\n\n const token_o = state.push('link_open', 'a', 1)\n const attrs = [['href', href]]\n token_o.attrs = attrs\n if (title) {\n attrs.push(['title', title])\n }\n\n state.linkLevel++\n state.md.inline.tokenize(state)\n state.linkLevel--\n\n state.push('link_close', 'a', -1)\n }\n\n state.pos = pos\n state.posMax = max\n return true\n}\n","// Process \n\nimport { normalizeReference, isSpace } from '../common/utils.mjs'\n\nexport default function image (state, silent) {\n let code, content, label, pos, ref, res, title, start\n let href = ''\n const oldPos = state.pos\n const max = state.posMax\n\n if (state.src.charCodeAt(state.pos) !== 0x21/* ! */) { return false }\n if (state.src.charCodeAt(state.pos + 1) !== 0x5B/* [ */) { return false }\n\n const labelStart = state.pos + 2\n const labelEnd = state.md.helpers.parseLinkLabel(state, state.pos + 1, false)\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false }\n\n pos = labelEnd + 1\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // [link]( <href> \"title\" )\n // ^^ skipping these spaces\n pos++\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n if (pos >= max) { return false }\n\n // [link]( <href> \"title\" )\n // ^^^^^^ parsing link destination\n start = pos\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax)\n if (res.ok) {\n href = state.md.normalizeLink(res.str)\n if (state.md.validateLink(href)) {\n pos = res.pos\n } else {\n href = ''\n }\n }\n\n // [link]( <href> \"title\" )\n // ^^ skipping these spaces\n start = pos\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n\n // [link]( <href> \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax)\n if (pos < max && start !== pos && res.ok) {\n title = res.str\n pos = res.pos\n\n // [link]( <href> \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n } else {\n title = ''\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n state.pos = oldPos\n return false\n }\n pos++\n } else {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1\n pos = state.md.helpers.parseLinkLabel(state, pos)\n if (pos >= 0) {\n label = state.src.slice(start, pos++)\n } else {\n pos = labelEnd + 1\n }\n } else {\n pos = labelEnd + 1\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd) }\n\n ref = state.env.references[normalizeReference(label)]\n if (!ref) {\n state.pos = oldPos\n return false\n }\n href = ref.href\n title = ref.title\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n content = state.src.slice(labelStart, labelEnd)\n\n const tokens = []\n state.md.inline.parse(\n content,\n state.md,\n state.env,\n tokens\n )\n\n const token = state.push('image', 'img', 0)\n const attrs = [['src', href], ['alt', '']]\n token.attrs = attrs\n token.children = tokens\n token.content = content\n\n if (title) {\n attrs.push(['title', title])\n }\n }\n\n state.pos = pos\n state.posMax = max\n return true\n}\n","// Process html tags\n\nimport { HTML_TAG_RE } from '../common/html_re.mjs'\n\nfunction isLinkOpen (str) {\n return /^<a[>\\s]/i.test(str)\n}\nfunction isLinkClose (str) {\n return /^<\\/a\\s*>/i.test(str)\n}\n\nfunction isLetter (ch) {\n /* eslint no-bitwise:0 */\n const lc = ch | 0x20 // to lower case\n return (lc >= 0x61/* a */) && (lc <= 0x7a/* z */)\n}\n\nexport default function html_inline (state, silent) {\n if (!state.md.options.html) { return false }\n\n // Check start\n const max = state.posMax\n const pos = state.pos\n if (state.src.charCodeAt(pos) !== 0x3C/* < */ ||\n pos + 2 >= max) {\n return false\n }\n\n // Quick fail on second char\n const ch = state.src.charCodeAt(pos + 1)\n if (ch !== 0x21/* ! */ &&\n ch !== 0x3F/* ? */ &&\n ch !== 0x2F/* / */ &&\n !isLetter(ch)) {\n return false\n }\n\n const match = state.src.slice(pos).match(HTML_TAG_RE)\n if (!match) { return false }\n\n if (!silent) {\n const token = state.push('html_inline', '', 0)\n token.content = match[0]\n\n if (isLinkOpen(token.content)) state.linkLevel++\n if (isLinkClose(token.content)) state.linkLevel--\n }\n state.pos += match[0].length\n return true\n}\n","// Clean up tokens after emphasis and strikethrough postprocessing:\n// merge adjacent text nodes into one and re-calculate all token levels\n//\n// This is necessary because initially emphasis delimiter markers (*, _, ~)\n// are treated as their own separate text tokens. Then emphasis rule either\n// leaves them as text (needed to merge with adjacent text) or turns them\n// into opening/closing tags (which messes up levels inside).\n//\n\nexport default function fragments_join (state) {\n let curr, last\n let level = 0\n const tokens = state.tokens\n const max = state.tokens.length\n\n for (curr = last = 0; curr < max; curr++) {\n // re-calculate levels after emphasis/strikethrough turns some text nodes\n // into opening/closing tags\n if (tokens[curr].nesting < 0) level-- // closing tag\n tokens[curr].level = level\n if (tokens[curr].nesting > 0) level++ // opening tag\n\n if (tokens[curr].type === 'text' &&\n curr + 1 < max &&\n tokens[curr + 1].type === 'text') {\n // collapse two adjacent text nodes\n tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content\n } else {\n if (curr !== last) { tokens[last] = tokens[curr] }\n\n last++\n }\n }\n\n if (curr !== last) {\n tokens.length = last\n }\n}\n","import reFactory from './lib/re.mjs'\n\n//\n// Helpers\n//\n\n// Merge objects\n//\nfunction assign (obj /* from1, from2, from3, ... */) {\n const sources = Array.prototype.slice.call(arguments, 1)\n\n sources.forEach(function (source) {\n if (!source) { return }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key]\n })\n })\n\n return obj\n}\n\nfunction _class (obj) { return Object.prototype.toString.call(obj) }\nfunction isString (obj) { return _class(obj) === '[object String]' }\nfunction isObject (obj) { return _class(obj) === '[object Object]' }\nfunction isRegExp (obj) { return _class(obj) === '[object RegExp]' }\nfunction isFunction (obj) { return _class(obj) === '[object Function]' }\n\nfunction escapeRE (str) { return str.replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&') }\n\n//\n\nconst defaultOptions = {\n fuzzyLink: true,\n fuzzyEmail: true,\n fuzzyIP: false\n}\n\nfunction isOptionsObj (obj) {\n return Object.keys(obj || {}).reduce(function (acc, k) {\n /* eslint-disable-next-line no-prototype-builtins */\n return acc || defaultOptions.hasOwnProperty(k)\n }, false)\n}\n\nconst defaultSchemas = {\n 'http:': {\n validate: function (text, pos, self) {\n const tail = text.slice(pos)\n\n if (!self.re.http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.http = new RegExp(\n '^\\\\/\\\\/' + self.re.src_auth + self.re.src_host_port_strict + self.re.src_path, 'i'\n )\n }\n if (self.re.http.test(tail)) {\n return tail.match(self.re.http)[0].length\n }\n return 0\n }\n },\n 'https:': 'http:',\n 'ftp:': 'http:',\n '//': {\n validate: function (text, pos, self) {\n const tail = text.slice(pos)\n\n if (!self.re.no_http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.no_http = new RegExp(\n '^' +\n self.re.src_auth +\n // Don't allow single-level domains, because of false positives like '//test'\n // with code comments\n '(?:localhost|(?:(?:' + self.re.src_domain + ')\\\\.)+' + self.re.src_domain_root + ')' +\n self.re.src_port +\n self.re.src_host_terminator +\n self.re.src_path,\n\n 'i'\n )\n }\n\n if (self.re.no_http.test(tail)) {\n // should not be `://` & `///`, that protects from errors in protocol name\n if (pos >= 3 && text[pos - 3] === ':') { return 0 }\n if (pos >= 3 && text[pos - 3] === '/') { return 0 }\n return tail.match(self.re.no_http)[0].length\n }\n return 0\n }\n },\n 'mailto:': {\n validate: function (text, pos, self) {\n const tail = text.slice(pos)\n\n if (!self.re.mailto) {\n self.re.mailto = new RegExp(\n '^' + self.re.src_email_name + '@' + self.re.src_host_strict, 'i'\n )\n }\n if (self.re.mailto.test(tail)) {\n return tail.match(self.re.mailto)[0].length\n }\n return 0\n }\n }\n}\n\n// RE pattern for 2-character tlds (autogenerated by ./support/tlds_2char_gen.js)\n/* eslint-disable-next-line max-len */\nconst tlds_2ch_src_re = 'a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]'\n\n// DON'T try to make PRs with changes. Extend TLDs with LinkifyIt.tlds() instead\nconst tlds_default = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split('|')\n\nfunction resetScanCache (self) {\n self.__index__ = -1\n self.__text_cache__ = ''\n}\n\nfunction createValidator (re) {\n return function (text, pos) {\n const tail = text.slice(pos)\n\n if (re.test(tail)) {\n return tail.match(re)[0].length\n }\n return 0\n }\n}\n\nfunction createNormalizer () {\n return function (match, self) {\n self.normalize(match)\n }\n}\n\n// Schemas compiler. Build regexps.\n//\nfunction compile (self) {\n // Load & clone RE patterns.\n const re = self.re = reFactory(self.__opts__)\n\n // Define dynamic patterns\n const tlds = self.__tlds__.slice()\n\n self.onCompile()\n\n if (!self.__tlds_replaced__) {\n tlds.push(tlds_2ch_src_re)\n }\n tlds.push(re.src_xn)\n\n re.src_tlds = tlds.join('|')\n\n function untpl (tpl) { return tpl.replace('%TLDS%', re.src_tlds) }\n\n re.email_fuzzy = RegExp(untpl(re.tpl_email_fuzzy), 'i')\n re.link_fuzzy = RegExp(untpl(re.tpl_link_fuzzy), 'i')\n re.link_no_ip_fuzzy = RegExp(untpl(re.tpl_link_no_ip_fuzzy), 'i')\n re.host_fuzzy_test = RegExp(untpl(re.tpl_host_fuzzy_test), 'i')\n\n //\n // Compile each schema\n //\n\n const aliases = []\n\n self.__compiled__ = {} // Reset compiled data\n\n function schemaError (name, val) {\n throw new Error('(LinkifyIt) Invalid schema \"' + name + '\": ' + val)\n }\n\n Object.keys(self.__schemas__).forEach(function (name) {\n const val = self.__schemas__[name]\n\n // skip disabled methods\n if (val === null) { return }\n\n const compiled = { validate: null, link: null }\n\n self.__compiled__[name] = compiled\n\n if (isObject(val)) {\n if (isRegExp(val.validate)) {\n compiled.validate = createValidator(val.validate)\n } else if (isFunction(val.validate)) {\n compiled.validate = val.validate\n } else {\n schemaError(name, val)\n }\n\n if (isFunction(val.normalize)) {\n compiled.normalize = val.normalize\n } else if (!val.normalize) {\n compiled.normalize = createNormalizer()\n } else {\n schemaError(name, val)\n }\n\n return\n }\n\n if (isString(val)) {\n aliases.push(name)\n return\n }\n\n schemaError(name, val)\n })\n\n //\n // Compile postponed aliases\n //\n\n aliases.forEach(function (alias) {\n if (!self.__compiled__[self.__schemas__[alias]]) {\n // Silently fail on missed schemas to avoid errons on disable.\n // schemaError(alias, self.__schemas__[alias]);\n return\n }\n\n self.__compiled__[alias].validate =\n self.__compiled__[self.__schemas__[alias]].validate\n self.__compiled__[alias].normalize =\n self.__compiled__[self.__schemas__[alias]].normalize\n })\n\n //\n // Fake record for guessed links\n //\n self.__compiled__[''] = { validate: null, normalize: createNormalizer() }\n\n //\n // Build schema condition\n //\n const slist = Object.keys(self.__compiled__)\n .filter(function (name) {\n // Filter disabled & fake schemas\n return name.length > 0 && self.__compiled__[name]\n })\n .map(escapeRE)\n .join('|')\n // (?!_) cause 1.5x slowdown\n self.re.schema_test = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'i')\n self.re.schema_search = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'ig')\n self.re.schema_at_start = RegExp('^' + self.re.schema_search.source, 'i')\n\n self.re.pretest = RegExp(\n '(' + self.re.schema_test.source + ')|(' + self.re.host_fuzzy_test.source + ')|@',\n 'i'\n )\n\n //\n // Cleanup\n //\n\n resetScanCache(self)\n}\n\n/**\n * class Match\n *\n * Match result. Single element of array, returned by [[LinkifyIt#match]]\n **/\nfunction Match (self, shift) {\n const start = self.__index__\n const end = self.__last_index__\n const text = self.__text_cache__.slice(start, end)\n\n /**\n * Match#schema -> String\n *\n * Prefix (protocol) for matched string.\n **/\n this.schema = self.__schema__.toLowerCase()\n /**\n * Match#index -> Number\n *\n * First position of matched string.\n **/\n this.index = start + shift\n /**\n * Match#lastIndex -> Number\n *\n * Next position after matched string.\n **/\n this.lastIndex = end + shift\n /**\n * Match#raw -> String\n *\n * Matched string.\n **/\n this.raw = text\n /**\n * Match#text -> String\n *\n * Notmalized text of matched string.\n **/\n this.text = text\n /**\n * Match#url -> String\n *\n * Normalized url of matched string.\n **/\n this.url = text\n}\n\nfunction createMatch (self, shift) {\n const match = new Match(self, shift)\n\n self.__compiled__[match.schema].normalize(match, self)\n\n return match\n}\n\n/**\n * class LinkifyIt\n **/\n\n/**\n * new LinkifyIt(schemas, options)\n * - schemas (Object): Optional. Additional schemas to validate (prefix/validator)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Creates new linkifier instance with optional additional schemas.\n * Can be called without `new` keyword for convenience.\n *\n * By default understands:\n *\n * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links\n * - \"fuzzy\" links and emails (example.com, foo@bar.com).\n *\n * `schemas` is an object, where each key/value describes protocol/rule:\n *\n * - __key__ - link prefix (usually, protocol name with `:` at the end, `skype:`\n * for example). `linkify-it` makes shure that prefix is not preceeded with\n * alphanumeric char and symbols. Only whitespaces and punctuation allowed.\n * - __value__ - rule to check tail after link prefix\n * - _String_ - just alias to existing rule\n * - _Object_\n * - _validate_ - validator function (should return matched length on success),\n * or `RegExp`.\n * - _normalize_ - optional function to normalize text & url of matched result\n * (for example, for @twitter mentions).\n *\n * `options`:\n *\n * - __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`.\n * - __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts\n * like version numbers. Default `false`.\n * - __fuzzyEmail__ - recognize emails without `mailto:` prefix.\n *\n **/\nfunction LinkifyIt (schemas, options) {\n if (!(this instanceof LinkifyIt)) {\n return new LinkifyIt(schemas, options)\n }\n\n if (!options) {\n if (isOptionsObj(schemas)) {\n options = schemas\n schemas = {}\n }\n }\n\n this.__opts__ = assign({}, defaultOptions, options)\n\n // Cache last tested result. Used to skip repeating steps on next `match` call.\n this.__index__ = -1\n this.__last_index__ = -1 // Next scan position\n this.__schema__ = ''\n this.__text_cache__ = ''\n\n this.__schemas__ = assign({}, defaultSchemas, schemas)\n this.__compiled__ = {}\n\n this.__tlds__ = tlds_default\n this.__tlds_replaced__ = false\n\n this.re = {}\n\n compile(this)\n}\n\n/** chainable\n * LinkifyIt#add(schema, definition)\n * - schema (String): rule name (fixed pattern prefix)\n * - definition (String|RegExp|Object): schema definition\n *\n * Add new rule definition. See constructor description for details.\n **/\nLinkifyIt.prototype.add = function add (schema, definition) {\n this.__schemas__[schema] = definition\n compile(this)\n return this\n}\n\n/** chainable\n * LinkifyIt#set(options)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Set recognition options for links without schema.\n **/\nLinkifyIt.prototype.set = function set (options) {\n this.__opts__ = assign(this.__opts__, options)\n return this\n}\n\n/**\n * LinkifyIt#test(text) -> Boolean\n *\n * Searches linkifiable pattern and returns `true` on success or `false` on fail.\n **/\nLinkifyIt.prototype.test = function test (text) {\n // Reset scan cache\n this.__text_cache__ = text\n this.__index__ = -1\n\n if (!text.length) { return false }\n\n let m, ml, me, len, shift, next, re, tld_pos, at_pos\n\n // try to scan for link with schema - that's the most simple rule\n if (this.re.schema_test.test(text)) {\n re = this.re.schema_search\n re.lastIndex = 0\n while ((m = re.exec(text)) !== null) {\n len = this.testSchemaAt(text, m[2], re.lastIndex)\n if (len) {\n this.__schema__ = m[2]\n this.__index__ = m.index + m[1].length\n this.__last_index__ = m.index + m[0].length + len\n break\n }\n }\n }\n\n if (this.__opts__.fuzzyLink && this.__compiled__['http:']) {\n // guess schemaless links\n tld_pos = text.search(this.re.host_fuzzy_test)\n if (tld_pos >= 0) {\n // if tld is located after found link - no need to check fuzzy pattern\n if (this.__index__ < 0 || tld_pos < this.__index__) {\n if ((ml = text.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) !== null) {\n shift = ml.index + ml[1].length\n\n if (this.__index__ < 0 || shift < this.__index__) {\n this.__schema__ = ''\n this.__index__ = shift\n this.__last_index__ = ml.index + ml[0].length\n }\n }\n }\n }\n }\n\n if (this.__opts__.fuzzyEmail && this.__compiled__['mailto:']) {\n // guess schemaless emails\n at_pos = text.indexOf('@')\n if (at_pos >= 0) {\n // We can't skip this check, because this cases are possible:\n // 192.168.1.1@gmail.com, my.in@example.com\n if ((me = text.match(this.re.email_fuzzy)) !== null) {\n shift = me.index + me[1].length\n next = me.index + me[0].length\n\n if (this.__index__ < 0 || shift < this.__index__ ||\n (shift === this.__index__ && next > this.__last_index__)) {\n this.__schema__ = 'mailto:'\n this.__index__ = shift\n this.__last_index__ = next\n }\n }\n }\n }\n\n return this.__index__ >= 0\n}\n\n/**\n * LinkifyIt#pretest(text) -> Boolean\n *\n * Very quick check, that can give false positives. Returns true if link MAY BE\n * can exists. Can be used for speed optimization, when you need to check that\n * link NOT exists.\n **/\nLinkifyIt.prototype.pretest = function pretest (text) {\n return this.re.pretest.test(text)\n}\n\n/**\n * LinkifyIt#testSchemaAt(text, name, position) -> Number\n * - text (String): text to scan\n * - name (String): rule (schema) name\n * - position (Number): text offset to check from\n *\n * Similar to [[LinkifyIt#test]] but checks only specific protocol tail exactly\n * at given position. Returns length of found pattern (0 on fail).\n **/\nLinkifyIt.prototype.testSchemaAt = function testSchemaAt (text, schema, pos) {\n // If not supported schema check requested - terminate\n if (!this.__compiled__[schema.toLowerCase()]) {\n return 0\n }\n return this.__compiled__[schema.toLowerCase()].validate(text, pos, this)\n}\n\n/**\n * LinkifyIt#match(text) -> Array|null\n *\n * Returns array of found link descriptions or `null` on fail. We strongly\n * recommend to use [[LinkifyIt#test]] first, for best speed.\n *\n * ##### Result match description\n *\n * - __schema__ - link schema, can be empty for fuzzy links, or `//` for\n * protocol-neutral links.\n * - __index__ - offset of matched text\n * - __lastIndex__ - index of next char after mathch end\n * - __raw__ - matched text\n * - __text__ - normalized text\n * - __url__ - link, generated from matched text\n **/\nLinkifyIt.prototype.match = function match (text) {\n const result = []\n let shift = 0\n\n // Try to take previous element from cache, if .test() called before\n if (this.__index__ >= 0 && this.__text_cache__ === text) {\n result.push(createMatch(this, shift))\n shift = this.__last_index__\n }\n\n // Cut head if cache was used\n let tail = shift ? text.slice(shift) : text\n\n // Scan string until end reached\n while (this.test(tail)) {\n result.push(createMatch(this, shift))\n\n tail = tail.slice(this.__last_index__)\n shift += this.__last_index__\n }\n\n if (result.length) {\n return result\n }\n\n return null\n}\n\n/**\n * LinkifyIt#matchAtStart(text) -> Match|null\n *\n * Returns fully-formed (not fuzzy) link if it starts at the beginning\n * of the string, and null otherwise.\n **/\nLinkifyIt.prototype.matchAtStart = function matchAtStart (text) {\n // Reset scan cache\n this.__text_cache__ = text\n this.__index__ = -1\n\n if (!text.length) return null\n\n const m = this.re.schema_at_start.exec(text)\n if (!m) return null\n\n const len = this.testSchemaAt(text, m[2], m[0].length)\n if (!len) return null\n\n this.__schema__ = m[2]\n this.__index__ = m.index + m[1].length\n this.__last_index__ = m.index + m[0].length + len\n\n return createMatch(this, 0)\n}\n\n/** chainable\n * LinkifyIt#tlds(list [, keepOld]) -> this\n * - list (Array): list of tlds\n * - keepOld (Boolean): merge with current list if `true` (`false` by default)\n *\n * Load (or merge) new tlds list. Those are user for fuzzy links (without prefix)\n * to avoid false positives. By default this algorythm used:\n *\n * - hostname with any 2-letter root zones are ok.\n * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф\n * are ok.\n * - encoded (`xn--...`) root zones are ok.\n *\n * If list is replaced, then exact match for 2-chars root zones will be checked.\n **/\nLinkifyIt.prototype.tlds = function tlds (list, keepOld) {\n list = Array.isArray(list) ? list : [list]\n\n if (!keepOld) {\n this.__tlds__ = list.slice()\n this.__tlds_replaced__ = true\n compile(this)\n return this\n }\n\n this.__tlds__ = this.__tlds__.concat(list)\n .sort()\n .filter(function (el, idx, arr) {\n return el !== arr[idx - 1]\n })\n .reverse()\n\n compile(this)\n return this\n}\n\n/**\n * LinkifyIt#normalize(match)\n *\n * Default normalizer (if schema does not define it's own).\n **/\nLinkifyIt.prototype.normalize = function normalize (match) {\n // Do minimal possible changes by default. Need to collect feedback prior\n // to move forward https://github.com/markdown-it/linkify-it/issues/1\n\n if (!match.schema) { match.url = 'http://' + match.url }\n\n if (match.schema === 'mailto:' && !/^mailto:/i.test(match.url)) {\n match.url = 'mailto:' + match.url\n }\n}\n\n/**\n * LinkifyIt#onCompile()\n *\n * Override to modify basic RegExp-s.\n **/\nLinkifyIt.prototype.onCompile = function onCompile () {\n}\n\nexport default LinkifyIt\n","import { Any, Cc, Z, P } from 'uc.micro'\n\nexport default function (opts) {\n const re = {}\n opts = opts || {}\n\n re.src_Any = Any.source\n re.src_Cc = Cc.source\n re.src_Z = Z.source\n re.src_P = P.source\n\n // \\p{\\Z\\P\\Cc\\CF} (white spaces + control + format + punctuation)\n re.src_ZPCc = [re.src_Z, re.src_P, re.src_Cc].join('|')\n\n // \\p{\\Z\\Cc} (white spaces + control)\n re.src_ZCc = [re.src_Z, re.src_Cc].join('|')\n\n // Experimental. List of chars, completely prohibited in links\n // because can separate it from other part of text\n const text_separators = '[><\\uff5c]'\n\n // All possible word characters (everything without punctuation, spaces & controls)\n // Defined via punctuation & spaces to save space\n // Should be something like \\p{\\L\\N\\S\\M} (\\w but without `_`)\n re.src_pseudo_letter = '(?:(?!' + text_separators + '|' + re.src_ZPCc + ')' + re.src_Any + ')'\n // The same as abothe but without [0-9]\n // var src_pseudo_letter_non_d = '(?:(?![0-9]|' + src_ZPCc + ')' + src_Any + ')';\n\n re.src_ip4 =\n\n '(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'\n\n // Prohibit any of \"@/[]()\" in user/pass to avoid wrong domain fetch.\n re.src_auth = '(?:(?:(?!' + re.src_ZCc + '|[@/\\\\[\\\\]()]).)+@)?'\n\n re.src_port =\n\n '(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?'\n\n re.src_host_terminator =\n\n '(?=$|' + text_separators + '|' + re.src_ZPCc + ')' +\n '(?!' + (opts['---'] ? '-(?!--)|' : '-|') + '_|:\\\\d|\\\\.-|\\\\.(?!$|' + re.src_ZPCc + '))'\n\n re.src_path =\n\n '(?:' +\n '[/?#]' +\n '(?:' +\n '(?!' + re.src_ZCc + '|' + text_separators + '|[()[\\\\]{}.,\"\\'?!\\\\-;]).|' +\n '\\\\[(?:(?!' + re.src_ZCc + '|\\\\]).)*\\\\]|' +\n '\\\\((?:(?!' + re.src_ZCc + '|[)]).)*\\\\)|' +\n '\\\\{(?:(?!' + re.src_ZCc + '|[}]).)*\\\\}|' +\n '\\\\\"(?:(?!' + re.src_ZCc + '|[\"]).)+\\\\\"|' +\n \"\\\\'(?:(?!\" + re.src_ZCc + \"|[']).)+\\\\'|\" +\n\n // allow `I'm_king` if no pair found\n \"\\\\'(?=\" + re.src_pseudo_letter + '|[-])|' +\n\n // google has many dots in \"google search\" links (#66, #81).\n // github has ... in commit range links,\n // Restrict to\n // - english\n // - percent-encoded\n // - parts of file path\n // - params separator\n // until more examples found.\n '\\\\.{2,}[a-zA-Z0-9%/&]|' +\n\n '\\\\.(?!' + re.src_ZCc + '|[.]|$)|' +\n (opts['---']\n ? '\\\\-(?!--(?:[^-]|$))(?:-*)|' // `---` => long dash, terminate\n : '\\\\-+|'\n ) +\n // allow `,,,` in paths\n ',(?!' + re.src_ZCc + '|$)|' +\n\n // allow `;` if not followed by space-like char\n ';(?!' + re.src_ZCc + '|$)|' +\n\n // allow `!!!` in paths, but not at the end\n '\\\\!+(?!' + re.src_ZCc + '|[!]|$)|' +\n\n '\\\\?(?!' + re.src_ZCc + '|[?]|$)' +\n ')+' +\n '|\\\\/' +\n ')?'\n\n // Allow anything in markdown spec, forbid quote (\") at the first position\n // because emails enclosed in quotes are far more common\n re.src_email_name =\n\n '[\\\\-;:&=\\\\+\\\\$,\\\\.a-zA-Z0-9_][\\\\-;:&=\\\\+\\\\$,\\\\\"\\\\.a-zA-Z0-9_]*'\n\n re.src_xn =\n\n 'xn--[a-z0-9\\\\-]{1,59}'\n\n // More to read about domain names\n // http://serverfault.com/questions/638260/\n\n re.src_domain_root =\n\n // Allow letters & digits (http://test1)\n '(?:' +\n re.src_xn +\n '|' +\n re.src_pseudo_letter + '{1,63}' +\n ')'\n\n re.src_domain =\n\n '(?:' +\n re.src_xn +\n '|' +\n '(?:' + re.src_pseudo_letter + ')' +\n '|' +\n '(?:' + re.src_pseudo_letter + '(?:-|' + re.src_pseudo_letter + '){0,61}' + re.src_pseudo_letter + ')' +\n ')'\n\n re.src_host =\n\n '(?:' +\n // Don't need IP check, because digits are already allowed in normal domain names\n // src_ip4 +\n // '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)*' + re.src_domain/* _root */ + ')' +\n ')'\n\n re.tpl_host_fuzzy =\n\n '(?:' +\n re.src_ip4 +\n '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))' +\n ')'\n\n re.tpl_host_no_ip_fuzzy =\n\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))'\n\n re.src_host_strict =\n\n re.src_host + re.src_host_terminator\n\n re.tpl_host_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_host_terminator\n\n re.src_host_port_strict =\n\n re.src_host + re.src_port + re.src_host_terminator\n\n re.tpl_host_port_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_port + re.src_host_terminator\n\n re.tpl_host_port_no_ip_fuzzy_strict =\n\n re.tpl_host_no_ip_fuzzy + re.src_port + re.src_host_terminator\n\n //\n // Main rules\n //\n\n // Rude test fuzzy links by host, for quick deny\n re.tpl_host_fuzzy_test =\n\n 'localhost|www\\\\.|\\\\.\\\\d{1,3}\\\\.|(?:\\\\.(?:%TLDS%)(?:' + re.src_ZPCc + '|>|$))'\n\n re.tpl_email_fuzzy =\n\n '(^|' + text_separators + '|\"|\\\\(|' + re.src_ZCc + ')' +\n '(' + re.src_email_name + '@' + re.tpl_host_fuzzy_strict + ')'\n\n re.tpl_link_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_fuzzy_strict + re.src_path + ')'\n\n re.tpl_link_no_ip_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_no_ip_fuzzy_strict + re.src_path + ')'\n\n return re\n}\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7F]/; // Note: U+007F DEL is excluded too.\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, callback) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = callback(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {String} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(domain, callback) {\n\tconst parts = domain.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tdomain = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tdomain = domain.replace(regexSeparators, '\\x2E');\n\tconst labels = domain.split('.');\n\tconst encoded = map(labels, callback).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = codePoints => String.fromCodePoint(...codePoints);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint >= 0x30 && codePoint < 0x3A) {\n\t\treturn 26 + (codePoint - 0x30);\n\t}\n\tif (codePoint >= 0x41 && codePoint < 0x5B) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint >= 0x61 && codePoint < 0x7B) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tconst oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\t\t\tif (digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tconst inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tconst basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue === n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.3.1',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport { ucs2decode, ucs2encode, decode, encode, toASCII, toUnicode };\nexport default punycode;\n","// Main parser class\n\nimport * as utils from './common/utils.mjs'\nimport * as helpers from './helpers/index.mjs'\nimport Renderer from './renderer.mjs'\nimport ParserCore from './parser_core.mjs'\nimport ParserBlock from './parser_block.mjs'\nimport ParserInline from './parser_inline.mjs'\nimport LinkifyIt from 'linkify-it'\nimport * as mdurl from 'mdurl'\nimport punycode from 'punycode.js'\n\nimport cfg_default from './presets/default.mjs'\nimport cfg_zero from './presets/zero.mjs'\nimport cfg_commonmark from './presets/commonmark.mjs'\n\nconst config = {\n default: cfg_default,\n zero: cfg_zero,\n commonmark: cfg_commonmark\n}\n\n//\n// This validator can prohibit more than really needed to prevent XSS. It's a\n// tradeoff to keep code simple and to be secure by default.\n//\n// If you need different setup - override validator method as you wish. Or\n// replace it with dummy function and use external sanitizer.\n//\n\nconst BAD_PROTO_RE = /^(vbscript|javascript|file|data):/\nconst GOOD_DATA_RE = /^data:image\\/(gif|png|jpeg|webp);/\n\nfunction validateLink (url) {\n // url should be normalized at this point, and existing entities are decoded\n const str = url.trim().toLowerCase()\n\n return BAD_PROTO_RE.test(str) ? GOOD_DATA_RE.test(str) : true\n}\n\nconst RECODE_HOSTNAME_FOR = ['http:', 'https:', 'mailto:']\n\nfunction normalizeLink (url) {\n const parsed = mdurl.parse(url, true)\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toASCII(parsed.hostname)\n } catch (er) { /**/ }\n }\n }\n\n return mdurl.encode(mdurl.format(parsed))\n}\n\nfunction normalizeLinkText (url) {\n const parsed = mdurl.parse(url, true)\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toUnicode(parsed.hostname)\n } catch (er) { /**/ }\n }\n }\n\n // add '%' to exclude list because of https://github.com/markdown-it/markdown-it/issues/720\n return mdurl.decode(mdurl.format(parsed), mdurl.decode.defaultChars + '%')\n}\n\n/**\n * class MarkdownIt\n *\n * Main parser/renderer class.\n *\n * ##### Usage\n *\n * ```javascript\n * // node.js, \"classic\" way:\n * var MarkdownIt = require('markdown-it'),\n * md = new MarkdownIt();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // node.js, the same, but with sugar:\n * var md = require('markdown-it')();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // browser without AMD, added to \"window\" on script load\n * // Note, there are no dash.\n * var md = window.markdownit();\n * var result = md.render('# markdown-it rulezz!');\n * ```\n *\n * Single line rendering, without paragraph wrap:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * var result = md.renderInline('__markdown-it__ rulezz!');\n * ```\n **/\n\n/**\n * new MarkdownIt([presetName, options])\n * - presetName (String): optional, `commonmark` / `zero`\n * - options (Object)\n *\n * Creates parser instanse with given config. Can be called without `new`.\n *\n * ##### presetName\n *\n * MarkdownIt provides named presets as a convenience to quickly\n * enable/disable active syntax rules and options for common use cases.\n *\n * - [\"commonmark\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/commonmark.mjs) -\n * configures parser to strict [CommonMark](http://commonmark.org/) mode.\n * - [default](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/default.mjs) -\n * similar to GFM, used when no preset name given. Enables all available rules,\n * but still without html, typographer & autolinker.\n * - [\"zero\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/zero.mjs) -\n * all rules disabled. Useful to quickly setup your config via `.enable()`.\n * For example, when you need only `bold` and `italic` markup and nothing else.\n *\n * ##### options:\n *\n * - __html__ - `false`. Set `true` to enable HTML tags in source. Be careful!\n * That's not safe! You may need external sanitizer to protect output from XSS.\n * It's better to extend features via plugins, instead of enabling HTML.\n * - __xhtmlOut__ - `false`. Set `true` to add '/' when closing single tags\n * (`<br />`). This is needed only for full CommonMark compatibility. In real\n * world you will need HTML output.\n * - __breaks__ - `false`. Set `true` to convert `\\n` in paragraphs into `<br>`.\n * - __langPrefix__ - `language-`. CSS language class prefix for fenced blocks.\n * Can be useful for external highlighters.\n * - __linkify__ - `false`. Set `true` to autoconvert URL-like text to links.\n * - __typographer__ - `false`. Set `true` to enable [some language-neutral\n * replacement](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.mjs) +\n * quotes beautification (smartquotes).\n * - __quotes__ - `“”‘’`, String or Array. Double + single quotes replacement\n * pairs, when typographer enabled and smartquotes on. For example, you can\n * use `'«»„“'` for Russian, `'„“‚‘'` for German, and\n * `['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›']` for French (including nbsp).\n * - __highlight__ - `null`. Highlighter function for fenced code blocks.\n * Highlighter `function (str, lang)` should return escaped HTML. It can also\n * return empty string if the source was not changed and should be escaped\n * externaly. If result starts with <pre... internal wrapper is skipped.\n *\n * ##### Example\n *\n * ```javascript\n * // commonmark mode\n * var md = require('markdown-it')('commonmark');\n *\n * // default mode\n * var md = require('markdown-it')();\n *\n * // enable everything\n * var md = require('markdown-it')({\n * html: true,\n * linkify: true,\n * typographer: true\n * });\n * ```\n *\n * ##### Syntax highlighting\n *\n * ```js\n * var hljs = require('highlight.js') // https://highlightjs.org/\n *\n * var md = require('markdown-it')({\n * highlight: function (str, lang) {\n * if (lang && hljs.getLanguage(lang)) {\n * try {\n * return hljs.highlight(str, { language: lang, ignoreIllegals: true }).value;\n * } catch (__) {}\n * }\n *\n * return ''; // use external default escaping\n * }\n * });\n * ```\n *\n * Or with full wrapper override (if you need assign class to `<pre>` or `<code>`):\n *\n * ```javascript\n * var hljs = require('highlight.js') // https://highlightjs.org/\n *\n * // Actual default values\n * var md = require('markdown-it')({\n * highlight: function (str, lang) {\n * if (lang && hljs.getLanguage(lang)) {\n * try {\n * return '<pre><code class=\"hljs\">' +\n * hljs.highlight(str, { language: lang, ignoreIllegals: true }).value +\n * '</code></pre>';\n * } catch (__) {}\n * }\n *\n * return '<pre><code class=\"hljs\">' + md.utils.escapeHtml(str) + '</code></pre>';\n * }\n * });\n * ```\n *\n **/\nfunction MarkdownIt (presetName, options) {\n if (!(this instanceof MarkdownIt)) {\n return new MarkdownIt(presetName, options)\n }\n\n if (!options) {\n if (!utils.isString(presetName)) {\n options = presetName || {}\n presetName = 'default'\n }\n }\n\n /**\n * MarkdownIt#inline -> ParserInline\n *\n * Instance of [[ParserInline]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.inline = new ParserInline()\n\n /**\n * MarkdownIt#block -> ParserBlock\n *\n * Instance of [[ParserBlock]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.block = new ParserBlock()\n\n /**\n * MarkdownIt#core -> Core\n *\n * Instance of [[Core]] chain executor. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.core = new ParserCore()\n\n /**\n * MarkdownIt#renderer -> Renderer\n *\n * Instance of [[Renderer]]. Use it to modify output look. Or to add rendering\n * rules for new token types, generated by plugins.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * function myToken(tokens, idx, options, env, self) {\n * //...\n * return result;\n * };\n *\n * md.renderer.rules['my_token'] = myToken\n * ```\n *\n * See [[Renderer]] docs and [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.mjs).\n **/\n this.renderer = new Renderer()\n\n /**\n * MarkdownIt#linkify -> LinkifyIt\n *\n * [linkify-it](https://github.com/markdown-it/linkify-it) instance.\n * Used by [linkify](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.mjs)\n * rule.\n **/\n this.linkify = new LinkifyIt()\n\n /**\n * MarkdownIt#validateLink(url) -> Boolean\n *\n * Link validation function. CommonMark allows too much in links. By default\n * we disable `javascript:`, `vbscript:`, `file:` schemas, and almost all `data:...` schemas\n * except some embedded image types.\n *\n * You can change this behaviour:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * // enable everything\n * md.validateLink = function () { return true; }\n * ```\n **/\n this.validateLink = validateLink\n\n /**\n * MarkdownIt#normalizeLink(url) -> String\n *\n * Function used to encode link url to a machine-readable format,\n * which includes url-encoding, punycode, etc.\n **/\n this.normalizeLink = normalizeLink\n\n /**\n * MarkdownIt#normalizeLinkText(url) -> String\n *\n * Function used to decode link url to a human-readable format`\n **/\n this.normalizeLinkText = normalizeLinkText\n\n // Expose utils & helpers for easy acces from plugins\n\n /**\n * MarkdownIt#utils -> utils\n *\n * Assorted utility functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/common/utils.mjs).\n **/\n this.utils = utils\n\n /**\n * MarkdownIt#helpers -> helpers\n *\n * Link components parser functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/helpers).\n **/\n this.helpers = utils.assign({}, helpers)\n\n this.options = {}\n this.configure(presetName)\n\n if (options) { this.set(options) }\n}\n\n/** chainable\n * MarkdownIt.set(options)\n *\n * Set parser options (in the same format as in constructor). Probably, you\n * will never need it, but you can change options after constructor call.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .set({ html: true, breaks: true })\n * .set({ typographer, true });\n * ```\n *\n * __Note:__ To achieve the best possible performance, don't modify a\n * `markdown-it` instance options on the fly. If you need multiple configurations\n * it's best to create multiple instances and initialize each with separate\n * config.\n **/\nMarkdownIt.prototype.set = function (options) {\n utils.assign(this.options, options)\n return this\n}\n\n/** chainable, internal\n * MarkdownIt.configure(presets)\n *\n * Batch load of all options and compenent settings. This is internal method,\n * and you probably will not need it. But if you will - see available presets\n * and data structure [here](https://github.com/markdown-it/markdown-it/tree/master/lib/presets)\n *\n * We strongly recommend to use presets instead of direct config loads. That\n * will give better compatibility with next versions.\n **/\nMarkdownIt.prototype.configure = function (presets) {\n const self = this\n\n if (utils.isString(presets)) {\n const presetName = presets\n presets = config[presetName]\n if (!presets) { throw new Error('Wrong `markdown-it` preset \"' + presetName + '\", check name') }\n }\n\n if (!presets) { throw new Error('Wrong `markdown-it` preset, can\\'t be empty') }\n\n if (presets.options) { self.set(presets.options) }\n\n if (presets.components) {\n Object.keys(presets.components).forEach(function (name) {\n if (presets.components[name].rules) {\n self[name].ruler.enableOnly(presets.components[name].rules)\n }\n if (presets.components[name].rules2) {\n self[name].ruler2.enableOnly(presets.components[name].rules2)\n }\n })\n }\n return this\n}\n\n/** chainable\n * MarkdownIt.enable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to enable\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable list or rules. It will automatically find appropriate components,\n * containing rules with given names. If rule not found, and `ignoreInvalid`\n * not set - throws exception.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .enable(['sub', 'sup'])\n * .disable('smartquotes');\n * ```\n **/\nMarkdownIt.prototype.enable = function (list, ignoreInvalid) {\n let result = []\n\n if (!Array.isArray(list)) { list = [list] }\n\n ['core', 'block', 'inline'].forEach(function (chain) {\n result = result.concat(this[chain].ruler.enable(list, true))\n }, this)\n\n result = result.concat(this.inline.ruler2.enable(list, true))\n\n const missed = list.filter(function (name) { return result.indexOf(name) < 0 })\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to enable unknown rule(s): ' + missed)\n }\n\n return this\n}\n\n/** chainable\n * MarkdownIt.disable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * The same as [[MarkdownIt.enable]], but turn specified rules off.\n **/\nMarkdownIt.prototype.disable = function (list, ignoreInvalid) {\n let result = []\n\n if (!Array.isArray(list)) { list = [list] }\n\n ['core', 'block', 'inline'].forEach(function (chain) {\n result = result.concat(this[chain].ruler.disable(list, true))\n }, this)\n\n result = result.concat(this.inline.ruler2.disable(list, true))\n\n const missed = list.filter(function (name) { return result.indexOf(name) < 0 })\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to disable unknown rule(s): ' + missed)\n }\n return this\n}\n\n/** chainable\n * MarkdownIt.use(plugin, params)\n *\n * Load specified plugin with given params into current parser instance.\n * It's just a sugar to call `plugin(md, params)` with curring.\n *\n * ##### Example\n *\n * ```javascript\n * var iterator = require('markdown-it-for-inline');\n * var md = require('markdown-it')()\n * .use(iterator, 'foo_replace', 'text', function (tokens, idx) {\n * tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');\n * });\n * ```\n **/\nMarkdownIt.prototype.use = function (plugin /*, params, ... */) {\n const args = [this].concat(Array.prototype.slice.call(arguments, 1))\n plugin.apply(plugin, args)\n return this\n}\n\n/** internal\n * MarkdownIt.parse(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Parse input string and return list of block tokens (special token type\n * \"inline\" will contain list of inline tokens). You should not call this\n * method directly, until you write custom renderer (for example, to produce\n * AST).\n *\n * `env` is used to pass data between \"distributed\" rules and return additional\n * metadata like reference info, needed for the renderer. It also can be used to\n * inject data in specific cases. Usually, you will be ok to pass `{}`,\n * and then pass updated object to renderer.\n **/\nMarkdownIt.prototype.parse = function (src, env) {\n if (typeof src !== 'string') {\n throw new Error('Input data should be a String')\n }\n\n const state = new this.core.State(src, this, env)\n\n this.core.process(state)\n\n return state.tokens\n}\n\n/**\n * MarkdownIt.render(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Render markdown string into html. It does all magic for you :).\n *\n * `env` can be used to inject additional metadata (`{}` by default).\n * But you will not need it with high probability. See also comment\n * in [[MarkdownIt.parse]].\n **/\nMarkdownIt.prototype.render = function (src, env) {\n env = env || {}\n\n return this.renderer.render(this.parse(src, env), this.options, env)\n}\n\n/** internal\n * MarkdownIt.parseInline(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * The same as [[MarkdownIt.parse]] but skip all block rules. It returns the\n * block tokens list with the single `inline` element, containing parsed inline\n * tokens in `children` property. Also updates `env` object.\n **/\nMarkdownIt.prototype.parseInline = function (src, env) {\n const state = new this.core.State(src, this, env)\n\n state.inlineMode = true\n this.core.process(state)\n\n return state.tokens\n}\n\n/**\n * MarkdownIt.renderInline(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Similar to [[MarkdownIt.render]] but for single paragraph content. Result\n * will NOT be wrapped into `<p>` tags.\n **/\nMarkdownIt.prototype.renderInline = function (src, env) {\n env = env || {}\n\n return this.renderer.render(this.parseInline(src, env), this.options, env)\n}\n\nexport default MarkdownIt\n","// markdown-it default options\n\nexport default {\n options: {\n // Enable HTML tags in source\n html: false,\n\n // Use '/' to close single tags (<br />)\n xhtmlOut: false,\n\n // Convert '\\n' in paragraphs into <br>\n breaks: false,\n\n // CSS language prefix for fenced blocks\n langPrefix: 'language-',\n\n // autoconvert URL-like texts to links\n linkify: false,\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with <pre... internal wrapper is skipped.\n //\n // function (/*str, lang*/) { return ''; }\n //\n highlight: null,\n\n // Internal protection, recursion limit\n maxNesting: 100\n },\n\n components: {\n core: {},\n block: {},\n inline: {}\n }\n}\n","// \"Zero\" preset, with nothing enabled. Useful for manual configuring of simple\n// modes. For example, to parse bold/italic only.\n\nexport default {\n options: {\n // Enable HTML tags in source\n html: false,\n\n // Use '/' to close single tags (<br />)\n xhtmlOut: false,\n\n // Convert '\\n' in paragraphs into <br>\n breaks: false,\n\n // CSS language prefix for fenced blocks\n langPrefix: 'language-',\n\n // autoconvert URL-like texts to links\n linkify: false,\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with <pre... internal wrapper is skipped.\n //\n // function (/*str, lang*/) { return ''; }\n //\n highlight: null,\n\n // Internal protection, recursion limit\n maxNesting: 20\n },\n\n components: {\n\n core: {\n rules: [\n 'normalize',\n 'block',\n 'inline',\n 'text_join'\n ]\n },\n\n block: {\n rules: [\n 'paragraph'\n ]\n },\n\n inline: {\n rules: [\n 'text'\n ],\n rules2: [\n 'balance_pairs',\n 'fragments_join'\n ]\n }\n }\n}\n","// Commonmark default options\n\nexport default {\n options: {\n // Enable HTML tags in source\n html: true,\n\n // Use '/' to close single tags (<br />)\n xhtmlOut: true,\n\n // Convert '\\n' in paragraphs into <br>\n breaks: false,\n\n // CSS language prefix for fenced blocks\n langPrefix: 'language-',\n\n // autoconvert URL-like texts to links\n linkify: false,\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with <pre... internal wrapper is skipped.\n //\n // function (/*str, lang*/) { return ''; }\n //\n highlight: null,\n\n // Internal protection, recursion limit\n maxNesting: 20\n },\n\n components: {\n\n core: {\n rules: [\n 'normalize',\n 'block',\n 'inline',\n 'text_join'\n ]\n },\n\n block: {\n rules: [\n 'blockquote',\n 'code',\n 'fence',\n 'heading',\n 'hr',\n 'html_block',\n 'lheading',\n 'list',\n 'reference',\n 'paragraph'\n ]\n },\n\n inline: {\n rules: [\n 'autolink',\n 'backticks',\n 'emphasis',\n 'entity',\n 'escape',\n 'html_inline',\n 'image',\n 'link',\n 'newline',\n 'text'\n ],\n rules2: [\n 'balance_pairs',\n 'emphasis',\n 'fragments_join'\n ]\n }\n }\n}\n","\n/*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n\n implicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n if (type$1.loadKind && type$1.loadKind !== 'scalar') {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n\n if (type$1.multi) {\n throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n\n explicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nvar _null = new type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nvar bool = new type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'o') {\n // base 8\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nvar int = new type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nvar float = new type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nvar timestamp = new type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\n\nvar binary = new type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\n// set a property of a literal object, while protecting against prototype pollution,\n// see https://github.com/nodeca/js-yaml/issues/164 for more details\nfunction setProperty(object, key, value) {\n // used for this specific key only because Object.defineProperty is slow\n if (key === '__proto__') {\n Object.defineProperty(object, key, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: value\n });\n } else {\n object[key] = value;\n }\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n setProperty(destination, key, source[key]);\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n\n setProperty(_result, keyNode, valueNode);\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this<parent\n atNewLine = false,\n hasContent = false,\n typeIndex,\n typeQuantity,\n typeList,\n type,\n flowIndent,\n blockIndent;\n\n if (state.listener !== null) {\n state.listener('open', state);\n }\n\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n\n allowBlockStyles = allowBlockScalars = allowBlockCollections =\n CONTEXT_BLOCK_OUT === nodeContext ||\n CONTEXT_BLOCK_IN === nodeContext;\n\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"!<?> [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception('expected a single document in the stream, but found more');\n}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, jsYaml as default, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n","import HTMLReactParser from '../lib/index.js';\n\nexport {\n attributesToProps,\n Comment,\n domToReact,\n Element,\n htmlToDOM,\n ProcessingInstruction,\n Text,\n} from '../lib/index.js';\n\nexport default HTMLReactParser.default || HTMLReactParser;\n","import yaml from 'js-yaml';\nimport Ajv from 'ajv';\n\nconst ajv = new Ajv();\n\nconst mdComponentsSchema = {\n type: 'object',\n properties: {\n 'md-components': {\n type: 'object',\n properties: {\n type: { type: 'string' },\n props: { type: 'object' }\n },\n required: ['type', 'props']\n }\n },\n required: ['md-components']\n};\n\nconst validate = ajv.compile(mdComponentsSchema);\n\nconst mdComponents = function (md) {\n const defaultFence = md.renderer.rules.fence;\n const defaultCodeInline = md.renderer.rules.code_inline;\n\n md.renderer.rules.code_inline = function (tokens, idx, options, env, self) {\n const token = tokens[idx];\n try {\n if (/^md-components/.test(token.content)) {\n const pattern = /md-components:(\\w+)\\{([^}]+)}/g;\n let matches;\n const results = [];\n while ((matches = pattern.exec(token.content)) !== null) {\n results.push({\n componentsType: matches[1],\n props: matches[2]\n });\n }\n if (results.length > 0) {\n return results\n .map(({ componentsType, props }) => {\n const jsonData = {\n 'md-components': {\n type: componentsType,\n props: JSON.parse(`{${props}}`)\n }\n };\n if (validate(jsonData)) {\n const element = document.createElement('code');\n element.setAttribute('class', 'md-components');\n element.dataset.components = JSON.stringify(jsonData);\n return element.outerHTML;\n }\n return '';\n })\n .join('');\n }\n }\n } catch (e) {\n console.warn(e);\n }\n\n return defaultCodeInline(tokens, idx, options, env, self);\n };\n\n md.renderer.rules.fence = function (tokens, idx, options, env, self) {\n const token = tokens[idx];\n if (token.info.trim() === 'yml') {\n try {\n const jsonData = yaml.load(token.content);\n if (validate(jsonData)) {\n const element = document.createElement('pre');\n element.setAttribute('class', 'md-components');\n element.dataset.components = JSON.stringify(jsonData);\n return element.outerHTML;\n }\n } catch (e) {\n console.warn(e);\n }\n }\n return defaultFence(tokens, idx, options, env, self);\n };\n};\n\nexport default mdComponents;\n","const compileVariables = (props, variables = {}) => {\n if (Array.isArray(props)) {\n return props.map(prop => {\n return compileVariables(prop, variables);\n });\n }\n if (props && props.toString() === '[object Object]' && Object.keys(props).length > 0) {\n const newProps = {};\n Object.keys(props).forEach(key => {\n newProps[key] = compileVariables(props[key], variables);\n });\n return newProps;\n }\n if (props && typeof props === 'string' && props.charAt(0) === '$' && variables && variables[props.substring(1)]) {\n return variables[props.substring(1)];\n }\n\n return props;\n};\n\nexport default compileVariables;\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React from 'react';\nimport compileVariables from './compile-variables';\nimport classnames from 'classnames';\nimport htmlParser from 'html-react-parser';\nimport style from './style.module.scss';\n\n// 递归渲染子组件\nconst renderChildren = (children, variables, components) => {\n if (!children) {\n return null;\n }\n\n // 如果 children 是数组,递归渲染每个子元素\n if (Array.isArray(children)) {\n return children.map((child, index) => {\n // 如果子元素是包含 type 和 props 的对象,渲染为组件\n if (child && typeof child === 'object' && child.type && child.props) {\n const ChildComponent = components[child.type];\n if (ChildComponent) {\n const compiledProps = compileVariables(child.props, variables);\n return <ChildComponent key={index} {...compiledProps} />;\n }\n }\n // 否则直接渲染\n return child;\n });\n }\n\n // 如果 children 是字符串,直接返回\n if (typeof children === 'string') {\n return children;\n }\n\n return children;\n};\n\nconst MDComponents = ({ className, html, variables, components = {} }) => {\n return (\n <div className={classnames(style['markdown'], className)}>\n {htmlParser(html, {\n replace(element) {\n if (element.attribs && element.attribs.class === 'md-components' && element.attribs['data-components']) {\n const componentsData = JSON.parse(element.attribs['data-components']);\n if (!componentsData['md-components']) {\n return null;\n }\n const { type, props } = componentsData['md-components'];\n const MdComponent = components[type];\n if (!MdComponent) {\n return null;\n }\n const compiledProps = compileVariables(props, variables);\n\n // 如果 props 包含 children 数组,需要特殊处理\n if (compiledProps.children && Array.isArray(compiledProps.children)) {\n const renderedChildren = renderChildren(compiledProps.children, variables, components);\n return <MdComponent {...compiledProps}>{renderedChildren}</MdComponent>;\n }\n\n return <MdComponent {...compiledProps} />;\n }\n return element;\n }\n })}\n </div>\n );\n};\n\nexport default MDComponents;\n","export const globalParams = {};\n\nexport default newOptions => {\n return Object.assign(globalParams, newOptions);\n};\n","import React, { useMemo } from 'react';\nimport markdown from 'markdown-it';\nimport markdownComponentsPlugin from './md-components-plugin';\nimport MarkdownComponents from './md-components';\n\nimport useRefCallback from '@kne/use-ref-callback';\nimport merge from 'lodash/merge';\nimport preset, { globalParams } from './preset';\n\nconst MarkdownComponentsRender = ({ children = '', render: customRender, ...props }) => {\n const { htmlTransform, components = {}, variables = {}, options } = merge({}, globalParams, props);\n const render = useRefCallback(children => {\n const { config, plugins } = Object.assign({}, options, {\n config: {},\n plugins: []\n });\n\n const md = markdown(config);\n plugins.forEach(plugin => {\n const pluginArgs = Array.isArray(plugin) ? plugin : [plugin];\n md.use(...pluginArgs);\n });\n md.use(markdownComponentsPlugin);\n\n const html = md.render(children);\n\n return <MarkdownComponents html={typeof htmlTransform === 'function' ? htmlTransform(html) : html} variables={variables} components={components} />;\n });\n\n const result = useMemo(() => {\n return render(children);\n }, [children, render]);\n\n if (typeof customRender === 'function') {\n return customRender(result);\n }\n\n return result;\n};\n\nexport default MarkdownComponentsRender;\nexport { preset, markdownComponentsPlugin, MarkdownComponents };\n","import { useCallback as Y } from \"react\";\nconst q = \"printWindow\";\nfunction V(e) {\n const t = document.createElement(\"iframe\");\n return t.width = `${document.documentElement.clientWidth}px`, t.height = `${document.documentElement.clientHeight}px`, t.style.position = \"absolute\", t.style.top = `-${document.documentElement.clientHeight + 100}px`, t.style.left = `-${document.documentElement.clientWidth + 100}px`, t.id = q, t.srcdoc = \"<!DOCTYPE html>\", e && (e.allow && (t.allow = e.allow), e.referrerPolicy !== void 0 && (t.referrerPolicy = e.referrerPolicy), e.sandbox !== void 0 && (t.sandbox = e.sandbox)), t;\n}\nfunction f({ level: e = \"error\", messages: t, suppressErrors: n = !1 }) {\n n || (e === \"error\" ? console.error(t) : e === \"warning\" ? console.warn(t) : console.debug(t));\n}\nfunction $(e, t) {\n if (t || !e) {\n const n = document.getElementById(q);\n n && document.body.removeChild(n);\n }\n}\nfunction P(e) {\n return e instanceof Error ? e : new Error(\"Unknown Error\");\n}\nfunction H(e, t) {\n const {\n documentTitle: n,\n onAfterPrint: l,\n onPrintError: p,\n preserveAfterPrint: m,\n print: h,\n suppressErrors: g\n } = t;\n setTimeout(() => {\n if (e.contentWindow) {\n let a = function() {\n l?.(), $(m);\n };\n if (e.contentWindow.focus(), h)\n h(e).then(a).catch((c) => {\n p ? p(\"print\", P(c)) : f({\n messages: [\"An error was thrown by the specified `print` function\"],\n suppressErrors: g\n });\n });\n else {\n if (e.contentWindow.print) {\n const c = e.contentDocument?.title ?? \"\", E = e.ownerDocument.title, y = typeof n == \"function\" ? n() : n;\n y && (e.ownerDocument.title = y, e.contentDocument && (e.contentDocument.title = y)), e.contentWindow.print(), y && (e.ownerDocument.title = E, e.contentDocument && (e.contentDocument.title = c));\n } else\n f({\n messages: [\"Printing for this browser is not currently possible: the browser does not have a `print` method available for iframes.\"],\n suppressErrors: g\n });\n z() ? setTimeout(a, 500) : a();\n }\n } else\n f({\n messages: [\"Printing failed because the `contentWindow` of the print iframe did not load. This is possibly an error with `react-to-print`. Please file an issue: https://github.com/MatthewHerbst/react-to-print/issues/\"],\n suppressErrors: g\n });\n }, 500);\n}\nfunction z() {\n return [\n /Android/i,\n /webOS/i,\n /iPhone/i,\n /iPad/i,\n /iPod/i,\n /BlackBerry/i,\n /Windows Phone/i\n ].some((t) => (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n (navigator.userAgent ?? // Retained for compatibility with browsers that use `navigator.vendor` to identify the browser.\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n navigator.vendor ?? // Retained for compatibility with older versions of Opera that use `window.opera`.\n (\"opera\" in window && window.opera)).match(t)\n ));\n}\nfunction O(e) {\n const t = [], n = document.createTreeWalker(e, NodeFilter.SHOW_ELEMENT, null);\n let l = n.nextNode();\n for (; l; )\n t.push(l), l = n.nextNode();\n return t;\n}\nfunction j(e, t, n) {\n const l = O(e), p = O(t);\n if (l.length !== p.length) {\n f({\n messages: [\"When cloning shadow root content, source and target elements have different size. `onBeforePrint` likely resolved too early.\", e, t],\n suppressErrors: n\n });\n return;\n }\n for (let m = 0; m < l.length; m++) {\n const h = l[m], g = p[m], a = h.shadowRoot;\n if (a !== null) {\n const c = g.attachShadow({ mode: a.mode });\n c.innerHTML = a.innerHTML, j(a, c, n);\n }\n }\n}\nconst G = `\n @page {\n /* Remove browser default header (title) and footer (url) */\n margin: 0;\n }\n @media print {\n body {\n /* Tell browsers to print background colors */\n color-adjust: exact; /* Firefox. This is an older version of \"print-color-adjust\" */\n print-color-adjust: exact; /* Firefox/Safari */\n -webkit-print-color-adjust: exact; /* Chrome/Safari/Edge/Opera */\n }\n }\n`;\nfunction W(e, t, n) {\n const {\n contentNode: l,\n clonedContentNode: p,\n clonedImgNodes: m,\n clonedVideoNodes: h,\n numResourcesToLoad: g,\n originalCanvasNodes: a\n } = t, {\n bodyClass: c,\n fonts: E,\n ignoreGlobalStyles: y,\n pageStyle: C,\n nonce: T,\n suppressErrors: A,\n copyShadowRoots: F\n } = n, L = [], _ = [];\n function i(k, x) {\n if (L.includes(k)) {\n f({\n level: \"debug\",\n messages: [\"Tried to mark a resource that has already been handled\", k],\n suppressErrors: A\n });\n return;\n }\n x ? (f({\n messages: [\n '\"react-to-print\" was unable to load a resource but will continue attempting to print the page',\n ...x\n ],\n suppressErrors: A\n }), _.push(k)) : L.push(k), L.length + _.length === g && H(e, n);\n }\n e.onload = null;\n const d = e.contentDocument ?? e.contentWindow?.document;\n if (d) {\n const k = d.body.appendChild(p);\n F && j(l, k, !!A), E && (e.contentDocument?.fonts && e.contentWindow?.FontFace ? E.forEach((s) => {\n const o = new FontFace(\n s.family,\n s.source,\n { weight: s.weight, style: s.style }\n );\n e.contentDocument.fonts.add(o), o.loaded.then(() => {\n i(o);\n }).catch((b) => {\n i(o, [\"Failed loading the font:\", o, \"Load error:\", P(b)]);\n });\n }) : (E.forEach((s) => {\n i(s);\n }), f({\n messages: ['\"react-to-print\" is not able to load custom fonts because the browser does not support the FontFace API but will continue attempting to print the page'],\n suppressErrors: A\n })));\n const x = C ?? G, D = d.createElement(\"style\");\n T && (D.setAttribute(\"nonce\", T), d.head.setAttribute(\"nonce\", T)), D.appendChild(d.createTextNode(x)), d.head.appendChild(D), c && d.body.classList.add(...c.split(\" \"));\n const U = d.querySelectorAll(\"canvas\");\n for (let s = 0; s < a.length; ++s) {\n const o = a[s], b = U[s];\n if (b === void 0) {\n f({\n messages: [\"A canvas element could not be copied for printing, has it loaded? `onBeforePrint` likely resolved too early.\", o],\n suppressErrors: A\n });\n continue;\n }\n const r = b.getContext(\"2d\");\n r && r.drawImage(o, 0, 0);\n }\n for (let s = 0; s < m.length; s++) {\n const o = m[s], b = o.getAttribute(\"src\");\n if (!b)\n i(o, ['Found an <img> tag with an empty \"src\" attribute. This prevents pre-loading it.', o]);\n else {\n const r = new Image();\n r.onload = () => {\n i(o);\n }, r.onerror = (u, w, S, v, N) => {\n i(o, [\"Error loading <img>\", o, \"Error\", N]);\n }, r.src = b;\n }\n }\n for (let s = 0; s < h.length; s++) {\n const o = h[s];\n o.preload = \"auto\";\n const b = o.getAttribute(\"poster\");\n if (b) {\n const r = new Image();\n r.onload = () => {\n i(o);\n }, r.onerror = (u, w, S, v, N) => {\n i(o, [\"Error loading video poster\", b, \"for video\", o, \"Error:\", N]);\n }, r.src = b;\n } else\n o.readyState >= 2 ? i(o) : o.src ? (o.onloadeddata = () => {\n i(o);\n }, o.onerror = (r, u, w, S, v) => {\n i(o, [\"Error loading video\", o, \"Error\", v]);\n }, o.onstalled = () => {\n i(o, [\"Loading video stalled, skipping\", o]);\n }) : i(o, [\"Error loading video, `src` is empty\", o]);\n }\n const R = \"select\", M = l.querySelectorAll(R), B = d.querySelectorAll(R);\n for (let s = 0; s < M.length; s++)\n B[s].value = M[s].value;\n if (!y) {\n const s = document.querySelectorAll(\"style, link[rel~='stylesheet'], link[as='style']\");\n for (let o = 0, b = s.length; o < b; ++o) {\n const r = s[o];\n if (r.tagName.toLowerCase() === \"style\") {\n const u = d.createElement(r.tagName), w = r.sheet;\n if (w) {\n let S = \"\";\n try {\n const v = w.cssRules.length;\n for (let N = 0; N < v; ++N)\n typeof w.cssRules[N].cssText == \"string\" && (S += `${w.cssRules[N].cssText}\\r\n`);\n } catch (v) {\n f({\n messages: [\n \"A stylesheet could not be accessed. This is likely due to the stylesheet having cross-origin imports, and many browsers block script access to cross-origin stylesheets. See https://github.com/MatthewHerbst/react-to-print/issues/429 for details. You may be able to load the sheet by both marking the stylesheet with the cross `crossorigin` attribute, and setting the `Access-Control-Allow-Origin` header on the server serving the stylesheet. Alternatively, host the stylesheet on your domain to avoid this issue entirely.\",\n // eslint-disable-line max-len\n r,\n `Original error: ${P(v).message}`\n ],\n level: \"warning\"\n });\n }\n u.setAttribute(\"id\", `react-to-print-${o}`), T && u.setAttribute(\"nonce\", T), u.appendChild(d.createTextNode(S)), d.head.appendChild(u);\n }\n } else if (r.getAttribute(\"href\"))\n if (r.hasAttribute(\"disabled\"))\n f({\n messages: [\"`react-to-print` encountered a <link> tag with a `disabled` attribute and will ignore it. Note that the `disabled` attribute is deprecated, and some browsers ignore it. You should stop using it. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#attr-disabled. The <link> is:\", r],\n level: \"warning\"\n }), i(r);\n else {\n const u = d.createElement(r.tagName);\n for (let w = 0, S = r.attributes.length; w < S; ++w) {\n const v = r.attributes[w];\n v && u.setAttribute(v.nodeName, v.nodeValue ?? \"\");\n }\n u.onload = () => {\n i(u);\n }, u.onerror = (w, S, v, N, I) => {\n i(u, [\"Failed to load\", u, \"Error:\", I]);\n }, T && u.setAttribute(\"nonce\", T), d.head.appendChild(u);\n }\n else\n f({\n messages: [\"`react-to-print` encountered a <link> tag with an empty `href` attribute. In addition to being invalid HTML, this can cause problems in many browsers, and so the <link> was not loaded. The <link> is:\", r],\n level: \"warning\"\n }), i(r);\n }\n }\n }\n g === 0 && H(e, n);\n}\nfunction J(e, t, n) {\n e.onload = () => {\n W(\n e,\n t,\n n\n );\n }, document.body.appendChild(e);\n}\nfunction K({ contentRef: e, optionalContent: t, suppressErrors: n }) {\n if (t && typeof t == \"function\")\n return e && f({\n level: \"warning\",\n messages: ['\"react-to-print\" received a `contentRef` option and an optional-content param passed to its callback. The `contentRef` option will be ignored.']\n }), t();\n if (e)\n return e.current;\n f({\n messages: ['\"react-to-print\" did not receive a `contentRef` option or a optional-content param pass to its callback.'],\n suppressErrors: n\n });\n}\nfunction Q(e, t) {\n const {\n contentRef: n,\n fonts: l,\n ignoreGlobalStyles: p,\n suppressErrors: m\n } = t, h = K({\n contentRef: n,\n optionalContent: e,\n suppressErrors: m\n });\n if (!h)\n return;\n const g = h.cloneNode(!0), a = document.querySelectorAll(\"link[rel~='stylesheet'], link[as='style']\"), c = g.querySelectorAll(\"img\"), E = g.querySelectorAll(\"video\"), y = l ? l.length : 0, C = (p ? 0 : a.length) + c.length + E.length + y;\n return {\n contentNode: h,\n clonedContentNode: g,\n clonedImgNodes: c,\n clonedVideoNodes: E,\n numResourcesToLoad: C,\n originalCanvasNodes: h.querySelectorAll(\"canvas\")\n };\n}\nfunction Z({\n bodyClass: e,\n contentRef: t,\n copyShadowRoots: n,\n documentTitle: l,\n fonts: p,\n ignoreGlobalStyles: m,\n nonce: h,\n onAfterPrint: g,\n onBeforePrint: a,\n onPrintError: c,\n pageStyle: E,\n preserveAfterPrint: y,\n print: C,\n printIframeProps: T,\n suppressErrors: A\n}) {\n return Y((L) => {\n $(y, !0);\n function _() {\n const i = {\n bodyClass: e,\n contentRef: t,\n copyShadowRoots: n,\n documentTitle: l,\n fonts: p,\n ignoreGlobalStyles: m,\n nonce: h,\n onAfterPrint: g,\n onPrintError: c,\n pageStyle: E,\n preserveAfterPrint: y,\n print: C,\n suppressErrors: A\n }, d = V(T), k = Q(L, i);\n if (!k) {\n f({\n messages: [\"There is nothing to print\"],\n suppressErrors: A\n });\n return;\n }\n J(d, k, i);\n }\n a ? a().then(() => {\n _();\n }).catch((i) => {\n c?.(\"onBeforePrint\", P(i));\n }) : _();\n }, [\n e,\n t,\n n,\n l,\n p,\n m,\n h,\n g,\n a,\n c,\n E,\n y,\n T,\n C,\n A\n ]);\n}\nexport {\n Z as useReactToPrint\n};\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPhotoFailpgpCmVwu(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n t: 1731465967110,\n className: \"icon\",\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"p-id\": 1541,\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 200,\n height: 200,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M112 166h-7q-21 3-35 18.5T56 222v562q3 20 18.5 34.5T112 833h388l56-167-119-179-103 123-72-71-5-5q-17-13-38-11.5T183 539l-71 71V222h259l18-56H112z m388 0l-18 56h407v379L654 327l-4-5q-18-16-41.5-14.5T570 328l-72 85 169 253-55 167h277l7-1q21-2 35-18t14-37V215q-3-21-18.5-35T889 166H500zM306 277q-34 0-58.5 24.5t-24.5 59q0 34.5 24.5 59T306 444q23 0 42.5-12t30.5-31l-45-68 14-44q-19-12-42-12z\",\n fill: \"#E0E0E0\",\n \"p-id\": 1542\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPhotoFailpgpCmVwu);\nexport default __webpack_public_path__ + \"static/media/photo-fail~pgpCmVwu.0e3e24a52cd5ef49f94e6655160babc8.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAvatarDefaultzCLybCAb(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"56px\",\n height: \"56px\",\n viewBox: \"0 0 56 56\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"\\u7F16\\u7EC4 10\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n x1: \"50%\",\n y1: \"0%\",\n x2: \"50%\",\n y2: \"100%\",\n id: \"linearGradient-1\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#F5F5F5\",\n offset: \"0%\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#E0E0E0\",\n offset: \"100%\"\n })))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"PC\\\\u7AEF\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"\\\\u56FE\\\\u6807Icon\",\n transform: \"translate(-760.000000, -2364.000000)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"\\\\u7F16\\\\u7EC4-10\",\n transform: \"translate(760.000000, 2364.000000)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"\\\\u5934\\\\u50CF-\\\\u65E0\\\\u6027\\\\u522B\",\n fill: \"url(#linearGradient-1)\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Mask\\\\u5907\\\\u4EFD\",\n x: 0,\n y: 0,\n width: 56,\n height: 56\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"\\\\u5934\\\\u50CF_avatar-(1)\\\\u5907\\\\u4EFD\",\n transform: \"translate(8.000000, 12.000000)\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40,41.3851428 C40,40.9828571 40,35.6022857 39,33.792 C38.4,32.5851428 37.4,31.7805714 36.2,30.976 C34.8,30.1714285 33,29.3668572 30.8,28.9645714 C30.6,28.9645714 29.2,28.7634285 28,28.3611428 C26.6,27.9588571 26,27.7577143 25.8,27.5565714 L25.8,26.3497143 C26,23.7348571 27.4,22.3268572 28.6,21.12 C29,20.7177143 29.4,20.3154285 29.8,19.712 C31.2,17.7005714 31.4,15.6891429 31.4,15.2868571 C31.4,14.8845714 31.4,14.6834286 31.2,14.2811429 C31,13.8788572 30.8,13.4765714 30.6,13.2754286 C30.6,12.672 30.8,12.0685714 30.8,11.6662857 C30.8,10.6605715 31,9.05142856 30.6,7.44228572 C30.6,7.24114285 30.6,6.83885715 30.4,6.43657145 C30,5.22971431 29.6,4.22400004 28.8,3.4194286 C28.4,3.4194286 25.6,0.603428618 18,0 L15,0 C14.6,0 14.2,0 13.8,0.201142873 C12.4,0.603428571 12.2,1.60914289 12,2.01142859 L12,3.21828573 L11.8,3.4194286 C11.6,3.62057147 9.60000004,5.43085719 9.40000002,7.84457142 C9.20000001,9.45371426 9.20000001,11.8674285 9.40000002,13.6777143 C9.20000001,14.08 8.80000002,14.4822858 8.80000002,15.488 C8.80000002,15.8902857 9,17.9017143 10.4,19.712 C10.8,20.1142857 11,20.5165715 11.6,21.12 C12.8,22.528 14.2,23.936 14.4,26.3497143 L14.4,27.5565714 C14,27.7577143 13.4,28.16 12,28.5622857 C10.6,28.9645714 9.20000001,29.1657143 9,29.1657143 C7,29.568 5.19999998,30.1714285 3.80000001,30.976 C2.60000001,31.7805714 1.60000003,32.7862857 1,33.792 C0,35.6022857 0,40.9828571 0,41.3851428 L0,42.3908571 C0,43.1954286 0.800000015,44 1.8,44 L38.2,44 C39.2,44 40,43.1954286 40,42.1897143 L40,41.3851428 Z\",\n id: \"\\\\u8DEF\\\\u5F84\"\n })))))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAvatarDefaultzCLybCAb);\nexport default __webpack_public_path__ + \"static/media/avatar-default~zCLybCAb.b1f2a8046cc7bee36d9a404ce6a0a1d7.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAvatarFemaleIlLWtNkS(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"56px\",\n height: \"56px\",\n viewBox: \"0 0 56 56\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"\\u5934\\u50CF-\\u5973\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"PC\\\\u7AEF\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"\\\\u56FE\\\\u6807\",\n transform: \"translate(-792.000000, -230.000000)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"\\\\u5934\\\\u50CF-\\\\u5973\",\n transform: \"translate(792.000000, 230.000000)\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Mask\\\\u5907\\\\u4EFD\",\n fill: \"#F1F1F1\",\n x: 0,\n y: 0,\n width: 56,\n height: 56\n }), /*#__PURE__*/React.createElement(\"g\", {\n id: \"\\\\u5973\",\n transform: \"translate(9.000000, 13.000000)\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.1219936,0 C26.9032378,0 28.9014356,5.58612362 28.7427755,11.9244473 C28.5841154,18.262771 25.3419303,30.1526079 25.3419303,30.1526079 L19.1334908,30.1526079 L19.1219936,0 Z\",\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#370B00\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.5011497,0 C10.7291032,0 8.7217078,5.58612362 8.88726615,11.9244473 C9.05282451,18.262771 12.2881114,30.1526079 12.2881114,30.1526079 L18.4965509,30.1526079 L18.5011497,0 Z\",\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#420E04\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.2564166,26.7815518 C11.9891865,29.1996673 7.8778199,30.5010196 3.9780001,31.1309294 C0.0781803048,31.7608392 0,35.9948487 0,37.2177506 L0,43 L18.5011497,43 L18.5011497,26.7815518 L14.2564166,26.7815518 Z\",\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#EAE9E8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.5011497,21.5807577 L14.1736374,21.5807577 L14.1736374,27.196877 C14.1736374,28.0298347 15.5532906,30.6740717 18.5011497,30.6740717 L18.5011497,21.5807577 Z\",\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#EAC1A4\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.5011497,3.92251556 C12.1202536,3.92251556 11.1751911,8.53723974 11.1751911,14.2502683 C11.1751911,20.0948165 16.693804,24.5872505 18.5011497,24.5872505 L18.5011497,3.92251556 Z\",\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#EBCFB7\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.0372258,13.419618 C10.5888385,11.7352436 9.97489279,11.7352436 9.71505809,12.1621056 C9.45522339,12.5889676 10.351998,14.2387315 10.3749922,15.6000751 C10.3979864,16.9614187 10.7980859,17.1552372 11.294761,16.663769 C11.7914362,16.1723009 11.0372258,13.419618 11.0372258,13.419618 Z\",\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#EBCFB7\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#DDDCDB\",\n points: \"14.247219 27.1368856 11.4603194 28.8327967 15.6199739 36.09868 18.5011497 30.6740717\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#F4F2F2\",\n points: \"14.247219 26.7815518 11.4603194 28.8327967 15.6199739 35.7433462 18.5011497 30.6740717\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.7642782,26.7815518 C25.0338077,29.1996673 29.1451744,30.5010196 33.0426947,31.1309294 C36.940215,31.7608392 37,35.9948487 37,37.2177506 L37,43 L18.5011497,43 L18.5011497,26.7815518 L22.7642782,26.7815518 Z\",\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#DDDCDB\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.5011497,21.5807577 L22.8263626,21.5807577 L22.8263626,27.196877 C22.8263626,28.0298347 21.4467094,30.6740717 18.5011497,30.6740717 L18.5011497,21.5807577 Z\",\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#DDB597\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.5011497,3.92251556 C24.8797464,3.92251556 25.8248089,8.53723974 25.8248089,14.2502683 C25.8248089,20.0948165 20.306196,24.5872505 18.5011497,24.5872505 L18.5011497,3.92251556 Z\",\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#EDC19C\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.9673731,13.419618 C26.4272575,11.7352436 27.0320055,11.7352436 27.2918402,12.1621056 C27.5516748,12.5889676 26.6526008,14.2387315 26.6296066,15.6000751 C26.6066124,16.9614187 26.206513,17.1552372 25.7098378,16.663769 C25.2131626,16.1723009 25.967373,13.4196179 25.9673731,13.419618 Z\",\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#EBCFB7\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#DDDCDB\",\n points: \"22.752781 27.1368856 25.5396806 28.8327967 21.3800261 36.09868 18.5011497 30.6740717\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#EFEEED\",\n points: \"22.752781 26.7815518 25.5396806 28.8327967 21.3800261 35.7433462 18.5011497 30.6740717\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.10801068,29.8549582 C7.43626653,30.4331409 5.71634854,30.860165 3.96880244,31.1309294 C0.0712820906,31.7608392 0,35.9948487 0,37.2177506 L0,43 L16.3373936,43 L9.10801068,29.848036 L9.10801068,29.8549582 Z\",\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#1D1D1D\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#303030\",\n points: \"9.10801068 29.8549582 7.32595862 30.4110324 7.10061524 34.8896222 10.4393761 36.7216678 10.4393761 42.9976927 16.3373936 42.9976927 9.10801068 29.8549582\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.8942887,29.8549582 C29.5652485,30.433138 31.2844029,30.8601635 33.0311976,31.1309294 C36.940215,31.7608392 37,35.9902339 37,37.2177506 L37,43 L20.6741036,43 L27.9034864,29.848036 L27.8942887,29.8549582 Z\",\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#1D1D1D\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#303030\",\n points: \"27.8942887 29.8549582 29.6763408 30.4110324 29.8993848 34.8896222 26.5629234 36.7216678 26.5629234 42.9976927 20.6626064 42.9976927\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.8072836,5.07619661 C9.67366851,9.80398152 11.1062085,14.2871861 11.267168,14.7163554 C11.267168,14.7163554 12.1248524,14.8524898 13.3366478,12.6581885 C14.9140514,9.79936683 16.8041763,8.32265508 18.4459636,7.55661088 L18.4459636,0 C14.334597,0 11.6005842,1.79974245 10.8072836,5.07619661 Z\",\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#471207\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.6224598,14.7140481 C25.7742216,14.2871861 27.2067616,9.80398157 26.0823442,5.07388927 C25.2936424,1.80204979 22.5573302,0 18.4459636,0 L18.4459636,7.55661088 C19.5462153,7.03397245 20.7468113,6.75837793 21.9640793,6.74903414 C24.4014667,8.41494958 25.6155615,11.7513952 25.6224598,14.7140481 Z\",\n id: \"\\\\u8DEF\\\\u5F84\",\n fill: \"#370B00\"\n })))))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAvatarFemaleIlLWtNkS);\nexport default __webpack_public_path__ + \"static/media/avatar-female~IlLWtNkS.f052a803fd584c81e3292d08d8cca3a6.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAvatarMaleyBohnCwo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"56px\",\n height: \"56px\",\n viewBox: \"0 0 56 56\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"\\u5934\\u50CF-\\u7537\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"PC\\\\u7AEF\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"\\\\u56FE\\\\u6807\",\n transform: \"translate(-792.000000, -166.000000)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"\\\\u5934\\\\u50CF-\\\\u7537\",\n transform: \"translate(792.000000, 166.000000)\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Mask\",\n fill: \"#F1F1F1\",\n x: 0,\n y: 0,\n width: 56,\n height: 56\n }), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-46\",\n transform: \"translate(7.671233, 12.041096)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.3287113,17.7016171 L14.8261307,17.7016171 L14.8261307,21.8854179 L14.8261307,24.6737429 C14.8261307,25.7091313 16.5713146,28.9930418 20.3287113,28.9930418 L20.3287113,17.7016171 Z\",\n id: \"Fill-2\",\n fill: \"#DDB597\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.1163052,33.9077874 C18.1163052,33.9077874 16.9107652,32.9969521 15.601989,31.3099039 C14.2932128,29.6230745 12.4333964,25.9116559 12.4333964,25.9116559 C11.796773,26.003812 11.1961258,26.0999083 10.6276562,26.2001637 L19.059062,43.7260274 L20.3287336,43.7260274 L20.3287336,29.2137349 L18.1163052,33.9077874 Z\",\n id: \"Fill-4\",\n fill: \"#EFEEED\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.4334858,31.7147341 L8.64391162,30.0953254 L10.2679829,26.2654829 C4.85701892,27.2599373 2.57978853,28.6396525 1.7219446,30.5000682 C0.757736068,32.592078 0,43.7258961 0,43.7258961 L18.0757257,43.7258961 L10.3430638,38.5075824 L12.4334858,31.7147341 Z\",\n id: \"Fill-6\",\n fill: \"#1D1D1D\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.3287113,17.7016171 L25.8312918,17.7016171 L25.8312918,21.8854179 L25.8312918,24.6737429 C25.8312918,25.7091313 24.0861079,28.9930418 20.3287113,28.9930418 L20.3287113,17.7016171 Z\",\n id: \"Fill-8\",\n fill: \"#D1AC93\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.5412291,33.9077874 C22.5412291,33.9077874 23.7467691,32.9969521 25.0553218,31.3099039 C26.364098,29.6230745 28.2241379,25.9116559 28.2241379,25.9116559 C28.8607613,26.003812 29.4614085,26.0999083 30.0296546,26.2001637 L21.5984722,43.7260274 L20.3288006,43.7260274 L20.3288006,29.2137349 L22.5412291,33.9077874 Z\",\n id: \"Fill-10\",\n fill: \"#DDDCDB\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.2240485,31.7147341 L32.0133992,30.0953254 L30.3895513,26.2654829 C35.8005153,27.2599373 38.0777457,28.6396525 38.9353662,30.5000682 C39.8997982,32.592078 40.6575342,43.7258961 40.6575342,43.7258961 L22.5815851,43.7258961 L30.314247,38.5075824 L28.2240485,31.7147341 Z\",\n id: \"Fill-12\",\n fill: \"#0F0F0F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.3287113,3.71115593 C14.1291744,3.71115593 13.2107742,8.10203448 13.2107742,13.5180132 C13.2107742,19.5112264 15.9664218,23.3250894 20.3287113,23.3250894 L20.3287113,3.71115593 Z\",\n id: \"Fill-14\",\n fill: \"#EBCFB7\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.3287113,3.71115593 C26.5282481,3.71115593 27.4466484,8.10203448 27.4466484,13.5180132 C27.4466484,19.5112264 24.6910007,23.3250894 20.3287113,23.3250894 L20.3287113,3.71115593 Z\",\n id: \"Fill-16\",\n fill: \"#EFC7A6\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.0715617,12.7308772 C12.6353774,11.1337961 12.0383055,11.1337961 11.7858013,11.5387578 C11.5330737,11.9435005 12.4056656,13.5180351 12.4286815,14.8001217 C12.4516974,16.0824272 12.8398388,16.2752765 13.3231721,15.80771 C13.8062819,15.3399246 13.0715617,12.7308772 13.0715617,12.7308772\",\n id: \"Fill-18\",\n fill: \"#EBCFB7\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.5859726,12.7308772 C28.0221568,11.1337961 28.6192287,11.1337961 28.8717329,11.5387578 C29.1242371,11.9435005 28.2516452,13.5180351 28.2288528,14.8001217 C28.2058369,16.0824272 27.817472,16.2752765 27.3343622,15.80771 C26.8510289,15.3399246 27.5859726,12.7308772 27.5859726,12.7308772\",\n id: \"Fill-20\",\n fill: \"#EBCFB7\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.3795884,25.9199302 C11.7632994,26.0094596 11.1796348,26.1029291 10.6277008,26.2001199 C10.5054709,26.2217908 10.3870398,26.2436806 10.2679382,26.2655705 L8.64386693,30.0951941 L12.4334411,31.7148217 L10.3430191,38.50767 L18.075681,43.7259836 L19.0591067,43.7259836 L12.3795884,25.9199302 Z\",\n id: \"Fill-22\",\n fill: \"#3A3939\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.0133992,30.0952379 L30.3895513,26.2656142 C30.2834102,26.2459134 30.1768221,26.2264315 30.0686699,26.2071684 L30.0686699,26.2069495 C30.0628601,26.205855 30.0566033,26.2051983 30.0510169,26.2041039 C30.0438664,26.2027905 29.1706041,26.0423381 28.2939899,25.9223819 L21.6763687,43.5636049 L21.6765921,43.5633861 L21.5986063,43.7260274 L22.5815851,43.7260274 L30.314247,38.5077137 L28.2240485,31.7146466 L32.0133992,30.0952379 Z\",\n id: \"Fill-24\",\n fill: \"#2D2D2D\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.3287113,6.64640537 L20.3287113,0 C16.3335585,0 13.6766779,1.70762469 12.9146962,4.81335203 C11.8139567,9.29901349 13.0521211,13.3967874 13.2000483,13.8032813 C13.8612518,13.932869 14.0167765,11.6642083 14.0167765,9.24144327 C14.0167765,3.89113401 16.7697427,6.64640537 20.3287113,6.64640537\",\n id: \"Fill-26\",\n fill: \"#370B00\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.3287113,6.64640537 L20.3287113,0 C24.3238641,0 26.9807446,1.70762469 27.7427263,4.81335203 C28.8434659,9.29901349 27.605078,13.3967874 27.4573742,13.8032813 C26.7961707,13.932869 26.640646,11.6642083 26.640646,9.24144327 C26.640646,3.89113401 23.8876798,6.64640537 20.3287113,6.64640537\",\n id: \"Fill-28\",\n fill: \"#230600\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Fill-30\",\n fill: \"#2A798C\",\n points: \"20.3287113 33.2162443 18.6501169 33.2162443 19.425506 43.7259836 20.3287113 43.7259836\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Fill-32\",\n fill: \"#266C77\",\n points: \"21.23214 43.7259179 22.0073056 33.2161786 20.3287113 33.2161786 20.3287113 43.7259179\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Fill-34\",\n fill: \"#3691AD\",\n points: \"18.2760532 31.4385503 19.1256293 33.2162224 20.3287113 33.2162224 20.3287113 28.9930199\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Fill-36\",\n fill: \"#266C77\",\n points: \"22.3812799 31.4385503 20.3286219 28.9930199 20.3286219 33.2162224 21.5317039 33.2162224\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.9005061,25.9844833 L25.8313812,24.1571213 C26.8119019,24.7194707 28.2241379,25.9115902 28.2241379,25.9115902 C28.2241379,25.9115902 26.4673343,29.8497873 25.1587815,31.6071019 C23.8497818,33.3639787 22.4846949,34.4026505 22.4846949,34.4026505 L20.3288006,29.2136692 L20.4320369,29.1004989 L23.9005061,25.9844833 Z\",\n id: \"Fill-38\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.7972922,25.9115902 L25.8314035,24.1571213 C26.8119243,24.6969242 28.2241602,25.9115902 28.2241602,25.9115902 C28.2241602,25.9115902 26.3641204,29.6230088 25.0553442,31.3098382 C23.7465679,32.9968864 22.5412514,33.9077218 22.5412514,33.9077218 L20.328823,29.2136692 L20.328823,28.9034905 L23.7972922,25.9115902 Z\",\n id: \"Fill-40\",\n fill: \"#F4F2F2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.7568047,25.9844833 L14.826153,24.1571213 C13.8456323,24.7194707 12.4333964,25.9115902 12.4333964,25.9115902 C12.4333964,25.9115902 14.1899765,29.8497873 15.4987527,31.6071019 C16.807529,33.3639787 18.1726158,34.4026505 18.1726158,34.4026505 L20.3287336,29.2136692 L20.2252739,29.1004989 L16.7568047,25.9844833 Z\",\n id: \"Fill-42\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.8601303,25.9115902 L14.826019,24.1571213 C13.8454982,24.6969242 12.4334858,25.9115902 12.4334858,25.9115902 C12.4334858,25.9115902 14.2933021,29.6230088 15.6020784,31.3098382 C16.9108546,32.9968864 18.1163946,33.9077218 18.1163946,33.9077218 L20.3285995,29.2136692 L20.3285995,28.9034905 L16.8601303,25.9115902 Z\",\n id: \"Fill-44\",\n fill: \"#FFFFFF\"\n })))))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAvatarMaleyBohnCwo);\nexport default __webpack_public_path__ + \"static/media/avatar-male~yBohnCwo.6a8e70b9dc2f3b8d1a2a5a2b035469ef.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { usePreset } from '@kne/global-context';\nimport Fetch from '@kne/react-fetch';\nimport merge from 'lodash/merge';\n\nconst withOSSFile = WrappedComponent => {\n return p => {\n const {\n id,\n url,\n error,\n apis: currentApis,\n loading,\n ttl,\n cacheName,\n ...props\n } = Object.assign(\n {},\n {\n loading: null,\n ttl: 1000 * 60 * 100,\n cacheName: 'file-cache'\n },\n p\n );\n\n const { apis: baseApis } = usePreset();\n const apis = merge({}, baseApis, currentApis);\n\n if (!id) {\n return null;\n }\n if (!apis?.file?.getUrl) {\n console.warn('请在Global组件设置preset.apis.file.getUrl参数');\n return null;\n }\n\n const { paramsType, paramsName, ...fileApi } = Object.assign(\n {\n paramsType: 'params',\n paramsName: 'id'\n },\n apis.file.getUrl\n );\n\n const fetchProps = {};\n\n const formatId = id.split('?')[0];\n\n fetchProps[paramsType] = { [paramsName]: formatId };\n\n return (\n <Fetch\n {...Object.assign({}, fileApi, fetchProps)}\n updateType=\"refresh\"\n error={error}\n loading={loading}\n cache={cacheName}\n ttl={ttl}\n render={({ data, ...fetchApi }) => <WrappedComponent {...props} id={formatId} data={data} fetchApi={fetchApi} />}\n />\n );\n };\n};\n\nexport default withOSSFile;\n","import withOSSFile from '../../hocs/withOSSFile';\n\nconst File = withOSSFile(({ data, children, ...props }) => {\n return children({ url: data, ...props });\n});\n\nexport default File;\n","const downloadAction = (url, filename) => {\n const element = document.createElement('a'),\n event = new MouseEvent('click');\n element.download = filename; // 设置文件名称\n element.target = '_blank';\n element.href = url; // 将生成的URL设置为a.href属性\n element.dispatchEvent(event); // 触发a的单击事件\n\n};\n\nexport default downloadAction;\n","import download from './downloadAction';\nimport { getAjax } from '@kne/react-fetch';\n\nconst downloadBlobFile = async (input, filename = 'file', locale) => {\n if (!input) {\n throw new Error(locale?.notFoundFile || '未获取到下载的文件信息');\n }\n if (typeof input === 'string' && /blob:http(s)?:/.test(input)) {\n download(input, filename);\n return;\n }\n if (Object.prototype.toString.call(input) === '[object Blob]') {\n const blob = new Blob([input], {\n type: input.type\n });\n download(URL.createObjectURL(blob), filename);\n return;\n }\n\n const ajax = getAjax();\n\n const { data, headers } = await ajax({ url: input, responseType: 'blob' });\n\n const contentDisposition = headers?.['content-disposition'];\n\n if (contentDisposition) {\n const fileNameMatch = contentDisposition.match(/filename\\*?=(?:UTF-8'')?([^;]+)/i);\n if (fileNameMatch && fileNameMatch[1]) {\n filename = decodeURIComponent(fileNameMatch[1].replace(/['\"]/g, ''));\n } else {\n const fallbackMatch = contentDisposition.match(/filename=\"?([^\"]+)\"?/i);\n if (fallbackMatch) filename = fallbackMatch[1];\n }\n }\n\n download(\n URL.createObjectURL(\n new Blob([data], {\n type: data?.type\n })\n ),\n filename\n );\n};\n\nexport default downloadBlobFile;\n","import { usePreset } from '@kne/global-context';\n\nexport const formatStaticUrl = ({ url, staticUrl }) => {\n return /^(blob:)?https?:\\/\\//.test(url) ? url : staticUrl + url;\n};\n\nconst useStaticUrl = ({ url, staticUrl: staticUrlProps }) => {\n const { apis } = usePreset();\n const staticUrl = staticUrlProps || apis.file?.staticUrl || '';\n return formatStaticUrl({ staticUrl, url });\n};\n\nexport default useStaticUrl;\n","import { useState, useEffect } from 'react';\nimport { App } from 'antd';\nimport { usePreset } from '@kne/global-context';\nimport useRefCallback from '@kne/use-ref-callback';\nimport { useFetch } from '@kne/react-fetch';\nimport downloadBlobFile from './downloadBlobFile';\nimport { formatStaticUrl } from '../../common/useStaticUrl';\n\nconst useDownload = ({ id, src, filename, staticUrl: staticUrlProps, apis: currentApis, onError, onSuccess }) => {\n const { message } = App.useApp();\n const { apis: baseApis } = usePreset();\n const apis = Object.assign({}, baseApis, currentApis);\n const staticUrl = staticUrlProps || apis.file?.staticUrl || '';\n const [downLoading, setDownLoading] = useState(false);\n const { paramsType, paramsName, ...fileApi } = Object.assign(\n {\n paramsType: 'params',\n paramsName: 'id'\n },\n apis.file?.getUrl\n );\n const fetchProps = {};\n fetchProps[paramsType] = { [paramsName]: id };\n const { isLoading, data, error, refresh, ...otherProps } = useFetch(Object.assign({}, fileApi, fetchProps, { auto: false }));\n\n const showError = useRefCallback(onError || message.error);\n const successHandler = useRefCallback(onSuccess);\n const downloadHandler = useRefCallback(src => {\n return downloadBlobFile(formatStaticUrl({ staticUrl, url: src }), filename)\n .then(successHandler)\n .catch(e => {\n showError(e.message);\n });\n });\n\n useEffect(() => {\n if (isLoading) {\n return;\n }\n if (error) {\n showError(error);\n return;\n }\n if (!data) {\n return;\n }\n setDownLoading(true);\n downloadHandler(data).then(() => {\n setDownLoading(false);\n });\n }, [isLoading, error, data, showError]);\n\n return {\n ...otherProps,\n isLoading: isLoading || downLoading,\n download: () => {\n if (src) {\n return downloadHandler(src);\n }\n return refresh(id ? fetchProps : {});\n }\n };\n};\n\nexport default useDownload;\n","const locale = {\n unnamedDownloadFile: '未命名下载文件',\n fileUpload: '上传文件',\n uploadTips: '支持扩展名{accept},单个文件大小不超过{fileSize}M,最多上传{maxLength}个附件',\n maxLengthError: '上传文件不能超过最大允许数量{maxLength}',\n fileSizeError: '文件{filename}不能超过{fileSize}MB!',\n uploadError: '文件{filename}上传错误{error}',\n uploadAnomaly: '文件{filename}上传异常{error}',\n fileLoadedError: '文件加载失败',\n fileNotFoundError: '未指定文件',\n pageNotFoundError: '未指定页面',\n unSupportFileType: '不支持的文件类型',\n unSupportFileTypeDescription: '系统不支持该文件类型预览,请下载到本地后进行预览',\n uploading: '正在上传',\n unNamedDownloadFile: '未命名下载文件',\n notFoundFile: '未获取到下载的文件信息',\n downloadSuccess: '下载成功',\n pleaseSetApi: '请在Global组件设置preset.apis.file.getUrl参数',\n filePreview: '文件预览'\n};\n\nexport default locale;\n","import React from 'react';\nimport { Button } from 'antd';\nimport { DownloadOutlined } from '@ant-design/icons';\nimport useDownload from './useDownload';\nimport downloadAction from './downloadAction';\nimport downloadBlobFile from './downloadBlobFile';\nimport omit from 'lodash/omit';\nimport { createWithIntlProvider, useIntl } from '@kne/react-intl';\nimport zhCn from '../../locale/zh-CN';\n\nconst Download = createWithIntlProvider(\n 'zh-CN',\n zhCn,\n 'react-file'\n)(p => {\n const { formatMessage } = useIntl();\n const { id, src, filename, api, onSuccess, onError, onClick, ...props } = Object.assign(\n {},\n {\n filename: formatMessage({ id: 'unnamedDownloadFile' })\n },\n p\n );\n\n const { isLoading, download } = useDownload({\n id,\n src,\n filename,\n api,\n onError,\n onSuccess\n });\n\n return (\n <Button\n icon={<DownloadOutlined />}\n {...omit(props, ['locale'])}\n loading={isLoading}\n onClick={(...args) => {\n onClick && onClick(...args);\n download();\n }}\n />\n );\n});\n\nDownload.useDownload = useDownload;\nDownload.download = downloadAction;\nDownload.downloadBlobFile = downloadBlobFile;\n\nexport default Download;\n","import iFrameResize from '@kne/iframe-resizer';\nimport React, { useEffect, useRef } from 'react';\nimport classnames from 'classnames';\nimport style from './style.module.scss';\nimport Fetch from '@kne/react-fetch';\nimport { usePreset } from '@kne/global-context';\nimport { createWithIntlProvider, useIntl } from '@kne/react-intl';\nimport zhCn from '../../locale/zh-CN';\n\nconst HtmlInnerPreview = createWithIntlProvider(\n 'zh-CN',\n zhCn,\n 'react-file'\n)(({ data, apis: propsApis, contentWindowUrl: contentWindowUrlProps }) => {\n const ref = useRef(null);\n const { apis: baseApis } = usePreset();\n const { formatMessage } = useIntl();\n const apis = Object.assign({}, baseApis, propsApis);\n // https://uc.fatalent.cn/packages/@kne/iframe-resizer/0.1.2/dist/contentWindow.js https://cdn.jsdelivr.net/npm/@kne/iframe-resizer@0.1.3/dist/contentWindow.js\n const contentWindowUrl = contentWindowUrlProps || apis.file?.contentWindowUrl || 'https://cdn.jsdelivr.net/npm/@kne/iframe-resizer@0.1.3/dist/contentWindow.js';\n useEffect(() => {\n const parser = new DOMParser();\n const domDocument = parser.parseFromString(data, 'text/html');\n domDocument.querySelectorAll('script').forEach(el => {\n el.parentElement.removeChild(el);\n });\n const script = document.createElement('script');\n script.src = contentWindowUrl;\n domDocument.head.appendChild(script);\n const style = document.createElement('style');\n style.innerText = 'html,body{height:auto!important;}body{pointer-events: none;background: #FFFFFF;}';\n domDocument.head.appendChild(style);\n ref.current.srcdoc = domDocument.documentElement.outerHTML;\n }, [data]);\n useEffect(() => {\n iFrameResize({ checkOrigin: false }, ref.current);\n }, []);\n return <iframe title={formatMessage({ id: 'filePreview' })} frameBorder=\"0\" width=\"100%\" ref={ref} />;\n});\n\nconst HtmlPreview = createWithIntlProvider(\n 'zh-CN',\n zhCn,\n 'react-file'\n)(p => {\n const { formatMessage } = useIntl();\n const { className, url, maxWidth, ignoreContent, ...props } = Object.assign({}, p);\n\n const defaultIframe = <iframe title={formatMessage({ id: 'filePreview' })} src={url} width=\"100%\" className={style['html-preview-iframe']} />;\n\n return (\n <div\n className={classnames(className, style['container'])}\n style={{\n maxWidth\n }}\n >\n {ignoreContent ? (\n defaultIframe\n ) : (\n <Fetch\n url={url}\n transformResponse={({ data }) => {\n return {\n data: {\n code: 200,\n results: data\n }\n };\n }}\n showError={false}\n error={defaultIframe}\n render={({ data }) => {\n return <HtmlInnerPreview {...props} url={url} data={data} />;\n }}\n />\n )}\n </div>\n );\n});\n\nexport default HtmlPreview;\n","import React from 'react';\nimport { typeFormatComponent, typeComponentMapping } from './typeFormat';\nimport { usePreset } from '@kne/global-context';\nimport useStaticUrl from '../../common/useStaticUrl';\n\nconst TypePreview = ({ url, filename, type, ...props }) => {\n const { apis: baseApis } = usePreset();\n const apis = Object.assign({}, baseApis, props.apis);\n const fileUrl = useStaticUrl({ staticUrl: props.staticUrl || apis.file?.staticUrl, url });\n const PreviewComponent = (type && typeComponentMapping[type]) || typeFormatComponent(filename || fileUrl);\n return <PreviewComponent {...props} url={fileUrl} />;\n};\n\nexport default TypePreview;\n","import React from 'react';\nimport { usePreset } from '@kne/global-context';\nimport Fetch from '@kne/react-fetch';\nimport TypePreview from './TypePreview';\n\nconst OfficePreview = ({ url, apis: propsApis, className, ...props }) => {\n const { apis: baseApis } = usePreset();\n const apis = Object.assign({}, baseApis, propsApis);\n\n return (\n <Fetch\n {...(apis.file?.previewOffice || {\n loader: async () => {\n return {\n data: [\n {\n //url: `https://view.officeapps.live.com/op/view.aspx?src=${encodeURIComponent(url)}&wdPrint=0&wdEmbedCode=0`,\n url: `https://view.officeapps.live.com/op/embed.aspx?src=${encodeURIComponent(url)}`,\n type: 'html'\n }\n ]\n };\n }\n })}\n render={({ data }) => {\n const { data: fileList } = data;\n return fileList.map(({ url, type }) => {\n return <TypePreview {...props} type={type} ignoreContent url={url} className={className} key={url} />;\n });\n }}\n />\n );\n};\n\nexport default OfficePreview;\n","import React, { memo, useMemo, useState } from 'react';\nimport { Flex, Spin } from 'antd';\nimport { Document, Page, pdfjs } from 'react-pdf';\nimport 'react-pdf/dist/Page/TextLayer.css';\nimport 'react-pdf/dist/Page/AnnotationLayer.css';\nimport style from './style.module.scss';\nimport useResize from '@kne/use-resize';\nimport classnames from 'classnames';\nimport { useContext, usePreset } from '@kne/global-context';\nimport { createWithIntlProvider, useIntl } from '@kne/react-intl';\nimport zhCn from '../../locale/zh-CN';\n\nconst PdfPreview = memo(\n createWithIntlProvider(\n 'zh-CN',\n zhCn,\n 'react-file'\n )(p => {\n const { formatMessage } = useIntl();\n const {\n url,\n apis: propsApis,\n maxWidth,\n scale,\n rotate,\n className,\n pdfjsUrl: pdfjsUrlProps\n } = Object.assign(\n {},\n {\n autoSize: true,\n renderTextLayer: false,\n scale: 100,\n rotate: 0,\n maxWidth: 1200\n },\n p\n );\n\n const [numPages, setNumPages] = useState(0);\n const { apis: baseApis } = usePreset();\n const apis = Object.assign({}, baseApis, propsApis);\n // https://uc.fatalent.cn/packages/pdfjs-dist/5.4.296 https://cdn.jsdelivr.net/npm/pdfjs-dist@5.4.296\n const pdfjsUrl = pdfjsUrlProps || apis.file?.pdfjsUrl || 'https://cdn.jsdelivr.net/npm/pdfjs-dist@5.4.296';\n pdfjs.GlobalWorkerOptions.workerSrc = pdfjsUrl + '/build/pdf.worker.min.mjs';\n const documentProps = useMemo(() => {\n return {\n file: url,\n options: {\n standardFontDataUrl: pdfjsUrl + '/standard_fonts/',\n cMapUrl: pdfjsUrl + '/cmaps/',\n cMapPacked: true\n }\n };\n }, [pdfjsUrl, url]);\n const [width, setWidth] = useState(maxWidth);\n const ref = useResize(() => {\n if (ref.current && ref.current.clientWidth) {\n setWidth(Math.min(ref.current.clientWidth, maxWidth));\n }\n });\n return (\n <div\n ref={ref}\n className={classnames(className, style['container'])}\n style={{\n maxWidth: maxWidth\n }}\n >\n <Document\n {...documentProps}\n error={formatMessage({ id: 'fileLoadedError' })}\n loading={\n <div className={style['loading']}>\n <Spin />\n </div>\n }\n noData={formatMessage({ id: 'fileNotFoundError' })}\n onLoadSuccess={({ numPages }) => {\n setNumPages(numPages);\n }}\n >\n <Flex vertical gap={8}>\n {numPages >= 1 &&\n Array.from(new Array(numPages), (el, index) => (\n <Page\n key={`page_${index}`}\n className=\"preview-item\"\n scale={scale / 100}\n rotate={rotate}\n pageNumber={index + 1}\n width={width}\n loading={null}\n renderAnnotationLayer={false}\n renderTextLayer={true}\n noData={formatMessage({ id: 'pageNotFoundError' })}\n />\n ))}\n </Flex>\n </Document>\n </div>\n );\n })\n);\n\nexport default PdfPreview;\n","import React, { useState, useEffect } from 'react';\nimport { getAjax } from '@kne/react-fetch';\nimport style from './style.module.scss';\nimport { Spin } from 'antd';\nimport classnames from 'classnames';\nimport { createWithIntlProvider, useIntl } from '@kne/react-intl';\nimport zhCn from '../../locale/zh-CN';\n\nconst TextPreview = createWithIntlProvider(\n 'zh-CN',\n zhCn,\n 'react-file'\n)(({ url, className, maxWidth }) => {\n const { formatMessage } = useIntl();\n const [text, setText] = useState('');\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n useEffect(() => {\n const ajax = getAjax();\n ajax({ url, method: 'GET' }).then(\n ({ data }) => {\n setText(data);\n setLoading(false);\n },\n () => {\n setLoading(false);\n setError(true);\n }\n );\n }, [url]);\n\n return (\n <div\n className={classnames(className, style['container'])}\n style={{\n maxWidth\n }}\n >\n {loading ? (\n <div className={style['loading']}>\n <Spin />\n </div>\n ) : null}\n <div className={style['text-outer']}>{error ? <div className={style['error']}>{formatMessage({ id: 'fileLoadedError' })}</div> : <div className={style['text-inner']}>{text}</div>}</div>\n </div>\n );\n});\n\nexport default TextPreview;\n","import React from 'react';\nimport { Result } from 'antd';\nimport style from './style.module.scss';\nimport { createWithIntlProvider,useIntl } from '@kne/react-intl';\nimport zhCn from '../../locale/zh-CN';\n\nconst UnknownPreview = createWithIntlProvider(\n 'zh-CN',\n zhCn,\n 'react-file'\n)(({ maxWidth }) => {\n const { formatMessage } = useIntl();\n return (\n <div\n className={style['container']}\n style={{\n maxWidth\n }}\n >\n <div className={style['text-outer']}>\n <Result status=\"500\" title={formatMessage({ id: 'unSupportFileType' })} subTitle={formatMessage({ id: 'unSupportFileTypeDescription' })} />\n </div>\n </div>\n );\n});\n\nexport default UnknownPreview;\n","import React, { useEffect, useState } from 'react';\nimport style from './style.module.scss';\nimport { Spin } from 'antd';\nimport classnames from 'classnames';\nimport { createWithIntlProvider, useIntl } from '@kne/react-intl';\nimport zhCn from '../../locale/zh-CN';\n\nconst ImagePreview = createWithIntlProvider(\n 'zh-CN',\n zhCn,\n 'react-file'\n)(({ url, scale, rotate, className, maxWidth, origin, ...props }) => {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const { formatMessage } = useIntl();\n useEffect(() => {\n const image = new Image();\n image.src = url;\n const handlerLoad = () => {\n setLoading(false);\n };\n\n const handlerError = () => {\n setLoading(false);\n setError(true);\n };\n\n image.addEventListener('load', handlerLoad);\n image.addEventListener('error', handlerError);\n return () => {\n image.removeEventListener('load', handlerLoad);\n image.removeEventListener('error', handlerError);\n };\n }, [url, scale, rotate]);\n if (origin) {\n return <img alt={formatMessage({ id: 'filePreview' })} {...props} className={className} src={url} />;\n }\n return (\n <div\n className={classnames(className, style['container'])}\n style={{\n maxWidth\n }}\n >\n {loading ? (\n <div className={style['loading']}>\n <Spin />\n </div>\n ) : null}\n {error ? <div className={style['error']}>{formatMessage({ id: 'fileLoadedError' })}</div> : <img alt={formatMessage({ id: 'filePreview' })} {...props} src={url} />}\n </div>\n );\n});\n\nexport default ImagePreview;\n","import React from 'react';\nimport style from './style.module.scss';\n\nconst AudioPreview = ({ url, maxWidth, ...props }) => {\n return (\n <div\n className={style['container']}\n style={{\n maxWidth\n }}\n >\n <div className={style['audio-inner']}>\n <audio {...props} src={url} controls />\n </div>\n </div>\n );\n};\n\nexport default AudioPreview;\n","import React, { useEffect, useRef } from 'react';\nimport useRefCallback from '@kne/use-ref-callback';\nimport style from './style.module.scss';\n\nconst VideoPreview = ({ url, maxWidth, origin, controls = true, getElement, ...props }) => {\n const ref = useRef(null);\n const getElementCallback = useRefCallback(getElement);\n useEffect(() => {\n getElementCallback(ref.current);\n }, [getElementCallback]);\n if (origin) {\n return <video controls={controls} {...props} src={url} ref={ref} />;\n }\n return (\n <div\n className={style['container']}\n style={{\n maxWidth\n }}\n >\n <div className={style['video-inner']}>\n <video controls={controls} {...props} src={url} ref={ref} />\n </div>\n </div>\n );\n};\n\nexport default VideoPreview;\n","import React, { useState, useEffect } from 'react';\nimport { getAjax } from '@kne/react-fetch';\nimport style from './style.module.scss';\nimport { Spin } from 'antd';\nimport classnames from 'classnames';\nimport { createWithIntlProvider, useIntl } from '@kne/react-intl';\nimport MarkdownRender from '@kne/markdown-components-render';\nimport zhCn from '../../locale/zh-CN';\nimport '@kne/markdown-components-render/dist/index.css';\n\nconst MarkdownPreview = createWithIntlProvider(\n 'zh-CN',\n zhCn,\n 'react-file'\n)(({ url, className, maxWidth, ...props }) => {\n const { formatMessage } = useIntl();\n const [text, setText] = useState('');\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n useEffect(() => {\n const ajax = getAjax();\n ajax({ url, method: 'GET' }).then(\n ({ data }) => {\n setText(data);\n setLoading(false);\n },\n () => {\n setLoading(false);\n setError(true);\n }\n );\n }, [url]);\n\n return (\n <div\n className={classnames(className, style['container'])}\n style={{\n maxWidth\n }}\n >\n {loading ? (\n <div className={style['loading']}>\n <Spin />\n </div>\n ) : null}\n <div className={style['text-outer']}>{error ? <div className={style['error']}>{formatMessage({ id: 'fileLoadedError' })}</div> : <MarkdownRender {...props}>{text}</MarkdownRender>}</div>\n </div>\n );\n});\n\nexport default MarkdownPreview;\n","import HtmlPreview from './HtmlPreview';\nimport OfficePreview from './OfficePreview';\nimport PdfPreview from './PdfPreview';\nimport TextPreview from './TextPreview';\nimport UnknownPreview from './UnknownPreview';\nimport ImagePreview from './ImagePreview';\nimport AudioPreview from './AudioPreview';\nimport VideoPreview from './VideoPreview';\nimport MarkdownPreview from './MarkdownPreview';\n\nconst typeFormat = url => {\n if (typeof url !== 'string') {\n return 'unknown';\n }\n const path = (url || '').split('?')[0];\n const _path = path.toLowerCase();\n if (/.txt$/.test(_path)) {\n return 'txt';\n }\n if (/.md$/.test(_path)) {\n return 'markdown';\n }\n if (/.pdf$/.test(_path)) {\n return 'pdf';\n }\n if (/.(png|jpg|jpeg)$/.test(_path)) {\n return 'image';\n }\n if (/.(html|htm)$/.test(_path)) {\n return 'html';\n }\n if (/.(doc|docx|xls|xlsx|ppt|pptx|csv)$/.test(_path)) {\n return 'office';\n }\n if (/.(mp3|wav|ogg|aac)$/.test(_path)) {\n return 'audio';\n }\n if (/.(mp4|avi|mov|mkv|flv)$/.test(_path)) {\n return 'video';\n }\n return 'unknown';\n};\n\nexport default typeFormat;\n\nexport const typeComponentMapping = {\n txt: TextPreview,\n markdown: MarkdownPreview,\n pdf: PdfPreview,\n image: ImagePreview,\n html: HtmlPreview,\n office: OfficePreview,\n audio: AudioPreview,\n video: VideoPreview,\n unknown: UnknownPreview\n};\n\nexport const typeFormatComponent = url => {\n return typeComponentMapping[typeFormat(url)];\n};\n","import React from 'react';\nimport withOSSFile from '../../hocs/withOSSFile';\nimport { typeFormatComponent } from './typeFormat';\nimport useStaticUrl from '../../common/useStaticUrl';\n\nconst OSSFilePreview = withOSSFile(({ data, id, staticUrl: staticUrlProps, className, fetchApi, filename, render, ...props }) => {\n const fileUrl = useStaticUrl({ staticUrl: staticUrlProps, url: data });\n const PreviewComponent = (data && typeFormatComponent(data)) || (filename && typeFormatComponent(filename));\n if (typeof render === 'function') {\n return render({\n data,\n id,\n staticUrl: staticUrlProps,\n className,\n fetchApi,\n filename,\n url: fileUrl,\n component: PreviewComponent\n });\n }\n return <PreviewComponent {...props} className={className} url={fileUrl} />;\n});\n\nexport default OSSFilePreview;\n","import React from 'react';\nimport OSSFilePreview from './OSSFilePreview';\nimport TypePreview from './TypePreview';\n\nconst FilePreview = ({ id, src, originName, filename, ...props }) => {\n if (src) {\n return <TypePreview {...props} url={src} filename={filename || originName} />;\n }\n return <OSSFilePreview {...props} id={id} filename={filename || originName} />;\n};\n\nexport default FilePreview;\n","import React, { useState } from 'react';\nimport { Button } from 'antd';\nimport { useReactToPrint } from 'react-to-print';\n\nconst PrintButton = ({ content, onSuccess, onError, onBeforePrint, printProps, contentRef, ...props }) => {\n const [isLoading, setIsLoading] = useState(false);\n const handler = useReactToPrint({\n contentRef,\n bodyClass: document.body.getAttribute('class'),\n onBeforePrint: async (...args) => {\n setIsLoading(true);\n onBeforePrint && (await onBeforePrint(...args));\n },\n onPrintError: (...args) => {\n setIsLoading(false);\n onError && onError(...args);\n },\n onAfterPrint: (...args) => {\n setIsLoading(false);\n onSuccess && onSuccess(...args);\n },\n ...printProps\n });\n return (\n <Button\n {...props}\n onClick={() => {\n setIsLoading(true);\n handler();\n }}\n loading={isLoading}\n />\n );\n};\n\nexport default PrintButton;\n","import React, { useRef } from 'react';\nimport { Modal, Space, App } from 'antd';\nimport { PrinterOutlined } from '@ant-design/icons';\nimport Download from '../Download';\nimport PrintButton from '../PrintButton';\nimport FilePreview, { typeFormat } from '../FilePreview';\nimport useControlValue from '@kne/use-control-value';\nimport { createIntlProvider, useIntl } from '@kne/react-intl';\nimport zhCn from '../../locale/zh-CN';\nimport style from './style.modules.scss';\n\nconst IntlProvider = createIntlProvider('zh-CN', zhCn, 'react-file');\n\nexport const useFileModalProps = p => {\n const { title, filename, originName, openDownload, openPrint, id, src, apis, ...props } = Object.assign(\n {},\n {\n footer: null,\n openDownload: false,\n openPrint: false\n },\n p\n );\n const [open, onOpenChange] = useControlValue(props, {\n value: 'open',\n default: 'defaultOpen',\n onChange: 'onOpenChange'\n });\n const { message } = App.useApp();\n const ref = useRef();\n return {\n ...props,\n open,\n onOpenChange,\n onCancel: () => {\n onOpenChange(false);\n },\n title: (\n <Space size={10} className={style['file-title']}>\n <span className={style['ellipse']}>{title || filename || originName}</span>\n <span>\n {openDownload && (\n <IntlProvider>\n {({ formatMessage }) => (\n <Download\n className=\"btn-no-padding\"\n type=\"link\"\n id={id}\n src={src}\n apis={apis}\n filename={filename || originName}\n onSuccess={() => {\n message.success(formatMessage({ id: 'downloadSuccess' }));\n }}\n />\n )}\n </IntlProvider>\n )}\n {openPrint && ['txt', 'pdf', 'image', 'html'].indexOf(typeFormat(filename || originName)) > -1 && <PrintButton contentRef={ref} type=\"link\" icon={<PrinterOutlined />} />}\n </span>\n </Space>\n ),\n children: (\n <div ref={ref} className={style['file-modal-outer']}>\n <FilePreview id={id} src={src} filename={filename || originName} apis={apis} />\n </div>\n )\n };\n};\n\nexport const useFileModal = p => {\n const { renderModal, ...props } = Object.assign(\n {},\n {\n renderModal: modalProps => <Modal {...Object.assign({}, modalProps)} />\n },\n p\n );\n const fileProps = useFileModalProps(props);\n\n return Object.assign({}, fileProps, { renderModal: props => renderModal(Object.assign({}, fileProps, props)) });\n};\n\nconst FileModal = p => {\n const { renderModal } = useFileModal(p);\n return renderModal();\n};\n\nexport default FileModal;\n","import React, { useState } from 'react';\nimport { LinkOutlined } from '@ant-design/icons';\nimport { Button } from 'antd';\nimport FileModal from './FileModal';\n\nconst FileButton = p => {\n const [open, onOpenChange] = useState(false);\n const { filename, originName, id, src, title, modalProps, openDownload, openPrint, children, ...props } = Object.assign(\n {},\n {\n icon: <LinkOutlined />\n },\n p\n );\n const fileModalProps = Object.assign({}, modalProps, {\n filename: filename || originName,\n id,\n src,\n title,\n open,\n openPrint,\n openDownload,\n onCancel: () => {\n onOpenChange(false);\n }\n });\n\n return (\n <>\n <Button\n {...props}\n onClick={() => {\n onOpenChange(true);\n }}\n >\n {typeof children === 'function' ? children(filename || originName) : children || filename || originName}\n </Button>\n <FileModal {...fileModalProps} open={open} onOpenChange={onOpenChange} />\n </>\n );\n};\n\nexport default FileButton;\n","const loadImage = ({ params }) => {\n const { data } = params;\n return new Promise((resolve, reject) => {\n const image = new window.Image();\n image.src = data;\n image.addEventListener('load', () => {\n resolve(data);\n });\n image.addEventListener('error', e => {\n reject(e);\n });\n });\n};\n\nexport default loadImage;\n","import React from 'react';\nimport Fetch from '@kne/react-fetch';\nimport withOSSFile from '../../hocs/withOSSFile';\nimport classnames from 'classnames';\nimport { Avatar, Skeleton } from 'antd';\nimport loadImage from './loadImage';\nimport useStaticUrl from '../../common/useStaticUrl';\nimport style from './style.module.scss';\nimport { ReactComponent as PhotoFail } from './photo-fail.svg';\nimport { ReactComponent as AvatarDefault } from './avatar-default.svg';\nimport { ReactComponent as AvatarFemale } from './avatar-female.svg';\nimport { ReactComponent as AvatarMale } from './avatar-male.svg';\nimport { usePreset } from '@kne/global-context';\n\nconst loadingElement = <Skeleton.Avatar shape=\"square\" active />;\nconst photoFail = <PhotoFail />;\nconst avatarDefault = <AvatarDefault />;\nconst avatarFemale = <AvatarFemale />;\nconst avatarMale = <AvatarMale />;\n\nconst ImageInner = ({\n data,\n className,\n alt,\n innerLoading,\n loading,\n error,\n innerError,\n children,\n onClick,\n staticUrl: staticUrlProps\n }) => {\n const { apis: baseApis } = usePreset();\n const apis = Object.assign({}, baseApis);\n const fileUrl = useStaticUrl({ staticUrl: staticUrlProps || apis.file?.staticUrl, url: data });\n return (<Fetch\n loader={loadImage}\n params={{ data: fileUrl }}\n error={innerError || error}\n loading={innerLoading || loading}\n render={({ data }) => {\n if (typeof children === 'function') {\n return children({\n alt, className: classnames(className, style['img']), src: data\n });\n }\n return <img alt={alt} className={classnames(className, style['img'])} src={data} onClick={onClick} />;\n }}\n />);\n};\n\nconst FetchImageInner = withOSSFile(ImageInner);\n\nconst renderInner = ({ loading, error, src, id, alt, className, children, apis, onClick, staticUrl }) => {\n const cloneElement = (element, props) => {\n const TypeElement = element.type;\n if (!TypeElement && element.render) {\n return element.render(Object.assign({}, element.props, props));\n }\n return <TypeElement {...Object.assign({}, element.props, props)} />;\n };\n const imageLoading = loading && cloneElement(loading, {\n className: style['loading']\n });\n const imageError = error && cloneElement(error, {\n className: style['error']\n });\n\n if (id) {\n return (<FetchImageInner alt={alt} className={className} id={id} loading={imageLoading} innerLoading={imageLoading}\n error={imageError} innerError={imageError} apis={apis} onClick={onClick}>\n {children}\n </FetchImageInner>);\n }\n\n if (src) {\n return (<ImageInner alt={alt} className={className} staticUrl={staticUrl} data={src} loading={imageLoading}\n error={imageError} onClick={onClick}>\n {children}\n </ImageInner>);\n }\n\n return imageError;\n};\n\nconst Image = p => {\n const {\n id, src, alt, onClick, loading, error, className, apis, staticUrl, ...props\n } = Object.assign({}, { loading: loadingElement, error: photoFail }, p);\n return (<div {...props} className={classnames(className, style['img-outer'])}>\n {renderInner({\n loading, error, src, id, alt, className, apis, onClick, staticUrl\n })}\n </div>);\n};\n\nImage.Avatar = p => {\n const {\n id,\n src,\n alt,\n gender,\n loading,\n error,\n className,\n gap,\n icon,\n children,\n shape: propsShape,\n size,\n width,\n height,\n defaultAvatar,\n apis,\n staticUrl,\n ...props\n } = Object.assign({}, {\n size: 100, defaultAvatar: avatarDefault, error: photoFail, shape: 'circle'\n }, p);\n const inner = (() => {\n const styleProps = width && height ? { style: { width, height } } : { size };\n let shape = propsShape;\n if (width && width !== height) {\n shape = 'square';\n }\n\n if (id || src) {\n return renderInner({\n loading: loading || <Skeleton.Avatar shape={shape} active />,\n staticUrl,\n error,\n src,\n defaultAvatar,\n id,\n alt,\n className,\n apis,\n children: props => <Avatar {...props} gap={gap} shape={shape} {...styleProps} />\n });\n }\n\n if (gender) {\n const type = (() => {\n if (['F', 'female', 'f'].indexOf(gender) > -1) {\n return avatarFemale;\n }\n if (['M', 'male', 'm'].indexOf(gender) > -1) {\n return avatarMale;\n }\n\n return avatarDefault;\n })();\n\n return <Avatar {...props} src={type} gap={gap} shape={shape} {...styleProps} />;\n }\n\n return (<Avatar {...props} gap={gap} icon={icon} shape={shape} size={size} src={defaultAvatar} {...styleProps}>\n {children}\n </Avatar>);\n })();\n\n return (<div\n {...props}\n className={classnames(className, style['img-outer'])}\n style={{\n width: width && height ? width : size, height: width && height ? height : size\n }}\n >\n {inner}\n </div>);\n};\n\nexport default Image;\n","import React from 'react';\nimport { Flex, Button, Modal } from 'antd';\nimport { ConfirmButton, LoadingButton } from '@kne/button-group';\nimport '@kne/button-group/dist/index.css';\nimport DownloadButton from '../Download';\nimport { useFileModal } from '../FileButton';\nimport { EyeOutlined, EditOutlined, DeleteOutlined } from '@ant-design/icons';\n\nconst OptionButtons = p => {\n const {\n item,\n hasPreview,\n getPermission,\n apis,\n onEdit,\n onDelete,\n onPreview,\n renderModal: propsRenderModal\n } = Object.assign(\n {},\n {\n hasPreview: true,\n apis: {},\n getPermission: () => {\n return true;\n },\n renderModal: modalProps => <Modal {...Object.assign({}, modalProps)} />\n },\n p\n );\n const { filename, id, src } = item;\n\n const { onOpenChange, renderModal } = useFileModal({ apis, id, src, filename, renderModal: propsRenderModal });\n\n return (\n <Flex justify=\"end\">\n {hasPreview && getPermission('preview', item) && (\n <>\n <Button\n type=\"text\"\n icon={<EyeOutlined />}\n onClick={() => {\n onPreview ? onPreview(item) : onOpenChange(true);\n }}\n />\n {renderModal()}\n </>\n )}\n {getPermission('edit', item) && (\n <LoadingButton\n type=\"text\"\n icon={<EditOutlined />}\n onClick={() => {\n return onEdit && onEdit(item);\n }}\n />\n )}\n {getPermission('download', item) && <DownloadButton type=\"text\" id={id} src={src} filename={filename} />}\n {getPermission('delete', item) && (\n <ConfirmButton\n type=\"text\"\n icon={<DeleteOutlined />}\n onClick={() => {\n return onDelete && onDelete(item);\n }}\n />\n )}\n </Flex>\n );\n};\n\nexport default OptionButtons;\n","import React from 'react';\nimport { Col, List as AntdList, Modal, Row, Space, Spin, Typography } from 'antd';\nimport FileType from '@kne/react-file-type';\nimport OptionButtons from './OptionButtons';\nimport last from 'lodash/last';\nimport dayjs from 'dayjs';\nimport style from './style.module.scss';\nimport { createWithIntlProvider, useIntl } from '@kne/react-intl';\nimport zhCn from '../../locale/zh-CN';\n\nconst List = createWithIntlProvider(\n 'zh-CN',\n zhCn,\n 'react-file'\n)(p => {\n const { formatMessage } = useIntl();\n const { className, dataSource, getPermission, infoItemRenders, onDelete, onEdit, apis, renderModal } = Object.assign(\n {},\n {\n infoItemRenders: [\n item => {\n return item.userName ? <Typography.Text>{item.userName}</Typography.Text> : null;\n },\n item => {\n return item.date ? <Typography.Text>{dayjs(item.date).format('YYYY-MM-DD HH:mm:ss')}</Typography.Text> : null;\n }\n ],\n getPermission: () => {\n return true;\n },\n renderModal: modalProps => <Modal {...Object.assign({}, modalProps)} />\n },\n p\n );\n return (\n <AntdList\n className={className}\n dataSource={dataSource.map((item, index) => {\n item.index = index;\n return item;\n })}\n rowKey={item => `item_${(item.uuid && `uuid_${item.uuid}`) || (item.id && `id_${item.id}`) || (item.src && `src_${item.src}`)}`}\n renderItem={item => {\n const { type, filename } = item;\n return (\n <AntdList.Item className={style['list-item-outer']}>\n <Row justify=\"space-between\" wrap={false} className={style['list-item']}>\n <Col flex={1}>\n <div className={style['split']} />\n <Space className=\"is-block\" align=\"start\" size={4}>\n <FileType type={last(filename?.split('.'))} size={14} />\n {filename || ''}\n </Space>\n </Col>\n {infoItemRenders &&\n infoItemRenders.map((render, index) => {\n return (\n <Col span={render.span || 4} key={index}>\n {type !== 'uploading' && (typeof render === 'function' ? render : render.render)(item)}\n <div className={style['split']} />\n </Col>\n );\n })}\n <Col className={style['list-options']}>\n {type !== 'uploading' ? (\n <OptionButtons getPermission={getPermission} item={item} apis={apis} onDelete={onDelete} renderModal={renderModal} onEdit={onEdit} />\n ) : (\n <Space className={style['loading']}>\n <Spin size=\"small\" />\n <Typography.Link>{formatMessage({ id: 'uploading' })}</Typography.Link>\n </Space>\n )}\n </Col>\n </Row>\n </AntdList.Item>\n );\n }}\n bordered\n />\n );\n});\n\nexport default List;\n\nexport { OptionButtons };\n","import { useState, useMemo, useRef } from 'react';\nimport createDeferred from '@kne/create-deferred';\nimport { useContext, usePreset } from '@kne/global-context';\nimport useRefCallback from '@kne/use-ref-callback';\nimport { App } from 'antd';\nimport uniqueId from 'lodash/uniqueId';\nimport { createIntl } from '@kne/react-intl';\n\nconst useFileUpload = p => {\n const { locale } = useContext();\n const { formatMessage } = createIntl({ locale, namespace: 'react-file' });\n const { multiple, fileSize, maxLength, value, concurrentCount, onAdd, onError, onSave, onChange, onUpload } = Object.assign(\n {},\n {\n concurrentCount: 1,\n value: []\n },\n p\n );\n\n const { apis } = usePreset();\n const { message } = App.useApp();\n const [uploadingList, setUploadingList] = useState([]);\n const concurrentCountRef = useRef(concurrentCount);\n const deferred = useMemo(() => {\n return createDeferred(concurrentCountRef.current);\n }, []);\n\n const onFileSelected = useRefCallback(async fileList => {\n const allowCount = maxLength - value.length;\n if (!(maxLength === 1 || multiple !== true) && fileList.length > allowCount) {\n message.error(formatMessage({ id: 'maxLengthError' }, { maxLength }));\n return;\n }\n await Promise.allSettled(\n fileList.map(async file => {\n if (file.size > fileSize * 1024 * 1024) {\n message.error(formatMessage({ id: 'fileSizeError' }, { filename: file.name, fileSize }));\n return;\n }\n const uuid = uniqueId();\n const catchError = e => {\n const errMsg =\n e.message ||\n formatMessage(\n { id: 'uploadError' },\n {\n filename: file.name,\n error: e.message ? ':' + e.message : ''\n }\n );\n message.error(errMsg);\n onError && onError({ file, error: e, errMsg });\n setUploadingList(list => {\n const newList = list.slice(0);\n const index = newList.findIndex(item => item.uuid === uuid);\n index > -1 && newList.splice(index, 1);\n return newList;\n });\n };\n\n try {\n if (maxLength === 1 || multiple !== true) {\n setUploadingList([\n {\n uuid,\n type: 'uploading',\n filename: file.name\n }\n ]);\n } else {\n setUploadingList(list => {\n const newList = list.slice(0);\n newList.unshift({\n uuid,\n type: 'uploading',\n filename: file.name\n });\n return newList;\n });\n }\n onAdd && (await Promise.resolve(onAdd(file)));\n const uploadFun = onUpload ? onUpload : apis.file?.upload;\n const { data } = await deferred(() => uploadFun({ file }));\n\n if (data.code !== 0) {\n catchError(\n new Error(\n formatMessage(\n { id: 'uploadError' },\n {\n filename: file.name,\n error: data.msg ? ':' + data.msg : ''\n }\n )\n )\n );\n return;\n }\n\n const outputData = onSave\n ? await Promise.resolve(onSave(data, file, uuid))\n : Object.assign({}, data.data, {\n filename: data.data.filename || data.data.originName || file.name,\n id: data.data.id,\n uuid\n });\n\n setUploadingList(list => {\n const newList = list.slice(0);\n const index = newList.findIndex(item => item.uuid === uuid);\n index > -1 && newList.splice(index, 1);\n return newList;\n });\n if (maxLength === 1 || multiple !== true) {\n onChange([outputData]);\n } else {\n onChange(list => {\n const newList = (list || []).slice(0);\n newList.push(outputData);\n return newList;\n });\n }\n } catch (e) {\n catchError(e);\n }\n })\n );\n });\n\n return {\n fileList: uploadingList,\n onFileSelected\n };\n};\n\nexport default useFileUpload;\n","const defaultAccept = ['.pdf', '.jpg', '.png', '.jpeg', '.doc', '.docx', '.xls', '.xlsx', '.html', '.msg', '.eml', '.zip'];\n\nexport default defaultAccept;\n","import React, { useRef } from 'react';\nimport { Button } from 'antd';\nimport { UploadOutlined } from '@ant-design/icons';\nimport classnames from 'classnames';\nimport style from './style.module.scss';\nimport defaultAccept from './defaultAccept';\nimport { createWithIntlProvider, useIntl } from '@kne/react-intl';\nimport zhCn from '../../locale/zh-CN';\n\nconst FileInput = createWithIntlProvider(\n 'zh-CN',\n zhCn,\n 'react-file'\n)(p => {\n const { formatMessage } = useIntl();\n const ref = useRef(null);\n const { children, className, buttonText, accept, multiple, onChange, ...props } = Object.assign(\n {},\n {\n accept: defaultAccept,\n buttonText: formatMessage({ id: 'fileUpload' }),\n children: ({ children, ...props }) => {\n return (\n <Button icon={<UploadOutlined />} {...props}>\n {buttonText}\n {children}\n </Button>\n );\n }\n },\n p\n );\n\n const resetFileInput = () => {\n ref.current.setAttribute('type', 'text');\n ref.current.setAttribute('type', 'file');\n };\n\n return children({\n ...props,\n className: classnames(className, style['input-file']),\n children: !props.disabled && (\n <input\n ref={ref}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n className={style['input-file-input']}\n onChange={e => {\n const fileList = [].slice.call(e.target.files, 0);\n if (fileList.length === 0) {\n return;\n }\n resetFileInput();\n onChange(fileList);\n }}\n />\n )\n });\n});\n\nexport default FileInput;\n","import React from 'react';\nimport useControlValue from '@kne/use-control-value';\nimport useFileUpload from './useFileUpload';\nimport FileInput from './FileInput';\nimport FileList from '../FileList';\nimport defaultAccept from './defaultAccept';\nimport { Flex, Modal } from 'antd';\nimport omit from 'lodash/omit';\nimport style from './style.module.scss';\nimport { createWithIntlProvider, useIntl } from '@kne/react-intl';\nimport zhCn from '../../locale/zh-CN';\n\nconst FileUpload = createWithIntlProvider(\n 'zh-CN',\n zhCn,\n 'react-file'\n)(p => {\n const { formatMessage } = useIntl();\n const { className, fileSize, maxLength, multiple, size, accept, children, renderTips, showUploadList, onSave, ossUpload, getPermission, concurrentCount, apis, renderModal, ...props } = Object.assign(\n {},\n {\n defaultValue: [],\n accept: defaultAccept,\n renderTips: defaultTips => {\n return defaultTips;\n },\n children: formatMessage({ id: 'fileUpload' }),\n multiple: true,\n showUploadList: true,\n maxLength: 10,\n fileSize: 30,\n concurrentCount: 10,\n renderModal: modalProps => <Modal {...Object.assign({}, modalProps)} />\n },\n p\n );\n\n const [propsValue, onChange] = useControlValue(props);\n const value = propsValue || [];\n\n const { fileList: uploadingList, onFileSelected } = useFileUpload({\n multiple,\n onSave,\n ossUpload,\n fileSize,\n maxLength,\n value,\n onChange,\n concurrentCount\n });\n const values = [accept.map(str => str.replace(/^\\./, '')).join('、'), fileSize, maxLength];\n const previewFileList = [...value, ...uploadingList];\n const tipsText = renderTips(\n formatMessage(\n { id: 'uploadTips' },\n {\n fileSize,\n maxLength,\n accept: accept.map(str => str.replace(/^\\./, '')).join(',')\n }\n ),\n {\n fileSize,\n maxLength,\n accept\n }\n );\n\n return (\n <Flex vertical gap={8}>\n <Flex gap={8}>\n <FileInput {...omit(props, ['value', 'onChange'])} size={size} multiple={multiple} accept={accept} className={className} buttonText={children} onChange={onFileSelected} />\n {tipsText && <div className={style['tips']}>{tipsText}</div>}\n </Flex>\n {showUploadList && previewFileList.length > 0 && (\n <FileList\n className={style['upload-list']}\n dataSource={previewFileList}\n infoItemRenders={[]}\n getPermission={\n getPermission\n ? getPermission\n : type => {\n return ['delete', 'preview'].indexOf(type) > -1;\n }\n }\n onDelete={target => {\n const newList = value.slice(0);\n const index = newList.indexOf(target);\n index > -1 && newList.splice(index, 1);\n onChange(newList);\n }}\n apis={apis}\n renderModal={renderModal}\n />\n )}\n </Flex>\n );\n});\n\nexport default FileUpload;\n","/**\n * Check if the provided file type should be accepted by the input with accept attribute.\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input#attr-accept\n *\n * Inspired by https://github.com/enyo/dropzone\n *\n * @param file {File} https://developer.mozilla.org/en-US/docs/Web/API/File\n * @param acceptedFiles {string}\n * @returns {boolean}\n */\n\nconst computedAccept = (file, acceptedFiles) => {\n if (file && acceptedFiles) {\n const acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n const fileName = file.name || '';\n const mimeType = (file.type || '').toLowerCase();\n const baseMimeType = mimeType.replace(/\\/.*$/, '');\n\n return acceptedFilesArray.some(type => {\n const validType = type.trim().toLowerCase();\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n return mimeType === validType;\n });\n }\n return true;\n};\n\nexport default computedAccept;\n","import type {AnySchemaObject} from \"./types\"\nimport AjvCore from \"./core\"\nimport draft7Vocabularies from \"./vocabularies/draft7\"\nimport discriminator from \"./vocabularies/discriminator\"\nimport * as draft7MetaSchema from \"./refs/json-schema-draft-07.json\"\n\nconst META_SUPPORT_DATA = [\"/properties\"]\n\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\"\n\nexport class Ajv extends AjvCore {\n _addVocabularies(): void {\n super._addVocabularies()\n draft7Vocabularies.forEach((v) => this.addVocabulary(v))\n if (this.opts.discriminator) this.addKeyword(discriminator)\n }\n\n _addDefaultMetaSchema(): void {\n super._addDefaultMetaSchema()\n if (!this.opts.meta) return\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false)\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID\n }\n\n defaultMeta(): string | AnySchemaObject | undefined {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined))\n }\n}\n\nmodule.exports = exports = Ajv\nmodule.exports.Ajv = Ajv\nObject.defineProperty(exports, \"__esModule\", {value: true})\n\nexport default Ajv\n\nexport {\n Format,\n FormatDefinition,\n AsyncFormatDefinition,\n KeywordDefinition,\n KeywordErrorDefinition,\n CodeKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n Vocabulary,\n Schema,\n SchemaObject,\n AnySchemaObject,\n AsyncSchema,\n AnySchema,\n ValidateFunction,\n AsyncValidateFunction,\n SchemaValidateFunction,\n ErrorObject,\n ErrorNoParams,\n} from \"./types\"\n\nexport {Plugin, Options, CodeOptions, InstanceOptions, Logger, ErrorsTextOptions} from \"./core\"\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\nexport {default as ValidationError} from \"./runtime/validation_error\"\nexport {default as MissingRefError} from \"./compile/ref_error\"\n","// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport abstract class _CodeOrName {\n abstract readonly str: string\n abstract readonly names: UsedNames\n abstract toString(): string\n abstract emptyStr(): boolean\n}\n\nexport const IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i\n\nexport class Name extends _CodeOrName {\n readonly str: string\n constructor(s: string) {\n super()\n if (!IDENTIFIER.test(s)) throw new Error(\"CodeGen: name must be a valid identifier\")\n this.str = s\n }\n\n toString(): string {\n return this.str\n }\n\n emptyStr(): boolean {\n return false\n }\n\n get names(): UsedNames {\n return {[this.str]: 1}\n }\n}\n\nexport class _Code extends _CodeOrName {\n readonly _items: readonly CodeItem[]\n private _str?: string\n private _names?: UsedNames\n\n constructor(code: string | readonly CodeItem[]) {\n super()\n this._items = typeof code === \"string\" ? [code] : code\n }\n\n toString(): string {\n return this.str\n }\n\n emptyStr(): boolean {\n if (this._items.length > 1) return false\n const item = this._items[0]\n return item === \"\" || item === '\"\"'\n }\n\n get str(): string {\n return (this._str ??= this._items.reduce((s: string, c: CodeItem) => `${s}${c}`, \"\"))\n }\n\n get names(): UsedNames {\n return (this._names ??= this._items.reduce((names: UsedNames, c) => {\n if (c instanceof Name) names[c.str] = (names[c.str] || 0) + 1\n return names\n }, {}))\n }\n}\n\nexport type CodeItem = Name | string | number | boolean | null\n\nexport type UsedNames = Record<string, number | undefined>\n\nexport type Code = _Code | Name\n\nexport type SafeExpr = Code | number | boolean | null\n\nexport const nil = new _Code(\"\")\n\ntype CodeArg = SafeExpr | string | undefined\n\nexport function _(strs: TemplateStringsArray, ...args: CodeArg[]): _Code {\n const code: CodeItem[] = [strs[0]]\n let i = 0\n while (i < args.length) {\n addCodeArg(code, args[i])\n code.push(strs[++i])\n }\n return new _Code(code)\n}\n\nconst plus = new _Code(\"+\")\n\nexport function str(strs: TemplateStringsArray, ...args: (CodeArg | string[])[]): _Code {\n const expr: CodeItem[] = [safeStringify(strs[0])]\n let i = 0\n while (i < args.length) {\n expr.push(plus)\n addCodeArg(expr, args[i])\n expr.push(plus, safeStringify(strs[++i]))\n }\n optimize(expr)\n return new _Code(expr)\n}\n\nexport function addCodeArg(code: CodeItem[], arg: CodeArg | string[]): void {\n if (arg instanceof _Code) code.push(...arg._items)\n else if (arg instanceof Name) code.push(arg)\n else code.push(interpolate(arg))\n}\n\nfunction optimize(expr: CodeItem[]): void {\n let i = 1\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1])\n if (res !== undefined) {\n expr.splice(i - 1, 3, res)\n continue\n }\n expr[i++] = \"+\"\n }\n i++\n }\n}\n\nfunction mergeExprItems(a: CodeItem, b: CodeItem): CodeItem | undefined {\n if (b === '\"\"') return a\n if (a === '\"\"') return b\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"') return\n if (typeof b != \"string\") return `${a.slice(0, -1)}${b}\"`\n if (b[0] === '\"') return a.slice(0, -1) + b.slice(1)\n return\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name)) return `\"${a}${b.slice(1)}`\n return\n}\n\nexport function strConcat(c1: Code, c2: Code): Code {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str`${c1}${c2}`\n}\n\n// TODO do not allow arrays here\nfunction interpolate(x?: string | string[] | number | boolean | null): SafeExpr | string {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x)\n}\n\nexport function stringify(x: unknown): Code {\n return new _Code(safeStringify(x))\n}\n\nexport function safeStringify(x: unknown): string {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\")\n}\n\nexport function getProperty(key: Code | string | number): Code {\n return typeof key == \"string\" && IDENTIFIER.test(key) ? new _Code(`.${key}`) : _`[${key}]`\n}\n\n//Does best effort to format the name properly\nexport function getEsmExportName(key: Code | string | number): Code {\n if (typeof key == \"string\" && IDENTIFIER.test(key)) {\n return new _Code(`${key}`)\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`)\n}\n\nexport function regexpCode(rx: RegExp): Code {\n return new _Code(rx.toString())\n}\n","import type {ScopeValueSets, NameValue, ValueScope, ValueScopeName} from \"./scope\"\nimport {_, nil, _Code, Code, Name, UsedNames, CodeItem, addCodeArg, _CodeOrName} from \"./code\"\nimport {Scope, varKinds} from \"./scope\"\n\nexport {_, str, strConcat, nil, getProperty, stringify, regexpCode, Name, Code} from \"./code\"\nexport {Scope, ScopeStore, ValueScope, ValueScopeName, ScopeValueSets, varKinds} from \"./scope\"\n\n// type for expressions that can be safely inserted in code without quotes\nexport type SafeExpr = Code | number | boolean | null\n\n// type that is either Code of function that adds code to CodeGen instance using its methods\nexport type Block = Code | (() => void)\n\nexport const operators = {\n GT: new _Code(\">\"),\n GTE: new _Code(\">=\"),\n LT: new _Code(\"<\"),\n LTE: new _Code(\"<=\"),\n EQ: new _Code(\"===\"),\n NEQ: new _Code(\"!==\"),\n NOT: new _Code(\"!\"),\n OR: new _Code(\"||\"),\n AND: new _Code(\"&&\"),\n ADD: new _Code(\"+\"),\n}\n\nabstract class Node {\n abstract readonly names: UsedNames\n\n optimizeNodes(): this | ChildNode | ChildNode[] | undefined {\n return this\n }\n\n optimizeNames(_names: UsedNames, _constants: Constants): this | undefined {\n return this\n }\n\n // get count(): number {\n // return 1\n // }\n}\n\nclass Def extends Node {\n constructor(\n private readonly varKind: Name,\n private readonly name: Name,\n private rhs?: SafeExpr\n ) {\n super()\n }\n\n render({es5, _n}: CGOptions): string {\n const varKind = es5 ? varKinds.var : this.varKind\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`\n return `${varKind} ${this.name}${rhs};` + _n\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!names[this.name.str]) return\n if (this.rhs) this.rhs = optimizeExpr(this.rhs, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return this.rhs instanceof _CodeOrName ? this.rhs.names : {}\n }\n}\n\nclass Assign extends Node {\n constructor(\n readonly lhs: Code,\n public rhs: SafeExpr,\n private readonly sideEffects?: boolean\n ) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.lhs} = ${this.rhs};` + _n\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (this.lhs instanceof Name && !names[this.lhs.str] && !this.sideEffects) return\n this.rhs = optimizeExpr(this.rhs, names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = this.lhs instanceof Name ? {} : {...this.lhs.names}\n return addExprNames(names, this.rhs)\n }\n}\n\nclass AssignOp extends Assign {\n constructor(\n lhs: Code,\n private readonly op: Code,\n rhs: SafeExpr,\n sideEffects?: boolean\n ) {\n super(lhs, rhs, sideEffects)\n }\n\n render({_n}: CGOptions): string {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n\n }\n}\n\nclass Label extends Node {\n readonly names: UsedNames = {}\n constructor(readonly label: Name) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.label}:` + _n\n }\n}\n\nclass Break extends Node {\n readonly names: UsedNames = {}\n constructor(readonly label?: Code) {\n super()\n }\n\n render({_n}: CGOptions): string {\n const label = this.label ? ` ${this.label}` : \"\"\n return `break${label};` + _n\n }\n}\n\nclass Throw extends Node {\n constructor(readonly error: Code) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `throw ${this.error};` + _n\n }\n\n get names(): UsedNames {\n return this.error.names\n }\n}\n\nclass AnyCode extends Node {\n constructor(private code: SafeExpr) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.code};` + _n\n }\n\n optimizeNodes(): this | undefined {\n return `${this.code}` ? this : undefined\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this {\n this.code = optimizeExpr(this.code, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return this.code instanceof _CodeOrName ? this.code.names : {}\n }\n}\n\nabstract class ParentNode extends Node {\n constructor(readonly nodes: ChildNode[] = []) {\n super()\n }\n\n render(opts: CGOptions): string {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\")\n }\n\n optimizeNodes(): this | ChildNode | ChildNode[] | undefined {\n const {nodes} = this\n let i = nodes.length\n while (i--) {\n const n = nodes[i].optimizeNodes()\n if (Array.isArray(n)) nodes.splice(i, 1, ...n)\n else if (n) nodes[i] = n\n else nodes.splice(i, 1)\n }\n return nodes.length > 0 ? this : undefined\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n const {nodes} = this\n let i = nodes.length\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i]\n if (n.optimizeNames(names, constants)) continue\n subtractNames(names, n.names)\n nodes.splice(i, 1)\n }\n return nodes.length > 0 ? this : undefined\n }\n\n get names(): UsedNames {\n return this.nodes.reduce((names: UsedNames, n) => addNames(names, n.names), {})\n }\n\n // get count(): number {\n // return this.nodes.reduce((c, n) => c + n.count, 1)\n // }\n}\n\nabstract class BlockNode extends ParentNode {\n render(opts: CGOptions): string {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n\n }\n}\n\nclass Root extends ParentNode {}\n\nclass Else extends BlockNode {\n static readonly kind = \"else\"\n}\n\nclass If extends BlockNode {\n static readonly kind = \"if\"\n else?: If | Else\n constructor(\n private condition: Code | boolean,\n nodes?: ChildNode[]\n ) {\n super(nodes)\n }\n\n render(opts: CGOptions): string {\n let code = `if(${this.condition})` + super.render(opts)\n if (this.else) code += \"else \" + this.else.render(opts)\n return code\n }\n\n optimizeNodes(): If | ChildNode[] | undefined {\n super.optimizeNodes()\n const cond = this.condition\n if (cond === true) return this.nodes // else is ignored here\n let e = this.else\n if (e) {\n const ns = e.optimizeNodes()\n e = this.else = Array.isArray(ns) ? new Else(ns) : (ns as Else | undefined)\n }\n if (e) {\n if (cond === false) return e instanceof If ? e : e.nodes\n if (this.nodes.length) return this\n return new If(not(cond), e instanceof If ? [e] : e.nodes)\n }\n if (cond === false || !this.nodes.length) return undefined\n return this\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n this.else = this.else?.optimizeNames(names, constants)\n if (!(super.optimizeNames(names, constants) || this.else)) return\n this.condition = optimizeExpr(this.condition, names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = super.names\n addExprNames(names, this.condition)\n if (this.else) addNames(names, this.else.names)\n return names\n }\n\n // get count(): number {\n // return super.count + (this.else?.count || 0)\n // }\n}\n\nabstract class For extends BlockNode {\n static readonly kind = \"for\"\n}\n\nclass ForLoop extends For {\n constructor(private iteration: Code) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `for(${this.iteration})` + super.render(opts)\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!super.optimizeNames(names, constants)) return\n this.iteration = optimizeExpr(this.iteration, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return addNames(super.names, this.iteration.names)\n }\n}\n\nclass ForRange extends For {\n constructor(\n private readonly varKind: Name,\n private readonly name: Name,\n private readonly from: SafeExpr,\n private readonly to: SafeExpr\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n const varKind = opts.es5 ? varKinds.var : this.varKind\n const {name, from, to} = this\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts)\n }\n\n get names(): UsedNames {\n const names = addExprNames(super.names, this.from)\n return addExprNames(names, this.to)\n }\n}\n\nclass ForIter extends For {\n constructor(\n private readonly loop: \"of\" | \"in\",\n private readonly varKind: Name,\n private readonly name: Name,\n private iterable: Code\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts)\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!super.optimizeNames(names, constants)) return\n this.iterable = optimizeExpr(this.iterable, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return addNames(super.names, this.iterable.names)\n }\n}\n\nclass Func extends BlockNode {\n static readonly kind = \"func\"\n constructor(\n public name: Name,\n public args: Code,\n public async?: boolean\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n const _async = this.async ? \"async \" : \"\"\n return `${_async}function ${this.name}(${this.args})` + super.render(opts)\n }\n}\n\nclass Return extends ParentNode {\n static readonly kind = \"return\"\n\n render(opts: CGOptions): string {\n return \"return \" + super.render(opts)\n }\n}\n\nclass Try extends BlockNode {\n catch?: Catch\n finally?: Finally\n\n render(opts: CGOptions): string {\n let code = \"try\" + super.render(opts)\n if (this.catch) code += this.catch.render(opts)\n if (this.finally) code += this.finally.render(opts)\n return code\n }\n\n optimizeNodes(): this {\n super.optimizeNodes()\n this.catch?.optimizeNodes() as Catch | undefined\n this.finally?.optimizeNodes() as Finally | undefined\n return this\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this {\n super.optimizeNames(names, constants)\n this.catch?.optimizeNames(names, constants)\n this.finally?.optimizeNames(names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = super.names\n if (this.catch) addNames(names, this.catch.names)\n if (this.finally) addNames(names, this.finally.names)\n return names\n }\n\n // get count(): number {\n // return super.count + (this.catch?.count || 0) + (this.finally?.count || 0)\n // }\n}\n\nclass Catch extends BlockNode {\n static readonly kind = \"catch\"\n constructor(readonly error: Name) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `catch(${this.error})` + super.render(opts)\n }\n}\n\nclass Finally extends BlockNode {\n static readonly kind = \"finally\"\n render(opts: CGOptions): string {\n return \"finally\" + super.render(opts)\n }\n}\n\ntype StartBlockNode = If | For | Func | Return | Try\n\ntype LeafNode = Def | Assign | Label | Break | Throw | AnyCode\n\ntype ChildNode = StartBlockNode | LeafNode\n\ntype EndBlockNodeType =\n | typeof If\n | typeof Else\n | typeof For\n | typeof Func\n | typeof Return\n | typeof Catch\n | typeof Finally\n\ntype Constants = Record<string, SafeExpr | undefined>\n\nexport interface CodeGenOptions {\n es5?: boolean\n lines?: boolean\n ownProperties?: boolean\n}\n\ninterface CGOptions extends CodeGenOptions {\n _n: \"\\n\" | \"\"\n}\n\nexport class CodeGen {\n readonly _scope: Scope\n readonly _extScope: ValueScope\n readonly _values: ScopeValueSets = {}\n private readonly _nodes: ParentNode[]\n private readonly _blockStarts: number[] = []\n private readonly _constants: Constants = {}\n private readonly opts: CGOptions\n\n constructor(extScope: ValueScope, opts: CodeGenOptions = {}) {\n this.opts = {...opts, _n: opts.lines ? \"\\n\" : \"\"}\n this._extScope = extScope\n this._scope = new Scope({parent: extScope})\n this._nodes = [new Root()]\n }\n\n toString(): string {\n return this._root.render(this.opts)\n }\n\n // returns unique name in the internal scope\n name(prefix: string): Name {\n return this._scope.name(prefix)\n }\n\n // reserves unique name in the external scope\n scopeName(prefix: string): ValueScopeName {\n return this._extScope.name(prefix)\n }\n\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName: ValueScopeName | string, value: NameValue): Name {\n const name = this._extScope.value(prefixOrName, value)\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set())\n vs.add(name)\n return name\n }\n\n getScopeValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {\n return this._extScope.getValue(prefix, keyOrRef)\n }\n\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName: Name): Code {\n return this._extScope.scopeRefs(scopeName, this._values)\n }\n\n scopeCode(): Code {\n return this._extScope.scopeCode(this._values)\n }\n\n private _def(\n varKind: Name,\n nameOrPrefix: Name | string,\n rhs?: SafeExpr,\n constant?: boolean\n ): Name {\n const name = this._scope.toName(nameOrPrefix)\n if (rhs !== undefined && constant) this._constants[name.str] = rhs\n this._leafNode(new Def(varKind, name, rhs))\n return name\n }\n\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix: Name | string, rhs: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.const, nameOrPrefix, rhs, _constant)\n }\n\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.let, nameOrPrefix, rhs, _constant)\n }\n\n // `var` declaration with optional assignment\n var(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.var, nameOrPrefix, rhs, _constant)\n }\n\n // assignment code\n assign(lhs: Code, rhs: SafeExpr, sideEffects?: boolean): CodeGen {\n return this._leafNode(new Assign(lhs, rhs, sideEffects))\n }\n\n // `+=` code\n add(lhs: Code, rhs: SafeExpr): CodeGen {\n return this._leafNode(new AssignOp(lhs, operators.ADD, rhs))\n }\n\n // appends passed SafeExpr to code or executes Block\n code(c: Block | SafeExpr): CodeGen {\n if (typeof c == \"function\") c()\n else if (c !== nil) this._leafNode(new AnyCode(c))\n return this\n }\n\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues: [Name | string, SafeExpr | string][]): _Code {\n const code: CodeItem[] = [\"{\"]\n for (const [key, value] of keyValues) {\n if (code.length > 1) code.push(\",\")\n code.push(key)\n if (key !== value || this.opts.es5) {\n code.push(\":\")\n addCodeArg(code, value)\n }\n }\n code.push(\"}\")\n return new _Code(code)\n }\n\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition: Code | boolean, thenBody?: Block, elseBody?: Block): CodeGen {\n this._blockNode(new If(condition))\n\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf()\n } else if (thenBody) {\n this.code(thenBody).endIf()\n } else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body')\n }\n return this\n }\n\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition: Code | boolean): CodeGen {\n return this._elseNode(new If(condition))\n }\n\n // `else` clause - only valid after `if` or `else if` clauses\n else(): CodeGen {\n return this._elseNode(new Else())\n }\n\n // end `if` statement (needed if gen.if was used only with condition)\n endIf(): CodeGen {\n return this._endBlockNode(If, Else)\n }\n\n private _for(node: For, forBody?: Block): CodeGen {\n this._blockNode(node)\n if (forBody) this.code(forBody).endFor()\n return this\n }\n\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration: Code, forBody?: Block): CodeGen {\n return this._for(new ForLoop(iteration), forBody)\n }\n\n // `for` statement for a range of values\n forRange(\n nameOrPrefix: Name | string,\n from: SafeExpr,\n to: SafeExpr,\n forBody: (index: Name) => void,\n varKind: Code = this.opts.es5 ? varKinds.var : varKinds.let\n ): CodeGen {\n const name = this._scope.toName(nameOrPrefix)\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name))\n }\n\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(\n nameOrPrefix: Name | string,\n iterable: Code,\n forBody: (item: Name) => void,\n varKind: Code = varKinds.const\n ): CodeGen {\n const name = this._scope.toName(nameOrPrefix)\n if (this.opts.es5) {\n const arr = iterable instanceof Name ? iterable : this.var(\"_arr\", iterable)\n return this.forRange(\"_i\", 0, _`${arr}.length`, (i) => {\n this.var(name, _`${arr}[${i}]`)\n forBody(name)\n })\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name))\n }\n\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(\n nameOrPrefix: Name | string,\n obj: Code,\n forBody: (item: Name) => void,\n varKind: Code = this.opts.es5 ? varKinds.var : varKinds.const\n ): CodeGen {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, _`Object.keys(${obj})`, forBody)\n }\n const name = this._scope.toName(nameOrPrefix)\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name))\n }\n\n // end `for` loop\n endFor(): CodeGen {\n return this._endBlockNode(For)\n }\n\n // `label` statement\n label(label: Name): CodeGen {\n return this._leafNode(new Label(label))\n }\n\n // `break` statement\n break(label?: Code): CodeGen {\n return this._leafNode(new Break(label))\n }\n\n // `return` statement\n return(value: Block | SafeExpr): CodeGen {\n const node = new Return()\n this._blockNode(node)\n this.code(value)\n if (node.nodes.length !== 1) throw new Error('CodeGen: \"return\" should have one node')\n return this._endBlockNode(Return)\n }\n\n // `try` statement\n try(tryBody: Block, catchCode?: (e: Name) => void, finallyCode?: Block): CodeGen {\n if (!catchCode && !finallyCode) throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"')\n const node = new Try()\n this._blockNode(node)\n this.code(tryBody)\n if (catchCode) {\n const error = this.name(\"e\")\n this._currNode = node.catch = new Catch(error)\n catchCode(error)\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally()\n this.code(finallyCode)\n }\n return this._endBlockNode(Catch, Finally)\n }\n\n // `throw` statement\n throw(error: Code): CodeGen {\n return this._leafNode(new Throw(error))\n }\n\n // start self-balancing block\n block(body?: Block, nodeCount?: number): CodeGen {\n this._blockStarts.push(this._nodes.length)\n if (body) this.code(body).endBlock(nodeCount)\n return this\n }\n\n // end the current self-balancing block\n endBlock(nodeCount?: number): CodeGen {\n const len = this._blockStarts.pop()\n if (len === undefined) throw new Error(\"CodeGen: not in self-balancing block\")\n const toClose = this._nodes.length - len\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`)\n }\n this._nodes.length = len\n return this\n }\n\n // `function` heading (or definition if funcBody is passed)\n func(name: Name, args: Code = nil, async?: boolean, funcBody?: Block): CodeGen {\n this._blockNode(new Func(name, args, async))\n if (funcBody) this.code(funcBody).endFunc()\n return this\n }\n\n // end function definition\n endFunc(): CodeGen {\n return this._endBlockNode(Func)\n }\n\n optimize(n = 1): void {\n while (n-- > 0) {\n this._root.optimizeNodes()\n this._root.optimizeNames(this._root.names, this._constants)\n }\n }\n\n private _leafNode(node: LeafNode): CodeGen {\n this._currNode.nodes.push(node)\n return this\n }\n\n private _blockNode(node: StartBlockNode): void {\n this._currNode.nodes.push(node)\n this._nodes.push(node)\n }\n\n private _endBlockNode(N1: EndBlockNodeType, N2?: EndBlockNodeType): CodeGen {\n const n = this._currNode\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop()\n return this\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`)\n }\n\n private _elseNode(node: If | Else): CodeGen {\n const n = this._currNode\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"')\n }\n this._currNode = n.else = node\n return this\n }\n\n private get _root(): Root {\n return this._nodes[0] as Root\n }\n\n private get _currNode(): ParentNode {\n const ns = this._nodes\n return ns[ns.length - 1]\n }\n\n private set _currNode(node: ParentNode) {\n const ns = this._nodes\n ns[ns.length - 1] = node\n }\n\n // get nodeCount(): number {\n // return this._root.count\n // }\n}\n\nfunction addNames(names: UsedNames, from: UsedNames): UsedNames {\n for (const n in from) names[n] = (names[n] || 0) + (from[n] || 0)\n return names\n}\n\nfunction addExprNames(names: UsedNames, from: SafeExpr): UsedNames {\n return from instanceof _CodeOrName ? addNames(names, from.names) : names\n}\n\nfunction optimizeExpr<T extends SafeExpr | Code>(expr: T, names: UsedNames, constants: Constants): T\nfunction optimizeExpr(expr: SafeExpr, names: UsedNames, constants: Constants): SafeExpr {\n if (expr instanceof Name) return replaceName(expr)\n if (!canOptimize(expr)) return expr\n return new _Code(\n expr._items.reduce((items: CodeItem[], c: SafeExpr | string) => {\n if (c instanceof Name) c = replaceName(c)\n if (c instanceof _Code) items.push(...c._items)\n else items.push(c)\n return items\n }, [])\n )\n\n function replaceName(n: Name): SafeExpr {\n const c = constants[n.str]\n if (c === undefined || names[n.str] !== 1) return n\n delete names[n.str]\n return c\n }\n\n function canOptimize(e: SafeExpr): e is _Code {\n return (\n e instanceof _Code &&\n e._items.some(\n (c) => c instanceof Name && names[c.str] === 1 && constants[c.str] !== undefined\n )\n )\n }\n}\n\nfunction subtractNames(names: UsedNames, from: UsedNames): void {\n for (const n in from) names[n] = (names[n] || 0) - (from[n] || 0)\n}\n\nexport function not<T extends Code | SafeExpr>(x: T): T\nexport function not(x: Code | SafeExpr): Code | SafeExpr {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : _`!${par(x)}`\n}\n\nconst andCode = mappend(operators.AND)\n\n// boolean AND (&&) expression with the passed arguments\nexport function and(...args: Code[]): Code {\n return args.reduce(andCode)\n}\n\nconst orCode = mappend(operators.OR)\n\n// boolean OR (||) expression with the passed arguments\nexport function or(...args: Code[]): Code {\n return args.reduce(orCode)\n}\n\ntype MAppend = (x: Code, y: Code) => Code\n\nfunction mappend(op: Code): MAppend {\n return (x, y) => (x === nil ? y : y === nil ? x : _`${par(x)} ${op} ${par(y)}`)\n}\n\nfunction par(x: Code): Code {\n return x instanceof Name ? x : _`(${x})`\n}\n","import {_, nil, Code, Name} from \"./code\"\n\ninterface NameGroup {\n prefix: string\n index: number\n}\n\nexport interface NameValue {\n ref: ValueReference // this is the reference to any value that can be referred to from generated code via `globals` var in the closure\n key?: unknown // any key to identify a global to avoid duplicates, if not passed ref is used\n code?: Code // this is the code creating the value needed for standalone code wit_out closure - can be a primitive value, function or import (`require`)\n}\n\nexport type ValueReference = unknown // possibly make CodeGen parameterized type on this type\n\nclass ValueError extends Error {\n readonly value?: NameValue\n constructor(name: ValueScopeName) {\n super(`CodeGen: \"code\" for ${name} not defined`)\n this.value = name.value\n }\n}\n\ninterface ScopeOptions {\n prefixes?: Set<string>\n parent?: Scope\n}\n\ninterface ValueScopeOptions extends ScopeOptions {\n scope: ScopeStore\n es5?: boolean\n lines?: boolean\n}\n\nexport type ScopeStore = Record<string, ValueReference[] | undefined>\n\ntype ScopeValues = {\n [Prefix in string]?: Map<unknown, ValueScopeName>\n}\n\nexport type ScopeValueSets = {\n [Prefix in string]?: Set<ValueScopeName>\n}\n\nexport enum UsedValueState {\n Started,\n Completed,\n}\n\nexport type UsedScopeValues = {\n [Prefix in string]?: Map<ValueScopeName, UsedValueState | undefined>\n}\n\nexport const varKinds = {\n const: new Name(\"const\"),\n let: new Name(\"let\"),\n var: new Name(\"var\"),\n}\n\nexport class Scope {\n protected readonly _names: {[Prefix in string]?: NameGroup} = {}\n protected readonly _prefixes?: Set<string>\n protected readonly _parent?: Scope\n\n constructor({prefixes, parent}: ScopeOptions = {}) {\n this._prefixes = prefixes\n this._parent = parent\n }\n\n toName(nameOrPrefix: Name | string): Name {\n return nameOrPrefix instanceof Name ? nameOrPrefix : this.name(nameOrPrefix)\n }\n\n name(prefix: string): Name {\n return new Name(this._newName(prefix))\n }\n\n protected _newName(prefix: string): string {\n const ng = this._names[prefix] || this._nameGroup(prefix)\n return `${prefix}${ng.index++}`\n }\n\n private _nameGroup(prefix: string): NameGroup {\n if (this._parent?._prefixes?.has(prefix) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`)\n }\n return (this._names[prefix] = {prefix, index: 0})\n }\n}\n\ninterface ScopePath {\n property: string\n itemIndex: number\n}\n\nexport class ValueScopeName extends Name {\n readonly prefix: string\n value?: NameValue\n scopePath?: Code\n\n constructor(prefix: string, nameStr: string) {\n super(nameStr)\n this.prefix = prefix\n }\n\n setValue(value: NameValue, {property, itemIndex}: ScopePath): void {\n this.value = value\n this.scopePath = _`.${new Name(property)}[${itemIndex}]`\n }\n}\n\ninterface VSOptions extends ValueScopeOptions {\n _n: Code\n}\n\nconst line = _`\\n`\n\nexport class ValueScope extends Scope {\n protected readonly _values: ScopeValues = {}\n protected readonly _scope: ScopeStore\n readonly opts: VSOptions\n\n constructor(opts: ValueScopeOptions) {\n super(opts)\n this._scope = opts.scope\n this.opts = {...opts, _n: opts.lines ? line : nil}\n }\n\n get(): ScopeStore {\n return this._scope\n }\n\n name(prefix: string): ValueScopeName {\n return new ValueScopeName(prefix, this._newName(prefix))\n }\n\n value(nameOrPrefix: ValueScopeName | string, value: NameValue): ValueScopeName {\n if (value.ref === undefined) throw new Error(\"CodeGen: ref must be passed in value\")\n const name = this.toName(nameOrPrefix) as ValueScopeName\n const {prefix} = name\n const valueKey = value.key ?? value.ref\n let vs = this._values[prefix]\n if (vs) {\n const _name = vs.get(valueKey)\n if (_name) return _name\n } else {\n vs = this._values[prefix] = new Map()\n }\n vs.set(valueKey, name)\n\n const s = this._scope[prefix] || (this._scope[prefix] = [])\n const itemIndex = s.length\n s[itemIndex] = value.ref\n name.setValue(value, {property: prefix, itemIndex})\n return name\n }\n\n getValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {\n const vs = this._values[prefix]\n if (!vs) return\n return vs.get(keyOrRef)\n }\n\n scopeRefs(scopeName: Name, values: ScopeValues | ScopeValueSets = this._values): Code {\n return this._reduceValues(values, (name: ValueScopeName) => {\n if (name.scopePath === undefined) throw new Error(`CodeGen: name \"${name}\" has no value`)\n return _`${scopeName}${name.scopePath}`\n })\n }\n\n scopeCode(\n values: ScopeValues | ScopeValueSets = this._values,\n usedValues?: UsedScopeValues,\n getCode?: (n: ValueScopeName) => Code | undefined\n ): Code {\n return this._reduceValues(\n values,\n (name: ValueScopeName) => {\n if (name.value === undefined) throw new Error(`CodeGen: name \"${name}\" has no value`)\n return name.value.code\n },\n usedValues,\n getCode\n )\n }\n\n private _reduceValues(\n values: ScopeValues | ScopeValueSets,\n valueCode: (n: ValueScopeName) => Code | undefined,\n usedValues: UsedScopeValues = {},\n getCode?: (n: ValueScopeName) => Code | undefined\n ): Code {\n let code: Code = nil\n for (const prefix in values) {\n const vs = values[prefix]\n if (!vs) continue\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map())\n vs.forEach((name: ValueScopeName) => {\n if (nameSet.has(name)) return\n nameSet.set(name, UsedValueState.Started)\n let c = valueCode(name)\n if (c) {\n const def = this.opts.es5 ? varKinds.var : varKinds.const\n code = _`${code}${def} ${name} = ${c};${this.opts._n}`\n } else if ((c = getCode?.(name))) {\n code = _`${code}${c}${this.opts._n}`\n } else {\n throw new ValueError(name)\n }\n nameSet.set(name, UsedValueState.Completed)\n })\n }\n return code\n }\n}\n","import type {KeywordErrorCxt, KeywordErrorDefinition} from \"../types\"\nimport type {SchemaCxt} from \"./index\"\nimport {CodeGen, _, str, strConcat, Code, Name} from \"./codegen\"\nimport {SafeExpr} from \"./codegen/code\"\nimport {getErrorPath, Type} from \"./util\"\nimport N from \"./names\"\n\nexport const keywordError: KeywordErrorDefinition = {\n message: ({keyword}) => str`must pass \"${keyword}\" keyword validation`,\n}\n\nexport const keyword$DataError: KeywordErrorDefinition = {\n message: ({keyword, schemaType}) =>\n schemaType\n ? str`\"${keyword}\" keyword must be ${schemaType} ($data)`\n : str`\"${keyword}\" keyword is invalid ($data)`,\n}\n\nexport interface ErrorPaths {\n instancePath?: Code\n schemaPath?: string\n parentSchema?: boolean\n}\n\nexport function reportError(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition = keywordError,\n errorPaths?: ErrorPaths,\n overrideAllErrors?: boolean\n): void {\n const {it} = cxt\n const {gen, compositeRule, allErrors} = it\n const errObj = errorObjectCode(cxt, error, errorPaths)\n if (overrideAllErrors ?? (compositeRule || allErrors)) {\n addError(gen, errObj)\n } else {\n returnErrors(it, _`[${errObj}]`)\n }\n}\n\nexport function reportExtraError(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition = keywordError,\n errorPaths?: ErrorPaths\n): void {\n const {it} = cxt\n const {gen, compositeRule, allErrors} = it\n const errObj = errorObjectCode(cxt, error, errorPaths)\n addError(gen, errObj)\n if (!(compositeRule || allErrors)) {\n returnErrors(it, N.vErrors)\n }\n}\n\nexport function resetErrorsCount(gen: CodeGen, errsCount: Name): void {\n gen.assign(N.errors, errsCount)\n gen.if(_`${N.vErrors} !== null`, () =>\n gen.if(\n errsCount,\n () => gen.assign(_`${N.vErrors}.length`, errsCount),\n () => gen.assign(N.vErrors, null)\n )\n )\n}\n\nexport function extendErrors({\n gen,\n keyword,\n schemaValue,\n data,\n errsCount,\n it,\n}: KeywordErrorCxt): void {\n /* istanbul ignore if */\n if (errsCount === undefined) throw new Error(\"ajv implementation error\")\n const err = gen.name(\"err\")\n gen.forRange(\"i\", errsCount, N.errors, (i) => {\n gen.const(err, _`${N.vErrors}[${i}]`)\n gen.if(_`${err}.instancePath === undefined`, () =>\n gen.assign(_`${err}.instancePath`, strConcat(N.instancePath, it.errorPath))\n )\n gen.assign(_`${err}.schemaPath`, str`${it.errSchemaPath}/${keyword}`)\n if (it.opts.verbose) {\n gen.assign(_`${err}.schema`, schemaValue)\n gen.assign(_`${err}.data`, data)\n }\n })\n}\n\nfunction addError(gen: CodeGen, errObj: Code): void {\n const err = gen.const(\"err\", errObj)\n gen.if(\n _`${N.vErrors} === null`,\n () => gen.assign(N.vErrors, _`[${err}]`),\n _`${N.vErrors}.push(${err})`\n )\n gen.code(_`${N.errors}++`)\n}\n\nfunction returnErrors(it: SchemaCxt, errs: Code): void {\n const {gen, validateName, schemaEnv} = it\n if (schemaEnv.$async) {\n gen.throw(_`new ${it.ValidationError as Name}(${errs})`)\n } else {\n gen.assign(_`${validateName}.errors`, errs)\n gen.return(false)\n }\n}\n\nconst E = {\n keyword: new Name(\"keyword\"),\n schemaPath: new Name(\"schemaPath\"), // also used in JTD errors\n params: new Name(\"params\"),\n propertyName: new Name(\"propertyName\"),\n message: new Name(\"message\"),\n schema: new Name(\"schema\"),\n parentSchema: new Name(\"parentSchema\"),\n}\n\nfunction errorObjectCode(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition,\n errorPaths?: ErrorPaths\n): Code {\n const {createErrors} = cxt.it\n if (createErrors === false) return _`{}`\n return errorObject(cxt, error, errorPaths)\n}\n\nfunction errorObject(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition,\n errorPaths: ErrorPaths = {}\n): Code {\n const {gen, it} = cxt\n const keyValues: [Name, SafeExpr | string][] = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ]\n extraErrorProps(cxt, error, keyValues)\n return gen.object(...keyValues)\n}\n\nfunction errorInstancePath({errorPath}: SchemaCxt, {instancePath}: ErrorPaths): [Name, Code] {\n const instPath = instancePath\n ? str`${errorPath}${getErrorPath(instancePath, Type.Str)}`\n : errorPath\n return [N.instancePath, strConcat(N.instancePath, instPath)]\n}\n\nfunction errorSchemaPath(\n {keyword, it: {errSchemaPath}}: KeywordErrorCxt,\n {schemaPath, parentSchema}: ErrorPaths\n): [Name, string | Code] {\n let schPath = parentSchema ? errSchemaPath : str`${errSchemaPath}/${keyword}`\n if (schemaPath) {\n schPath = str`${schPath}${getErrorPath(schemaPath, Type.Str)}`\n }\n return [E.schemaPath, schPath]\n}\n\nfunction extraErrorProps(\n cxt: KeywordErrorCxt,\n {params, message}: KeywordErrorDefinition,\n keyValues: [Name, SafeExpr | string][]\n): void {\n const {keyword, data, schemaValue, it} = cxt\n const {opts, propertyName, topSchemaRef, schemaPath} = it\n keyValues.push(\n [E.keyword, keyword],\n [E.params, typeof params == \"function\" ? params(cxt) : params || _`{}`]\n )\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message])\n }\n if (opts.verbose) {\n keyValues.push(\n [E.schema, schemaValue],\n [E.parentSchema, _`${topSchemaRef}${schemaPath}`],\n [N.data, data]\n )\n }\n if (propertyName) keyValues.push([E.propertyName, propertyName])\n}\n","import type {\n AnySchema,\n AnySchemaObject,\n AnyValidateFunction,\n AsyncValidateFunction,\n EvaluatedProperties,\n EvaluatedItems,\n} from \"../types\"\nimport type Ajv from \"../core\"\nimport type {InstanceOptions} from \"../core\"\nimport {CodeGen, _, nil, stringify, Name, Code, ValueScopeName} from \"./codegen\"\nimport ValidationError from \"../runtime/validation_error\"\nimport N from \"./names\"\nimport {LocalRefs, getFullPath, _getFullPath, inlineRef, normalizeId, resolveUrl} from \"./resolve\"\nimport {schemaHasRulesButRef, unescapeFragment} from \"./util\"\nimport {validateFunctionCode} from \"./validate\"\nimport {URIComponent} from \"fast-uri\"\nimport {JSONType} from \"./rules\"\n\nexport type SchemaRefs = {\n [Ref in string]?: SchemaEnv | AnySchema\n}\n\nexport interface SchemaCxt {\n readonly gen: CodeGen\n readonly allErrors?: boolean // validation mode - whether to collect all errors or break on error\n readonly data: Name // Name with reference to the current part of data instance\n readonly parentData: Name // should be used in keywords modifying data\n readonly parentDataProperty: Code | number // should be used in keywords modifying data\n readonly dataNames: Name[]\n readonly dataPathArr: (Code | number)[]\n readonly dataLevel: number // the level of the currently validated data,\n // it can be used to access both the property names and the data on all levels from the top.\n dataTypes: JSONType[] // data types applied to the current part of data instance\n definedProperties: Set<string> // set of properties to keep track of for required checks\n readonly topSchemaRef: Code\n readonly validateName: Name\n evaluated?: Name\n readonly ValidationError?: Name\n readonly schema: AnySchema // current schema object - equal to parentSchema passed via KeywordCxt\n readonly schemaEnv: SchemaEnv\n readonly rootId: string\n baseId: string // the current schema base URI that should be used as the base for resolving URIs in references (\\$ref)\n readonly schemaPath: Code // the run-time expression that evaluates to the property name of the current schema\n readonly errSchemaPath: string // this is actual string, should not be changed to Code\n readonly errorPath: Code\n readonly propertyName?: Name\n readonly compositeRule?: boolean // true indicates that the current schema is inside the compound keyword,\n // where failing some rule doesn't mean validation failure (`anyOf`, `oneOf`, `not`, `if`).\n // This flag is used to determine whether you can return validation result immediately after any error in case the option `allErrors` is not `true.\n // You only need to use it if you have many steps in your keywords and potentially can define multiple errors.\n props?: EvaluatedProperties | Name // properties evaluated by this schema - used by parent schema or assigned to validation function\n items?: EvaluatedItems | Name // last item evaluated by this schema - used by parent schema or assigned to validation function\n jtdDiscriminator?: string\n jtdMetadata?: boolean\n readonly createErrors?: boolean\n readonly opts: InstanceOptions // Ajv instance option.\n readonly self: Ajv // current Ajv instance\n}\n\nexport interface SchemaObjCxt extends SchemaCxt {\n readonly schema: AnySchemaObject\n}\ninterface SchemaEnvArgs {\n readonly schema: AnySchema\n readonly schemaId?: \"$id\" | \"id\"\n readonly root?: SchemaEnv\n readonly baseId?: string\n readonly schemaPath?: string\n readonly localRefs?: LocalRefs\n readonly meta?: boolean\n}\n\nexport class SchemaEnv implements SchemaEnvArgs {\n readonly schema: AnySchema\n readonly schemaId?: \"$id\" | \"id\"\n readonly root: SchemaEnv\n baseId: string // TODO possibly, it should be readonly\n schemaPath?: string\n localRefs?: LocalRefs\n readonly meta?: boolean\n readonly $async?: boolean // true if the current schema is asynchronous.\n readonly refs: SchemaRefs = {}\n readonly dynamicAnchors: {[Ref in string]?: true} = {}\n validate?: AnyValidateFunction\n validateName?: ValueScopeName\n serialize?: (data: unknown) => string\n serializeName?: ValueScopeName\n parse?: (data: string) => unknown\n parseName?: ValueScopeName\n\n constructor(env: SchemaEnvArgs) {\n let schema: AnySchemaObject | undefined\n if (typeof env.schema == \"object\") schema = env.schema\n this.schema = env.schema\n this.schemaId = env.schemaId\n this.root = env.root || this\n this.baseId = env.baseId ?? normalizeId(schema?.[env.schemaId || \"$id\"])\n this.schemaPath = env.schemaPath\n this.localRefs = env.localRefs\n this.meta = env.meta\n this.$async = schema?.$async\n this.refs = {}\n }\n}\n\n// let codeSize = 0\n// let nodeCount = 0\n\n// Compiles schema in SchemaEnv\nexport function compileSchema(this: Ajv, sch: SchemaEnv): SchemaEnv {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch)\n if (_sch) return _sch\n const rootId = getFullPath(this.opts.uriResolver, sch.root.baseId) // TODO if getFullPath removed 1 tests fails\n const {es5, lines} = this.opts.code\n const {ownProperties} = this.opts\n const gen = new CodeGen(this.scope, {es5, lines, ownProperties})\n let _ValidationError\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: ValidationError,\n code: _`require(\"ajv/dist/runtime/validation_error\").default`,\n })\n }\n\n const validateName = gen.scopeName(\"validate\")\n sch.validateName = validateName\n\n const schemaCxt: SchemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: N.data,\n parentData: N.parentData,\n parentDataProperty: N.parentDataProperty,\n dataNames: [N.data],\n dataPathArr: [nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set<string>(),\n topSchemaRef: gen.scopeValue(\n \"schema\",\n this.opts.code.source === true\n ? {ref: sch.schema, code: stringify(sch.schema)}\n : {ref: sch.schema}\n ),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: _`\"\"`,\n opts: this.opts,\n self: this,\n }\n\n let sourceCode: string | undefined\n try {\n this._compilations.add(sch)\n validateFunctionCode(schemaCxt)\n gen.optimize(this.opts.code.optimize)\n // gen.optimize(1)\n const validateCode = gen.toString()\n sourceCode = `${gen.scopeRefs(N.scope)}return ${validateCode}`\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process) sourceCode = this.opts.code.process(sourceCode, sch)\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${N.self}`, `${N.scope}`, sourceCode)\n const validate: AnyValidateFunction = makeValidate(this, this.scope.get())\n this.scope.value(validateName, {ref: validate})\n\n validate.errors = null\n validate.schema = sch.schema\n validate.schemaEnv = sch\n if (sch.$async) (validate as AsyncValidateFunction).$async = true\n if (this.opts.code.source === true) {\n validate.source = {validateName, validateCode, scopeValues: gen._values}\n }\n if (this.opts.unevaluated) {\n const {props, items} = schemaCxt\n validate.evaluated = {\n props: props instanceof Name ? undefined : props,\n items: items instanceof Name ? undefined : items,\n dynamicProps: props instanceof Name,\n dynamicItems: items instanceof Name,\n }\n if (validate.source) validate.source.evaluated = stringify(validate.evaluated)\n }\n sch.validate = validate\n return sch\n } catch (e) {\n delete sch.validate\n delete sch.validateName\n if (sourceCode) this.logger.error(\"Error compiling schema, function code:\", sourceCode)\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e\n } finally {\n this._compilations.delete(sch)\n }\n}\n\nexport function resolveRef(\n this: Ajv,\n root: SchemaEnv,\n baseId: string,\n ref: string\n): AnySchema | SchemaEnv | undefined {\n ref = resolveUrl(this.opts.uriResolver, baseId, ref)\n const schOrFunc = root.refs[ref]\n if (schOrFunc) return schOrFunc\n\n let _sch = resolve.call(this, root, ref)\n if (_sch === undefined) {\n const schema = root.localRefs?.[ref] // TODO maybe localRefs should hold SchemaEnv\n const {schemaId} = this.opts\n if (schema) _sch = new SchemaEnv({schema, schemaId, root, baseId})\n }\n\n if (_sch === undefined) return\n return (root.refs[ref] = inlineOrCompile.call(this, _sch))\n}\n\nfunction inlineOrCompile(this: Ajv, sch: SchemaEnv): AnySchema | SchemaEnv {\n if (inlineRef(sch.schema, this.opts.inlineRefs)) return sch.schema\n return sch.validate ? sch : compileSchema.call(this, sch)\n}\n\n// Index of schema compilation in the currently compiled list\nexport function getCompilingSchema(this: Ajv, schEnv: SchemaEnv): SchemaEnv | void {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv)) return sch\n }\n}\n\nfunction sameSchemaEnv(s1: SchemaEnv, s2: SchemaEnv): boolean {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId\n}\n\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(\n this: Ajv,\n root: SchemaEnv, // information about the root schema for the current schema\n ref: string // reference to resolve\n): SchemaEnv | undefined {\n let sch\n while (typeof (sch = this.refs[ref]) == \"string\") ref = sch\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref)\n}\n\n// Resolve schema, its root and baseId\nexport function resolveSchema(\n this: Ajv,\n root: SchemaEnv, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\n ref: string // reference to resolve\n): SchemaEnv | undefined {\n const p = this.opts.uriResolver.parse(ref)\n const refPath = _getFullPath(this.opts.uriResolver, p)\n let baseId = getFullPath(this.opts.uriResolver, root.baseId, undefined)\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root)\n }\n\n const id = normalizeId(refPath)\n const schOrRef = this.refs[id] || this.schemas[id]\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef)\n if (typeof sch?.schema !== \"object\") return\n return getJsonPointer.call(this, p, sch)\n }\n\n if (typeof schOrRef?.schema !== \"object\") return\n if (!schOrRef.validate) compileSchema.call(this, schOrRef)\n if (id === normalizeId(ref)) {\n const {schema} = schOrRef\n const {schemaId} = this.opts\n const schId = schema[schemaId]\n if (schId) baseId = resolveUrl(this.opts.uriResolver, baseId, schId)\n return new SchemaEnv({schema, schemaId, root, baseId})\n }\n return getJsonPointer.call(this, p, schOrRef)\n}\n\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n])\n\nfunction getJsonPointer(\n this: Ajv,\n parsedRef: URIComponent,\n {baseId, schema, root}: SchemaEnv\n): SchemaEnv | undefined {\n if (parsedRef.fragment?.[0] !== \"/\") return\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\") return\n const partSchema = schema[unescapeFragment(part)]\n if (partSchema === undefined) return\n schema = partSchema\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId]\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = resolveUrl(this.opts.uriResolver, baseId, schId)\n }\n }\n let env: SchemaEnv | undefined\n if (typeof schema != \"boolean\" && schema.$ref && !schemaHasRulesButRef(schema, this.RULES)) {\n const $ref = resolveUrl(this.opts.uriResolver, baseId, schema.$ref)\n env = resolveSchema.call(this, root, $ref)\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const {schemaId} = this.opts\n env = env || new SchemaEnv({schema, schemaId, root, baseId})\n if (env.schema !== env.root.schema) return env\n return undefined\n}\n","import {Name} from \"./codegen\"\n\nconst names = {\n // validation function arguments\n data: new Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new Name(\"instancePath\"),\n parentData: new Name(\"parentData\"),\n parentDataProperty: new Name(\"parentDataProperty\"),\n rootData: new Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new Name(\"vErrors\"), // null or array of validation errors\n errors: new Name(\"errors\"), // counter of validation errors\n this: new Name(\"this\"),\n // \"globals\"\n self: new Name(\"self\"),\n scope: new Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new Name(\"json\"),\n jsonPos: new Name(\"jsonPos\"),\n jsonLen: new Name(\"jsonLen\"),\n jsonPart: new Name(\"jsonPart\"),\n}\n\nexport default names\n","import {resolveUrl, normalizeId, getFullPath} from \"./resolve\"\nimport type {UriResolver} from \"../types\"\n\nexport default class MissingRefError extends Error {\n readonly missingRef: string\n readonly missingSchema: string\n\n constructor(resolver: UriResolver, baseId: string, ref: string, msg?: string) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`)\n this.missingRef = resolveUrl(resolver, baseId, ref)\n this.missingSchema = normalizeId(getFullPath(resolver, this.missingRef))\n }\n}\n","import type {AnySchema, AnySchemaObject, UriResolver} from \"../types\"\nimport type Ajv from \"../ajv\"\nimport type {URIComponent} from \"fast-uri\"\nimport {eachItem} from \"./util\"\nimport * as equal from \"fast-deep-equal\"\nimport * as traverse from \"json-schema-traverse\"\n\n// the hash of local references inside the schema (created by getSchemaRefs), used for inline resolution\nexport type LocalRefs = {[Ref in string]?: AnySchemaObject}\n\n// TODO refactor to use keyword definitions\nconst SIMPLE_INLINED = new Set([\n \"type\",\n \"format\",\n \"pattern\",\n \"maxLength\",\n \"minLength\",\n \"maxProperties\",\n \"minProperties\",\n \"maxItems\",\n \"minItems\",\n \"maximum\",\n \"minimum\",\n \"uniqueItems\",\n \"multipleOf\",\n \"required\",\n \"enum\",\n \"const\",\n])\n\nexport function inlineRef(schema: AnySchema, limit: boolean | number = true): boolean {\n if (typeof schema == \"boolean\") return true\n if (limit === true) return !hasRef(schema)\n if (!limit) return false\n return countKeys(schema) <= limit\n}\n\nconst REF_KEYWORDS = new Set([\n \"$ref\",\n \"$recursiveRef\",\n \"$recursiveAnchor\",\n \"$dynamicRef\",\n \"$dynamicAnchor\",\n])\n\nfunction hasRef(schema: AnySchemaObject): boolean {\n for (const key in schema) {\n if (REF_KEYWORDS.has(key)) return true\n const sch = schema[key]\n if (Array.isArray(sch) && sch.some(hasRef)) return true\n if (typeof sch == \"object\" && hasRef(sch)) return true\n }\n return false\n}\n\nfunction countKeys(schema: AnySchemaObject): number {\n let count = 0\n for (const key in schema) {\n if (key === \"$ref\") return Infinity\n count++\n if (SIMPLE_INLINED.has(key)) continue\n if (typeof schema[key] == \"object\") {\n eachItem(schema[key], (sch) => (count += countKeys(sch)))\n }\n if (count === Infinity) return Infinity\n }\n return count\n}\n\nexport function getFullPath(resolver: UriResolver, id = \"\", normalize?: boolean): string {\n if (normalize !== false) id = normalizeId(id)\n const p = resolver.parse(id)\n return _getFullPath(resolver, p)\n}\n\nexport function _getFullPath(resolver: UriResolver, p: URIComponent): string {\n const serialized = resolver.serialize(p)\n return serialized.split(\"#\")[0] + \"#\"\n}\n\nconst TRAILING_SLASH_HASH = /#\\/?$/\nexport function normalizeId(id: string | undefined): string {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\"\n}\n\nexport function resolveUrl(resolver: UriResolver, baseId: string, id: string): string {\n id = normalizeId(id)\n return resolver.resolve(baseId, id)\n}\n\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i\n\nexport function getSchemaRefs(this: Ajv, schema: AnySchema, baseId: string): LocalRefs {\n if (typeof schema == \"boolean\") return {}\n const {schemaId, uriResolver} = this.opts\n const schId = normalizeId(schema[schemaId] || baseId)\n const baseIds: {[JsonPtr in string]?: string} = {\"\": schId}\n const pathPrefix = getFullPath(uriResolver, schId, false)\n const localRefs: LocalRefs = {}\n const schemaRefs: Set<string> = new Set()\n\n traverse(schema, {allKeys: true}, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined) return\n const fullPath = pathPrefix + jsonPtr\n let innerBaseId = baseIds[parentJsonPtr]\n if (typeof sch[schemaId] == \"string\") innerBaseId = addRef.call(this, sch[schemaId])\n addAnchor.call(this, sch.$anchor)\n addAnchor.call(this, sch.$dynamicAnchor)\n baseIds[jsonPtr] = innerBaseId\n\n function addRef(this: Ajv, ref: string): string {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref)\n if (schemaRefs.has(ref)) throw ambiguos(ref)\n schemaRefs.add(ref)\n let schOrRef = this.refs[ref]\n if (typeof schOrRef == \"string\") schOrRef = this.refs[schOrRef]\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref)\n } else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref)\n localRefs[ref] = sch\n } else {\n this.refs[ref] = fullPath\n }\n }\n return ref\n }\n\n function addAnchor(this: Ajv, anchor: unknown): void {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor)) throw new Error(`invalid anchor \"${anchor}\"`)\n addRef.call(this, `#${anchor}`)\n }\n }\n })\n\n return localRefs\n\n function checkAmbiguosRef(sch1: AnySchema, sch2: AnySchema | undefined, ref: string): void {\n if (sch2 !== undefined && !equal(sch1, sch2)) throw ambiguos(ref)\n }\n\n function ambiguos(ref: string): Error {\n return new Error(`reference \"${ref}\" resolves to more than one schema`)\n }\n}\n","import type {AddedKeywordDefinition} from \"../types\"\n\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"] as const\n\nexport type JSONType = (typeof _jsonTypes)[number]\n\nconst jsonTypes: Set<string> = new Set(_jsonTypes)\n\nexport function isJSONType(x: unknown): x is JSONType {\n return typeof x == \"string\" && jsonTypes.has(x)\n}\n\ntype ValidationTypes = {\n [K in JSONType]: boolean | RuleGroup | undefined\n}\n\nexport interface ValidationRules {\n rules: RuleGroup[]\n post: RuleGroup\n all: {[Key in string]?: boolean | Rule} // rules that have to be validated\n keywords: {[Key in string]?: boolean} // all known keywords (superset of \"all\")\n types: ValidationTypes\n}\n\nexport interface RuleGroup {\n type?: JSONType\n rules: Rule[]\n}\n\n// This interface wraps KeywordDefinition because definition can have multiple keywords\nexport interface Rule {\n keyword: string\n definition: AddedKeywordDefinition\n}\n\nexport function getRules(): ValidationRules {\n const groups: Record<\"number\" | \"string\" | \"array\" | \"object\", RuleGroup> = {\n number: {type: \"number\", rules: []},\n string: {type: \"string\", rules: []},\n array: {type: \"array\", rules: []},\n object: {type: \"object\", rules: []},\n }\n return {\n types: {...groups, integer: true, boolean: true, null: true},\n rules: [{rules: []}, groups.number, groups.string, groups.array, groups.object],\n post: {rules: []},\n all: {},\n keywords: {},\n }\n}\n","import type {AnySchema, EvaluatedProperties, EvaluatedItems} from \"../types\"\nimport type {SchemaCxt, SchemaObjCxt} from \".\"\nimport {_, getProperty, Code, Name, CodeGen} from \"./codegen\"\nimport {_Code} from \"./codegen/code\"\nimport type {Rule, ValidationRules} from \"./rules\"\n\n// TODO refactor to use Set\nexport function toHash<T extends string = string>(arr: T[]): {[K in T]?: true} {\n const hash: {[K in T]?: true} = {}\n for (const item of arr) hash[item] = true\n return hash\n}\n\nexport function alwaysValidSchema(it: SchemaCxt, schema: AnySchema): boolean | void {\n if (typeof schema == \"boolean\") return schema\n if (Object.keys(schema).length === 0) return true\n checkUnknownRules(it, schema)\n return !schemaHasRules(schema, it.self.RULES.all)\n}\n\nexport function checkUnknownRules(it: SchemaCxt, schema: AnySchema = it.schema): void {\n const {opts, self} = it\n if (!opts.strictSchema) return\n if (typeof schema === \"boolean\") return\n const rules = self.RULES.keywords\n for (const key in schema) {\n if (!rules[key]) checkStrictMode(it, `unknown keyword: \"${key}\"`)\n }\n}\n\nexport function schemaHasRules(\n schema: AnySchema,\n rules: {[Key in string]?: boolean | Rule}\n): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (rules[key]) return true\n return false\n}\n\nexport function schemaHasRulesButRef(schema: AnySchema, RULES: ValidationRules): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (key !== \"$ref\" && RULES.all[key]) return true\n return false\n}\n\nexport function schemaRefOrVal(\n {topSchemaRef, schemaPath}: SchemaObjCxt,\n schema: unknown,\n keyword: string,\n $data?: string | false\n): Code | number | boolean {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\") return schema\n if (typeof schema == \"string\") return _`${schema}`\n }\n return _`${topSchemaRef}${schemaPath}${getProperty(keyword)}`\n}\n\nexport function unescapeFragment(str: string): string {\n return unescapeJsonPointer(decodeURIComponent(str))\n}\n\nexport function escapeFragment(str: string | number): string {\n return encodeURIComponent(escapeJsonPointer(str))\n}\n\nexport function escapeJsonPointer(str: string | number): string {\n if (typeof str == \"number\") return `${str}`\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\")\n}\n\nexport function unescapeJsonPointer(str: string): string {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\")\n}\n\nexport function eachItem<T>(xs: T | T[], f: (x: T) => void): void {\n if (Array.isArray(xs)) {\n for (const x of xs) f(x)\n } else {\n f(xs)\n }\n}\n\ntype SomeEvaluated = EvaluatedProperties | EvaluatedItems\n\ntype MergeEvaluatedFunc<T extends SomeEvaluated> = (\n gen: CodeGen,\n from: Name | T,\n to: Name | Exclude<T, true> | undefined,\n toName?: typeof Name\n) => Name | T\n\ninterface MakeMergeFuncArgs<T extends SomeEvaluated> {\n mergeNames: (gen: CodeGen, from: Name, to: Name) => void\n mergeToName: (gen: CodeGen, from: T, to: Name) => void\n mergeValues: (from: T, to: Exclude<T, true>) => T\n resultToName: (gen: CodeGen, res?: T) => Name\n}\n\nfunction makeMergeEvaluated<T extends SomeEvaluated>({\n mergeNames,\n mergeToName,\n mergeValues,\n resultToName,\n}: MakeMergeFuncArgs<T>): MergeEvaluatedFunc<T> {\n return (gen, from, to, toName) => {\n const res =\n to === undefined\n ? from\n : to instanceof Name\n ? (from instanceof Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to)\n return toName === Name && !(res instanceof Name) ? resultToName(gen, res) : res\n }\n}\n\ninterface MergeEvaluated {\n props: MergeEvaluatedFunc<EvaluatedProperties>\n items: MergeEvaluatedFunc<EvaluatedItems>\n}\n\nexport const mergeEvaluated: MergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) =>\n gen.if(_`${to} !== true && ${from} !== undefined`, () => {\n gen.if(\n _`${from} === true`,\n () => gen.assign(to, true),\n () => gen.assign(to, _`${to} || {}`).code(_`Object.assign(${to}, ${from})`)\n )\n }),\n mergeToName: (gen, from, to) =>\n gen.if(_`${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true)\n } else {\n gen.assign(to, _`${to} || {}`)\n setEvaluated(gen, to, from)\n }\n }),\n mergeValues: (from, to) => (from === true ? true : {...from, ...to}),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) =>\n gen.if(_`${to} !== true && ${from} !== undefined`, () =>\n gen.assign(to, _`${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)\n ),\n mergeToName: (gen, from, to) =>\n gen.if(_`${to} !== true`, () =>\n gen.assign(to, from === true ? true : _`${to} > ${from} ? ${to} : ${from}`)\n ),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n}\n\nexport function evaluatedPropsToName(gen: CodeGen, ps?: EvaluatedProperties): Name {\n if (ps === true) return gen.var(\"props\", true)\n const props = gen.var(\"props\", _`{}`)\n if (ps !== undefined) setEvaluated(gen, props, ps)\n return props\n}\n\nexport function setEvaluated(gen: CodeGen, props: Name, ps: {[K in string]?: true}): void {\n Object.keys(ps).forEach((p) => gen.assign(_`${props}${getProperty(p)}`, true))\n}\n\nconst snippets: {[S in string]?: _Code} = {}\n\nexport function useFunc(gen: CodeGen, f: {code: string}): Name {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new _Code(f.code)),\n })\n}\n\nexport enum Type {\n Num,\n Str,\n}\n\nexport function getErrorPath(\n dataProp: Name | string | number,\n dataPropType?: Type,\n jsPropertySyntax?: boolean\n): Code | string {\n // let path\n if (dataProp instanceof Name) {\n const isNumber = dataPropType === Type.Num\n return jsPropertySyntax\n ? isNumber\n ? _`\"[\" + ${dataProp} + \"]\"`\n : _`\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? _`\"/\" + ${dataProp}`\n : _`\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")` // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? getProperty(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp)\n}\n\nexport function checkStrictMode(\n it: SchemaCxt,\n msg: string,\n mode: boolean | \"log\" = it.opts.strictSchema\n): void {\n if (!mode) return\n msg = `strict mode: ${msg}`\n if (mode === true) throw new Error(msg)\n it.self.logger.warn(msg)\n}\n","import type {AnySchemaObject} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport type {JSONType, RuleGroup, Rule} from \"../rules\"\n\nexport function schemaHasRulesForType(\n {schema, self}: SchemaObjCxt,\n type: JSONType\n): boolean | undefined {\n const group = self.RULES.types[type]\n return group && group !== true && shouldUseGroup(schema, group)\n}\n\nexport function shouldUseGroup(schema: AnySchemaObject, group: RuleGroup): boolean {\n return group.rules.some((rule) => shouldUseRule(schema, rule))\n}\n\nexport function shouldUseRule(schema: AnySchemaObject, rule: Rule): boolean | undefined {\n return (\n schema[rule.keyword] !== undefined ||\n rule.definition.implements?.some((kwd) => schema[kwd] !== undefined)\n )\n}\n","import type {KeywordErrorDefinition, KeywordErrorCxt} from \"../../types\"\nimport type {SchemaCxt} from \"..\"\nimport {reportError} from \"../errors\"\nimport {_, Name} from \"../codegen\"\nimport N from \"../names\"\n\nconst boolError: KeywordErrorDefinition = {\n message: \"boolean schema is false\",\n}\n\nexport function topBoolOrEmptySchema(it: SchemaCxt): void {\n const {gen, schema, validateName} = it\n if (schema === false) {\n falseSchemaError(it, false)\n } else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(N.data)\n } else {\n gen.assign(_`${validateName}.errors`, null)\n gen.return(true)\n }\n}\n\nexport function boolOrEmptySchema(it: SchemaCxt, valid: Name): void {\n const {gen, schema} = it\n if (schema === false) {\n gen.var(valid, false) // TODO var\n falseSchemaError(it)\n } else {\n gen.var(valid, true) // TODO var\n }\n}\n\nfunction falseSchemaError(it: SchemaCxt, overrideAllErrors?: boolean): void {\n const {gen, data} = it\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt: KeywordErrorCxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n }\n reportError(cxt, boolError, undefined, overrideAllErrors)\n}\n","import type {\n KeywordErrorDefinition,\n KeywordErrorCxt,\n ErrorObject,\n AnySchemaObject,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {isJSONType, JSONType} from \"../rules\"\nimport {schemaHasRulesForType} from \"./applicability\"\nimport {reportError} from \"../errors\"\nimport {_, nil, and, not, operators, Code, Name} from \"../codegen\"\nimport {toHash, schemaRefOrVal} from \"../util\"\n\nexport enum DataType {\n Correct,\n Wrong,\n}\n\nexport function getSchemaTypes(schema: AnySchemaObject): JSONType[] {\n const types = getJSONTypes(schema.type)\n const hasNull = types.includes(\"null\")\n if (hasNull) {\n if (schema.nullable === false) throw new Error(\"type: null contradicts nullable: false\")\n } else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"')\n }\n if (schema.nullable === true) types.push(\"null\")\n }\n return types\n}\n\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nexport function getJSONTypes(ts: unknown | unknown[]): JSONType[] {\n const types: unknown[] = Array.isArray(ts) ? ts : ts ? [ts] : []\n if (types.every(isJSONType)) return types\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"))\n}\n\nexport function coerceAndCheckDataType(it: SchemaObjCxt, types: JSONType[]): boolean {\n const {gen, data, opts} = it\n const coerceTo = coerceToTypes(types, opts.coerceTypes)\n const checkTypes =\n types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && schemaHasRulesForType(it, types[0]))\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong)\n gen.if(wrongType, () => {\n if (coerceTo.length) coerceData(it, types, coerceTo)\n else reportTypeError(it)\n })\n }\n return checkTypes\n}\n\nconst COERCIBLE: Set<JSONType> = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"])\nfunction coerceToTypes(types: JSONType[], coerceTypes?: boolean | \"array\"): JSONType[] {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : []\n}\n\nfunction coerceData(it: SchemaObjCxt, types: JSONType[], coerceTo: JSONType[]): void {\n const {gen, data, opts} = it\n const dataType = gen.let(\"dataType\", _`typeof ${data}`)\n const coerced = gen.let(\"coerced\", _`undefined`)\n if (opts.coerceTypes === \"array\") {\n gen.if(_`${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () =>\n gen\n .assign(data, _`${data}[0]`)\n .assign(dataType, _`typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data))\n )\n }\n gen.if(_`${coerced} !== undefined`)\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t)\n }\n }\n gen.else()\n reportTypeError(it)\n gen.endIf()\n\n gen.if(_`${coerced} !== undefined`, () => {\n gen.assign(data, coerced)\n assignParentData(it, coerced)\n })\n\n function coerceSpecificType(t: string): void {\n switch (t) {\n case \"string\":\n gen\n .elseIf(_`${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, _`\"\" + ${data}`)\n .elseIf(_`${data} === null`)\n .assign(coerced, _`\"\"`)\n return\n case \"number\":\n gen\n .elseIf(\n _`${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`\n )\n .assign(coerced, _`+${data}`)\n return\n case \"integer\":\n gen\n .elseIf(\n _`${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`\n )\n .assign(coerced, _`+${data}`)\n return\n case \"boolean\":\n gen\n .elseIf(_`${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf(_`${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true)\n return\n case \"null\":\n gen.elseIf(_`${data} === \"\" || ${data} === 0 || ${data} === false`)\n gen.assign(coerced, null)\n return\n\n case \"array\":\n gen\n .elseIf(\n _`${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`\n )\n .assign(coerced, _`[${data}]`)\n }\n }\n}\n\nfunction assignParentData({gen, parentData, parentDataProperty}: SchemaObjCxt, expr: Name): void {\n // TODO use gen.property\n gen.if(_`${parentData} !== undefined`, () =>\n gen.assign(_`${parentData}[${parentDataProperty}]`, expr)\n )\n}\n\nexport function checkDataType(\n dataType: JSONType,\n data: Name,\n strictNums?: boolean | \"log\",\n correct = DataType.Correct\n): Code {\n const EQ = correct === DataType.Correct ? operators.EQ : operators.NEQ\n let cond: Code\n switch (dataType) {\n case \"null\":\n return _`${data} ${EQ} null`\n case \"array\":\n cond = _`Array.isArray(${data})`\n break\n case \"object\":\n cond = _`${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`\n break\n case \"integer\":\n cond = numCond(_`!(${data} % 1) && !isNaN(${data})`)\n break\n case \"number\":\n cond = numCond()\n break\n default:\n return _`typeof ${data} ${EQ} ${dataType}`\n }\n return correct === DataType.Correct ? cond : not(cond)\n\n function numCond(_cond: Code = nil): Code {\n return and(_`typeof ${data} == \"number\"`, _cond, strictNums ? _`isFinite(${data})` : nil)\n }\n}\n\nexport function checkDataTypes(\n dataTypes: JSONType[],\n data: Name,\n strictNums?: boolean | \"log\",\n correct?: DataType\n): Code {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct)\n }\n let cond: Code\n const types = toHash(dataTypes)\n if (types.array && types.object) {\n const notObj = _`typeof ${data} != \"object\"`\n cond = types.null ? notObj : _`!${data} || ${notObj}`\n delete types.null\n delete types.array\n delete types.object\n } else {\n cond = nil\n }\n if (types.number) delete types.integer\n for (const t in types) cond = and(cond, checkDataType(t as JSONType, data, strictNums, correct))\n return cond\n}\n\nexport type TypeError = ErrorObject<\"type\", {type: string}>\n\nconst typeError: KeywordErrorDefinition = {\n message: ({schema}) => `must be ${schema}`,\n params: ({schema, schemaValue}) =>\n typeof schema == \"string\" ? _`{type: ${schema}}` : _`{type: ${schemaValue}}`,\n}\n\nexport function reportTypeError(it: SchemaObjCxt): void {\n const cxt = getTypeErrorContext(it)\n reportError(cxt, typeError)\n}\n\nfunction getTypeErrorContext(it: SchemaObjCxt): KeywordErrorCxt {\n const {gen, data, schema} = it\n const schemaCode = schemaRefOrVal(it, schema, \"type\")\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n }\n}\n","import type {SchemaObjCxt} from \"..\"\nimport {_, getProperty, stringify} from \"../codegen\"\nimport {checkStrictMode} from \"../util\"\n\nexport function assignDefaults(it: SchemaObjCxt, ty?: string): void {\n const {properties, items} = it.schema\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default)\n }\n } else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i: number) => assignDefault(it, i, sch.default))\n }\n}\n\nfunction assignDefault(it: SchemaObjCxt, prop: string | number, defaultValue: unknown): void {\n const {gen, compositeRule, data, opts} = it\n if (defaultValue === undefined) return\n const childData = _`${data}${getProperty(prop)}`\n if (compositeRule) {\n checkStrictMode(it, `default is ignored for: ${childData}`)\n return\n }\n\n let condition = _`${childData} === undefined`\n if (opts.useDefaults === \"empty\") {\n condition = _`${condition} || ${childData} === null || ${childData} === \"\"`\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, _`${childData} = ${stringify(defaultValue)}`)\n}\n","import type {\n AddedKeywordDefinition,\n AnySchema,\n AnySchemaObject,\n KeywordErrorCxt,\n KeywordCxtParams,\n} from \"../../types\"\nimport type {SchemaCxt, SchemaObjCxt} from \"..\"\nimport type {InstanceOptions} from \"../../core\"\nimport {boolOrEmptySchema, topBoolOrEmptySchema} from \"./boolSchema\"\nimport {coerceAndCheckDataType, getSchemaTypes} from \"./dataType\"\nimport {shouldUseGroup, shouldUseRule} from \"./applicability\"\nimport {checkDataType, checkDataTypes, reportTypeError, DataType} from \"./dataType\"\nimport {assignDefaults} from \"./defaults\"\nimport {funcKeywordCode, macroKeywordCode, validateKeywordUsage, validSchemaType} from \"./keyword\"\nimport {getSubschema, extendSubschemaData, SubschemaArgs, extendSubschemaMode} from \"./subschema\"\nimport {_, nil, str, or, not, getProperty, Block, Code, Name, CodeGen} from \"../codegen\"\nimport N from \"../names\"\nimport {resolveUrl} from \"../resolve\"\nimport {\n schemaRefOrVal,\n schemaHasRulesButRef,\n checkUnknownRules,\n checkStrictMode,\n unescapeJsonPointer,\n mergeEvaluated,\n} from \"../util\"\nimport type {JSONType, Rule, RuleGroup} from \"../rules\"\nimport {\n ErrorPaths,\n reportError,\n reportExtraError,\n resetErrorsCount,\n keyword$DataError,\n} from \"../errors\"\n\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nexport function validateFunctionCode(it: SchemaCxt): void {\n if (isSchemaObj(it)) {\n checkKeywords(it)\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it)\n return\n }\n }\n validateFunction(it, () => topBoolOrEmptySchema(it))\n}\n\nfunction validateFunction(\n {gen, validateName, schema, schemaEnv, opts}: SchemaCxt,\n body: Block\n): void {\n if (opts.code.es5) {\n gen.func(validateName, _`${N.data}, ${N.valCxt}`, schemaEnv.$async, () => {\n gen.code(_`\"use strict\"; ${funcSourceUrl(schema, opts)}`)\n destructureValCxtES5(gen, opts)\n gen.code(body)\n })\n } else {\n gen.func(validateName, _`${N.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () =>\n gen.code(funcSourceUrl(schema, opts)).code(body)\n )\n }\n}\n\nfunction destructureValCxt(opts: InstanceOptions): Code {\n return _`{${N.instancePath}=\"\", ${N.parentData}, ${N.parentDataProperty}, ${N.rootData}=${\n N.data\n }${opts.dynamicRef ? _`, ${N.dynamicAnchors}={}` : nil}}={}`\n}\n\nfunction destructureValCxtES5(gen: CodeGen, opts: InstanceOptions): void {\n gen.if(\n N.valCxt,\n () => {\n gen.var(N.instancePath, _`${N.valCxt}.${N.instancePath}`)\n gen.var(N.parentData, _`${N.valCxt}.${N.parentData}`)\n gen.var(N.parentDataProperty, _`${N.valCxt}.${N.parentDataProperty}`)\n gen.var(N.rootData, _`${N.valCxt}.${N.rootData}`)\n if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`${N.valCxt}.${N.dynamicAnchors}`)\n },\n () => {\n gen.var(N.instancePath, _`\"\"`)\n gen.var(N.parentData, _`undefined`)\n gen.var(N.parentDataProperty, _`undefined`)\n gen.var(N.rootData, N.data)\n if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`{}`)\n }\n )\n}\n\nfunction topSchemaObjCode(it: SchemaObjCxt): void {\n const {schema, opts, gen} = it\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment) commentKeyword(it)\n checkNoDefault(it)\n gen.let(N.vErrors, null)\n gen.let(N.errors, 0)\n if (opts.unevaluated) resetEvaluated(it)\n typeAndKeywords(it)\n returnResults(it)\n })\n return\n}\n\nfunction resetEvaluated(it: SchemaObjCxt): void {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const {gen, validateName} = it\n it.evaluated = gen.const(\"evaluated\", _`${validateName}.evaluated`)\n gen.if(_`${it.evaluated}.dynamicProps`, () => gen.assign(_`${it.evaluated}.props`, _`undefined`))\n gen.if(_`${it.evaluated}.dynamicItems`, () => gen.assign(_`${it.evaluated}.items`, _`undefined`))\n}\n\nfunction funcSourceUrl(schema: AnySchema, opts: InstanceOptions): Code {\n const schId = typeof schema == \"object\" && schema[opts.schemaId]\n return schId && (opts.code.source || opts.code.process) ? _`/*# sourceURL=${schId} */` : nil\n}\n\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it: SchemaCxt, valid: Name): void {\n if (isSchemaObj(it)) {\n checkKeywords(it)\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid)\n return\n }\n }\n boolOrEmptySchema(it, valid)\n}\n\nfunction schemaCxtHasRules({schema, self}: SchemaCxt): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (self.RULES.all[key]) return true\n return false\n}\n\nfunction isSchemaObj(it: SchemaCxt): it is SchemaObjCxt {\n return typeof it.schema != \"boolean\"\n}\n\nfunction subSchemaObjCode(it: SchemaObjCxt, valid: Name): void {\n const {schema, gen, opts} = it\n if (opts.$comment && schema.$comment) commentKeyword(it)\n updateContext(it)\n checkAsyncSchema(it)\n const errsCount = gen.const(\"_errs\", N.errors)\n typeAndKeywords(it, errsCount)\n // TODO var\n gen.var(valid, _`${errsCount} === ${N.errors}`)\n}\n\nfunction checkKeywords(it: SchemaObjCxt): void {\n checkUnknownRules(it)\n checkRefsAndKeywords(it)\n}\n\nfunction typeAndKeywords(it: SchemaObjCxt, errsCount?: Name): void {\n if (it.opts.jtd) return schemaKeywords(it, [], false, errsCount)\n const types = getSchemaTypes(it.schema)\n const checkedTypes = coerceAndCheckDataType(it, types)\n schemaKeywords(it, types, !checkedTypes, errsCount)\n}\n\nfunction checkRefsAndKeywords(it: SchemaObjCxt): void {\n const {schema, errSchemaPath, opts, self} = it\n if (schema.$ref && opts.ignoreKeywordsWithRef && schemaHasRulesButRef(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`)\n }\n}\n\nfunction checkNoDefault(it: SchemaObjCxt): void {\n const {schema, opts} = it\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n checkStrictMode(it, \"default is ignored in the schema root\")\n }\n}\n\nfunction updateContext(it: SchemaObjCxt): void {\n const schId = it.schema[it.opts.schemaId]\n if (schId) it.baseId = resolveUrl(it.opts.uriResolver, it.baseId, schId)\n}\n\nfunction checkAsyncSchema(it: SchemaObjCxt): void {\n if (it.schema.$async && !it.schemaEnv.$async) throw new Error(\"async schema in sync schema\")\n}\n\nfunction commentKeyword({gen, schemaEnv, schema, errSchemaPath, opts}: SchemaObjCxt): void {\n const msg = schema.$comment\n if (opts.$comment === true) {\n gen.code(_`${N.self}.logger.log(${msg})`)\n } else if (typeof opts.$comment == \"function\") {\n const schemaPath = str`${errSchemaPath}/$comment`\n const rootName = gen.scopeValue(\"root\", {ref: schemaEnv.root})\n gen.code(_`${N.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`)\n }\n}\n\nfunction returnResults(it: SchemaCxt): void {\n const {gen, schemaEnv, validateName, ValidationError, opts} = it\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if(\n _`${N.errors} === 0`,\n () => gen.return(N.data),\n () => gen.throw(_`new ${ValidationError as Name}(${N.vErrors})`)\n )\n } else {\n gen.assign(_`${validateName}.errors`, N.vErrors)\n if (opts.unevaluated) assignEvaluated(it)\n gen.return(_`${N.errors} === 0`)\n }\n}\n\nfunction assignEvaluated({gen, evaluated, props, items}: SchemaCxt): void {\n if (props instanceof Name) gen.assign(_`${evaluated}.props`, props)\n if (items instanceof Name) gen.assign(_`${evaluated}.items`, items)\n}\n\nfunction schemaKeywords(\n it: SchemaObjCxt,\n types: JSONType[],\n typeErrors: boolean,\n errsCount?: Name\n): void {\n const {gen, schema, data, allErrors, opts, self} = it\n const {RULES} = self\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !schemaHasRulesButRef(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", (RULES.all.$ref as Rule).definition)) // TODO typecast\n return\n }\n if (!opts.jtd) checkStrictTypes(it, types)\n gen.block(() => {\n for (const group of RULES.rules) groupKeywords(group)\n groupKeywords(RULES.post)\n })\n\n function groupKeywords(group: RuleGroup): void {\n if (!shouldUseGroup(schema, group)) return\n if (group.type) {\n gen.if(checkDataType(group.type, data, opts.strictNumbers))\n iterateKeywords(it, group)\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else()\n reportTypeError(it)\n }\n gen.endIf()\n } else {\n iterateKeywords(it, group)\n }\n // TODO make it \"ok\" call?\n if (!allErrors) gen.if(_`${N.errors} === ${errsCount || 0}`)\n }\n}\n\nfunction iterateKeywords(it: SchemaObjCxt, group: RuleGroup): void {\n const {\n gen,\n schema,\n opts: {useDefaults},\n } = it\n if (useDefaults) assignDefaults(it, group.type)\n gen.block(() => {\n for (const rule of group.rules) {\n if (shouldUseRule(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type)\n }\n }\n })\n}\n\nfunction checkStrictTypes(it: SchemaObjCxt, types: JSONType[]): void {\n if (it.schemaEnv.meta || !it.opts.strictTypes) return\n checkContextTypes(it, types)\n if (!it.opts.allowUnionTypes) checkMultipleTypes(it, types)\n checkKeywordTypes(it, it.dataTypes)\n}\n\nfunction checkContextTypes(it: SchemaObjCxt, types: JSONType[]): void {\n if (!types.length) return\n if (!it.dataTypes.length) {\n it.dataTypes = types\n return\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`)\n }\n })\n narrowSchemaTypes(it, types)\n}\n\nfunction checkMultipleTypes(it: SchemaObjCxt, ts: JSONType[]): void {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\")\n }\n}\n\nfunction checkKeywordTypes(it: SchemaObjCxt, ts: JSONType[]): void {\n const rules = it.self.RULES.all\n for (const keyword in rules) {\n const rule = rules[keyword]\n if (typeof rule == \"object\" && shouldUseRule(it.schema, rule)) {\n const {type} = rule.definition\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`)\n }\n }\n }\n}\n\nfunction hasApplicableType(schTs: JSONType[], kwdT: JSONType): boolean {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"))\n}\n\nfunction includesType(ts: JSONType[], t: JSONType): boolean {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"))\n}\n\nfunction narrowSchemaTypes(it: SchemaObjCxt, withTypes: JSONType[]): void {\n const ts: JSONType[] = []\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t)) ts.push(t)\n else if (withTypes.includes(\"integer\") && t === \"number\") ts.push(\"integer\")\n }\n it.dataTypes = ts\n}\n\nfunction strictTypesError(it: SchemaObjCxt, msg: string): void {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath\n msg += ` at \"${schemaPath}\" (strictTypes)`\n checkStrictMode(it, msg, it.opts.strictTypes)\n}\n\nexport class KeywordCxt implements KeywordErrorCxt {\n readonly gen: CodeGen\n readonly allErrors?: boolean\n readonly keyword: string\n readonly data: Name // Name referencing the current level of the data instance\n readonly $data?: string | false\n schema: any // keyword value in the schema\n readonly schemaValue: Code | number | boolean // Code reference to keyword schema value or primitive value\n readonly schemaCode: Code | number | boolean // Code reference to resolved schema value (different if schema is $data)\n readonly schemaType: JSONType[] // allowed type(s) of keyword value in the schema\n readonly parentSchema: AnySchemaObject\n readonly errsCount?: Name // Name reference to the number of validation errors collected before this keyword,\n // requires option trackErrors in keyword definition\n params: KeywordCxtParams // object to pass parameters to error messages from keyword code\n readonly it: SchemaObjCxt // schema compilation context (schema is guaranteed to be an object, not boolean)\n readonly def: AddedKeywordDefinition\n\n constructor(it: SchemaObjCxt, def: AddedKeywordDefinition, keyword: string) {\n validateKeywordUsage(it, def, keyword)\n this.gen = it.gen\n this.allErrors = it.allErrors\n this.keyword = keyword\n this.data = it.data\n this.schema = it.schema[keyword]\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data\n this.schemaValue = schemaRefOrVal(it, this.schema, keyword, this.$data)\n this.schemaType = def.schemaType\n this.parentSchema = it.schema\n this.params = {}\n this.it = it\n this.def = def\n\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it))\n } else {\n this.schemaCode = this.schemaValue\n if (!validSchemaType(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`)\n }\n }\n\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", N.errors)\n }\n }\n\n result(condition: Code, successAction?: () => void, failAction?: () => void): void {\n this.failResult(not(condition), successAction, failAction)\n }\n\n failResult(condition: Code, successAction?: () => void, failAction?: () => void): void {\n this.gen.if(condition)\n if (failAction) failAction()\n else this.error()\n if (successAction) {\n this.gen.else()\n successAction()\n if (this.allErrors) this.gen.endIf()\n } else {\n if (this.allErrors) this.gen.endIf()\n else this.gen.else()\n }\n }\n\n pass(condition: Code, failAction?: () => void): void {\n this.failResult(not(condition), undefined, failAction)\n }\n\n fail(condition?: Code): void {\n if (condition === undefined) {\n this.error()\n if (!this.allErrors) this.gen.if(false) // this branch will be removed by gen.optimize\n return\n }\n this.gen.if(condition)\n this.error()\n if (this.allErrors) this.gen.endIf()\n else this.gen.else()\n }\n\n fail$data(condition: Code): void {\n if (!this.$data) return this.fail(condition)\n const {schemaCode} = this\n this.fail(_`${schemaCode} !== undefined && (${or(this.invalid$data(), condition)})`)\n }\n\n error(append?: boolean, errorParams?: KeywordCxtParams, errorPaths?: ErrorPaths): void {\n if (errorParams) {\n this.setParams(errorParams)\n this._error(append, errorPaths)\n this.setParams({})\n return\n }\n this._error(append, errorPaths)\n }\n\n private _error(append?: boolean, errorPaths?: ErrorPaths): void {\n ;(append ? reportExtraError : reportError)(this, this.def.error, errorPaths)\n }\n\n $dataError(): void {\n reportError(this, this.def.$dataError || keyword$DataError)\n }\n\n reset(): void {\n if (this.errsCount === undefined) throw new Error('add \"trackErrors\" to keyword definition')\n resetErrorsCount(this.gen, this.errsCount)\n }\n\n ok(cond: Code | boolean): void {\n if (!this.allErrors) this.gen.if(cond)\n }\n\n setParams(obj: KeywordCxtParams, assign?: true): void {\n if (assign) Object.assign(this.params, obj)\n else this.params = obj\n }\n\n block$data(valid: Name, codeBlock: () => void, $dataValid: Code = nil): void {\n this.gen.block(() => {\n this.check$data(valid, $dataValid)\n codeBlock()\n })\n }\n\n check$data(valid: Name = nil, $dataValid: Code = nil): void {\n if (!this.$data) return\n const {gen, schemaCode, schemaType, def} = this\n gen.if(or(_`${schemaCode} === undefined`, $dataValid))\n if (valid !== nil) gen.assign(valid, true)\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data())\n this.$dataError()\n if (valid !== nil) gen.assign(valid, false)\n }\n gen.else()\n }\n\n invalid$data(): Code {\n const {gen, schemaCode, schemaType, def, it} = this\n return or(wrong$DataType(), invalid$DataSchema())\n\n function wrong$DataType(): Code {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof Name)) throw new Error(\"ajv implementation error\")\n const st = Array.isArray(schemaType) ? schemaType : [schemaType]\n return _`${checkDataTypes(st, schemaCode, it.opts.strictNumbers, DataType.Wrong)}`\n }\n return nil\n }\n\n function invalid$DataSchema(): Code {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", {ref: def.validateSchema}) // TODO value.code for standalone\n return _`!${validateSchemaRef}(${schemaCode})`\n }\n return nil\n }\n }\n\n subschema(appl: SubschemaArgs, valid: Name): SchemaCxt {\n const subschema = getSubschema(this.it, appl)\n extendSubschemaData(subschema, this.it, appl)\n extendSubschemaMode(subschema, appl)\n const nextContext = {...this.it, ...subschema, items: undefined, props: undefined}\n subschemaCode(nextContext, valid)\n return nextContext\n }\n\n mergeEvaluated(schemaCxt: SchemaCxt, toName?: typeof Name): void {\n const {it, gen} = this\n if (!it.opts.unevaluated) return\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = mergeEvaluated.props(gen, schemaCxt.props, it.props, toName)\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = mergeEvaluated.items(gen, schemaCxt.items, it.items, toName)\n }\n }\n\n mergeValidEvaluated(schemaCxt: SchemaCxt, valid: Name): boolean | void {\n const {it, gen} = this\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, Name))\n return true\n }\n }\n}\n\nfunction keywordCode(\n it: SchemaObjCxt,\n keyword: string,\n def: AddedKeywordDefinition,\n ruleType?: JSONType\n): void {\n const cxt = new KeywordCxt(it, def, keyword)\n if (\"code\" in def) {\n def.code(cxt, ruleType)\n } else if (cxt.$data && def.validate) {\n funcKeywordCode(cxt, def)\n } else if (\"macro\" in def) {\n macroKeywordCode(cxt, def)\n } else if (def.compile || def.validate) {\n funcKeywordCode(cxt, def)\n }\n}\n\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/\nexport function getData(\n $data: string,\n {dataLevel, dataNames, dataPathArr}: SchemaCxt\n): Code | number {\n let jsonPointer\n let data: Code\n if ($data === \"\") return N.rootData\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data)) throw new Error(`Invalid JSON-pointer: ${$data}`)\n jsonPointer = $data\n data = N.rootData\n } else {\n const matches = RELATIVE_JSON_POINTER.exec($data)\n if (!matches) throw new Error(`Invalid JSON-pointer: ${$data}`)\n const up: number = +matches[1]\n jsonPointer = matches[2]\n if (jsonPointer === \"#\") {\n if (up >= dataLevel) throw new Error(errorMsg(\"property/index\", up))\n return dataPathArr[dataLevel - up]\n }\n if (up > dataLevel) throw new Error(errorMsg(\"data\", up))\n data = dataNames[dataLevel - up]\n if (!jsonPointer) return data\n }\n\n let expr = data\n const segments = jsonPointer.split(\"/\")\n for (const segment of segments) {\n if (segment) {\n data = _`${data}${getProperty(unescapeJsonPointer(segment))}`\n expr = _`${expr} && ${data}`\n }\n }\n return expr\n\n function errorMsg(pointerType: string, up: number): string {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`\n }\n}\n","import type {KeywordCxt} from \".\"\nimport type {\n AnySchema,\n SchemaValidateFunction,\n AnyValidateFunction,\n AddedKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {_, nil, not, stringify, Code, Name, CodeGen} from \"../codegen\"\nimport N from \"../names\"\nimport type {JSONType} from \"../rules\"\nimport {callValidateCode} from \"../../vocabularies/code\"\nimport {extendErrors} from \"../errors\"\n\ntype KeywordCompilationResult = AnySchema | SchemaValidateFunction | AnyValidateFunction\n\nexport function macroKeywordCode(cxt: KeywordCxt, def: MacroKeywordDefinition): void {\n const {gen, keyword, schema, parentSchema, it} = cxt\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it)\n const schemaRef = useKeyword(gen, keyword, macroSchema)\n if (it.opts.validateSchema !== false) it.self.validateSchema(macroSchema, true)\n\n const valid = gen.name(\"valid\")\n cxt.subschema(\n {\n schema: macroSchema,\n schemaPath: nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n },\n valid\n )\n cxt.pass(valid, () => cxt.error(true))\n}\n\nexport function funcKeywordCode(cxt: KeywordCxt, def: FuncKeywordDefinition): void {\n const {gen, keyword, schema, parentSchema, $data, it} = cxt\n checkAsyncKeyword(it, def)\n const validate =\n !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate\n const validateRef = useKeyword(gen, keyword, validate)\n const valid = gen.let(\"valid\")\n cxt.block$data(valid, validateKeyword)\n cxt.ok(def.valid ?? valid)\n\n function validateKeyword(): void {\n if (def.errors === false) {\n assignValid()\n if (def.modifying) modifyData(cxt)\n reportErrs(() => cxt.error())\n } else {\n const ruleErrs = def.async ? validateAsync() : validateSync()\n if (def.modifying) modifyData(cxt)\n reportErrs(() => addErrs(cxt, ruleErrs))\n }\n }\n\n function validateAsync(): Name {\n const ruleErrs = gen.let(\"ruleErrs\", null)\n gen.try(\n () => assignValid(_`await `),\n (e) =>\n gen.assign(valid, false).if(\n _`${e} instanceof ${it.ValidationError as Name}`,\n () => gen.assign(ruleErrs, _`${e}.errors`),\n () => gen.throw(e)\n )\n )\n return ruleErrs\n }\n\n function validateSync(): Code {\n const validateErrs = _`${validateRef}.errors`\n gen.assign(validateErrs, null)\n assignValid(nil)\n return validateErrs\n }\n\n function assignValid(_await: Code = def.async ? _`await ` : nil): void {\n const passCxt = it.opts.passContext ? N.this : N.self\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false)\n gen.assign(\n valid,\n _`${_await}${callValidateCode(cxt, validateRef, passCxt, passSchema)}`,\n def.modifying\n )\n }\n\n function reportErrs(errors: () => void): void {\n gen.if(not(def.valid ?? valid), errors)\n }\n}\n\nfunction modifyData(cxt: KeywordCxt): void {\n const {gen, data, it} = cxt\n gen.if(it.parentData, () => gen.assign(data, _`${it.parentData}[${it.parentDataProperty}]`))\n}\n\nfunction addErrs(cxt: KeywordCxt, errs: Code): void {\n const {gen} = cxt\n gen.if(\n _`Array.isArray(${errs})`,\n () => {\n gen\n .assign(N.vErrors, _`${N.vErrors} === null ? ${errs} : ${N.vErrors}.concat(${errs})`)\n .assign(N.errors, _`${N.vErrors}.length`)\n extendErrors(cxt)\n },\n () => cxt.error()\n )\n}\n\nfunction checkAsyncKeyword({schemaEnv}: SchemaObjCxt, def: FuncKeywordDefinition): void {\n if (def.async && !schemaEnv.$async) throw new Error(\"async keyword in sync schema\")\n}\n\nfunction useKeyword(gen: CodeGen, keyword: string, result?: KeywordCompilationResult): Name {\n if (result === undefined) throw new Error(`keyword \"${keyword}\" failed to compile`)\n return gen.scopeValue(\n \"keyword\",\n typeof result == \"function\" ? {ref: result} : {ref: result, code: stringify(result)}\n )\n}\n\nexport function validSchemaType(\n schema: unknown,\n schemaType: JSONType[],\n allowUndefined = false\n): boolean {\n // TODO add tests\n return (\n !schemaType.length ||\n schemaType.some((st) =>\n st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")\n )\n )\n}\n\nexport function validateKeywordUsage(\n {schema, opts, self, errSchemaPath}: SchemaObjCxt,\n def: AddedKeywordDefinition,\n keyword: string\n): void {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\")\n }\n\n const deps = def.dependencies\n if (deps?.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`)\n }\n\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword])\n if (!valid) {\n const msg =\n `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors)\n if (opts.validateSchema === \"log\") self.logger.error(msg)\n else throw new Error(msg)\n }\n }\n}\n","import type {AnySchema} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {_, str, getProperty, Code, Name} from \"../codegen\"\nimport {escapeFragment, getErrorPath, Type} from \"../util\"\nimport type {JSONType} from \"../rules\"\n\nexport interface SubschemaContext {\n // TODO use Optional? align with SchemCxt property types\n schema: AnySchema\n schemaPath: Code\n errSchemaPath: string\n topSchemaRef?: Code\n errorPath?: Code\n dataLevel?: number\n dataTypes?: JSONType[]\n data?: Name\n parentData?: Name\n parentDataProperty?: Code | number\n dataNames?: Name[]\n dataPathArr?: (Code | number)[]\n propertyName?: Name\n jtdDiscriminator?: string\n jtdMetadata?: boolean\n compositeRule?: true\n createErrors?: boolean\n allErrors?: boolean\n}\n\nexport type SubschemaArgs = Partial<{\n keyword: string\n schemaProp: string | number\n schema: AnySchema\n schemaPath: Code\n errSchemaPath: string\n topSchemaRef: Code\n data: Name | Code\n dataProp: Code | string | number\n dataTypes: JSONType[]\n definedProperties: Set<string>\n propertyName: Name\n dataPropType: Type\n jtdDiscriminator: string\n jtdMetadata: boolean\n compositeRule: true\n createErrors: boolean\n allErrors: boolean\n}>\n\nexport function getSubschema(\n it: SchemaObjCxt,\n {keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef}: SubschemaArgs\n): SubschemaContext {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed')\n }\n\n if (keyword !== undefined) {\n const sch = it.schema[keyword]\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: _`${it.schemaPath}${getProperty(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: _`${it.schemaPath}${getProperty(keyword)}${getProperty(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${escapeFragment(schemaProp)}`,\n }\n }\n\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"')\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n }\n }\n\n throw new Error('either \"keyword\" or \"schema\" must be passed')\n}\n\nexport function extendSubschemaData(\n subschema: SubschemaContext,\n it: SchemaObjCxt,\n {dataProp, dataPropType: dpType, data, dataTypes, propertyName}: SubschemaArgs\n): void {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed')\n }\n\n const {gen} = it\n\n if (dataProp !== undefined) {\n const {errorPath, dataPathArr, opts} = it\n const nextData = gen.let(\"data\", _`${it.data}${getProperty(dataProp)}`, true)\n dataContextProps(nextData)\n subschema.errorPath = str`${errorPath}${getErrorPath(dataProp, dpType, opts.jsPropertySyntax)}`\n subschema.parentDataProperty = _`${dataProp}`\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty]\n }\n\n if (data !== undefined) {\n const nextData = data instanceof Name ? data : gen.let(\"data\", data, true) // replaceable if used once?\n dataContextProps(nextData)\n if (propertyName !== undefined) subschema.propertyName = propertyName\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n\n if (dataTypes) subschema.dataTypes = dataTypes\n\n function dataContextProps(_nextData: Name): void {\n subschema.data = _nextData\n subschema.dataLevel = it.dataLevel + 1\n subschema.dataTypes = []\n it.definedProperties = new Set<string>()\n subschema.parentData = it.data\n subschema.dataNames = [...it.dataNames, _nextData]\n }\n}\n\nexport function extendSubschemaMode(\n subschema: SubschemaContext,\n {jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors}: SubschemaArgs\n): void {\n if (compositeRule !== undefined) subschema.compositeRule = compositeRule\n if (createErrors !== undefined) subschema.createErrors = createErrors\n if (allErrors !== undefined) subschema.allErrors = allErrors\n subschema.jtdDiscriminator = jtdDiscriminator // not inherited\n subschema.jtdMetadata = jtdMetadata // not inherited\n}\n","export {\n Format,\n FormatDefinition,\n AsyncFormatDefinition,\n KeywordDefinition,\n KeywordErrorDefinition,\n CodeKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n Vocabulary,\n Schema,\n SchemaObject,\n AnySchemaObject,\n AsyncSchema,\n AnySchema,\n ValidateFunction,\n AsyncValidateFunction,\n AnyValidateFunction,\n ErrorObject,\n ErrorNoParams,\n} from \"./types\"\n\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport interface Plugin<Opts> {\n (ajv: Ajv, options?: Opts): Ajv\n [prop: string]: any\n}\n\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from \"./types/jtd-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\n\nimport type {\n Schema,\n AnySchema,\n AnySchemaObject,\n SchemaObject,\n AsyncSchema,\n Vocabulary,\n KeywordDefinition,\n AddedKeywordDefinition,\n AnyValidateFunction,\n ValidateFunction,\n AsyncValidateFunction,\n ErrorObject,\n Format,\n AddedFormat,\n RegExpEngine,\n UriResolver,\n} from \"./types\"\nimport type {JSONSchemaType} from \"./types/json-schema\"\nimport type {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from \"./types/jtd-schema\"\nimport ValidationError from \"./runtime/validation_error\"\nimport MissingRefError from \"./compile/ref_error\"\nimport {getRules, ValidationRules, Rule, RuleGroup, JSONType} from \"./compile/rules\"\nimport {SchemaEnv, compileSchema, resolveSchema} from \"./compile\"\nimport {Code, ValueScope} from \"./compile/codegen\"\nimport {normalizeId, getSchemaRefs} from \"./compile/resolve\"\nimport {getJSONTypes} from \"./compile/validate/dataType\"\nimport {eachItem} from \"./compile/util\"\nimport * as $dataRefSchema from \"./refs/data.json\"\n\nimport DefaultUriResolver from \"./runtime/uri\"\n\nconst defaultRegExp: RegExpEngine = (str, flags) => new RegExp(str, flags)\ndefaultRegExp.code = \"new RegExp\"\n\nconst META_IGNORE_OPTIONS: (keyof Options)[] = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"]\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n])\n\nexport type Options = CurrentOptions & DeprecatedOptions\n\nexport interface CurrentOptions {\n // strict mode options (NEW)\n strict?: boolean | \"log\"\n strictSchema?: boolean | \"log\"\n strictNumbers?: boolean | \"log\"\n strictTypes?: boolean | \"log\"\n strictTuples?: boolean | \"log\"\n strictRequired?: boolean | \"log\"\n allowMatchingProperties?: boolean // disables a strict mode restriction\n allowUnionTypes?: boolean\n validateFormats?: boolean\n // validation and reporting options:\n $data?: boolean\n allErrors?: boolean\n verbose?: boolean\n discriminator?: boolean\n unicodeRegExp?: boolean\n timestamp?: \"string\" | \"date\" // JTD only\n parseDate?: boolean // JTD only\n allowDate?: boolean // JTD only\n specialNumbers?: \"fast\" | \"null\" // JTD only\n $comment?:\n | true\n | ((comment: string, schemaPath?: string, rootSchema?: AnySchemaObject) => unknown)\n formats?: {[Name in string]?: Format}\n keywords?: Vocabulary\n schemas?: AnySchema[] | {[Key in string]?: AnySchema}\n logger?: Logger | false\n loadSchema?: (uri: string) => Promise<AnySchemaObject>\n // options to modify validated data:\n removeAdditional?: boolean | \"all\" | \"failing\"\n useDefaults?: boolean | \"empty\"\n coerceTypes?: boolean | \"array\"\n // advanced options:\n next?: boolean // NEW\n unevaluated?: boolean // NEW\n dynamicRef?: boolean // NEW\n schemaId?: \"id\" | \"$id\"\n jtd?: boolean // NEW\n meta?: SchemaObject | boolean\n defaultMeta?: string | AnySchemaObject\n validateSchema?: boolean | \"log\"\n addUsedSchema?: boolean\n inlineRefs?: boolean | number\n passContext?: boolean\n loopRequired?: number\n loopEnum?: number // NEW\n ownProperties?: boolean\n multipleOfPrecision?: number\n int32range?: boolean // JTD only\n messages?: boolean\n code?: CodeOptions // NEW\n uriResolver?: UriResolver\n}\n\nexport interface CodeOptions {\n es5?: boolean\n esm?: boolean\n lines?: boolean\n optimize?: boolean | number\n formats?: Code // code to require (or construct) map of available formats - for standalone code\n source?: boolean\n process?: (code: string, schema?: SchemaEnv) => string\n regExp?: RegExpEngine\n}\n\ninterface InstanceCodeOptions extends CodeOptions {\n regExp: RegExpEngine\n optimize: number\n}\n\ninterface DeprecatedOptions {\n /** @deprecated */\n ignoreKeywordsWithRef?: boolean\n /** @deprecated */\n jsPropertySyntax?: boolean // added instead of jsonPointers\n /** @deprecated */\n unicode?: boolean\n}\n\ninterface RemovedOptions {\n format?: boolean\n errorDataPath?: \"object\" | \"property\"\n nullable?: boolean // \"nullable\" keyword is supported by default\n jsonPointers?: boolean\n extendRefs?: true | \"ignore\" | \"fail\"\n missingRefs?: true | \"ignore\" | \"fail\"\n processCode?: (code: string, schema?: SchemaEnv) => string\n sourceCode?: boolean\n strictDefaults?: boolean\n strictKeywords?: boolean\n uniqueItems?: boolean\n unknownFormats?: true | string[] | \"ignore\"\n cache?: any\n serialize?: (schema: AnySchema) => unknown\n ajvErrors?: boolean\n}\n\ntype OptionsInfo<T extends RemovedOptions | DeprecatedOptions> = {\n [K in keyof T]-?: string | undefined\n}\n\nconst removedOptions: OptionsInfo<RemovedOptions> = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n}\n\nconst deprecatedOptions: OptionsInfo<DeprecatedOptions> = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n}\n\ntype RequiredInstanceOptions = {\n [K in\n | \"strictSchema\"\n | \"strictNumbers\"\n | \"strictTypes\"\n | \"strictTuples\"\n | \"strictRequired\"\n | \"inlineRefs\"\n | \"loopRequired\"\n | \"loopEnum\"\n | \"meta\"\n | \"messages\"\n | \"schemaId\"\n | \"addUsedSchema\"\n | \"validateSchema\"\n | \"validateFormats\"\n | \"int32range\"\n | \"unicodeRegExp\"\n | \"uriResolver\"]: NonNullable<Options[K]>\n} & {code: InstanceCodeOptions}\n\nexport type InstanceOptions = Options & RequiredInstanceOptions\n\nconst MAX_EXPRESSION = 200\n\n// eslint-disable-next-line complexity\nfunction requiredOptions(o: Options): RequiredInstanceOptions {\n const s = o.strict\n const _optz = o.code?.optimize\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0\n const regExp = o.code?.regExp ?? defaultRegExp\n const uriResolver = o.uriResolver ?? DefaultUriResolver\n return {\n strictSchema: o.strictSchema ?? s ?? true,\n strictNumbers: o.strictNumbers ?? s ?? true,\n strictTypes: o.strictTypes ?? s ?? \"log\",\n strictTuples: o.strictTuples ?? s ?? \"log\",\n strictRequired: o.strictRequired ?? s ?? false,\n code: o.code ? {...o.code, optimize, regExp} : {optimize, regExp},\n loopRequired: o.loopRequired ?? MAX_EXPRESSION,\n loopEnum: o.loopEnum ?? MAX_EXPRESSION,\n meta: o.meta ?? true,\n messages: o.messages ?? true,\n inlineRefs: o.inlineRefs ?? true,\n schemaId: o.schemaId ?? \"$id\",\n addUsedSchema: o.addUsedSchema ?? true,\n validateSchema: o.validateSchema ?? true,\n validateFormats: o.validateFormats ?? true,\n unicodeRegExp: o.unicodeRegExp ?? true,\n int32range: o.int32range ?? true,\n uriResolver: uriResolver,\n }\n}\n\nexport interface Logger {\n log(...args: unknown[]): unknown\n warn(...args: unknown[]): unknown\n error(...args: unknown[]): unknown\n}\n\nexport default class Ajv {\n opts: InstanceOptions\n errors?: ErrorObject[] | null // errors from the last validation\n logger: Logger\n // shared external scope values for compiled functions\n readonly scope: ValueScope\n readonly schemas: {[Key in string]?: SchemaEnv} = {}\n readonly refs: {[Ref in string]?: SchemaEnv | string} = {}\n readonly formats: {[Name in string]?: AddedFormat} = {}\n readonly RULES: ValidationRules\n readonly _compilations: Set<SchemaEnv> = new Set()\n private readonly _loading: {[Ref in string]?: Promise<AnySchemaObject>} = {}\n private readonly _cache: Map<AnySchema, SchemaEnv> = new Map()\n private readonly _metaOpts: InstanceOptions\n\n static ValidationError = ValidationError\n static MissingRefError = MissingRefError\n\n constructor(opts: Options = {}) {\n opts = this.opts = {...opts, ...requiredOptions(opts)}\n const {es5, lines} = this.opts.code\n\n this.scope = new ValueScope({scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines})\n this.logger = getLogger(opts.logger)\n const formatOpt = opts.validateFormats\n opts.validateFormats = false\n\n this.RULES = getRules()\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\")\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\")\n this._metaOpts = getMetaSchemaOptions.call(this)\n\n if (opts.formats) addInitialFormats.call(this)\n this._addVocabularies()\n this._addDefaultMetaSchema()\n if (opts.keywords) addInitialKeywords.call(this, opts.keywords)\n if (typeof opts.meta == \"object\") this.addMetaSchema(opts.meta)\n addInitialSchemas.call(this)\n opts.validateFormats = formatOpt\n }\n\n _addVocabularies(): void {\n this.addKeyword(\"$async\")\n }\n\n _addDefaultMetaSchema(): void {\n const {$data, meta, schemaId} = this.opts\n let _dataRefSchema: SchemaObject = $dataRefSchema\n if (schemaId === \"id\") {\n _dataRefSchema = {...$dataRefSchema}\n _dataRefSchema.id = _dataRefSchema.$id\n delete _dataRefSchema.$id\n }\n if (meta && $data) this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false)\n }\n\n defaultMeta(): string | AnySchemaObject | undefined {\n const {meta, schemaId} = this.opts\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined)\n }\n\n // Validate data using schema\n // AnySchema will be compiled and cached using schema itself as a key for Map\n validate(schema: Schema | string, data: unknown): boolean\n validate(schemaKeyRef: AnySchema | string, data: unknown): boolean | Promise<unknown>\n validate<T>(schema: Schema | JSONSchemaType<T> | string, data: unknown): data is T\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n validate<T>(schema: JTDSchemaType<T>, data: unknown): data is T\n // This overload is only intended for typescript inference, the first\n // argument prevents manual type annotation from matching this overload\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n validate<N extends never, T extends SomeJTDSchemaType>(\n schema: T,\n data: unknown\n ): data is JTDDataType<T>\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n validate<T>(schema: AsyncSchema, data: unknown | T): Promise<T>\n validate<T>(schemaKeyRef: AnySchema | string, data: unknown): data is T | Promise<T>\n validate<T>(\n schemaKeyRef: AnySchema | string, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data: unknown | T // to be validated\n ): boolean | Promise<T> {\n let v: AnyValidateFunction | undefined\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema<T>(schemaKeyRef)\n if (!v) throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`)\n } else {\n v = this.compile<T>(schemaKeyRef)\n }\n\n const valid = v(data)\n if (!(\"$async\" in v)) this.errors = v.errors\n return valid\n }\n\n // Create validation function for passed schema\n // _meta: true if schema is a meta-schema. Used internally to compile meta schemas of user-defined keywords.\n compile<T = unknown>(schema: Schema | JSONSchemaType<T>, _meta?: boolean): ValidateFunction<T>\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compile<T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean): ValidateFunction<T>\n // This overload is only intended for typescript inference, the first\n // argument prevents manual type annotation from matching this overload\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n compile<N extends never, T extends SomeJTDSchemaType>(\n schema: T,\n _meta?: boolean\n ): ValidateFunction<JTDDataType<T>>\n compile<T = unknown>(schema: AsyncSchema, _meta?: boolean): AsyncValidateFunction<T>\n compile<T = unknown>(schema: AnySchema, _meta?: boolean): AnyValidateFunction<T>\n compile<T = unknown>(schema: AnySchema, _meta?: boolean): AnyValidateFunction<T> {\n const sch = this._addSchema(schema, _meta)\n return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction<T>\n }\n\n // Creates validating function for passed schema with asynchronous loading of missing schemas.\n // `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n // TODO allow passing schema URI\n // meta - optional true to compile meta-schema\n compileAsync<T = unknown>(\n schema: SchemaObject | JSONSchemaType<T>,\n _meta?: boolean\n ): Promise<ValidateFunction<T>>\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compileAsync<T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean): Promise<ValidateFunction<T>>\n compileAsync<T = unknown>(schema: AsyncSchema, meta?: boolean): Promise<AsyncValidateFunction<T>>\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compileAsync<T = unknown>(\n schema: AnySchemaObject,\n meta?: boolean\n ): Promise<AnyValidateFunction<T>>\n compileAsync<T = unknown>(\n schema: AnySchemaObject,\n meta?: boolean\n ): Promise<AnyValidateFunction<T>> {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\")\n }\n const {loadSchema} = this.opts\n return runCompileAsync.call(this, schema, meta)\n\n async function runCompileAsync(\n this: Ajv,\n _schema: AnySchemaObject,\n _meta?: boolean\n ): Promise<AnyValidateFunction> {\n await loadMetaSchema.call(this, _schema.$schema)\n const sch = this._addSchema(_schema, _meta)\n return sch.validate || _compileAsync.call(this, sch)\n }\n\n async function loadMetaSchema(this: Ajv, $ref?: string): Promise<void> {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, {$ref}, true)\n }\n }\n\n async function _compileAsync(this: Ajv, sch: SchemaEnv): Promise<AnyValidateFunction> {\n try {\n return this._compileSchemaEnv(sch)\n } catch (e) {\n if (!(e instanceof MissingRefError)) throw e\n checkLoaded.call(this, e)\n await loadMissingSchema.call(this, e.missingSchema)\n return _compileAsync.call(this, sch)\n }\n }\n\n function checkLoaded(this: Ajv, {missingSchema: ref, missingRef}: MissingRefError): void {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`)\n }\n }\n\n async function loadMissingSchema(this: Ajv, ref: string): Promise<void> {\n const _schema = await _loadSchema.call(this, ref)\n if (!this.refs[ref]) await loadMetaSchema.call(this, _schema.$schema)\n if (!this.refs[ref]) this.addSchema(_schema, ref, meta)\n }\n\n async function _loadSchema(this: Ajv, ref: string): Promise<AnySchemaObject> {\n const p = this._loading[ref]\n if (p) return p\n try {\n return await (this._loading[ref] = loadSchema(ref))\n } finally {\n delete this._loading[ref]\n }\n }\n }\n\n // Adds schema to the instance\n addSchema(\n schema: AnySchema | AnySchema[], // If array is passed, `key` will be ignored\n key?: string, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta?: boolean, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ): Ajv {\n if (Array.isArray(schema)) {\n for (const sch of schema) this.addSchema(sch, undefined, _meta, _validateSchema)\n return this\n }\n let id: string | undefined\n if (typeof schema === \"object\") {\n const {schemaId} = this.opts\n id = schema[schemaId]\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`)\n }\n }\n key = normalizeId(key || id)\n this._checkUnique(key)\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true)\n return this\n }\n\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(\n schema: AnySchemaObject,\n key?: string, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ): Ajv {\n this.addSchema(schema, key, true, _validateSchema)\n return this\n }\n\n // Validate schema against its meta-schema\n validateSchema(schema: AnySchema, throwOrLogError?: boolean): boolean | Promise<unknown> {\n if (typeof schema == \"boolean\") return true\n let $schema: string | AnySchemaObject | undefined\n $schema = schema.$schema\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\")\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta()\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\")\n this.errors = null\n return true\n }\n const valid = this.validate($schema, schema)\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText()\n if (this.opts.validateSchema === \"log\") this.logger.error(message)\n else throw new Error(message)\n }\n return valid\n }\n\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema<T = unknown>(keyRef: string): AnyValidateFunction<T> | undefined {\n let sch\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\") keyRef = sch\n if (sch === undefined) {\n const {schemaId} = this.opts\n const root = new SchemaEnv({schema: {}, schemaId})\n sch = resolveSchema.call(this, root, keyRef)\n if (!sch) return\n this.refs[keyRef] = sch\n }\n return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction<T> | undefined\n }\n\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef?: AnySchema | string | RegExp): Ajv {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef)\n this._removeAllSchemas(this.refs, schemaKeyRef)\n return this\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas)\n this._removeAllSchemas(this.refs)\n this._cache.clear()\n return this\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef)\n if (typeof sch == \"object\") this._cache.delete(sch.schema)\n delete this.schemas[schemaKeyRef]\n delete this.refs[schemaKeyRef]\n return this\n }\n case \"object\": {\n const cacheKey = schemaKeyRef\n this._cache.delete(cacheKey)\n let id = schemaKeyRef[this.opts.schemaId]\n if (id) {\n id = normalizeId(id)\n delete this.schemas[id]\n delete this.refs[id]\n }\n return this\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\")\n }\n }\n\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions: Vocabulary): Ajv {\n for (const def of definitions) this.addKeyword(def)\n return this\n }\n\n addKeyword(\n kwdOrDef: string | KeywordDefinition,\n def?: KeywordDefinition // deprecated\n ): Ajv {\n let keyword: string | string[]\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\")\n def.keyword = keyword\n }\n } else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef\n keyword = def.keyword\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\")\n }\n } else {\n throw new Error(\"invalid addKeywords parameters\")\n }\n\n checkKeyword.call(this, keyword, def)\n if (!def) {\n eachItem(keyword, (kwd) => addRule.call(this, kwd))\n return this\n }\n keywordMetaschema.call(this, def)\n const definition: AddedKeywordDefinition = {\n ...def,\n type: getJSONTypes(def.type),\n schemaType: getJSONTypes(def.schemaType),\n }\n eachItem(\n keyword,\n definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t))\n )\n return this\n }\n\n getKeyword(keyword: string): AddedKeywordDefinition | boolean {\n const rule = this.RULES.all[keyword]\n return typeof rule == \"object\" ? rule.definition : !!rule\n }\n\n // Remove keyword\n removeKeyword(keyword: string): Ajv {\n // TODO return type should be Ajv\n const {RULES} = this\n delete RULES.keywords[keyword]\n delete RULES.all[keyword]\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword)\n if (i >= 0) group.rules.splice(i, 1)\n }\n return this\n }\n\n // Add format\n addFormat(name: string, format: Format): Ajv {\n if (typeof format == \"string\") format = new RegExp(format)\n this.formats[name] = format\n return this\n }\n\n errorsText(\n errors: ErrorObject[] | null | undefined = this.errors, // optional array of validation errors\n {separator = \", \", dataVar = \"data\"}: ErrorsTextOptions = {} // optional options with properties `separator` and `dataVar`\n ): string {\n if (!errors || errors.length === 0) return \"No errors\"\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg)\n }\n\n $dataMetaSchema(metaSchema: AnySchemaObject, keywordsJsonPointers: string[]): AnySchemaObject {\n const rules = this.RULES.all\n metaSchema = JSON.parse(JSON.stringify(metaSchema))\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1) // first segment is an empty string\n let keywords = metaSchema\n for (const seg of segments) keywords = keywords[seg] as AnySchemaObject\n\n for (const key in rules) {\n const rule = rules[key]\n if (typeof rule != \"object\") continue\n const {$data} = rule.definition\n const schema = keywords[key] as AnySchemaObject | undefined\n if ($data && schema) keywords[key] = schemaOrData(schema)\n }\n }\n\n return metaSchema\n }\n\n private _removeAllSchemas(schemas: {[Ref in string]?: SchemaEnv | string}, regex?: RegExp): void {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef]\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef]\n } else if (sch && !sch.meta) {\n this._cache.delete(sch.schema)\n delete schemas[keyRef]\n }\n }\n }\n }\n\n _addSchema(\n schema: AnySchema,\n meta?: boolean,\n baseId?: string,\n validateSchema = this.opts.validateSchema,\n addSchema = this.opts.addUsedSchema\n ): SchemaEnv {\n let id: string | undefined\n const {schemaId} = this.opts\n if (typeof schema == \"object\") {\n id = schema[schemaId]\n } else {\n if (this.opts.jtd) throw new Error(\"schema must be object\")\n else if (typeof schema != \"boolean\") throw new Error(\"schema must be object or boolean\")\n }\n let sch = this._cache.get(schema)\n if (sch !== undefined) return sch\n\n baseId = normalizeId(id || baseId)\n const localRefs = getSchemaRefs.call(this, schema, baseId)\n sch = new SchemaEnv({schema, schemaId, meta, baseId, localRefs})\n this._cache.set(sch.schema, sch)\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId) this._checkUnique(baseId)\n this.refs[baseId] = sch\n }\n if (validateSchema) this.validateSchema(schema, true)\n return sch\n }\n\n private _checkUnique(id: string): void {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`)\n }\n }\n\n private _compileSchemaEnv(sch: SchemaEnv): AnyValidateFunction {\n if (sch.meta) this._compileMetaSchema(sch)\n else compileSchema.call(this, sch)\n\n /* istanbul ignore if */\n if (!sch.validate) throw new Error(\"ajv implementation error\")\n return sch.validate\n }\n\n private _compileMetaSchema(sch: SchemaEnv): void {\n const currentOpts = this.opts\n this.opts = this._metaOpts\n try {\n compileSchema.call(this, sch)\n } finally {\n this.opts = currentOpts\n }\n }\n}\n\nexport interface ErrorsTextOptions {\n separator?: string\n dataVar?: string\n}\n\nfunction checkOptions(\n this: Ajv,\n checkOpts: OptionsInfo<RemovedOptions | DeprecatedOptions>,\n options: Options & RemovedOptions,\n msg: string,\n log: \"warn\" | \"error\" = \"error\"\n): void {\n for (const key in checkOpts) {\n const opt = key as keyof typeof checkOpts\n if (opt in options) this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`)\n }\n}\n\nfunction getSchEnv(this: Ajv, keyRef: string): SchemaEnv | string | undefined {\n keyRef = normalizeId(keyRef) // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef]\n}\n\nfunction addInitialSchemas(this: Ajv): void {\n const optsSchemas = this.opts.schemas\n if (!optsSchemas) return\n if (Array.isArray(optsSchemas)) this.addSchema(optsSchemas)\n else for (const key in optsSchemas) this.addSchema(optsSchemas[key] as AnySchema, key)\n}\n\nfunction addInitialFormats(this: Ajv): void {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name]\n if (format) this.addFormat(name, format)\n }\n}\n\nfunction addInitialKeywords(\n this: Ajv,\n defs: Vocabulary | {[K in string]?: KeywordDefinition}\n): void {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs)\n return\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\")\n for (const keyword in defs) {\n const def = defs[keyword] as KeywordDefinition\n if (!def.keyword) def.keyword = keyword\n this.addKeyword(def)\n }\n}\n\nfunction getMetaSchemaOptions(this: Ajv): InstanceOptions {\n const metaOpts = {...this.opts}\n for (const opt of META_IGNORE_OPTIONS) delete metaOpts[opt]\n return metaOpts\n}\n\nconst noLogs = {log() {}, warn() {}, error() {}}\n\nfunction getLogger(logger?: Partial<Logger> | false): Logger {\n if (logger === false) return noLogs\n if (logger === undefined) return console\n if (logger.log && logger.warn && logger.error) return logger as Logger\n throw new Error(\"logger must implement log, warn and error methods\")\n}\n\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i\n\nfunction checkKeyword(this: Ajv, keyword: string | string[], def?: KeywordDefinition): void {\n const {RULES} = this\n eachItem(keyword, (kwd) => {\n if (RULES.keywords[kwd]) throw new Error(`Keyword ${kwd} is already defined`)\n if (!KEYWORD_NAME.test(kwd)) throw new Error(`Keyword ${kwd} has invalid name`)\n })\n if (!def) return\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function')\n }\n}\n\nfunction addRule(\n this: Ajv,\n keyword: string,\n definition?: AddedKeywordDefinition,\n dataType?: JSONType\n): void {\n const post = definition?.post\n if (dataType && post) throw new Error('keyword with \"post\" flag cannot have \"type\"')\n const {RULES} = this\n let ruleGroup = post ? RULES.post : RULES.rules.find(({type: t}) => t === dataType)\n if (!ruleGroup) {\n ruleGroup = {type: dataType, rules: []}\n RULES.rules.push(ruleGroup)\n }\n RULES.keywords[keyword] = true\n if (!definition) return\n\n const rule: Rule = {\n keyword,\n definition: {\n ...definition,\n type: getJSONTypes(definition.type),\n schemaType: getJSONTypes(definition.schemaType),\n },\n }\n if (definition.before) addBeforeRule.call(this, ruleGroup, rule, definition.before)\n else ruleGroup.rules.push(rule)\n RULES.all[keyword] = rule\n definition.implements?.forEach((kwd) => this.addKeyword(kwd))\n}\n\nfunction addBeforeRule(this: Ajv, ruleGroup: RuleGroup, rule: Rule, before: string): void {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before)\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule)\n } else {\n ruleGroup.rules.push(rule)\n this.logger.warn(`rule ${before} is not defined`)\n }\n}\n\nfunction keywordMetaschema(this: Ajv, def: KeywordDefinition): void {\n let {metaSchema} = def\n if (metaSchema === undefined) return\n if (def.$data && this.opts.$data) metaSchema = schemaOrData(metaSchema)\n def.validateSchema = this.compile(metaSchema, true)\n}\n\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n}\n\nfunction schemaOrData(schema: AnySchema): AnySchemaObject {\n return {anyOf: [schema, $dataRef]}\n}\n","// https://github.com/ajv-validator/ajv/issues/889\nimport * as equal from \"fast-deep-equal\"\n\ntype Equal = typeof equal & {code: string}\n;(equal as Equal).code = 'require(\"ajv/dist/runtime/equal\").default'\n\nexport default equal as Equal\n","// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nexport default function ucs2length(str: string): number {\n const len = str.length\n let length = 0\n let pos = 0\n let value: number\n while (pos < len) {\n length++\n value = str.charCodeAt(pos++)\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos)\n if ((value & 0xfc00) === 0xdc00) pos++ // low surrogate\n }\n }\n return length\n}\n\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default'\n","import * as uri from \"fast-uri\"\n\ntype URI = typeof uri & {code: string}\n;(uri as URI).code = 'require(\"ajv/dist/runtime/uri\").default'\n\nexport default uri as URI\n","import type {ErrorObject} from \"../types\"\n\nexport default class ValidationError extends Error {\n readonly errors: Partial<ErrorObject>[]\n readonly ajv: true\n readonly validation: true\n\n constructor(errors: Partial<ErrorObject>[]) {\n super(\"validation failed\")\n this.errors = errors\n this.ajv = this.validation = true\n }\n}\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode, Type} from \"../../compile/util\"\n\nexport type AdditionalItemsError = ErrorObject<\"additionalItems\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"additionalItems\" as const,\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt: KeywordCxt) {\n const {parentSchema, it} = cxt\n const {items} = parentSchema\n if (!Array.isArray(items)) {\n checkStrictMode(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas')\n return\n }\n validateAdditionalItems(cxt, items)\n },\n}\n\nexport function validateAdditionalItems(cxt: KeywordCxt, items: AnySchema[]): void {\n const {gen, schema, data, keyword, it} = cxt\n it.items = true\n const len = gen.const(\"len\", _`${data}.length`)\n if (schema === false) {\n cxt.setParams({len: items.length})\n cxt.pass(_`${len} <= ${items.length}`)\n } else if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n const valid = gen.var(\"valid\", _`${len} <= ${items.length}`) // TODO var\n gen.if(not(valid), () => validateItems(valid))\n cxt.ok(valid)\n }\n\n function validateItems(valid: Name): void {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({keyword, dataProp: i, dataPropType: Type.Num}, valid)\n if (!it.allErrors) gen.if(not(valid), () => gen.break())\n })\n }\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n AddedKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport {allSchemaProperties, usePattern, isOwnProperty} from \"../code\"\nimport {_, nil, or, not, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport type {SubschemaArgs} from \"../../compile/validate/subschema\"\nimport {alwaysValidSchema, schemaRefOrVal, Type} from \"../../compile/util\"\n\nexport type AdditionalPropertiesError = ErrorObject<\n \"additionalProperties\",\n {additionalProperty: string},\n AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n message: \"must NOT have additional properties\",\n params: ({params}) => _`{additionalProperty: ${params.additionalProperty}}`,\n}\n\nconst def: CodeKeywordDefinition & AddedKeywordDefinition = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const {gen, schema, parentSchema, data, errsCount, it} = cxt\n /* istanbul ignore if */\n if (!errsCount) throw new Error(\"ajv implementation error\")\n const {allErrors, opts} = it\n it.props = true\n if (opts.removeAdditional !== \"all\" && alwaysValidSchema(it, schema)) return\n const props = allSchemaProperties(parentSchema.properties)\n const patProps = allSchemaProperties(parentSchema.patternProperties)\n checkAdditionalProperties()\n cxt.ok(_`${errsCount} === ${N.errors}`)\n\n function checkAdditionalProperties(): void {\n gen.forIn(\"key\", data, (key: Name) => {\n if (!props.length && !patProps.length) additionalPropertyCode(key)\n else gen.if(isAdditional(key), () => additionalPropertyCode(key))\n })\n }\n\n function isAdditional(key: Name): Code {\n let definedProp: Code\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = schemaRefOrVal(it, parentSchema.properties, \"properties\")\n definedProp = isOwnProperty(gen, propsSchema as Code, key)\n } else if (props.length) {\n definedProp = or(...props.map((p) => _`${key} === ${p}`))\n } else {\n definedProp = nil\n }\n if (patProps.length) {\n definedProp = or(definedProp, ...patProps.map((p) => _`${usePattern(cxt, p)}.test(${key})`))\n }\n return not(definedProp)\n }\n\n function deleteAdditional(key: Name): void {\n gen.code(_`delete ${data}[${key}]`)\n }\n\n function additionalPropertyCode(key: Name): void {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key)\n return\n }\n\n if (schema === false) {\n cxt.setParams({additionalProperty: key})\n cxt.error()\n if (!allErrors) gen.break()\n return\n }\n\n if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n const valid = gen.name(\"valid\")\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false)\n gen.if(not(valid), () => {\n cxt.reset()\n deleteAdditional(key)\n })\n } else {\n applyAdditionalSchema(key, valid)\n if (!allErrors) gen.if(not(valid), () => gen.break())\n }\n }\n }\n\n function applyAdditionalSchema(key: Name, valid: Name, errors?: false): void {\n const subschema: SubschemaArgs = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: Type.Str,\n }\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n })\n }\n cxt.subschema(subschema, valid)\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt: KeywordCxt) {\n const {gen, schema, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const valid = gen.name(\"valid\")\n schema.forEach((sch: AnySchema, i: number) => {\n if (alwaysValidSchema(it, sch)) return\n const schCxt = cxt.subschema({keyword: \"allOf\", schemaProp: i}, valid)\n cxt.ok(valid)\n cxt.mergeEvaluated(schCxt)\n })\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from \"../../types\"\nimport {validateUnion} from \"../code\"\n\nexport type AnyOfError = ErrorNoParams<\"anyOf\", AnySchema[]>\n\nconst def: CodeKeywordDefinition = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: validateUnion,\n error: {message: \"must match a schema in anyOf\"},\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode, Type} from \"../../compile/util\"\n\nexport type ContainsError = ErrorObject<\n \"contains\",\n {minContains: number; maxContains?: number},\n AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {min, max}}) =>\n max === undefined\n ? str`must contain at least ${min} valid item(s)`\n : str`must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({params: {min, max}}) =>\n max === undefined ? _`{minContains: ${min}}` : _`{minContains: ${min}, maxContains: ${max}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, data, it} = cxt\n let min: number\n let max: number | undefined\n const {minContains, maxContains} = parentSchema\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains\n max = maxContains\n } else {\n min = 1\n }\n const len = gen.const(\"len\", _`${data}.length`)\n cxt.setParams({min, max})\n if (max === undefined && min === 0) {\n checkStrictMode(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`)\n return\n }\n if (max !== undefined && min > max) {\n checkStrictMode(it, `\"minContains\" > \"maxContains\" is always invalid`)\n cxt.fail()\n return\n }\n if (alwaysValidSchema(it, schema)) {\n let cond = _`${len} >= ${min}`\n if (max !== undefined) cond = _`${cond} && ${len} <= ${max}`\n cxt.pass(cond)\n return\n }\n\n it.items = true\n const valid = gen.name(\"valid\")\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()))\n } else if (min === 0) {\n gen.let(valid, true)\n if (max !== undefined) gen.if(_`${data}.length > 0`, validateItemsWithCount)\n } else {\n gen.let(valid, false)\n validateItemsWithCount()\n }\n cxt.result(valid, () => cxt.reset())\n\n function validateItemsWithCount(): void {\n const schValid = gen.name(\"_valid\")\n const count = gen.let(\"count\", 0)\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)))\n }\n\n function validateItems(_valid: Name, block: () => void): void {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema(\n {\n keyword: \"contains\",\n dataProp: i,\n dataPropType: Type.Num,\n compositeRule: true,\n },\n _valid\n )\n block()\n })\n }\n\n function checkLimits(count: Name): void {\n gen.code(_`${count}++`)\n if (max === undefined) {\n gen.if(_`${count} >= ${min}`, () => gen.assign(valid, true).break())\n } else {\n gen.if(_`${count} > ${max}`, () => gen.assign(valid, false).break())\n if (min === 1) gen.assign(valid, true)\n else gen.if(_`${count} >= ${min}`, () => gen.assign(valid, true))\n }\n }\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n SchemaMap,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {checkReportMissingProp, checkMissingProp, reportMissingProp, propertyInData} from \"../code\"\n\nexport type PropertyDependencies = {[K in string]?: string[]}\n\nexport interface DependenciesErrorParams {\n property: string\n missingProperty: string\n depsCount: number\n deps: string // TODO change to string[]\n}\n\ntype SchemaDependencies = SchemaMap\n\nexport type DependenciesError = ErrorObject<\n \"dependencies\",\n DependenciesErrorParams,\n {[K in string]?: string[] | AnySchema}\n>\n\nexport const error: KeywordErrorDefinition = {\n message: ({params: {property, depsCount, deps}}) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\"\n return str`must have ${property_ies} ${deps} when property ${property} is present`\n },\n params: ({params: {property, depsCount, deps, missingProperty}}) =>\n _`{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt: KeywordCxt) {\n const [propDeps, schDeps] = splitDependencies(cxt)\n validatePropertyDeps(cxt, propDeps)\n validateSchemaDeps(cxt, schDeps)\n },\n}\n\nfunction splitDependencies({schema}: KeywordCxt): [PropertyDependencies, SchemaDependencies] {\n const propertyDeps: PropertyDependencies = {}\n const schemaDeps: SchemaDependencies = {}\n for (const key in schema) {\n if (key === \"__proto__\") continue\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps\n deps[key] = schema[key]\n }\n return [propertyDeps, schemaDeps]\n}\n\nexport function validatePropertyDeps(\n cxt: KeywordCxt,\n propertyDeps: {[K in string]?: string[]} = cxt.schema\n): void {\n const {gen, data, it} = cxt\n if (Object.keys(propertyDeps).length === 0) return\n const missing = gen.let(\"missing\")\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop] as string[]\n if (deps.length === 0) continue\n const hasProperty = propertyInData(gen, data, prop, it.opts.ownProperties)\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n })\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n checkReportMissingProp(cxt, depProp)\n }\n })\n } else {\n gen.if(_`${hasProperty} && (${checkMissingProp(cxt, deps, missing)})`)\n reportMissingProp(cxt, missing)\n gen.else()\n }\n }\n}\n\nexport function validateSchemaDeps(cxt: KeywordCxt, schemaDeps: SchemaMap = cxt.schema): void {\n const {gen, data, keyword, it} = cxt\n const valid = gen.name(\"valid\")\n for (const prop in schemaDeps) {\n if (alwaysValidSchema(it, schemaDeps[prop] as AnySchema)) continue\n gen.if(\n propertyInData(gen, data, prop, it.opts.ownProperties),\n () => {\n const schCxt = cxt.subschema({keyword, schemaProp: prop}, valid)\n cxt.mergeValidEvaluated(schCxt, valid)\n },\n () => gen.var(valid, true) // TODO var\n )\n cxt.ok(valid)\n }\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"../../compile\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode} from \"../../compile/util\"\n\nexport type IfKeywordError = ErrorObject<\"if\", {failingKeyword: string}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params}) => str`must match \"${params.ifClause}\" schema`,\n params: ({params}) => _`{failingKeyword: ${params.ifClause}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, parentSchema, it} = cxt\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n checkStrictMode(it, '\"if\" without \"then\" and \"else\" is ignored')\n }\n const hasThen = hasSchema(it, \"then\")\n const hasElse = hasSchema(it, \"else\")\n if (!hasThen && !hasElse) return\n\n const valid = gen.let(\"valid\", true)\n const schValid = gen.name(\"_valid\")\n validateIf()\n cxt.reset()\n\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\")\n cxt.setParams({ifClause})\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause))\n } else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"))\n } else {\n gen.if(not(schValid), validateClause(\"else\"))\n }\n\n cxt.pass(valid, () => cxt.error(true))\n\n function validateIf(): void {\n const schCxt = cxt.subschema(\n {\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n },\n schValid\n )\n cxt.mergeEvaluated(schCxt)\n }\n\n function validateClause(keyword: string, ifClause?: Name): () => void {\n return () => {\n const schCxt = cxt.subschema({keyword}, schValid)\n gen.assign(valid, schValid)\n cxt.mergeValidEvaluated(schCxt, valid)\n if (ifClause) gen.assign(ifClause, _`${keyword}`)\n else cxt.setParams({ifClause: keyword})\n }\n }\n },\n}\n\nfunction hasSchema(it: SchemaObjCxt, keyword: string): boolean {\n const schema = it.schema[keyword]\n return schema !== undefined && !alwaysValidSchema(it, schema)\n}\n\nexport default def\n","import type {ErrorNoParams, Vocabulary} from \"../../types\"\nimport additionalItems, {AdditionalItemsError} from \"./additionalItems\"\nimport prefixItems from \"./prefixItems\"\nimport items from \"./items\"\nimport items2020, {ItemsError} from \"./items2020\"\nimport contains, {ContainsError} from \"./contains\"\nimport dependencies, {DependenciesError} from \"./dependencies\"\nimport propertyNames, {PropertyNamesError} from \"./propertyNames\"\nimport additionalProperties, {AdditionalPropertiesError} from \"./additionalProperties\"\nimport properties from \"./properties\"\nimport patternProperties from \"./patternProperties\"\nimport notKeyword, {NotKeywordError} from \"./not\"\nimport anyOf, {AnyOfError} from \"./anyOf\"\nimport oneOf, {OneOfError} from \"./oneOf\"\nimport allOf from \"./allOf\"\nimport ifKeyword, {IfKeywordError} from \"./if\"\nimport thenElse from \"./thenElse\"\n\nexport default function getApplicator(draft2020 = false): Vocabulary {\n const applicator = [\n // any\n notKeyword,\n anyOf,\n oneOf,\n allOf,\n ifKeyword,\n thenElse,\n // object\n propertyNames,\n additionalProperties,\n dependencies,\n properties,\n patternProperties,\n ]\n // array\n if (draft2020) applicator.push(prefixItems, items2020)\n else applicator.push(additionalItems, items)\n applicator.push(contains)\n return applicator\n}\n\nexport type ApplicatorKeywordError =\n | ErrorNoParams<\"false schema\">\n | AdditionalItemsError\n | ItemsError\n | ContainsError\n | AdditionalPropertiesError\n | DependenciesError\n | IfKeywordError\n | AnyOfError\n | OneOfError\n | NotKeywordError\n | PropertyNamesError\n","import type {CodeKeywordDefinition, AnySchema, AnySchemaObject} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_} from \"../../compile/codegen\"\nimport {alwaysValidSchema, mergeEvaluated, checkStrictMode} from \"../../compile/util\"\nimport {validateArray} from \"../code\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt: KeywordCxt) {\n const {schema, it} = cxt\n if (Array.isArray(schema)) return validateTuple(cxt, \"additionalItems\", schema)\n it.items = true\n if (alwaysValidSchema(it, schema)) return\n cxt.ok(validateArray(cxt))\n },\n}\n\nexport function validateTuple(\n cxt: KeywordCxt,\n extraItems: string,\n schArr: AnySchema[] = cxt.schema\n): void {\n const {gen, parentSchema, data, keyword, it} = cxt\n checkStrictTuple(parentSchema)\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = mergeEvaluated.items(gen, schArr.length, it.items)\n }\n const valid = gen.name(\"valid\")\n const len = gen.const(\"len\", _`${data}.length`)\n schArr.forEach((sch: AnySchema, i: number) => {\n if (alwaysValidSchema(it, sch)) return\n gen.if(_`${len} > ${i}`, () =>\n cxt.subschema(\n {\n keyword,\n schemaProp: i,\n dataProp: i,\n },\n valid\n )\n )\n cxt.ok(valid)\n })\n\n function checkStrictTuple(sch: AnySchemaObject): void {\n const {opts, errSchemaPath} = it\n const l = schArr.length\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false)\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`\n checkStrictMode(it, msg, opts.strictTuples)\n }\n }\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {validateArray} from \"../code\"\nimport {validateAdditionalItems} from \"./additionalItems\"\n\nexport type ItemsError = ErrorObject<\"items\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt: KeywordCxt) {\n const {schema, parentSchema, it} = cxt\n const {prefixItems} = parentSchema\n it.items = true\n if (alwaysValidSchema(it, schema)) return\n if (prefixItems) validateAdditionalItems(cxt, prefixItems)\n else cxt.ok(validateArray(cxt))\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nexport type NotKeywordError = ErrorNoParams<\"not\", AnySchema>\n\nconst def: CodeKeywordDefinition = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt: KeywordCxt) {\n const {gen, schema, it} = cxt\n if (alwaysValidSchema(it, schema)) {\n cxt.fail()\n return\n }\n\n const valid = gen.name(\"valid\")\n cxt.subschema(\n {\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n },\n valid\n )\n\n cxt.failResult(\n valid,\n () => cxt.reset(),\n () => cxt.error()\n )\n },\n error: {message: \"must NOT be valid\"},\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {SchemaCxt} from \"../../compile\"\n\nexport type OneOfError = ErrorObject<\n \"oneOf\",\n {passingSchemas: [number, number] | null},\n AnySchema[]\n>\n\nconst error: KeywordErrorDefinition = {\n message: \"must match exactly one schema in oneOf\",\n params: ({params}) => _`{passingSchemas: ${params.passing}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n if (it.opts.discriminator && parentSchema.discriminator) return\n const schArr: AnySchema[] = schema\n const valid = gen.let(\"valid\", false)\n const passing = gen.let(\"passing\", null)\n const schValid = gen.name(\"_valid\")\n cxt.setParams({passing})\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n\n gen.block(validateOneOf)\n\n cxt.result(\n valid,\n () => cxt.reset(),\n () => cxt.error(true)\n )\n\n function validateOneOf(): void {\n schArr.forEach((sch: AnySchema, i: number) => {\n let schCxt: SchemaCxt | undefined\n if (alwaysValidSchema(it, sch)) {\n gen.var(schValid, true)\n } else {\n schCxt = cxt.subschema(\n {\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n },\n schValid\n )\n }\n\n if (i > 0) {\n gen\n .if(_`${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, _`[${passing}, ${i}]`)\n .else()\n }\n\n gen.if(schValid, () => {\n gen.assign(valid, true)\n gen.assign(passing, i)\n if (schCxt) cxt.mergeEvaluated(schCxt, Name)\n })\n })\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {allSchemaProperties, usePattern} from \"../code\"\nimport {_, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode} from \"../../compile/util\"\nimport {evaluatedPropsToName, Type} from \"../../compile/util\"\nimport {AnySchema} from \"../../types\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt: KeywordCxt) {\n const {gen, schema, data, parentSchema, it} = cxt\n const {opts} = it\n const patterns = allSchemaProperties(schema)\n const alwaysValidPatterns = patterns.filter((p) =>\n alwaysValidSchema(it, schema[p] as AnySchema)\n )\n\n if (\n patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))\n ) {\n return\n }\n\n const checkProperties =\n opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties\n const valid = gen.name(\"valid\")\n if (it.props !== true && !(it.props instanceof Name)) {\n it.props = evaluatedPropsToName(gen, it.props)\n }\n const {props} = it\n validatePatternProperties()\n\n function validatePatternProperties(): void {\n for (const pat of patterns) {\n if (checkProperties) checkMatchingProperties(pat)\n if (it.allErrors) {\n validateProperties(pat)\n } else {\n gen.var(valid, true) // TODO var\n validateProperties(pat)\n gen.if(valid)\n }\n }\n }\n\n function checkMatchingProperties(pat: string): void {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n checkStrictMode(\n it,\n `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`\n )\n }\n }\n }\n\n function validateProperties(pat: string): void {\n gen.forIn(\"key\", data, (key) => {\n gen.if(_`${usePattern(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat)\n if (!alwaysValid) {\n cxt.subschema(\n {\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: Type.Str,\n },\n valid\n )\n }\n\n if (it.opts.unevaluated && props !== true) {\n gen.assign(_`${props}[${key}]`, true)\n } else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if(not(valid), () => gen.break())\n }\n })\n })\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {validateTuple} from \"./items\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => validateTuple(cxt, \"items\"),\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {KeywordCxt} from \"../../compile/validate\"\nimport {propertyInData, allSchemaProperties} from \"../code\"\nimport {alwaysValidSchema, toHash, mergeEvaluated} from \"../../compile/util\"\nimport apDef from \"./additionalProperties\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, data, it} = cxt\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n apDef.code(new KeywordCxt(it, apDef, \"additionalProperties\"))\n }\n const allProps = allSchemaProperties(schema)\n for (const prop of allProps) {\n it.definedProperties.add(prop)\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = mergeEvaluated.props(gen, toHash(allProps), it.props)\n }\n const properties = allProps.filter((p) => !alwaysValidSchema(it, schema[p]))\n if (properties.length === 0) return\n const valid = gen.name(\"valid\")\n\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop)\n } else {\n gen.if(propertyInData(gen, data, prop, it.opts.ownProperties))\n applyPropertySchema(prop)\n if (!it.allErrors) gen.else().var(valid, true)\n gen.endIf()\n }\n cxt.it.definedProperties.add(prop)\n cxt.ok(valid)\n }\n\n function hasDefault(prop: string): boolean | undefined {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined\n }\n\n function applyPropertySchema(prop: string): void {\n cxt.subschema(\n {\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n },\n valid\n )\n }\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, not} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nexport type PropertyNamesError = ErrorObject<\"propertyNames\", {propertyName: string}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: \"property name must be valid\",\n params: ({params}) => _`{propertyName: ${params.propertyName}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, data, it} = cxt\n if (alwaysValidSchema(it, schema)) return\n const valid = gen.name(\"valid\")\n\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({propertyName: key})\n cxt.subschema(\n {\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n },\n valid\n )\n gen.if(not(valid), () => {\n cxt.error(true)\n if (!it.allErrors) gen.break()\n })\n })\n\n cxt.ok(valid)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({keyword, parentSchema, it}: KeywordCxt) {\n if (parentSchema.if === undefined) checkStrictMode(it, `\"${keyword}\" without \"if\" is ignored`)\n },\n}\n\nexport default def\n","import type {AnySchema, SchemaMap} from \"../types\"\nimport type {SchemaCxt} from \"../compile\"\nimport type {KeywordCxt} from \"../compile/validate\"\nimport {CodeGen, _, and, or, not, nil, strConcat, getProperty, Code, Name} from \"../compile/codegen\"\nimport {alwaysValidSchema, Type} from \"../compile/util\"\nimport N from \"../compile/names\"\nimport {useFunc} from \"../compile/util\"\nexport function checkReportMissingProp(cxt: KeywordCxt, prop: string): void {\n const {gen, data, it} = cxt\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({missingProperty: _`${prop}`}, true)\n cxt.error()\n })\n}\n\nexport function checkMissingProp(\n {gen, data, it: {opts}}: KeywordCxt,\n properties: string[],\n missing: Name\n): Code {\n return or(\n ...properties.map((prop) =>\n and(noPropertyInData(gen, data, prop, opts.ownProperties), _`${missing} = ${prop}`)\n )\n )\n}\n\nexport function reportMissingProp(cxt: KeywordCxt, missing: Name): void {\n cxt.setParams({missingProperty: missing}, true)\n cxt.error()\n}\n\nexport function hasPropFunc(gen: CodeGen): Name {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: _`Object.prototype.hasOwnProperty`,\n })\n}\n\nexport function isOwnProperty(gen: CodeGen, data: Name, property: Name | string): Code {\n return _`${hasPropFunc(gen)}.call(${data}, ${property})`\n}\n\nexport function propertyInData(\n gen: CodeGen,\n data: Name,\n property: Name | string,\n ownProperties?: boolean\n): Code {\n const cond = _`${data}${getProperty(property)} !== undefined`\n return ownProperties ? _`${cond} && ${isOwnProperty(gen, data, property)}` : cond\n}\n\nexport function noPropertyInData(\n gen: CodeGen,\n data: Name,\n property: Name | string,\n ownProperties?: boolean\n): Code {\n const cond = _`${data}${getProperty(property)} === undefined`\n return ownProperties ? or(cond, not(isOwnProperty(gen, data, property))) : cond\n}\n\nexport function allSchemaProperties(schemaMap?: SchemaMap): string[] {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : []\n}\n\nexport function schemaProperties(it: SchemaCxt, schemaMap: SchemaMap): string[] {\n return allSchemaProperties(schemaMap).filter(\n (p) => !alwaysValidSchema(it, schemaMap[p] as AnySchema)\n )\n}\n\nexport function callValidateCode(\n {schemaCode, data, it: {gen, topSchemaRef, schemaPath, errorPath}, it}: KeywordCxt,\n func: Code,\n context: Code,\n passSchema?: boolean\n): Code {\n const dataAndSchema = passSchema ? _`${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data\n const valCxt: [Name, Code | number][] = [\n [N.instancePath, strConcat(N.instancePath, errorPath)],\n [N.parentData, it.parentData],\n [N.parentDataProperty, it.parentDataProperty],\n [N.rootData, N.rootData],\n ]\n if (it.opts.dynamicRef) valCxt.push([N.dynamicAnchors, N.dynamicAnchors])\n const args = _`${dataAndSchema}, ${gen.object(...valCxt)}`\n return context !== nil ? _`${func}.call(${context}, ${args})` : _`${func}(${args})`\n}\n\nconst newRegExp = _`new RegExp`\n\nexport function usePattern({gen, it: {opts}}: KeywordCxt, pattern: string): Name {\n const u = opts.unicodeRegExp ? \"u\" : \"\"\n const {regExp} = opts.code\n const rx = regExp(pattern, u)\n\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: _`${regExp.code === \"new RegExp\" ? newRegExp : useFunc(gen, regExp)}(${pattern}, ${u})`,\n })\n}\n\nexport function validateArray(cxt: KeywordCxt): Name {\n const {gen, data, keyword, it} = cxt\n const valid = gen.name(\"valid\")\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true)\n validateItems(() => gen.assign(validArr, false))\n return validArr\n }\n gen.var(valid, true)\n validateItems(() => gen.break())\n return valid\n\n function validateItems(notValid: () => void): void {\n const len = gen.const(\"len\", _`${data}.length`)\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema(\n {\n keyword,\n dataProp: i,\n dataPropType: Type.Num,\n },\n valid\n )\n gen.if(not(valid), notValid)\n })\n }\n}\n\nexport function validateUnion(cxt: KeywordCxt): void {\n const {gen, schema, keyword, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const alwaysValid = schema.some((sch: AnySchema) => alwaysValidSchema(it, sch))\n if (alwaysValid && !it.opts.unevaluated) return\n\n const valid = gen.let(\"valid\", false)\n const schValid = gen.name(\"_valid\")\n\n gen.block(() =>\n schema.forEach((_sch: AnySchema, i: number) => {\n const schCxt = cxt.subschema(\n {\n keyword,\n schemaProp: i,\n compositeRule: true,\n },\n schValid\n )\n gen.assign(valid, _`${valid} || ${schValid}`)\n const merged = cxt.mergeValidEvaluated(schCxt, schValid)\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged) gen.if(not(valid))\n })\n )\n\n cxt.result(\n valid,\n () => cxt.reset(),\n () => cxt.error(true)\n )\n}\n","import type {CodeKeywordDefinition} from \"../../types\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID')\n },\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport idKeyword from \"./id\"\nimport refKeyword from \"./ref\"\n\nconst core: Vocabulary = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n {keyword: \"$comment\"},\n \"definitions\",\n idKeyword,\n refKeyword,\n]\n\nexport default core\n","import type {CodeKeywordDefinition, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport MissingRefError from \"../../compile/ref_error\"\nimport {callValidateCode} from \"../code\"\nimport {_, nil, stringify, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport {SchemaEnv, resolveRef} from \"../../compile\"\nimport {mergeEvaluated} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt: KeywordCxt): void {\n const {gen, schema: $ref, it} = cxt\n const {baseId, schemaEnv: env, validateName, opts, self} = it\n const {root} = env\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId) return callRootRef()\n const schOrEnv = resolveRef.call(self, root, baseId, $ref)\n if (schOrEnv === undefined) throw new MissingRefError(it.opts.uriResolver, baseId, $ref)\n if (schOrEnv instanceof SchemaEnv) return callValidate(schOrEnv)\n return inlineRefSchema(schOrEnv)\n\n function callRootRef(): void {\n if (env === root) return callRef(cxt, validateName, env, env.$async)\n const rootName = gen.scopeValue(\"root\", {ref: root})\n return callRef(cxt, _`${rootName}.validate`, root, root.$async)\n }\n\n function callValidate(sch: SchemaEnv): void {\n const v = getValidate(cxt, sch)\n callRef(cxt, v, sch, sch.$async)\n }\n\n function inlineRefSchema(sch: AnySchema): void {\n const schName = gen.scopeValue(\n \"schema\",\n opts.code.source === true ? {ref: sch, code: stringify(sch)} : {ref: sch}\n )\n const valid = gen.name(\"valid\")\n const schCxt = cxt.subschema(\n {\n schema: sch,\n dataTypes: [],\n schemaPath: nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n },\n valid\n )\n cxt.mergeEvaluated(schCxt)\n cxt.ok(valid)\n }\n },\n}\n\nexport function getValidate(cxt: KeywordCxt, sch: SchemaEnv): Code {\n const {gen} = cxt\n return sch.validate\n ? gen.scopeValue(\"validate\", {ref: sch.validate})\n : _`${gen.scopeValue(\"wrapper\", {ref: sch})}.validate`\n}\n\nexport function callRef(cxt: KeywordCxt, v: Code, sch?: SchemaEnv, $async?: boolean): void {\n const {gen, it} = cxt\n const {allErrors, schemaEnv: env, opts} = it\n const passCxt = opts.passContext ? N.this : nil\n if ($async) callAsyncRef()\n else callSyncRef()\n\n function callAsyncRef(): void {\n if (!env.$async) throw new Error(\"async schema referenced by sync schema\")\n const valid = gen.let(\"valid\")\n gen.try(\n () => {\n gen.code(_`await ${callValidateCode(cxt, v, passCxt)}`)\n addEvaluatedFrom(v) // TODO will not work with async, it has to be returned with the result\n if (!allErrors) gen.assign(valid, true)\n },\n (e) => {\n gen.if(_`!(${e} instanceof ${it.ValidationError as Name})`, () => gen.throw(e))\n addErrorsFrom(e)\n if (!allErrors) gen.assign(valid, false)\n }\n )\n cxt.ok(valid)\n }\n\n function callSyncRef(): void {\n cxt.result(\n callValidateCode(cxt, v, passCxt),\n () => addEvaluatedFrom(v),\n () => addErrorsFrom(v)\n )\n }\n\n function addErrorsFrom(source: Code): void {\n const errs = _`${source}.errors`\n gen.assign(N.vErrors, _`${N.vErrors} === null ? ${errs} : ${N.vErrors}.concat(${errs})`) // TODO tagged\n gen.assign(N.errors, _`${N.vErrors}.length`)\n }\n\n function addEvaluatedFrom(source: Code): void {\n if (!it.opts.unevaluated) return\n const schEvaluated = sch?.validate?.evaluated\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = mergeEvaluated.props(gen, schEvaluated.props, it.props)\n }\n } else {\n const props = gen.var(\"props\", _`${source}.evaluated.props`)\n it.props = mergeEvaluated.props(gen, props, it.props, Name)\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = mergeEvaluated.items(gen, schEvaluated.items, it.items)\n }\n } else {\n const items = gen.var(\"items\", _`${source}.evaluated.items`)\n it.items = mergeEvaluated.items(gen, items, it.items, Name)\n }\n }\n }\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchemaObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, getProperty, Name} from \"../../compile/codegen\"\nimport {DiscrError, DiscrErrorObj} from \"../discriminator/types\"\nimport {resolveRef, SchemaEnv} from \"../../compile\"\nimport MissingRefError from \"../../compile/ref_error\"\nimport {schemaHasRulesButRef} from \"../../compile/util\"\n\nexport type DiscriminatorError = DiscrErrorObj<DiscrError.Tag> | DiscrErrorObj<DiscrError.Mapping>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {discrError, tagName}}) =>\n discrError === DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({params: {discrError, tag, tagName}}) =>\n _`{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, schema, parentSchema, it} = cxt\n const {oneOf} = parentSchema\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\")\n }\n const tagName = schema.propertyName\n if (typeof tagName != \"string\") throw new Error(\"discriminator: requires propertyName\")\n if (schema.mapping) throw new Error(\"discriminator: mapping is not supported\")\n if (!oneOf) throw new Error(\"discriminator: requires oneOf keyword\")\n const valid = gen.let(\"valid\", false)\n const tag = gen.const(\"tag\", _`${data}${getProperty(tagName)}`)\n gen.if(\n _`typeof ${tag} == \"string\"`,\n () => validateMapping(),\n () => cxt.error(false, {discrError: DiscrError.Tag, tag, tagName})\n )\n cxt.ok(valid)\n\n function validateMapping(): void {\n const mapping = getMapping()\n gen.if(false)\n for (const tagValue in mapping) {\n gen.elseIf(_`${tag} === ${tagValue}`)\n gen.assign(valid, applyTagSchema(mapping[tagValue]))\n }\n gen.else()\n cxt.error(false, {discrError: DiscrError.Mapping, tag, tagName})\n gen.endIf()\n }\n\n function applyTagSchema(schemaProp?: number): Name {\n const _valid = gen.name(\"valid\")\n const schCxt = cxt.subschema({keyword: \"oneOf\", schemaProp}, _valid)\n cxt.mergeEvaluated(schCxt, Name)\n return _valid\n }\n\n function getMapping(): {[T in string]?: number} {\n const oneOfMapping: {[T in string]?: number} = {}\n const topRequired = hasRequired(parentSchema)\n let tagRequired = true\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i]\n if (sch?.$ref && !schemaHasRulesButRef(sch, it.self.RULES)) {\n const ref = sch.$ref\n sch = resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref)\n if (sch instanceof SchemaEnv) sch = sch.schema\n if (sch === undefined) throw new MissingRefError(it.opts.uriResolver, it.baseId, ref)\n }\n const propSch = sch?.properties?.[tagName]\n if (typeof propSch != \"object\") {\n throw new Error(\n `discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`\n )\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch))\n addMappings(propSch, i)\n }\n if (!tagRequired) throw new Error(`discriminator: \"${tagName}\" must be required`)\n return oneOfMapping\n\n function hasRequired({required}: AnySchemaObject): boolean {\n return Array.isArray(required) && required.includes(tagName)\n }\n\n function addMappings(sch: AnySchemaObject, i: number): void {\n if (sch.const) {\n addMapping(sch.const, i)\n } else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i)\n }\n } else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`)\n }\n }\n\n function addMapping(tagValue: unknown, i: number): void {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`)\n }\n oneOfMapping[tagValue] = i\n }\n }\n },\n}\n\nexport default def\n","import type {ErrorObject} from \"../../types\"\n\nexport enum DiscrError {\n Tag = \"tag\",\n Mapping = \"mapping\",\n}\n\nexport type DiscrErrorObj<E extends DiscrError> = ErrorObject<\n \"discriminator\",\n {error: E; tag: string; tagValue: unknown},\n string\n>\n","import type {Vocabulary} from \"../types\"\nimport coreVocabulary from \"./core\"\nimport validationVocabulary from \"./validation\"\nimport getApplicatorVocabulary from \"./applicator\"\nimport formatVocabulary from \"./format\"\nimport {metadataVocabulary, contentVocabulary} from \"./metadata\"\n\nconst draft7Vocabularies: Vocabulary[] = [\n coreVocabulary,\n validationVocabulary,\n getApplicatorVocabulary(),\n formatVocabulary,\n metadataVocabulary,\n contentVocabulary,\n]\n\nexport default draft7Vocabularies\n","import type {\n AddedFormat,\n FormatValidator,\n AsyncFormatValidator,\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, nil, or, Code, getProperty, regexpCode} from \"../../compile/codegen\"\n\ntype FormatValidate =\n | FormatValidator<string>\n | FormatValidator<number>\n | AsyncFormatValidator<string>\n | AsyncFormatValidator<number>\n | RegExp\n | string\n | true\n\nexport type FormatError = ErrorObject<\"format\", {format: string}, string | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must match format \"${schemaCode}\"`,\n params: ({schemaCode}) => _`{format: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt: KeywordCxt, ruleType?: string) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n const {opts, errSchemaPath, schemaEnv, self} = it\n if (!opts.validateFormats) return\n\n if ($data) validate$DataFormat()\n else validateFormat()\n\n function validate$DataFormat(): void {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n })\n const fDef = gen.const(\"fDef\", _`${fmts}[${schemaCode}]`)\n const fType = gen.let(\"fType\")\n const format = gen.let(\"format\")\n // TODO simplify\n gen.if(\n _`typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`,\n () => gen.assign(fType, _`${fDef}.type || \"string\"`).assign(format, _`${fDef}.validate`),\n () => gen.assign(fType, _`\"string\"`).assign(format, fDef)\n )\n cxt.fail$data(or(unknownFmt(), invalidFmt()))\n\n function unknownFmt(): Code {\n if (opts.strictSchema === false) return nil\n return _`${schemaCode} && !${format}`\n }\n\n function invalidFmt(): Code {\n const callFormat = schemaEnv.$async\n ? _`(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : _`${format}(${data})`\n const validData = _`(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`\n return _`${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`\n }\n }\n\n function validateFormat(): void {\n const formatDef: AddedFormat | undefined = self.formats[schema]\n if (!formatDef) {\n unknownFormat()\n return\n }\n if (formatDef === true) return\n const [fmtType, format, fmtRef] = getFormat(formatDef)\n if (fmtType === ruleType) cxt.pass(validCondition())\n\n function unknownFormat(): void {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg())\n return\n }\n throw new Error(unknownMsg())\n\n function unknownMsg(): string {\n return `unknown format \"${schema as string}\" ignored in schema at path \"${errSchemaPath}\"`\n }\n }\n\n function getFormat(fmtDef: AddedFormat): [string, FormatValidate, Code] {\n const code =\n fmtDef instanceof RegExp\n ? regexpCode(fmtDef)\n : opts.code.formats\n ? _`${opts.code.formats}${getProperty(schema)}`\n : undefined\n const fmt = gen.scopeValue(\"formats\", {key: schema, ref: fmtDef, code})\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, _`${fmt}.validate`]\n }\n\n return [\"string\", fmtDef, fmt]\n }\n\n function validCondition(): Code {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async) throw new Error(\"async format in sync schema\")\n return _`await ${fmtRef}(${data})`\n }\n return typeof format == \"function\" ? _`${fmtRef}(${data})` : _`${fmtRef}.test(${data})`\n }\n }\n },\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport formatKeyword from \"./format\"\n\nconst format: Vocabulary = [formatKeyword]\n\nexport default format\n","import type {Vocabulary} from \"../types\"\n\nexport const metadataVocabulary: Vocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n]\n\nexport const contentVocabulary: Vocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n]\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type ConstError = ErrorObject<\"const\", {allowedValue: any}>\n\nconst error: KeywordErrorDefinition = {\n message: \"must be equal to constant\",\n params: ({schemaCode}) => _`{allowedValue: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schemaCode, schema} = cxt\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data(_`!${useFunc(gen, equal)}(${data}, ${schemaCode})`)\n } else {\n cxt.fail(_`${schema} !== ${data}`)\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, or, Name, Code} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type EnumError = ErrorObject<\"enum\", {allowedValues: any[]}, any[] | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: \"must be equal to one of the allowed values\",\n params: ({schemaCode}) => _`{allowedValues: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n if (!$data && schema.length === 0) throw new Error(\"enum must have non-empty array\")\n const useLoop = schema.length >= it.opts.loopEnum\n let eql: Name | undefined\n const getEql = (): Name => (eql ??= useFunc(gen, equal))\n\n let valid: Code\n if (useLoop || $data) {\n valid = gen.let(\"valid\")\n cxt.block$data(valid, loopEnum)\n } else {\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const vSchema = gen.const(\"vSchema\", schemaCode)\n valid = or(...schema.map((_x: unknown, i: number) => equalCode(vSchema, i)))\n }\n cxt.pass(valid)\n\n function loopEnum(): void {\n gen.assign(valid, false)\n gen.forOf(\"v\", schemaCode as Code, (v) =>\n gen.if(_`${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break())\n )\n }\n\n function equalCode(vSchema: Name, i: number): Code {\n const sch = schema[i]\n return typeof sch === \"object\" && sch !== null\n ? _`${getEql()}(${data}, ${vSchema}[${i}])`\n : _`${data} === ${sch}`\n }\n },\n}\n\nexport default def\n","import type {ErrorObject, Vocabulary} from \"../../types\"\nimport limitNumber, {LimitNumberError} from \"./limitNumber\"\nimport multipleOf, {MultipleOfError} from \"./multipleOf\"\nimport limitLength from \"./limitLength\"\nimport pattern, {PatternError} from \"./pattern\"\nimport limitProperties from \"./limitProperties\"\nimport required, {RequiredError} from \"./required\"\nimport limitItems from \"./limitItems\"\nimport uniqueItems, {UniqueItemsError} from \"./uniqueItems\"\nimport constKeyword, {ConstError} from \"./const\"\nimport enumKeyword, {EnumError} from \"./enum\"\n\nconst validation: Vocabulary = [\n // number\n limitNumber,\n multipleOf,\n // string\n limitLength,\n pattern,\n // object\n limitProperties,\n required,\n // array\n limitItems,\n uniqueItems,\n // any\n {keyword: \"type\", schemaType: [\"string\", \"array\"]},\n {keyword: \"nullable\", schemaType: \"boolean\"},\n constKeyword,\n enumKeyword,\n]\n\nexport default validation\n\ntype LimitError = ErrorObject<\n \"maxItems\" | \"minItems\" | \"minProperties\" | \"maxProperties\" | \"minLength\" | \"maxLength\",\n {limit: number},\n number | {$data: string}\n>\n\nexport type ValidationKeywordError =\n | LimitError\n | LimitNumberError\n | MultipleOfError\n | PatternError\n | RequiredError\n | UniqueItemsError\n | ConstError\n | EnumError\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} items`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n const op = keyword === \"maxItems\" ? operators.GT : operators.LT\n cxt.fail$data(_`${data}.length ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport ucs2length from \"../../runtime/ucs2length\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} characters`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode, it} = cxt\n const op = keyword === \"maxLength\" ? operators.GT : operators.LT\n const len =\n it.opts.unicode === false ? _`${data}.length` : _`${useFunc(cxt.gen, ucs2length)}(${data})`\n cxt.fail$data(_`${len} ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators, Code} from \"../../compile/codegen\"\n\nconst ops = operators\n\ntype Kwd = \"maximum\" | \"minimum\" | \"exclusiveMaximum\" | \"exclusiveMinimum\"\n\ntype Comparison = \"<=\" | \">=\" | \"<\" | \">\"\n\nconst KWDs: {[K in Kwd]: {okStr: Comparison; ok: Code; fail: Code}} = {\n maximum: {okStr: \"<=\", ok: ops.LTE, fail: ops.GT},\n minimum: {okStr: \">=\", ok: ops.GTE, fail: ops.LT},\n exclusiveMaximum: {okStr: \"<\", ok: ops.LT, fail: ops.GTE},\n exclusiveMinimum: {okStr: \">\", ok: ops.GT, fail: ops.LTE},\n}\n\nexport type LimitNumberError = ErrorObject<\n Kwd,\n {limit: number; comparison: Comparison},\n number | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({keyword, schemaCode}) => str`must be ${KWDs[keyword as Kwd].okStr} ${schemaCode}`,\n params: ({keyword, schemaCode}) =>\n _`{comparison: ${KWDs[keyword as Kwd].okStr}, limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n cxt.fail$data(_`${data} ${KWDs[keyword as Kwd].fail} ${schemaCode} || isNaN(${data})`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} properties`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n const op = keyword === \"maxProperties\" ? operators.GT : operators.LT\n cxt.fail$data(_`Object.keys(${data}).length ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\n\nexport type MultipleOfError = ErrorObject<\n \"multipleOf\",\n {multipleOf: number},\n number | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must be multiple of ${schemaCode}`,\n params: ({schemaCode}) => _`{multipleOf: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, schemaCode, it} = cxt\n // const bdt = bad$DataType(schemaCode, <string>def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision\n const res = gen.let(\"res\")\n const invalid = prec\n ? _`Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : _`${res} !== parseInt(${res})`\n cxt.fail$data(_`(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {usePattern} from \"../code\"\nimport {useFunc} from \"../../compile/util\"\nimport {_, str} from \"../../compile/codegen\"\n\nexport type PatternError = ErrorObject<\"pattern\", {pattern: string}, string | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must match pattern \"${schemaCode}\"`,\n params: ({schemaCode}) => _`{pattern: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n const u = it.opts.unicodeRegExp ? \"u\" : \"\"\n if ($data) {\n const {regExp} = it.opts.code\n const regExpCode = regExp.code === \"new RegExp\" ? _`new RegExp` : useFunc(gen, regExp)\n const valid = gen.let(\"valid\")\n gen.try(\n () => gen.assign(valid, _`${regExpCode}(${schemaCode}, ${u}).test(${data})`),\n () => gen.assign(valid, false)\n )\n cxt.fail$data(_`!${valid}`)\n } else {\n const regExp = usePattern(cxt, schema)\n cxt.fail$data(_`!${regExp}.test(${data})`)\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {\n checkReportMissingProp,\n checkMissingProp,\n reportMissingProp,\n propertyInData,\n noPropertyInData,\n} from \"../code\"\nimport {_, str, nil, not, Name, Code} from \"../../compile/codegen\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nexport type RequiredError = ErrorObject<\n \"required\",\n {missingProperty: string},\n string[] | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {missingProperty}}) => str`must have required property '${missingProperty}'`,\n params: ({params: {missingProperty}}) => _`{missingProperty: ${missingProperty}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, schemaCode, data, $data, it} = cxt\n const {opts} = it\n if (!$data && schema.length === 0) return\n const useLoop = schema.length >= opts.loopRequired\n if (it.allErrors) allErrorsMode()\n else exitOnErrorMode()\n\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties\n const {definedProperties} = cxt.it\n for (const requiredKey of schema) {\n if (props?.[requiredKey] === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`\n checkStrictMode(it, msg, it.opts.strictRequired)\n }\n }\n }\n\n function allErrorsMode(): void {\n if (useLoop || $data) {\n cxt.block$data(nil, loopAllRequired)\n } else {\n for (const prop of schema) {\n checkReportMissingProp(cxt, prop)\n }\n }\n }\n\n function exitOnErrorMode(): void {\n const missing = gen.let(\"missing\")\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true)\n cxt.block$data(valid, () => loopUntilMissing(missing, valid))\n cxt.ok(valid)\n } else {\n gen.if(checkMissingProp(cxt, schema, missing))\n reportMissingProp(cxt, missing)\n gen.else()\n }\n }\n\n function loopAllRequired(): void {\n gen.forOf(\"prop\", schemaCode as Code, (prop) => {\n cxt.setParams({missingProperty: prop})\n gen.if(noPropertyInData(gen, data, prop, opts.ownProperties), () => cxt.error())\n })\n }\n\n function loopUntilMissing(missing: Name, valid: Name): void {\n cxt.setParams({missingProperty: missing})\n gen.forOf(\n missing,\n schemaCode as Code,\n () => {\n gen.assign(valid, propertyInData(gen, data, missing, opts.ownProperties))\n gen.if(not(valid), () => {\n cxt.error()\n gen.break()\n })\n },\n nil\n )\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkDataTypes, getSchemaTypes, DataType} from \"../../compile/validate/dataType\"\nimport {_, str, Name} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type UniqueItemsError = ErrorObject<\n \"uniqueItems\",\n {i: number; j: number},\n boolean | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {i, j}}) =>\n str`must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({params: {i, j}}) => _`{i: ${i}, j: ${j}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, parentSchema, schemaCode, it} = cxt\n if (!$data && !schema) return\n const valid = gen.let(\"valid\")\n const itemTypes = parentSchema.items ? getSchemaTypes(parentSchema.items) : []\n cxt.block$data(valid, validateUniqueItems, _`${schemaCode} === false`)\n cxt.ok(valid)\n\n function validateUniqueItems(): void {\n const i = gen.let(\"i\", _`${data}.length`)\n const j = gen.let(\"j\")\n cxt.setParams({i, j})\n gen.assign(valid, true)\n gen.if(_`${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j))\n }\n\n function canOptimize(): boolean {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\")\n }\n\n function loopN(i: Name, j: Name): void {\n const item = gen.name(\"item\")\n const wrongType = checkDataTypes(itemTypes, item, it.opts.strictNumbers, DataType.Wrong)\n const indices = gen.const(\"indices\", _`{}`)\n gen.for(_`;${i}--;`, () => {\n gen.let(item, _`${data}[${i}]`)\n gen.if(wrongType, _`continue`)\n if (itemTypes.length > 1) gen.if(_`typeof ${item} == \"string\"`, _`${item} += \"_\"`)\n gen\n .if(_`typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, _`${indices}[${item}]`)\n cxt.error()\n gen.assign(valid, false).break()\n })\n .code(_`${indices}[${item}] = ${i}`)\n })\n }\n\n function loopN2(i: Name, j: Name): void {\n const eql = useFunc(gen, equal)\n const outer = gen.name(\"outer\")\n gen.label(outer).for(_`;${i}--;`, () =>\n gen.for(_`${j} = ${i}; ${j}--;`, () =>\n gen.if(_`${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error()\n gen.assign(valid, false).break(outer)\n })\n )\n )\n }\n },\n}\n\nexport default def\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType = exports.ElementType || (exports.ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nfunction isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\nexports.isTag = isTag;\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexports.Root = ElementType.Root;\n/** Type for Text */\nexports.Text = ElementType.Text;\n/** Type for <? ... ?> */\nexports.Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexports.Comment = ElementType.Comment;\n/** Type for <script> tags */\nexports.Script = ElementType.Script;\n/** Type for <style> tags */\nexports.Style = ElementType.Style;\n/** Type for Any tag */\nexports.Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexports.CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexports.Doctype = ElementType.Doctype;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_js_1 = require(\"./node.js\");\n__exportStar(require(\"./node.js\"), exports);\n// Default options\nvar defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_js_1.Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_js_1.Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n };\n // Signals the handler that parsing is done\n DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n };\n DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_js_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n var node = new node_js_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_js_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_js_1.Text(\"\");\n var node = new node_js_1.CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_js_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n };\n return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n function Node() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n Object.defineProperty(Node.prototype, \"parentNode\", {\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.parent;\n },\n set: function (parent) {\n this.parent = parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"previousSibling\", {\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.prev;\n },\n set: function (prev) {\n this.prev = prev;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.next;\n },\n set: function (next) {\n this.next = next;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n Node.prototype.cloneNode = function (recursive) {\n if (recursive === void 0) { recursive = false; }\n return cloneNode(this, recursive);\n };\n return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n __extends(DataNode, _super);\n /**\n * @param data The content of the data node\n */\n function DataNode(data) {\n var _this = _super.call(this) || this;\n _this.data = data;\n return _this;\n }\n Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.data;\n },\n set: function (data) {\n this.data = data;\n },\n enumerable: false,\n configurable: true\n });\n return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Text;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"nodeType\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n __extends(Comment, _super);\n function Comment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Comment;\n return _this;\n }\n Object.defineProperty(Comment.prototype, \"nodeType\", {\n get: function () {\n return 8;\n },\n enumerable: false,\n configurable: true\n });\n return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n __extends(ProcessingInstruction, _super);\n function ProcessingInstruction(name, data) {\n var _this = _super.call(this, data) || this;\n _this.name = name;\n _this.type = domelementtype_1.ElementType.Directive;\n return _this;\n }\n Object.defineProperty(ProcessingInstruction.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n __extends(NodeWithChildren, _super);\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n function NodeWithChildren(children) {\n var _this = _super.call(this) || this;\n _this.children = children;\n return _this;\n }\n Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n // Aliases\n /** First child of the node. */\n get: function () {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n /** Last child of the node. */\n get: function () {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n __extends(CDATA, _super);\n function CDATA() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.CDATA;\n return _this;\n }\n Object.defineProperty(CDATA.prototype, \"nodeType\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Root;\n return _this;\n }\n Object.defineProperty(Document.prototype, \"nodeType\", {\n get: function () {\n return 9;\n },\n enumerable: false,\n configurable: true\n });\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n _this.type = type;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: name,\n value: _this.attribs[name],\n namespace: (_a = _this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = _this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n },\n enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new CDATA(children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(\"Not implemented yet: \".concat(node.type));\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","/**\n * SVG elements are case-sensitive.\n *\n * @see https://developer.mozilla.org/docs/Web/SVG/Element#svg_elements_a_to_z\n */\nexport const CASE_SENSITIVE_TAG_NAMES = [\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'foreignObject',\n 'linearGradient',\n 'radialGradient',\n 'textPath',\n] as const;\n\nexport const CASE_SENSITIVE_TAG_NAMES_MAP = CASE_SENSITIVE_TAG_NAMES.reduce<\n Record<string, string>\n>((accumulator, tagName) => {\n accumulator[tagName.toLowerCase()] = tagName;\n return accumulator;\n}, {});\n\nexport const CARRIAGE_RETURN = '\\r';\nexport const CARRIAGE_RETURN_REGEX = new RegExp(CARRIAGE_RETURN, 'g');\nexport const CARRIAGE_RETURN_PLACEHOLDER = `__HTML_DOM_PARSER_CARRIAGE_RETURN_PLACEHOLDER_${Date.now().toString()}__`;\nexport const CARRIAGE_RETURN_PLACEHOLDER_REGEX = new RegExp(\n CARRIAGE_RETURN_PLACEHOLDER,\n 'g',\n);\n","import { escapeSpecialCharacters, hasOpenTag } from './utilities';\n\n// constants\nconst HTML = 'html';\nconst HEAD = 'head';\nconst BODY = 'body';\nconst FIRST_TAG_REGEX = /<([a-zA-Z]+[0-9]?)/; // e.g., <h1>\n\n// falls back to `parseFromString` if `createHTMLDocument` cannot be used\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* istanbul ignore start */\nlet parseFromDocument = (html: string, tagName?: string): Document => {\n throw new Error(\n 'This browser does not support `document.implementation.createHTMLDocument`',\n );\n};\n\nlet parseFromString = (html: string, tagName?: string): Document => {\n throw new Error(\n 'This browser does not support `DOMParser.prototype.parseFromString`',\n );\n};\n/* istanbul ignore stop */\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nconst DOMParser = typeof window === 'object' && window.DOMParser;\n\n/**\n * DOMParser (performance: slow).\n *\n * @see https://developer.mozilla.org/docs/Web/API/DOMParser#Parsing_an_SVG_or_HTML_document\n */\nif (typeof DOMParser === 'function') {\n const domParser = new DOMParser();\n const mimeType = 'text/html';\n\n /**\n * Creates an HTML document using `DOMParser.parseFromString`.\n *\n * @param html - The HTML string.\n * @param tagName - The element to render the HTML (with 'body' as fallback).\n * @returns - Document.\n */\n parseFromString = (html: string, tagName?: string): Document => {\n /* istanbul ignore start */\n if (tagName) {\n html = `<${tagName}>${html}</${tagName}>`;\n }\n /* istanbul ignore stop */\n\n return domParser.parseFromString(html, mimeType);\n };\n\n parseFromDocument = parseFromString;\n}\n\n/**\n * DOMImplementation (performance: fair).\n *\n * @see https://developer.mozilla.org/docs/Web/API/DOMImplementation/createHTMLDocument\n */\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nif (typeof document === 'object' && document.implementation) {\n const htmlDocument = document.implementation.createHTMLDocument();\n\n /**\n * Use HTML document created by `document.implementation.createHTMLDocument`.\n *\n * @param html - The HTML string.\n * @param tagName - The element to render the HTML (with 'body' as fallback).\n * @returns - Document\n */\n parseFromDocument = function (html: string, tagName?: string): Document {\n /* istanbul ignore start */\n if (tagName) {\n const element = htmlDocument.documentElement.querySelector(tagName);\n\n if (element) {\n element.innerHTML = html;\n }\n\n return htmlDocument;\n }\n /* istanbul ignore stop */\n\n htmlDocument.documentElement.innerHTML = html;\n return htmlDocument;\n };\n}\n\n/**\n * Template (performance: fast).\n *\n * @see https://developer.mozilla.org/docs/Web/HTML/Element/template\n */\nconst template =\n typeof document === 'object' && document.createElement('template');\n\nlet parseFromTemplate: (html: string) => NodeList;\n\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nif (template && template.content) {\n /**\n * Uses a template element (content fragment) to parse HTML.\n *\n * @param html - HTML string.\n * @returns - Nodes.\n */\n parseFromTemplate = (html: string): NodeList => {\n template.innerHTML = html;\n return template.content.childNodes;\n };\n}\n\nconst createNodeList = /* istanbul ignore next */ () =>\n document.createDocumentFragment().childNodes;\n\n/**\n * Parses HTML string to DOM nodes.\n *\n * @param html - HTML markup.\n * @returns - DOM nodes.\n */\nexport default function domparser(html: string): NodeList {\n // Escape special characters before parsing\n html = escapeSpecialCharacters(html);\n\n const match = FIRST_TAG_REGEX.exec(html);\n const firstTagName = match?.[1]?.toLowerCase();\n\n switch (firstTagName) {\n case HTML: {\n const doc = parseFromString(html);\n\n // the created document may come with filler head/body elements,\n // so make sure to remove them if they don't actually exist\n if (!hasOpenTag(html, HEAD)) {\n const element = doc.querySelector(HEAD);\n /* istanbul ignore next */\n element?.parentNode?.removeChild(element);\n }\n\n if (!hasOpenTag(html, BODY)) {\n const element = doc.querySelector(BODY);\n /* istanbul ignore next */\n element?.parentNode?.removeChild(element);\n }\n\n return doc.querySelectorAll(HTML);\n }\n\n case HEAD:\n case BODY: {\n const elements = parseFromDocument(html).querySelectorAll(firstTagName);\n\n // if there's a sibling element, then return both elements\n if (hasOpenTag(html, BODY) && hasOpenTag(html, HEAD)) {\n /* istanbul ignore next */\n return elements[0].parentNode?.childNodes ?? createNodeList();\n }\n\n return elements;\n }\n\n // low-level tag or text\n default: {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (parseFromTemplate) {\n return parseFromTemplate(html);\n }\n\n /* istanbul ignore start */\n const element = parseFromDocument(html, BODY).querySelector(BODY);\n\n return element?.childNodes ?? createNodeList();\n /* istanbul ignore stop */\n }\n }\n}\n","import domparser from './domparser';\nimport { formatDOM } from './utilities';\n\nconst DIRECTIVE_REGEX = /<(![a-zA-Z\\s]+)>/; // e.g., <!doctype html>\n\n/**\n * Parses HTML string to DOM nodes in browser.\n *\n * @param html - HTML markup.\n * @returns - DOM elements.\n */\nexport default function HTMLDOMParser(html: string) {\n if (typeof html !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!html) {\n return [];\n }\n\n // match directive\n const match = DIRECTIVE_REGEX.exec(html);\n const directive = match ? match[1] : undefined;\n\n return formatDOM(domparser(html), null, directive);\n}\n","import { Comment, Element, ProcessingInstruction, Text } from 'domhandler';\n\nimport type { DOMNode } from '../types';\nimport {\n CARRIAGE_RETURN,\n CARRIAGE_RETURN_PLACEHOLDER,\n CARRIAGE_RETURN_PLACEHOLDER_REGEX,\n CARRIAGE_RETURN_REGEX,\n CASE_SENSITIVE_TAG_NAMES_MAP,\n} from './constants';\n\n/**\n * Gets case-sensitive tag name.\n *\n * @param tagName - Tag name in lowercase.\n * @returns - Case-sensitive tag name.\n */\nfunction getCaseSensitiveTagName(tagName: string): string | undefined {\n return CASE_SENSITIVE_TAG_NAMES_MAP[tagName];\n}\n\n/**\n * Formats DOM attributes to a hash map.\n *\n * @param attributes - List of attributes.\n * @returns - Map of attribute name to value.\n */\nexport function formatAttributes(attributes: NamedNodeMap) {\n const map: Record<string, string> = {};\n let index = 0;\n const attributesLength = attributes.length;\n\n // `NamedNodeMap` is array-like\n for (; index < attributesLength; index++) {\n const attribute = attributes[index];\n map[attribute.name] = attribute.value;\n }\n\n return map;\n}\n\n/**\n * Corrects the tag name if it is case-sensitive (SVG).\n * Otherwise, returns the lowercase tag name (HTML).\n *\n * @param tagName - Lowercase tag name.\n * @returns - Formatted tag name.\n */\nfunction formatTagName(tagName: string): string {\n tagName = tagName.toLowerCase();\n const caseSensitiveTagName = getCaseSensitiveTagName(tagName);\n\n if (caseSensitiveTagName) {\n return caseSensitiveTagName;\n }\n\n return tagName;\n}\n\n/**\n * Checks if an HTML string contains an opening tag (case-insensitive).\n *\n * @param html - HTML string.\n * @param tagName - Tag name to search for (e.g., 'head' or 'body').\n * @returns - Whether the tag is found.\n */\nexport function hasOpenTag(html: string, tagName: string): boolean {\n const openTag = '<' + tagName;\n const index = html.toLowerCase().indexOf(openTag);\n\n if (index === -1) {\n return false;\n }\n\n const char = html[index + openTag.length];\n // the character after the tag name must be '>' or whitespace (for attributes)\n return (\n char === '>' ||\n char === ' ' ||\n char === '\\t' ||\n char === '\\n' ||\n char === '\\r' ||\n char === '/'\n );\n}\n\n/**\n * Escapes special characters before parsing.\n *\n * @param html - The HTML string.\n * @returns - HTML string with escaped special characters.\n */\nexport function escapeSpecialCharacters(html: string): string {\n return html.replace(CARRIAGE_RETURN_REGEX, CARRIAGE_RETURN_PLACEHOLDER);\n}\n\n/**\n * Reverts escaped special characters back to actual characters.\n *\n * @param text - The text with escaped characters.\n * @returns - Text with escaped characters reverted.\n */\nexport function revertEscapedCharacters(text: string): string {\n return text.replace(CARRIAGE_RETURN_PLACEHOLDER_REGEX, CARRIAGE_RETURN);\n}\n\n/**\n * Transforms DOM nodes to `domhandler` nodes.\n *\n * @param nodes - DOM nodes.\n * @param parent - Parent node.\n * @param directive - Directive.\n * @returns - Nodes.\n */\nexport function formatDOM(\n nodes: NodeList,\n parent: DOMNode | null = null,\n directive?: string,\n): DOMNode[] {\n const domNodes = [];\n let current;\n let index = 0;\n const nodesLength = nodes.length;\n\n for (; index < nodesLength; index++) {\n const node = nodes[index];\n\n // set the node data given the type\n switch (node.nodeType) {\n case 1: {\n const tagName = formatTagName(node.nodeName);\n\n // script, style, or tag\n current = new Element(\n tagName,\n formatAttributes((node as HTMLElement).attributes),\n );\n\n current.children = formatDOM(\n // template children are on content\n tagName === 'template'\n ? (node as HTMLTemplateElement).content.childNodes\n : node.childNodes,\n current,\n );\n\n break;\n }\n\n case 3:\n current = new Text(revertEscapedCharacters(node.nodeValue ?? ''));\n break;\n\n case 8:\n current = new Comment(node.nodeValue ?? '');\n break;\n\n default:\n continue;\n }\n\n // set previous node next\n const prev = domNodes[index - 1] ?? null;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (prev) {\n prev.next = current;\n }\n\n // set properties for current node\n current.parent = parent as Element;\n current.prev = prev;\n current.next = null;\n\n domNodes.push(current);\n }\n\n if (directive) {\n current = new ProcessingInstruction(\n directive.substring(0, directive.indexOf(' ')).toLowerCase(),\n directive,\n );\n\n current.next = domNodes[0] ?? null;\n current.parent = parent as Element;\n domNodes.unshift(current);\n\n if (domNodes[1]) {\n domNodes[1].prev = domNodes[0];\n }\n }\n\n return domNodes;\n}\n","import {\n BOOLEAN,\n getPropertyInfo,\n isCustomAttribute,\n OVERLOADED_BOOLEAN,\n possibleStandardNames,\n} from 'react-property';\n\nimport { PRESERVE_CUSTOM_ATTRIBUTES, setStyleProp } from './utilities';\n\n// https://react.dev/learn/sharing-state-between-components#controlled-and-uncontrolled-components\n// https://developer.mozilla.org/docs/Web/HTML/Attributes\nconst UNCONTROLLED_COMPONENT_ATTRIBUTES = ['checked', 'value'] as const;\nconst UNCONTROLLED_COMPONENT_NAMES = ['input', 'select', 'textarea'] as const;\n\ntype UncontrolledComponentAttributes =\n (typeof UNCONTROLLED_COMPONENT_ATTRIBUTES)[number];\n\ntype UncontrolledComponentNames = (typeof UNCONTROLLED_COMPONENT_NAMES)[number];\n\nconst valueOnlyInputs = {\n reset: true,\n submit: true,\n} as const;\n\nexport type ValueOnlyInputsKeys = keyof typeof valueOnlyInputs;\n\nexport type Attributes = Record<PropertyKey, string>;\n\nexport type Props = Record<PropertyKey, string | boolean> & {\n dangerouslySetInnerHTML?: {\n __html: string;\n };\n key?: string | number;\n style?: Record<PropertyKey, string>;\n};\n\n/**\n * Converts HTML/SVG DOM attributes to React props.\n *\n * @param attributes - HTML/SVG DOM attributes.\n * @param nodeName - DOM node name.\n * @returns - React props.\n */\nexport default function attributesToProps(\n attributes: Attributes = {},\n nodeName?: string,\n): Props {\n const props: Props = {};\n\n const isInputValueOnly = Boolean(\n attributes.type && valueOnlyInputs[attributes.type as ValueOnlyInputsKeys],\n );\n\n for (const attributeName in attributes) {\n const attributeValue = attributes[attributeName];\n\n // ARIA (aria-*) or custom data (data-*) attribute\n if (isCustomAttribute(attributeName)) {\n props[attributeName] = attributeValue;\n continue;\n }\n\n // convert HTML/SVG attribute to React prop\n const attributeNameLowerCased = attributeName.toLowerCase();\n let propName = getPropName(attributeNameLowerCased);\n\n if (propName) {\n const propertyInfo = getPropertyInfo(propName) as\n | { type: number }\n | undefined;\n\n // convert attribute to uncontrolled component prop (e.g., `value` to `defaultValue`)\n if (\n UNCONTROLLED_COMPONENT_ATTRIBUTES.includes(\n propName as UncontrolledComponentAttributes,\n ) &&\n UNCONTROLLED_COMPONENT_NAMES.includes(\n nodeName as UncontrolledComponentNames,\n ) &&\n !isInputValueOnly\n ) {\n propName = getPropName('default' + attributeNameLowerCased);\n }\n\n props[propName] = attributeValue;\n\n switch (propertyInfo?.type) {\n case BOOLEAN:\n props[propName] = true;\n break;\n case OVERLOADED_BOOLEAN:\n if (attributeValue === '') {\n props[propName] = true;\n }\n break;\n }\n continue;\n }\n\n // preserve custom attribute if React >=16\n if (PRESERVE_CUSTOM_ATTRIBUTES) {\n props[attributeName] = attributeValue;\n }\n }\n\n // transform inline style to object\n setStyleProp(attributes.style, props);\n\n return props;\n}\n\n/**\n * Gets prop name from lowercased attribute name.\n *\n * @param attributeName - Lowercased attribute name.\n * @returns - Prop name.\n */\nfunction getPropName(attributeName: string): string {\n return possibleStandardNames[attributeName];\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */\n\nimport type { DOMNode, Element, Text } from 'html-dom-parser';\nimport type { JSX } from 'react';\nimport { cloneElement, createElement, isValidElement } from 'react';\n\nimport type { Props } from './attributes-to-props';\nimport attributesToProps from './attributes-to-props';\nimport type { HTMLReactParserOptions } from './types';\nimport {\n canTextBeChildOfNode,\n isCustomComponent,\n PRESERVE_CUSTOM_ATTRIBUTES,\n returnFirstArg,\n setStyleProp,\n} from './utilities';\n\nconst React = {\n cloneElement,\n createElement,\n isValidElement,\n} as const;\n\n/**\n * Converts DOM nodes to JSX element(s).\n *\n * @param nodes - DOM nodes.\n * @param options - Options.\n * @returns - String or JSX element(s).\n */\nexport default function domToReact(\n nodes: DOMNode[],\n options: HTMLReactParserOptions = {},\n): string | JSX.Element | JSX.Element[] {\n const reactElements: JSX.Element[] = [];\n\n const hasReplace = typeof options.replace === 'function';\n const transform = options.transform ?? returnFirstArg;\n const { cloneElement, createElement, isValidElement } =\n options.library ?? React;\n\n const nodesLength = nodes.length;\n\n for (let index = 0; index < nodesLength; index++) {\n const node = nodes[index];\n\n // replace with custom React element (if present)\n if (hasReplace) {\n let replaceElement = options.replace?.(node, index) as JSX.Element;\n\n if (isValidElement(replaceElement)) {\n // set \"key\" prop for sibling elements\n // https://react.dev/learn/rendering-lists#rules-of-keys\n if (nodesLength > 1) {\n replaceElement = cloneElement(replaceElement, {\n key: replaceElement.key ?? index,\n });\n }\n\n reactElements.push(\n transform(replaceElement, node, index) as JSX.Element,\n );\n\n continue;\n }\n }\n\n if (node.type === 'text') {\n const isWhitespace = !node.data.trim().length;\n\n // We have a whitespace node that can't be nested in its parent\n // so skip it\n if (\n isWhitespace &&\n node.parent &&\n !canTextBeChildOfNode(node.parent as Element)\n ) {\n continue;\n }\n\n // Trim is enabled and we have a whitespace node\n // so skip it\n if (options.trim && isWhitespace) {\n continue;\n }\n\n // We have a text node that's not whitespace and it can be nested\n // in its parent so add it to the results\n reactElements.push(transform(node.data, node, index) as JSX.Element);\n continue;\n }\n\n const element = node as Element;\n let props: Props = {};\n\n if (skipAttributesToProps(element)) {\n setStyleProp(element.attribs.style, element.attribs);\n props = element.attribs;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n } else if (element.attribs) {\n props = attributesToProps(element.attribs, element.name);\n }\n\n let children: ReturnType<typeof domToReact> | undefined;\n\n switch (node.type) {\n case 'script':\n case 'style':\n // prevent text in <script> or <style> from being escaped\n // https://react.dev/reference/react-dom/components/common#dangerously-setting-the-inner-html\n if (node.children[0]) {\n props.dangerouslySetInnerHTML = {\n __html: (node.children[0] as Text).data,\n };\n }\n break;\n\n case 'tag':\n // setting textarea value in children is an antipattern in React\n // https://react.dev/reference/react-dom/components/textarea#caveats\n if (node.name === 'textarea' && node.children[0]) {\n props.defaultValue = (node.children[0] as Text).data;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n } else if (node.children?.length) {\n // continue recursion of creating React elements (if applicable)\n children = domToReact(node.children as Text[], options);\n }\n break;\n\n // skip all other cases (e.g., comment)\n default:\n continue;\n }\n\n // set \"key\" prop for sibling elements\n // https://react.dev/learn/rendering-lists#rules-of-keys\n if (nodesLength > 1) {\n props.key = index;\n }\n\n reactElements.push(\n transform(\n createElement(node.name, props, children),\n node,\n index,\n ) as JSX.Element,\n );\n }\n\n return reactElements.length === 1 ? reactElements[0] : reactElements;\n}\n\n/**\n * Determines whether DOM element attributes should be transformed to props.\n * Web Components should not have their attributes transformed except for `style`.\n *\n * @param node - Element node.\n * @returns - Whether the node attributes should be converted to props.\n */\nfunction skipAttributesToProps(node: Element): boolean {\n return (\n PRESERVE_CUSTOM_ATTRIBUTES &&\n node.type === 'tag' &&\n isCustomComponent(node.name, node.attribs)\n );\n}\n","import htmlToDOM from 'html-dom-parser';\n\nimport attributesToProps from './attributes-to-props';\nimport domToReact from './dom-to-react';\nimport type { HTMLReactParserOptions } from './types';\n\nexport { Comment, Element, ProcessingInstruction, Text } from 'domhandler';\nexport type { DOMNode } from 'html-dom-parser';\n\nexport type { HTMLReactParserOptions };\nexport { attributesToProps, domToReact, htmlToDOM };\n\nconst domParserOptions = { lowerCaseAttributeNames: false } as const;\n\n/**\n * Converts HTML string to React elements.\n *\n * @param html - HTML string.\n * @param options - Parser options.\n * @returns - React element(s), empty array, or string.\n */\nexport default function HTMLReactParser(\n html: string,\n options?: HTMLReactParserOptions,\n): ReturnType<typeof domToReact> {\n if (typeof html !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!html) {\n return [];\n }\n\n return domToReact(\n htmlToDOM(html, options?.htmlparser2 ?? domParserOptions),\n options,\n );\n}\n","import type { Element } from 'html-dom-parser';\nimport { version } from 'react';\nimport StyleToJS from 'style-to-js';\n\nimport type { Props } from './attributes-to-props';\n\nconst RESERVED_SVG_MATHML_ELEMENTS = new Set([\n 'annotation-xml',\n 'color-profile',\n 'font-face',\n 'font-face-src',\n 'font-face-uri',\n 'font-face-format',\n 'font-face-name',\n 'missing-glyph',\n] as const);\n\ntype ReservedSvgMathmlElements =\n typeof RESERVED_SVG_MATHML_ELEMENTS extends Set<infer T> ? T : never;\n\n/**\n * Check if a tag is a custom component.\n *\n * @see {@link https://github.com/facebook/react/blob/v16.6.3/packages/react-dom/src/shared/isCustomComponent.js}\n *\n * @param tagName - Tag name.\n * @param props - Props passed to the element.\n * @returns - Whether the tag is custom component.\n */\nexport function isCustomComponent(\n tagName: string,\n props?: Record<PropertyKey, string>,\n): boolean {\n if (!tagName.includes('-')) {\n return Boolean(props && typeof props.is === 'string');\n }\n\n // These are reserved SVG and MathML elements.\n // We don't mind this whitelist too much because we expect it to never grow.\n // The alternative is to track the namespace in a few places which is convoluted.\n // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n if (RESERVED_SVG_MATHML_ELEMENTS.has(tagName as ReservedSvgMathmlElements)) {\n return false;\n }\n\n return true;\n}\n\nconst styleOptions = {\n reactCompat: true,\n} as const;\n\n/**\n * Sets style prop.\n *\n * @param style - Inline style.\n * @param props - Props object.\n */\nexport function setStyleProp(style: string, props: Props): void {\n if (typeof style !== 'string') {\n return;\n }\n\n if (!style.trim()) {\n props.style = {};\n return;\n }\n\n try {\n props.style = StyleToJS(style, styleOptions);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n props.style = {};\n }\n}\n\n/**\n * @see https://reactjs.org/blog/2017/09/08/dom-attributes-in-react-16.html\n */\nexport const PRESERVE_CUSTOM_ATTRIBUTES = Number(version.split('.')[0]) >= 16;\n\n/**\n * @see https://github.com/facebook/react/blob/cae635054e17a6f107a39d328649137b83f25972/packages/react-dom/src/client/validateDOMNesting.js#L213\n */\nexport const ELEMENTS_WITH_NO_TEXT_CHILDREN = new Set([\n 'tr',\n 'tbody',\n 'thead',\n 'tfoot',\n 'colgroup',\n 'table',\n 'head',\n 'html',\n 'frameset',\n] as const);\n\ntype ElementsWithNoTextChildren =\n typeof ELEMENTS_WITH_NO_TEXT_CHILDREN extends Set<infer T> ? T : never;\n\n/**\n * Checks if the given node can contain text nodes\n *\n * @param node - Element node.\n * @returns - Whether the node can contain text nodes.\n */\nexport const canTextBeChildOfNode = (node: Element) =>\n !ELEMENTS_WITH_NO_TEXT_CHILDREN.has(node.name as ElementsWithNoTextChildren);\n\n/**\n * Returns the first argument as is.\n *\n * @param arg - The argument to be returned.\n * @returns - The input argument `arg`.\n */\nexport const returnFirstArg = <T>(arg: T): T => arg;\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nexport default function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n}\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var castPath = require('./_castPath'),\n last = require('./last'),\n parent = require('./_parent'),\n toKey = require('./_toKey');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n\n // Prevent prototype pollution, see: https://github.com/lodash/lodash/security/advisories/GHSA-xxjr-mmjv-4gpg\n var index = -1,\n length = path.length;\n\n if (!length) {\n return true;\n }\n\n var isRootPrimitive = object == null || (typeof object !== 'object' && typeof object !== 'function');\n\n while (++index < length) {\n var key = path[index];\n\n // skip non-string keys (e.g., Symbols, numbers)\n if (typeof key !== 'string') {\n continue;\n }\n\n // Always block \"__proto__\" anywhere in the path if it's not expected\n if (key === '__proto__' && !hasOwnProperty.call(object, '__proto__')) {\n return false;\n }\n\n // Block \"constructor.prototype\" chains\n if (key === 'constructor' &&\n (index + 1) < length &&\n typeof path[index + 1] === 'string' &&\n path[index + 1] === 'prototype') {\n\n // Allow ONLY when the path starts at a primitive root, e.g., _.unset(0, 'constructor.prototype.a')\n if (isRootPrimitive && index === 0) {\n continue;\n }\n\n return false;\n }\n }\n\n var obj = parent(object, path);\n return obj == null || delete obj[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var isPlainObject = require('./isPlainObject');\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nmodule.exports = customOmitClone;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var baseGet = require('./_baseGet'),\n baseSlice = require('./_baseSlice');\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var arrayMap = require('./_arrayMap'),\n baseClone = require('./_baseClone'),\n baseUnset = require('./_baseUnset'),\n castPath = require('./_castPath'),\n copyObject = require('./_copyObject'),\n customOmitClone = require('./_customOmitClone'),\n flatRest = require('./_flatRest'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nmodule.exports = omit;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var toString = require('./toString');\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nmodule.exports = uniqueId;\n","'use strict';\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\n\n\n// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nconst RESERVED = 0;\n\n// A simple string attribute.\n// Attributes that aren't in the filter are presumed to have this type.\nconst STRING = 1;\n\n// A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\nconst BOOLEANISH_STRING = 2;\n\n// A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\nconst BOOLEAN = 3;\n\n// An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\nconst OVERLOADED_BOOLEAN = 4;\n\n// An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\nconst NUMERIC = 5;\n\n// An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\nconst POSITIVE_NUMERIC = 6;\n\nfunction getPropertyInfo(name) {\n return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction PropertyInfoRecord(\n name,\n type,\n mustUseProperty,\n attributeName,\n attributeNamespace,\n sanitizeURL,\n removeEmptyString,\n) {\n this.acceptsBooleans =\n type === BOOLEANISH_STRING ||\n type === BOOLEAN ||\n type === OVERLOADED_BOOLEAN;\n this.attributeName = attributeName;\n this.attributeNamespace = attributeNamespace;\n this.mustUseProperty = mustUseProperty;\n this.propertyName = name;\n this.type = type;\n this.sanitizeURL = sanitizeURL;\n this.removeEmptyString = removeEmptyString;\n}\n\n// When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\nconst properties = {};\n\n// These props are reserved by React. They shouldn't be written to the DOM.\nconst reservedProps = [\n 'children',\n 'dangerouslySetInnerHTML',\n // TODO: This prevents the assignment of defaultValue to regular\n // elements (not just inputs). Now that ReactDOMInput assigns to the\n // defaultValue property -- do we need this?\n 'defaultValue',\n 'defaultChecked',\n 'innerHTML',\n 'suppressContentEditableWarning',\n 'suppressHydrationWarning',\n 'style',\n];\n\nreservedProps.forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n RESERVED,\n false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n[\n ['acceptCharset', 'accept-charset'],\n ['className', 'class'],\n ['htmlFor', 'for'],\n ['httpEquiv', 'http-equiv'],\n].forEach(([name, attributeName]) => {\n properties[name] = new PropertyInfoRecord(\n name,\n STRING,\n false, // mustUseProperty\n attributeName, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n BOOLEANISH_STRING,\n false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n[\n 'autoReverse',\n 'externalResourcesRequired',\n 'focusable',\n 'preserveAlpha',\n].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n BOOLEANISH_STRING,\n false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are HTML boolean attributes.\n[\n 'allowFullScreen',\n 'async',\n // Note: there is a special case that prevents it from being written to the DOM\n // on the client side because the browsers are inconsistent. Instead we call focus().\n 'autoFocus',\n 'autoPlay',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'disablePictureInPicture',\n 'disableRemotePlayback',\n 'formNoValidate',\n 'hidden',\n 'loop',\n 'noModule',\n 'noValidate',\n 'open',\n 'playsInline',\n 'readOnly',\n 'required',\n 'reversed',\n 'scoped',\n 'seamless',\n // Microdata\n 'itemScope',\n].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n BOOLEAN,\n false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n[\n 'checked',\n // Note: `option.selected` is not updated if `select.multiple` is\n // disabled with `removeAttribute`. We have special logic for handling this.\n 'multiple',\n 'muted',\n 'selected',\n\n // NOTE: if you add a camelCased prop to this list,\n // you'll need to set attributeName to name.toLowerCase()\n // instead in the assignment below.\n].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n BOOLEAN,\n true, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n[\n 'capture',\n 'download',\n\n // NOTE: if you add a camelCased prop to this list,\n // you'll need to set attributeName to name.toLowerCase()\n // instead in the assignment below.\n].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n OVERLOADED_BOOLEAN,\n false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are HTML attributes that must be positive numbers.\n[\n 'cols',\n 'rows',\n 'size',\n 'span',\n\n // NOTE: if you add a camelCased prop to this list,\n // you'll need to set attributeName to name.toLowerCase()\n // instead in the assignment below.\n].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n POSITIVE_NUMERIC,\n false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are HTML attributes that must be numbers.\n['rowSpan', 'start'].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n NUMERIC,\n false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\nconst CAMELIZE = /[\\-\\:]([a-z])/g;\nconst capitalize = token => token[1].toUpperCase();\n\n// This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML attribute filter.\n// Some of these attributes can be hard to find. This list was created by\n// scraping the MDN documentation.\n[\n 'accent-height',\n 'alignment-baseline',\n 'arabic-form',\n 'baseline-shift',\n 'cap-height',\n 'clip-path',\n 'clip-rule',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'dominant-baseline',\n 'enable-background',\n 'fill-opacity',\n 'fill-rule',\n 'flood-color',\n 'flood-opacity',\n 'font-family',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-style',\n 'font-variant',\n 'font-weight',\n 'glyph-name',\n 'glyph-orientation-horizontal',\n 'glyph-orientation-vertical',\n 'horiz-adv-x',\n 'horiz-origin-x',\n 'image-rendering',\n 'letter-spacing',\n 'lighting-color',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'overline-position',\n 'overline-thickness',\n 'paint-order',\n 'panose-1',\n 'pointer-events',\n 'rendering-intent',\n 'shape-rendering',\n 'stop-color',\n 'stop-opacity',\n 'strikethrough-position',\n 'strikethrough-thickness',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke-width',\n 'text-anchor',\n 'text-decoration',\n 'text-rendering',\n 'underline-position',\n 'underline-thickness',\n 'unicode-bidi',\n 'unicode-range',\n 'units-per-em',\n 'v-alphabetic',\n 'v-hanging',\n 'v-ideographic',\n 'v-mathematical',\n 'vector-effect',\n 'vert-adv-y',\n 'vert-origin-x',\n 'vert-origin-y',\n 'word-spacing',\n 'writing-mode',\n 'xmlns:xlink',\n 'x-height',\n\n // NOTE: if you add a camelCased prop to this list,\n // you'll need to set attributeName to name.toLowerCase()\n // instead in the assignment below.\n].forEach(attributeName => {\n const name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(\n name,\n STRING,\n false, // mustUseProperty\n attributeName,\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// String SVG attributes with the xlink namespace.\n[\n 'xlink:actuate',\n 'xlink:arcrole',\n 'xlink:role',\n 'xlink:show',\n 'xlink:title',\n 'xlink:type',\n\n // NOTE: if you add a camelCased prop to this list,\n // you'll need to set attributeName to name.toLowerCase()\n // instead in the assignment below.\n].forEach(attributeName => {\n const name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(\n name,\n STRING,\n false, // mustUseProperty\n attributeName,\n 'http://www.w3.org/1999/xlink',\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// String SVG attributes with the xml namespace.\n[\n 'xml:base',\n 'xml:lang',\n 'xml:space',\n\n // NOTE: if you add a camelCased prop to this list,\n // you'll need to set attributeName to name.toLowerCase()\n // instead in the assignment below.\n].forEach(attributeName => {\n const name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(\n name,\n STRING,\n false, // mustUseProperty\n attributeName,\n 'http://www.w3.org/XML/1998/namespace',\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These attribute exists both in HTML and SVG.\n// The attribute name is case-sensitive in SVG so we can't just use\n// the React name like we do for attributes that exist only in HTML.\n['tabIndex', 'crossOrigin'].forEach(attributeName => {\n properties[attributeName] = new PropertyInfoRecord(\n attributeName,\n STRING,\n false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These attributes accept URLs. These must not allow javascript: URLS.\n// These will also need to accept Trusted Types object in the future.\nconst xlinkHref = 'xlinkHref';\nproperties[xlinkHref] = new PropertyInfoRecord(\n 'xlinkHref',\n STRING,\n false, // mustUseProperty\n 'xlink:href',\n 'http://www.w3.org/1999/xlink',\n true, // sanitizeURL\n false, // removeEmptyString\n);\n\n['src', 'href', 'action', 'formAction'].forEach(attributeName => {\n properties[attributeName] = new PropertyInfoRecord(\n attributeName,\n STRING,\n false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n true, // sanitizeURL\n true, // removeEmptyString\n );\n});\n\n// \nconst {\n CAMELCASE,\n SAME,\n possibleStandardNames: possibleStandardNamesOptimized\n} = require('../lib/possibleStandardNamesOptimized');\n\nconst ATTRIBUTE_NAME_START_CHAR =\n ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\n\nconst ATTRIBUTE_NAME_CHAR =\n ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\n\n/**\n * Checks whether a property name is a custom attribute.\n *\n * @see https://github.com/facebook/react/blob/15-stable/src/renderers/dom/shared/HTMLDOMPropertyConfig.js#L23-L25\n *\n * @type {(attribute: string) => boolean}\n */\nconst isCustomAttribute =\n RegExp.prototype.test.bind(\n // eslint-disable-next-line no-misleading-character-class\n new RegExp('^(data|aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$')\n );\n\n/**\n * @type {Record<string, string>}\n */\nconst possibleStandardNames = Object.keys(\n possibleStandardNamesOptimized\n).reduce((accumulator, standardName) => {\n const propName = possibleStandardNamesOptimized[standardName];\n if (propName === SAME) {\n accumulator[standardName] = standardName;\n } else if (propName === CAMELCASE) {\n accumulator[standardName.toLowerCase()] = standardName;\n } else {\n accumulator[standardName] = propName;\n }\n return accumulator;\n}, {});\n\nexports.BOOLEAN = BOOLEAN;\nexports.BOOLEANISH_STRING = BOOLEANISH_STRING;\nexports.NUMERIC = NUMERIC;\nexports.OVERLOADED_BOOLEAN = OVERLOADED_BOOLEAN;\nexports.POSITIVE_NUMERIC = POSITIVE_NUMERIC;\nexports.RESERVED = RESERVED;\nexports.STRING = STRING;\nexports.getPropertyInfo = getPropertyInfo;\nexports.isCustomAttribute = isCustomAttribute;\nexports.possibleStandardNames = possibleStandardNames;\n","// An attribute in which the DOM/SVG standard name is the same as the React prop name (e.g., 'accept').\nvar SAME = 0;\nexports.SAME = SAME;\n\n// An attribute in which the React prop name is the camelcased version of the DOM/SVG standard name (e.g., 'acceptCharset').\nvar CAMELCASE = 1;\nexports.CAMELCASE = CAMELCASE;\n\nexports.possibleStandardNames = {\n accept: 0,\n acceptCharset: 1,\n 'accept-charset': 'acceptCharset',\n accessKey: 1,\n action: 0,\n allowFullScreen: 1,\n alt: 0,\n as: 0,\n async: 0,\n autoCapitalize: 1,\n autoComplete: 1,\n autoCorrect: 1,\n autoFocus: 1,\n autoPlay: 1,\n autoSave: 1,\n capture: 0,\n cellPadding: 1,\n cellSpacing: 1,\n challenge: 0,\n charSet: 1,\n checked: 0,\n children: 0,\n cite: 0,\n class: 'className',\n classID: 1,\n className: 1,\n cols: 0,\n colSpan: 1,\n content: 0,\n contentEditable: 1,\n contextMenu: 1,\n controls: 0,\n controlsList: 1,\n coords: 0,\n crossOrigin: 1,\n dangerouslySetInnerHTML: 1,\n data: 0,\n dateTime: 1,\n default: 0,\n defaultChecked: 1,\n defaultValue: 1,\n defer: 0,\n dir: 0,\n disabled: 0,\n disablePictureInPicture: 1,\n disableRemotePlayback: 1,\n download: 0,\n draggable: 0,\n encType: 1,\n enterKeyHint: 1,\n for: 'htmlFor',\n form: 0,\n formMethod: 1,\n formAction: 1,\n formEncType: 1,\n formNoValidate: 1,\n formTarget: 1,\n frameBorder: 1,\n headers: 0,\n height: 0,\n hidden: 0,\n high: 0,\n href: 0,\n hrefLang: 1,\n htmlFor: 1,\n httpEquiv: 1,\n 'http-equiv': 'httpEquiv',\n icon: 0,\n id: 0,\n innerHTML: 1,\n inputMode: 1,\n integrity: 0,\n is: 0,\n itemID: 1,\n itemProp: 1,\n itemRef: 1,\n itemScope: 1,\n itemType: 1,\n keyParams: 1,\n keyType: 1,\n kind: 0,\n label: 0,\n lang: 0,\n list: 0,\n loop: 0,\n low: 0,\n manifest: 0,\n marginWidth: 1,\n marginHeight: 1,\n max: 0,\n maxLength: 1,\n media: 0,\n mediaGroup: 1,\n method: 0,\n min: 0,\n minLength: 1,\n multiple: 0,\n muted: 0,\n name: 0,\n noModule: 1,\n nonce: 0,\n noValidate: 1,\n open: 0,\n optimum: 0,\n pattern: 0,\n placeholder: 0,\n playsInline: 1,\n poster: 0,\n preload: 0,\n profile: 0,\n radioGroup: 1,\n readOnly: 1,\n referrerPolicy: 1,\n rel: 0,\n required: 0,\n reversed: 0,\n role: 0,\n rows: 0,\n rowSpan: 1,\n sandbox: 0,\n scope: 0,\n scoped: 0,\n scrolling: 0,\n seamless: 0,\n selected: 0,\n shape: 0,\n size: 0,\n sizes: 0,\n span: 0,\n spellCheck: 1,\n src: 0,\n srcDoc: 1,\n srcLang: 1,\n srcSet: 1,\n start: 0,\n step: 0,\n style: 0,\n summary: 0,\n tabIndex: 1,\n target: 0,\n title: 0,\n type: 0,\n useMap: 1,\n value: 0,\n width: 0,\n wmode: 0,\n wrap: 0,\n about: 0,\n accentHeight: 1,\n 'accent-height': 'accentHeight',\n accumulate: 0,\n additive: 0,\n alignmentBaseline: 1,\n 'alignment-baseline': 'alignmentBaseline',\n allowReorder: 1,\n alphabetic: 0,\n amplitude: 0,\n arabicForm: 1,\n 'arabic-form': 'arabicForm',\n ascent: 0,\n attributeName: 1,\n attributeType: 1,\n autoReverse: 1,\n azimuth: 0,\n baseFrequency: 1,\n baselineShift: 1,\n 'baseline-shift': 'baselineShift',\n baseProfile: 1,\n bbox: 0,\n begin: 0,\n bias: 0,\n by: 0,\n calcMode: 1,\n capHeight: 1,\n 'cap-height': 'capHeight',\n clip: 0,\n clipPath: 1,\n 'clip-path': 'clipPath',\n clipPathUnits: 1,\n clipRule: 1,\n 'clip-rule': 'clipRule',\n color: 0,\n colorInterpolation: 1,\n 'color-interpolation': 'colorInterpolation',\n colorInterpolationFilters: 1,\n 'color-interpolation-filters': 'colorInterpolationFilters',\n colorProfile: 1,\n 'color-profile': 'colorProfile',\n colorRendering: 1,\n 'color-rendering': 'colorRendering',\n contentScriptType: 1,\n contentStyleType: 1,\n cursor: 0,\n cx: 0,\n cy: 0,\n d: 0,\n datatype: 0,\n decelerate: 0,\n descent: 0,\n diffuseConstant: 1,\n direction: 0,\n display: 0,\n divisor: 0,\n dominantBaseline: 1,\n 'dominant-baseline': 'dominantBaseline',\n dur: 0,\n dx: 0,\n dy: 0,\n edgeMode: 1,\n elevation: 0,\n enableBackground: 1,\n 'enable-background': 'enableBackground',\n end: 0,\n exponent: 0,\n externalResourcesRequired: 1,\n fill: 0,\n fillOpacity: 1,\n 'fill-opacity': 'fillOpacity',\n fillRule: 1,\n 'fill-rule': 'fillRule',\n filter: 0,\n filterRes: 1,\n filterUnits: 1,\n floodOpacity: 1,\n 'flood-opacity': 'floodOpacity',\n floodColor: 1,\n 'flood-color': 'floodColor',\n focusable: 0,\n fontFamily: 1,\n 'font-family': 'fontFamily',\n fontSize: 1,\n 'font-size': 'fontSize',\n fontSizeAdjust: 1,\n 'font-size-adjust': 'fontSizeAdjust',\n fontStretch: 1,\n 'font-stretch': 'fontStretch',\n fontStyle: 1,\n 'font-style': 'fontStyle',\n fontVariant: 1,\n 'font-variant': 'fontVariant',\n fontWeight: 1,\n 'font-weight': 'fontWeight',\n format: 0,\n from: 0,\n fx: 0,\n fy: 0,\n g1: 0,\n g2: 0,\n glyphName: 1,\n 'glyph-name': 'glyphName',\n glyphOrientationHorizontal: 1,\n 'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n glyphOrientationVertical: 1,\n 'glyph-orientation-vertical': 'glyphOrientationVertical',\n glyphRef: 1,\n gradientTransform: 1,\n gradientUnits: 1,\n hanging: 0,\n horizAdvX: 1,\n 'horiz-adv-x': 'horizAdvX',\n horizOriginX: 1,\n 'horiz-origin-x': 'horizOriginX',\n ideographic: 0,\n imageRendering: 1,\n 'image-rendering': 'imageRendering',\n in2: 0,\n in: 0,\n inlist: 0,\n intercept: 0,\n k1: 0,\n k2: 0,\n k3: 0,\n k4: 0,\n k: 0,\n kernelMatrix: 1,\n kernelUnitLength: 1,\n kerning: 0,\n keyPoints: 1,\n keySplines: 1,\n keyTimes: 1,\n lengthAdjust: 1,\n letterSpacing: 1,\n 'letter-spacing': 'letterSpacing',\n lightingColor: 1,\n 'lighting-color': 'lightingColor',\n limitingConeAngle: 1,\n local: 0,\n markerEnd: 1,\n 'marker-end': 'markerEnd',\n markerHeight: 1,\n markerMid: 1,\n 'marker-mid': 'markerMid',\n markerStart: 1,\n 'marker-start': 'markerStart',\n markerUnits: 1,\n markerWidth: 1,\n mask: 0,\n maskContentUnits: 1,\n maskUnits: 1,\n mathematical: 0,\n mode: 0,\n numOctaves: 1,\n offset: 0,\n opacity: 0,\n operator: 0,\n order: 0,\n orient: 0,\n orientation: 0,\n origin: 0,\n overflow: 0,\n overlinePosition: 1,\n 'overline-position': 'overlinePosition',\n overlineThickness: 1,\n 'overline-thickness': 'overlineThickness',\n paintOrder: 1,\n 'paint-order': 'paintOrder',\n panose1: 0,\n 'panose-1': 'panose1',\n pathLength: 1,\n patternContentUnits: 1,\n patternTransform: 1,\n patternUnits: 1,\n pointerEvents: 1,\n 'pointer-events': 'pointerEvents',\n points: 0,\n pointsAtX: 1,\n pointsAtY: 1,\n pointsAtZ: 1,\n prefix: 0,\n preserveAlpha: 1,\n preserveAspectRatio: 1,\n primitiveUnits: 1,\n property: 0,\n r: 0,\n radius: 0,\n refX: 1,\n refY: 1,\n renderingIntent: 1,\n 'rendering-intent': 'renderingIntent',\n repeatCount: 1,\n repeatDur: 1,\n requiredExtensions: 1,\n requiredFeatures: 1,\n resource: 0,\n restart: 0,\n result: 0,\n results: 0,\n rotate: 0,\n rx: 0,\n ry: 0,\n scale: 0,\n security: 0,\n seed: 0,\n shapeRendering: 1,\n 'shape-rendering': 'shapeRendering',\n slope: 0,\n spacing: 0,\n specularConstant: 1,\n specularExponent: 1,\n speed: 0,\n spreadMethod: 1,\n startOffset: 1,\n stdDeviation: 1,\n stemh: 0,\n stemv: 0,\n stitchTiles: 1,\n stopColor: 1,\n 'stop-color': 'stopColor',\n stopOpacity: 1,\n 'stop-opacity': 'stopOpacity',\n strikethroughPosition: 1,\n 'strikethrough-position': 'strikethroughPosition',\n strikethroughThickness: 1,\n 'strikethrough-thickness': 'strikethroughThickness',\n string: 0,\n stroke: 0,\n strokeDasharray: 1,\n 'stroke-dasharray': 'strokeDasharray',\n strokeDashoffset: 1,\n 'stroke-dashoffset': 'strokeDashoffset',\n strokeLinecap: 1,\n 'stroke-linecap': 'strokeLinecap',\n strokeLinejoin: 1,\n 'stroke-linejoin': 'strokeLinejoin',\n strokeMiterlimit: 1,\n 'stroke-miterlimit': 'strokeMiterlimit',\n strokeWidth: 1,\n 'stroke-width': 'strokeWidth',\n strokeOpacity: 1,\n 'stroke-opacity': 'strokeOpacity',\n suppressContentEditableWarning: 1,\n suppressHydrationWarning: 1,\n surfaceScale: 1,\n systemLanguage: 1,\n tableValues: 1,\n targetX: 1,\n targetY: 1,\n textAnchor: 1,\n 'text-anchor': 'textAnchor',\n textDecoration: 1,\n 'text-decoration': 'textDecoration',\n textLength: 1,\n textRendering: 1,\n 'text-rendering': 'textRendering',\n to: 0,\n transform: 0,\n typeof: 0,\n u1: 0,\n u2: 0,\n underlinePosition: 1,\n 'underline-position': 'underlinePosition',\n underlineThickness: 1,\n 'underline-thickness': 'underlineThickness',\n unicode: 0,\n unicodeBidi: 1,\n 'unicode-bidi': 'unicodeBidi',\n unicodeRange: 1,\n 'unicode-range': 'unicodeRange',\n unitsPerEm: 1,\n 'units-per-em': 'unitsPerEm',\n unselectable: 0,\n vAlphabetic: 1,\n 'v-alphabetic': 'vAlphabetic',\n values: 0,\n vectorEffect: 1,\n 'vector-effect': 'vectorEffect',\n version: 0,\n vertAdvY: 1,\n 'vert-adv-y': 'vertAdvY',\n vertOriginX: 1,\n 'vert-origin-x': 'vertOriginX',\n vertOriginY: 1,\n 'vert-origin-y': 'vertOriginY',\n vHanging: 1,\n 'v-hanging': 'vHanging',\n vIdeographic: 1,\n 'v-ideographic': 'vIdeographic',\n viewBox: 1,\n viewTarget: 1,\n visibility: 0,\n vMathematical: 1,\n 'v-mathematical': 'vMathematical',\n vocab: 0,\n widths: 0,\n wordSpacing: 1,\n 'word-spacing': 'wordSpacing',\n writingMode: 1,\n 'writing-mode': 'writingMode',\n x1: 0,\n x2: 0,\n x: 0,\n xChannelSelector: 1,\n xHeight: 1,\n 'x-height': 'xHeight',\n xlinkActuate: 1,\n 'xlink:actuate': 'xlinkActuate',\n xlinkArcrole: 1,\n 'xlink:arcrole': 'xlinkArcrole',\n xlinkHref: 1,\n 'xlink:href': 'xlinkHref',\n xlinkRole: 1,\n 'xlink:role': 'xlinkRole',\n xlinkShow: 1,\n 'xlink:show': 'xlinkShow',\n xlinkTitle: 1,\n 'xlink:title': 'xlinkTitle',\n xlinkType: 1,\n 'xlink:type': 'xlinkType',\n xmlBase: 1,\n 'xml:base': 'xmlBase',\n xmlLang: 1,\n 'xml:lang': 'xmlLang',\n xmlns: 0,\n 'xml:space': 'xmlSpace',\n xmlnsXlink: 1,\n 'xmlns:xlink': 'xmlnsXlink',\n xmlSpace: 1,\n y1: 0,\n y2: 0,\n y: 0,\n yChannelSelector: 1,\n z: 0,\n zoomAndPan: 1\n};\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import StyleToObject from 'style-to-object';\n\nimport { camelCase, CamelCaseOptions } from './utilities';\n\ntype StyleObject = Record<string, string>;\n\ninterface StyleToJSOptions extends CamelCaseOptions {}\n\n/**\n * Parses CSS inline style to JavaScript object (camelCased).\n */\nfunction StyleToJS(style: string, options?: StyleToJSOptions): StyleObject {\n const output: StyleObject = {};\n\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n StyleToObject(style, (property, value) => {\n // skip CSS comment\n if (property && value) {\n output[camelCase(property, options)] = value;\n }\n });\n\n return output;\n}\n\nStyleToJS.default = StyleToJS;\n\nexport = StyleToJS;\n","const CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9_-]+$/;\nconst HYPHEN_REGEX = /-([a-z])/g;\nconst NO_HYPHEN_REGEX = /^[^-]+$/;\nconst VENDOR_PREFIX_REGEX = /^-(webkit|moz|ms|o|khtml)-/;\nconst MS_VENDOR_PREFIX_REGEX = /^-(ms)-/;\n\n/**\n * Checks whether to skip camelCase.\n */\nconst skipCamelCase = (property: string) =>\n !property ||\n NO_HYPHEN_REGEX.test(property) ||\n CUSTOM_PROPERTY_REGEX.test(property);\n\n/**\n * Replacer that capitalizes first character.\n */\nconst capitalize = (match: string, character: string) =>\n character.toUpperCase();\n\n/**\n * Replacer that removes beginning hyphen of vendor prefix property.\n */\nconst trimHyphen = (match: string, prefix: string) => `${prefix}-`;\n\n/**\n * CamelCase options.\n */\nexport interface CamelCaseOptions {\n reactCompat?: boolean;\n}\n\n/**\n * CamelCases a CSS property.\n */\nexport const camelCase = (property: string, options: CamelCaseOptions = {}) => {\n if (skipCamelCase(property)) {\n return property;\n }\n\n property = property.toLowerCase();\n\n if (options.reactCompat) {\n // `-ms` vendor prefix should not be capitalized\n property = property.replace(MS_VENDOR_PREFIX_REGEX, trimHyphen);\n } else {\n // for non-React, remove first hyphen so vendor prefix is not capitalized\n property = property.replace(VENDOR_PREFIX_REGEX, trimHyphen);\n }\n\n return property.replace(HYPHEN_REGEX, capitalize);\n};\n","import type { Declaration } from 'inline-style-parser';\nimport parse from 'inline-style-parser';\n\nexport { Declaration };\n\nexport interface StyleObject {\n [name: string]: string;\n}\n\ntype Iterator = (\n property: string,\n value: string,\n declaration: Declaration,\n) => void;\n\n/**\n * Parses inline style to object.\n *\n * @param style - Inline style.\n * @param iterator - Iterator.\n * @returns - Style object or null.\n *\n * @example Parsing inline style to object:\n *\n * ```js\n * import parse from 'style-to-object';\n * parse('line-height: 42;'); // { 'line-height': '42' }\n * ```\n */\nexport default function StyleToObject(\n style: string,\n iterator?: Iterator,\n): StyleObject | null {\n let styleObject: StyleObject | null = null;\n\n if (!style || typeof style !== 'string') {\n return styleObject;\n }\n\n const declarations = parse(style);\n const hasIterator = typeof iterator === 'function';\n\n declarations.forEach((declaration) => {\n if (declaration.type !== 'declaration') {\n return;\n }\n\n const { property, value } = declaration;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n styleObject = styleObject || {};\n styleObject[property] = value;\n }\n });\n\n return styleObject;\n}\n","'use strict'\n\nconst { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizeComponentEncoding, isIPv4, nonSimpleDomain } = require('./lib/utils')\nconst { SCHEMES, getSchemeHandler } = require('./lib/schemes')\n\n/**\n * @template {import('./types/index').URIComponent|string} T\n * @param {T} uri\n * @param {import('./types/index').Options} [options]\n * @returns {T}\n */\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = /** @type {T} */ (serialize(parse(uri, options), options))\n } else if (typeof uri === 'object') {\n uri = /** @type {T} */ (parse(serialize(uri, options), options))\n }\n return uri\n}\n\n/**\n * @param {string} baseURI\n * @param {string} relativeURI\n * @param {import('./types/index').Options} [options]\n * @returns {string}\n */\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = options ? Object.assign({ scheme: 'null' }, options) : { scheme: 'null' }\n const resolved = resolveComponent(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true)\n schemelessOptions.skipEscape = true\n return serialize(resolved, schemelessOptions)\n}\n\n/**\n * @param {import ('./types/index').URIComponent} base\n * @param {import ('./types/index').URIComponent} relative\n * @param {import('./types/index').Options} [options]\n * @param {boolean} [skipNormalization=false]\n * @returns {import ('./types/index').URIComponent}\n */\nfunction resolveComponent (base, relative, options, skipNormalization) {\n /** @type {import('./types/index').URIComponent} */\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base component\n relative = parse(serialize(relative, options), options) // normalize relative component\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path[0] === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uriA\n * @param {import ('./types/index').URIComponent|string} uriB\n * @param {import ('./types/index').Options} options\n * @returns {boolean}\n */\nfunction equal (uriA, uriB, options) {\n if (typeof uriA === 'string') {\n uriA = unescape(uriA)\n uriA = serialize(normalizeComponentEncoding(parse(uriA, options), true), { ...options, skipEscape: true })\n } else if (typeof uriA === 'object') {\n uriA = serialize(normalizeComponentEncoding(uriA, true), { ...options, skipEscape: true })\n }\n\n if (typeof uriB === 'string') {\n uriB = unescape(uriB)\n uriB = serialize(normalizeComponentEncoding(parse(uriB, options), true), { ...options, skipEscape: true })\n } else if (typeof uriB === 'object') {\n uriB = serialize(normalizeComponentEncoding(uriB, true), { ...options, skipEscape: true })\n }\n\n return uriA.toLowerCase() === uriB.toLowerCase()\n}\n\n/**\n * @param {Readonly<import('./types/index').URIComponent>} cmpts\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction serialize (cmpts, opts) {\n const component = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || component.scheme)\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options)\n\n if (component.path !== undefined) {\n if (!options.skipEscape) {\n component.path = escape(component.path)\n\n if (component.scheme !== undefined) {\n component.path = component.path.split('%3A').join(':')\n }\n } else {\n component.path = unescape(component.path)\n }\n }\n\n if (options.reference !== 'suffix' && component.scheme) {\n uriTokens.push(component.scheme, ':')\n }\n\n const authority = recomposeAuthority(component)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (component.path && component.path[0] !== '/') {\n uriTokens.push('/')\n }\n }\n if (component.path !== undefined) {\n let s = component.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n if (\n authority === undefined &&\n s[0] === '/' &&\n s[1] === '/'\n ) {\n // don't allow the path to start with \"//\"\n s = '/%2F' + s.slice(2)\n }\n\n uriTokens.push(s)\n }\n\n if (component.query !== undefined) {\n uriTokens.push('?', component.query)\n }\n\n if (component.fragment !== undefined) {\n uriTokens.push('#', component.fragment)\n }\n return uriTokens.join('')\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns\n */\nfunction parse (uri, opts) {\n const options = Object.assign({}, opts)\n /** @type {import('./types/index').URIComponent} */\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n\n let isIP = false\n if (options.reference === 'suffix') {\n if (options.scheme) {\n uri = options.scheme + ':' + uri\n } else {\n uri = '//' + uri\n }\n }\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n if (parsed.host) {\n const ipv4result = isIPv4(parsed.host)\n if (ipv4result === false) {\n const ipv6result = normalizeIPv6(parsed.host)\n parsed.host = ipv6result.host.toLowerCase()\n isIP = ipv6result.isIPV6\n } else {\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && parsed.query === undefined && !parsed.path) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme)\n\n // check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n // if host component is a domain name\n if (parsed.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost)) && isIP === false && nonSimpleDomain(parsed.host)) {\n // convert Unicode IDN -> ASCII IDN\n try {\n parsed.host = URL.domainToASCII(parsed.host.toLowerCase())\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n }\n }\n // convert IRI -> URI\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (uri.indexOf('%') !== -1) {\n if (parsed.scheme !== undefined) {\n parsed.scheme = unescape(parsed.scheme)\n }\n if (parsed.host !== undefined) {\n parsed.host = unescape(parsed.host)\n }\n }\n if (parsed.path) {\n parsed.path = escape(unescape(parsed.path))\n }\n if (parsed.fragment) {\n parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment))\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return parsed\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponent,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","'use strict'\n\nconst { isUUID } = require('./utils')\nconst URN_REG = /([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu\n\nconst supportedSchemeNames = /** @type {const} */ (['http', 'https', 'ws',\n 'wss', 'urn', 'urn:uuid'])\n\n/** @typedef {supportedSchemeNames[number]} SchemeName */\n\n/**\n * @param {string} name\n * @returns {name is SchemeName}\n */\nfunction isValidSchemeName (name) {\n return supportedSchemeNames.indexOf(/** @type {*} */ (name)) !== -1\n}\n\n/**\n * @callback SchemeFn\n * @param {import('../types/index').URIComponent} component\n * @param {import('../types/index').Options} options\n * @returns {import('../types/index').URIComponent}\n */\n\n/**\n * @typedef {Object} SchemeHandler\n * @property {SchemeName} scheme - The scheme name.\n * @property {boolean} [domainHost] - Indicates if the scheme supports domain hosts.\n * @property {SchemeFn} parse - Function to parse the URI component for this scheme.\n * @property {SchemeFn} serialize - Function to serialize the URI component for this scheme.\n * @property {boolean} [skipNormalize] - Indicates if normalization should be skipped for this scheme.\n * @property {boolean} [absolutePath] - Indicates if the scheme uses absolute paths.\n * @property {boolean} [unicodeSupport] - Indicates if the scheme supports Unicode.\n */\n\n/**\n * @param {import('../types/index').URIComponent} wsComponent\n * @returns {boolean}\n */\nfunction wsIsSecure (wsComponent) {\n if (wsComponent.secure === true) {\n return true\n } else if (wsComponent.secure === false) {\n return false\n } else if (wsComponent.scheme) {\n return (\n wsComponent.scheme.length === 3 &&\n (wsComponent.scheme[0] === 'w' || wsComponent.scheme[0] === 'W') &&\n (wsComponent.scheme[1] === 's' || wsComponent.scheme[1] === 'S') &&\n (wsComponent.scheme[2] === 's' || wsComponent.scheme[2] === 'S')\n )\n } else {\n return false\n }\n}\n\n/** @type {SchemeFn} */\nfunction httpParse (component) {\n if (!component.host) {\n component.error = component.error || 'HTTP URIs must have a host.'\n }\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction httpSerialize (component) {\n const secure = String(component.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (component.port === (secure ? 443 : 80) || component.port === '') {\n component.port = undefined\n }\n\n // normalize the empty path\n if (!component.path) {\n component.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction wsParse (wsComponent) {\n// indicate if the secure flag is set\n wsComponent.secure = wsIsSecure(wsComponent)\n\n // construct resouce name\n wsComponent.resourceName = (wsComponent.path || '/') + (wsComponent.query ? '?' + wsComponent.query : '')\n wsComponent.path = undefined\n wsComponent.query = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction wsSerialize (wsComponent) {\n// normalize the default port\n if (wsComponent.port === (wsIsSecure(wsComponent) ? 443 : 80) || wsComponent.port === '') {\n wsComponent.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponent.secure === 'boolean') {\n wsComponent.scheme = (wsComponent.secure ? 'wss' : 'ws')\n wsComponent.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponent.resourceName) {\n const [path, query] = wsComponent.resourceName.split('?')\n wsComponent.path = (path && path !== '/' ? path : undefined)\n wsComponent.query = query\n wsComponent.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponent.fragment = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnParse (urnComponent, options) {\n if (!urnComponent.path) {\n urnComponent.error = 'URN can not be parsed'\n return urnComponent\n }\n const matches = urnComponent.path.match(URN_REG)\n if (matches) {\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n urnComponent.nid = matches[1].toLowerCase()\n urnComponent.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponent.nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n urnComponent.path = undefined\n\n if (schemeHandler) {\n urnComponent = schemeHandler.parse(urnComponent, options)\n }\n } else {\n urnComponent.error = urnComponent.error || 'URN can not be parsed.'\n }\n\n return urnComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnSerialize (urnComponent, options) {\n if (urnComponent.nid === undefined) {\n throw new Error('URN without nid cannot be serialized')\n }\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n const nid = urnComponent.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n\n if (schemeHandler) {\n urnComponent = schemeHandler.serialize(urnComponent, options)\n }\n\n const uriComponent = urnComponent\n const nss = urnComponent.nss\n uriComponent.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidParse (urnComponent, options) {\n const uuidComponent = urnComponent\n uuidComponent.uuid = uuidComponent.nss\n uuidComponent.nss = undefined\n\n if (!options.tolerant && (!uuidComponent.uuid || !isUUID(uuidComponent.uuid))) {\n uuidComponent.error = uuidComponent.error || 'UUID is not valid.'\n }\n\n return uuidComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidSerialize (uuidComponent) {\n const urnComponent = uuidComponent\n // normalize UUID\n urnComponent.nss = (uuidComponent.uuid || '').toLowerCase()\n return urnComponent\n}\n\nconst http = /** @type {SchemeHandler} */ ({\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst https = /** @type {SchemeHandler} */ ({\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst ws = /** @type {SchemeHandler} */ ({\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n})\n\nconst wss = /** @type {SchemeHandler} */ ({\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n})\n\nconst urn = /** @type {SchemeHandler} */ ({\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n})\n\nconst urnuuid = /** @type {SchemeHandler} */ ({\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n})\n\nconst SCHEMES = /** @type {Record<SchemeName, SchemeHandler>} */ ({\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n})\n\nObject.setPrototypeOf(SCHEMES, null)\n\n/**\n * @param {string|undefined} scheme\n * @returns {SchemeHandler|undefined}\n */\nfunction getSchemeHandler (scheme) {\n return (\n scheme && (\n SCHEMES[/** @type {SchemeName} */ (scheme)] ||\n SCHEMES[/** @type {SchemeName} */(scheme.toLowerCase())])\n ) ||\n undefined\n}\n\nmodule.exports = {\n wsIsSecure,\n SCHEMES,\n isValidSchemeName,\n getSchemeHandler,\n}\n","'use strict'\n\n/** @type {(value: string) => boolean} */\nconst isUUID = RegExp.prototype.test.bind(/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u)\n\n/**\n * @param {Array<string>} input\n * @returns {string}\n */\nfunction stringArrayToHexStripped (input) {\n let acc = ''\n let code = 0\n let i = 0\n\n for (i = 0; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (code === 48) {\n continue\n }\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n break\n }\n\n for (i += 1; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n }\n return acc\n}\n\n/**\n * @typedef {Object} GetIPV6Result\n * @property {boolean} error - Indicates if there was an error parsing the IPv6 address.\n * @property {string} address - The parsed IPv6 address.\n * @property {string} [zone] - The zone identifier, if present.\n */\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nconst nonSimpleDomain = RegExp.prototype.test.bind(/[^!\"$&'()*+,\\-.;=_`a-z{}~]/u)\n\n/**\n * @param {Array<string>} buffer\n * @returns {boolean}\n */\nfunction consumeIsZone (buffer) {\n buffer.length = 0\n return true\n}\n\n/**\n * @param {Array<string>} buffer\n * @param {Array<string>} address\n * @param {GetIPV6Result} output\n * @returns {boolean}\n */\nfunction consumeHextets (buffer, address, output) {\n if (buffer.length) {\n const hex = stringArrayToHexStripped(buffer)\n if (hex !== '') {\n address.push(hex)\n } else {\n output.error = true\n return false\n }\n buffer.length = 0\n }\n return true\n}\n\n/**\n * @param {string} input\n * @returns {GetIPV6Result}\n */\nfunction getIPV6 (input) {\n let tokenCount = 0\n const output = { error: false, address: '', zone: '' }\n /** @type {Array<string>} */\n const address = []\n /** @type {Array<string>} */\n const buffer = []\n let endipv6Encountered = false\n let endIpv6 = false\n\n let consume = consumeHextets\n\n for (let i = 0; i < input.length; i++) {\n const cursor = input[i]\n if (cursor === '[' || cursor === ']') { continue }\n if (cursor === ':') {\n if (endipv6Encountered === true) {\n endIpv6 = true\n }\n if (!consume(buffer, address, output)) { break }\n if (++tokenCount > 7) {\n // not valid\n output.error = true\n break\n }\n if (i > 0 && input[i - 1] === ':') {\n endipv6Encountered = true\n }\n address.push(':')\n continue\n } else if (cursor === '%') {\n if (!consume(buffer, address, output)) { break }\n // switch to zone detection\n consume = consumeIsZone\n } else {\n buffer.push(cursor)\n continue\n }\n }\n if (buffer.length) {\n if (consume === consumeIsZone) {\n output.zone = buffer.join('')\n } else if (endIpv6) {\n address.push(buffer.join(''))\n } else {\n address.push(stringArrayToHexStripped(buffer))\n }\n }\n output.address = address.join('')\n return output\n}\n\n/**\n * @typedef {Object} NormalizeIPv6Result\n * @property {string} host - The normalized host.\n * @property {string} [escapedHost] - The escaped host.\n * @property {boolean} isIPV6 - Indicates if the host is an IPv6 address.\n */\n\n/**\n * @param {string} host\n * @returns {NormalizeIPv6Result}\n */\nfunction normalizeIPv6 (host) {\n if (findToken(host, ':') < 2) { return { host, isIPV6: false } }\n const ipv6 = getIPV6(host)\n\n if (!ipv6.error) {\n let newHost = ipv6.address\n let escapedHost = ipv6.address\n if (ipv6.zone) {\n newHost += '%' + ipv6.zone\n escapedHost += '%25' + ipv6.zone\n }\n return { host: newHost, isIPV6: true, escapedHost }\n } else {\n return { host, isIPV6: false }\n }\n}\n\n/**\n * @param {string} str\n * @param {string} token\n * @returns {number}\n */\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\n/**\n * @param {string} path\n * @returns {string}\n *\n * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n */\nfunction removeDotSegments (path) {\n let input = path\n const output = []\n let nextSlash = -1\n let len = 0\n\n // eslint-disable-next-line no-cond-assign\n while (len = input.length) {\n if (len === 1) {\n if (input === '.') {\n break\n } else if (input === '/') {\n output.push('/')\n break\n } else {\n output.push(input)\n break\n }\n } else if (len === 2) {\n if (input[0] === '.') {\n if (input[1] === '.') {\n break\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.' || input[1] === '/') {\n output.push('/')\n break\n }\n }\n } else if (len === 3) {\n if (input === '/..') {\n if (output.length !== 0) {\n output.pop()\n }\n output.push('/')\n break\n }\n }\n if (input[0] === '.') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(3)\n continue\n }\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(2)\n continue\n } else if (input[2] === '.') {\n if (input[3] === '/') {\n input = input.slice(3)\n if (output.length !== 0) {\n output.pop()\n }\n continue\n }\n }\n }\n }\n\n // Rule 2E: Move normal path segment to output\n if ((nextSlash = input.indexOf('/', 1)) === -1) {\n output.push(input)\n break\n } else {\n output.push(input.slice(0, nextSlash))\n input = input.slice(nextSlash)\n }\n }\n\n return output.join('')\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @param {boolean} esc\n * @returns {import('../types/index').URIComponent}\n */\nfunction normalizeComponentEncoding (component, esc) {\n const func = esc !== true ? escape : unescape\n if (component.scheme !== undefined) {\n component.scheme = func(component.scheme)\n }\n if (component.userinfo !== undefined) {\n component.userinfo = func(component.userinfo)\n }\n if (component.host !== undefined) {\n component.host = func(component.host)\n }\n if (component.path !== undefined) {\n component.path = func(component.path)\n }\n if (component.query !== undefined) {\n component.query = func(component.query)\n }\n if (component.fragment !== undefined) {\n component.fragment = func(component.fragment)\n }\n return component\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @returns {string|undefined}\n */\nfunction recomposeAuthority (component) {\n const uriTokens = []\n\n if (component.userinfo !== undefined) {\n uriTokens.push(component.userinfo)\n uriTokens.push('@')\n }\n\n if (component.host !== undefined) {\n let host = unescape(component.host)\n if (!isIPv4(host)) {\n const ipV6res = normalizeIPv6(host)\n if (ipV6res.isIPV6 === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = component.host\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof component.port === 'number' || typeof component.port === 'string') {\n uriTokens.push(':')\n uriTokens.push(String(component.port))\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n nonSimpleDomain,\n recomposeAuthority,\n normalizeComponentEncoding,\n removeDotSegments,\n isIPv4,\n isUUID,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };"],"names":["React","props","ref","AntdIcon","_extends","icon","DeleteOutlinedSvg","DownloadOutlinedSvg","EditOutlinedSvg","EyeOutlinedSvg","LinkOutlinedSvg","PrinterOutlinedSvg","UploadOutlinedSvg","destroyObserver","count","logEnabled","hiddenCheckEnabled","msgId","pagePosition","requestAnimationFrame","window","resetRequiredMethods","Object","freeze","max","scroll","bodyScroll","documentElementScroll","settings","timer","defaults","autoResize","bodyBackground","bodyMargin","bodyMarginV1","bodyPadding","checkOrigin","inPageLinks","enablePublicMethods","heightCalculationMethod","id","interval","license","log","maxHeight","Infinity","maxWidth","minHeight","minWidth","mouseEvents","resizeFrom","scrolling","sizeHeight","sizeWidth","warningTimeout","tolerance","widthCalculationMethod","onClose","onClosed","onInit","onMessage","warn","onMouseEnter","onMouseLeave","onResized","onScroll","getMutationObserver","MutationObserver","WebKitMutationObserver","MozMutationObserver","addEventListener","el","evt","func","removeEventListener","formatLogHeader","iframeId","retStr","top","self","parentIFrame","getId","getMyID","isLogEnabled","msg","output","type","enabled","console","iFrameListener","event","resizeIFrame","ensureInRange","syncResize","setSize","messageData","setPagePosition","on","getPaddingEnds","compStyle","boxSizing","paddingTop","parseInt","paddingBottom","getBorderEnds","borderTopWidth","borderBottomWidth","Dimension","Number","min","dimension","toLowerCase","size","getMsgBody","offset","slice","indexOf","msgHeader","sendPageInfoToIframe","iframe","fn","time","frameId","trigger","bodyPosition","document","body","getBoundingClientRect","iFramePosition","JSON","stringify","iframeHeight","height","iframeWidth","width","clientHeight","Math","documentElement","innerHeight","clientWidth","innerWidth","offsetTop","offsetLeft","left","scrollTop","pageYOffset","scrollLeft","pageXOffset","documentHeight","documentWidth","windowHeight","windowWidth","getPageInfo","frameTimer","setTimeout","getElementPosition","target","getPagePosition","x","floor","y","scrollRequestFromChild","addOffset","newPosition","scrollTo","unsetPagePosition","onMouse","mousePos","data","split","screenX","screenY","funcName","val","chkEvent","createOutgoingMsg","iFrameReadyMsgReceived","getComputedStyle","processMsg","loaded","retCode","true","false","undefined","isMessageFromMetaParent","retBool","hasSettings","checkIFrameExists","origin","constructor","Array","i","length","checkList","remoteHost","checkSingle","Error","isMessageFromIFrame","firstRun","closeIFrame","msgBody","message","parse","setListener","sendPageInfo","stop","forEach","stopPageInfo","startPageInfoMonitor","location","hash","hashData","decodeURIComponent","getElementById","getElementsByName","jumpPosition","jumpToTarget","moveToAnchor","findTarget","resetIFrame","actionMsg","info","retVal","TypeError","removeIframeListeners","parentNode","removeChild","error","disconnect","chkZero","checkIFrames","checkIFrame","settingId","chkDimension","style","isVisible","offsetParent","keys","key","mutationObserved","mutations","debouce","createMutationObserver","querySelector","config","attributes","attributeOldValue","characterData","characterDataOldValue","childList","subtree","observe","fixHiddenIFrames","processDimension","setDimension","doNotSync","jasmine","calleeMsg","noResponseWarning","errorShown","contentWindow","targetOrigin","postMessage","postMessageToIFrame","msgTimeout","setupIFrame","options","depricate","splitName","name","charAt","toUpperCase","this","newId","src","ensureHasId","create","join","checkOptions","option","prototype","hasOwnProperty","call","copyOptions","match","processOptions","overflow","setScrolling","addStyle","styleValue","chkMinMax","setLimits","mutation","removedNodes","removedNode","createDestroyObserver","resetRequertMethod","checkReset","init","iFrameResizer","close","bind","removeListeners","resize","anchor","sendMessage","tabVisible","visibilityState","sendTriggerMsg","eventName","isIFrameResizeEnabled","setupEventListeners","index","element","tagName","chkType","iFrames","push","vendors","setupRequestAnimationFrame","warnDeprecatedOptions","querySelectorAll","factory","decodeCache","decode","string","exclude","defaultChars","cache","ch","String","fromCharCode","charCodeAt","toString","getDecodeCache","replace","seq","result","l","b1","b2","chr","b3","b4","componentChars","encodeCache","encode","keepEscaped","test","getEncodeCache","code","nextCode","encodeURIComponent","format","url","protocol","slashes","auth","hostname","port","pathname","search","Url","protocolPattern","portPattern","simplePathPattern","unwise","concat","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","hostlessProtocol","javascript","slashedProtocol","http","https","ftp","gopher","file","slashesDenoteHost","lowerProto","hec","rest","trim","simplePath","exec","proto","substr","atSign","hostEnd","lastIndexOf","host","parseHost","ipv6Hostname","hostparts","part","newpart","j","k","validParts","notHost","bit","unshift","qm","u","Uint16Array","map","c","decodeMap","Map","fromCodePoint","_a","codePoint","replaceCodePoint","get","CharCodes","BinTrieFlags","EntityDecoderState","DecodingMode","isNumber","ZERO","NINE","isHexadecimalCharacter","UPPER_A","UPPER_F","LOWER_A","LOWER_F","isEntityInAttributeInvalidEnd","EQUALS","UPPER_Z","LOWER_Z","isAsciiAlphaNumeric","EntityDecoder","decodeTree","emitCodePoint","errors","state","EntityStart","consumed","treeIndex","excess","decodeMode","Strict","startEntity","write","str","NUM","NumericStart","stateNumericStart","NamedEntity","stateNamedEntity","NumericDecimal","stateNumericDecimal","NumericHex","stateNumericHex","LOWER_X","addToNumericResult","start","end","base","digitCount","pow","startIdx","char","emitNumericEntity","lastCp","expectedLength","absenceOfDigitsInNumericCharacterReference","SEMI","missingSemicolonAfterCharacterReference","validateNumericCharacterReference","current","valueLength","VALUE_LENGTH","determineBranch","Attribute","emitNotTerminatedNamedEntity","emitNamedEntityData","getDecoder","ret","decoder","lastIndex","len","nodeIdx","branchCount","BRANCH_LENGTH","jumpOffset","JUMP_TABLE","value","lo","hi","mid","midVal","htmlDecoder","htmlDecodeTree","xmlDecodeTree","decodeHTML","mode","arguments","Legacy","restoreDiff","arr","v","n","o","xmlCodeMap","codePointAt","getEscaper","regex","lastIdx","substring","EntityLevel","EncodingMode","isString","obj","_class","_hasOwnProperty","has","object","assign","source","arrayReplaceAt","pos","newElements","isValidEntityCode","surrogate1","surrogate2","UNESCAPE_MD_RE","UNESCAPE_ALL_RE","RegExp","DIGITAL_ENTITY_TEST_RE","unescapeMd","unescapeAll","escaped","entity","decoded","replaceEntityPattern","HTML_ESCAPE_TEST_RE","HTML_ESCAPE_REPLACE_RE","HTML_REPLACEMENTS","replaceUnsafeChar","escapeHtml","REGEXP_ESCAPE_RE","escapeRE","isSpace","isWhiteSpace","isPunctChar","ucmicro","isMdAsciiPunct","normalizeReference","lib","mdurl","parseLinkLabel","disableNested","level","found","marker","prevPos","posMax","oldPos","md","inline","skipToken","labelEnd","parseLinkDestination","ok","parseLinkTitle","prev_state","can_continue","default_rules","Renderer","rules","code_inline","tokens","idx","env","slf","token","renderAttrs","content","code_block","fence","highlighted","langName","langAttrs","highlight","attrIndex","tmpAttrs","attrs","langPrefix","tmpToken","image","renderInlineAsText","children","renderToken","hardbreak","xhtmlOut","softbreak","breaks","text","html_block","html_inline","hidden","block","nesting","tag","needLf","nextToken","renderInline","render","Ruler","__rules__","__cache__","__find__","__compile__","chains","rule","alt","altName","chain","at","opt","before","beforeName","ruleName","splice","after","afterName","enable","list","ignoreInvalid","isArray","enableOnly","disable","getRules","chainName","Token","markup","meta","attrPush","attrData","attrSet","attrGet","attrJoin","StateCore","inlineMode","NEWLINES_RE","NULL_RE","isLinkOpen","isLinkClose","RARE_RE","SCOPED_ABBR_TEST_RE","SCOPED_ABBR_RE","SCOPED_ABBR","r","tm","replaceFn","replace_scoped","inlineTokens","inside_autolink","replace_rare","QUOTE_TEST_RE","QUOTE_RE","replaceAt","process_inlines","stack","thisLevel","OUTER","t","canOpen","canClose","isSingle","lastChar","nextChar","isLastPunctChar","isNextPunctChar","isLastWhiteSpace","isNextWhiteSpace","item","single","openQuote","closeQuote","quotes","_rules","tok","blockTokens","linkify","pretest","htmlLinkLevel","currentToken","links","nodes","lastPos","ln","fullUrl","normalizeLink","validateLink","urlText","schema","normalizeLinkText","token_o","token_t","token_c","blkIdx","typographer","curr","last","Core","ruler","process","State","StateBlock","bMarks","eMarks","tShift","sCount","bsCount","blkIndent","line","lineMax","tight","ddIndent","listIndent","parentType","s","indent","indent_found","isEmpty","skipEmptyLines","from","skipSpaces","skipSpacesBack","skipChars","skipCharsBack","getLines","begin","keepLastLF","queue","lineIndent","lineStart","first","getLine","escapedSplit","isEscaped","skipBulletListMarker","startLine","skipOrderedListMarker","open_tag","close_tag","HTML_TAG_RE","HTML_OPEN_CLOSE_TAG_RE","HTML_SEQUENCES","endLine","silent","nextLine","firstCh","secondCh","lineText","columns","aligns","shift","pop","columnCount","oldParentType","terminatorRules","tableLines","token_ho","token_il","tbodyLines","autocompletedCells","terminate","token_tdo","mem","params","haveEndMarker","oldLineMax","oldBMarks","oldBSCount","oldSCount","oldTShift","lastLineEmpty","isOutdented","spaceAfterMarker","adjustTab","initial","oldIndent","lines","tokenize","cnt","isOrdered","markerValue","posAfterMarker","isTerminatingParagraph","markerCharCode","listTokIdx","listLines","prevEmptyEnd","contentStart","indentAfterMarker","itemLines","oldTight","oldListIndent","markTightParagraphs","_endLine","getNextLine","isContinuation","lineContent","destRes","helpers","href","destEndPos","destEndLineNo","title","titleRes","label","references","html","tmp","token_i","ParserBlock","maxNesting","hasEmptyLines","prevLine","outTokens","StateInline","tokens_meta","pending","pendingLevel","delimiters","_prev_delimiters","backticks","backticksScanned","linkLevel","pushPending","token_meta","scanDelims","canSplitWord","left_flanking","right_flanking","can_open","can_close","isTerminatorChar","SCHEME_RE","ESCAPED","postProcess","loneMarkers","startDelim","endDelim","scanned","open","isStrong","EMAIL_RE","AUTOLINK_RE","DIGITAL_RE","NAMED_RE","processDelimiters","openersBottom","headerIdx","lastTokenIdx","jumps","closerIdx","closer","minOpenerIdx","openerIdx","newMinOpenerIdx","opener","isOddMatch","lastJump","link","matchAtStart","urlEnd","pmax","ws","ch1","escapedStr","ch2","origStr","openerLength","matchStart","matchEnd","closerLength","r_strikethrough","r_emphasis","res","parseReference","labelStart","lc","isLetter","_rules2","ParserInline","ruler2","isFunction","defaultOptions","fuzzyLink","fuzzyEmail","fuzzyIP","defaultSchemas","validate","tail","re","src_auth","src_host_port_strict","src_path","no_http","src_domain","src_domain_root","src_port","src_host_terminator","mailto","src_email_name","src_host_strict","tlds_default","compile","opts","src_Any","Any","src_Cc","Cc","src_Z","Z","src_P","P","src_ZPCc","src_ZCc","text_separators","src_pseudo_letter","src_ip4","src_xn","src_host","tpl_host_fuzzy","tpl_host_no_ip_fuzzy","tpl_host_fuzzy_strict","tpl_host_port_fuzzy_strict","tpl_host_port_no_ip_fuzzy_strict","tpl_host_fuzzy_test","tpl_email_fuzzy","tpl_link_fuzzy","tpl_link_no_ip_fuzzy","reFactory","__opts__","tlds","__tlds__","untpl","tpl","src_tlds","onCompile","__tlds_replaced__","email_fuzzy","link_fuzzy","link_no_ip_fuzzy","host_fuzzy_test","aliases","schemaError","__compiled__","__schemas__","compiled","isRegExp","createValidator","normalize","alias","slist","filter","schema_test","schema_search","schema_at_start","__index__","__text_cache__","resetScanCache","Match","__last_index__","__schema__","raw","createMatch","LinkifyIt","schemas","reduce","acc","add","definition","set","m","ml","me","next","tld_pos","at_pos","testSchemaAt","keepOld","sort","reverse","maxInt","regexPunycode","regexNonASCII","regexSeparators","stringFromCharCode","RangeError","mapDomain","domain","callback","parts","encoded","array","ucs2decode","counter","extra","basicToDigit","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","baseMinusTMin","input","inputLength","bias","basic","oldi","w","baseMinusT","out","currentValue","basicLength","handledCPCount","handledCPCountPlusOne","q","qMinusT","codePoints","default","components","core","zero","rules2","commonmark","BAD_PROTO_RE","GOOD_DATA_RE","RECODE_HOSTNAME_FOR","parsed","punycode","er","MarkdownIt","presetName","utils","ParserCore","renderer","configure","presets","missed","use","plugin","args","apply","parseInline","isNothing","subject","repeat_1","cycle","extend_1","sourceKeys","common","isObject","toArray","sequence","repeat","isNegativeZero","number","NEGATIVE_INFINITY","extend","formatError","exception","compact","where","reason","mark","column","snippet","YAMLException$1","captureStackTrace","buffer","lineEnd","position","maxLineLength","head","maxHalfLength","padStart","maxLength","linesBefore","linesAfter","lineStarts","lineEnds","foundLineNo","lineNoLength","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","kind","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","multi","styleAliases","compileStyleAliases","compileList","currentType","newIndex","previousType","previousIndex","Schema$1","implicit","explicit","type$1","loadKind","compiledImplicit","compiledExplicit","compiledTypeMap","scalar","mapping","fallback","collectType","compileMap","failsafe","_null","canonical","lowercase","uppercase","camelcase","empty","bool","isHexCode","isOctCode","isDecCode","int","hasDigits","sign","binary","octal","decimal","hexadecimal","YAML_FLOAT_PATTERN","SCIENTIFIC_WITHOUT_DOT","float","POSITIVE_INFINITY","NaN","parseFloat","isNaN","json","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","timestamp","year","month","day","hour","minute","second","date","fraction","Date","UTC","setTime","getTime","toISOString","merge","BASE64_MAP","bitlen","tailbits","bits","Uint8Array","_hasOwnProperty$3","_toString$2","omap","pair","pairKey","pairHasKey","objectKeys","_toString$1","pairs","_hasOwnProperty$2","_default","_hasOwnProperty$1","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","is_EOL","is_WHITE_SPACE","is_WS_OR_EOL","is_FLOW_INDICATOR","fromHexCode","escapedHexLen","fromDecimalCode","simpleEscapeSequence","charFromCodepoint","setProperty","defineProperty","configurable","enumerable","writable","simpleEscapeCheck","simpleEscapeMap","State$1","filename","onWarning","legacy","listener","implicitTypes","typeMap","firstTabInLine","documents","generateError","throwError","throwWarning","directiveHandlers","YAML","major","minor","version","checkLineBreaks","TAG","handle","prefix","tagMap","err","captureSegment","checkJson","_position","_length","_character","_result","mergeMappings","destination","overridableKeys","quantity","storeMappingPair","keyTag","keyNode","valueNode","startLineStart","startPos","readLineBreak","skipSeparationSpace","allowComments","checkIndent","lineBreaks","testDocumentSeparator","writeFoldedLines","readBlockSequence","nodeIndent","_line","_tag","_anchor","detected","anchorMap","composeNode","readTagProperty","tagHandle","isVerbatim","isNamed","readAnchorProperty","parentIndent","nodeContext","allowToSeek","allowCompact","allowBlockStyles","allowBlockScalars","allowBlockCollections","typeIndex","typeQuantity","typeList","flowIndent","blockIndent","indentStatus","atNewLine","hasContent","following","_keyLine","_keyLineStart","_keyPos","atExplicitKey","readBlockMapping","_lineStart","_pos","terminator","isPair","isExplicitPair","isMapping","readNext","readFlowCollection","captureStart","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockScalar","captureEnd","readSingleQuotedScalar","hexLength","hexResult","readDoubleQuotedScalar","readAlias","withinFlowCollection","hasPendingContent","_lineIndent","_kind","readPlainScalar","readDocument","directiveName","directiveArgs","documentStart","hasDirectives","loadDocuments","nullpos","loadAll_1","iterator","loader","loadAll","load","_toString","CHAR_BOM","ESCAPE_SEQUENCES","DEPRECATED_BOOLEANS_SYNTAX","DEPRECATED_BASE60_SYNTAX","encodeHex","character","noArrayIndent","skipInvalid","flowLevel","styleMap","compileStyleMap","sortKeys","lineWidth","noRefs","noCompatMode","condenseFlow","quotingType","forceQuotes","replacer","explicitTypes","duplicates","usedDuplicates","indentString","spaces","ind","generateNextLine","isWhitespace","isPrintable","isNsCharOrWhitespace","isPlainSafe","prev","inblock","cIsNsCharOrWhitespace","cIsNsChar","needIndentIndicator","chooseScalarStyle","singleLineOnly","indentPerLevel","testAmbiguousType","prevChar","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","isPlainSafeLast","writeScalar","iskey","dump","testImplicitResolving","blockHeader","dropEndingNewline","moreIndented","lineRe","nextLF","foldLine","prevMoreIndented","foldString","escapeSeq","escapeString","indentIndicator","clip","breakRe","writeBlockSequence","writeNode","detectType","isblockseq","tagStr","duplicateIndex","duplicate","objectOrArray","objectKey","objectValue","explicitPair","pairBuffer","objectKeyList","writeBlockMapping","writeFlowMapping","writeFlowSequence","encodeURI","getDuplicateReferences","objects","duplicatesIndexes","inspectNode","renamed","to","jsYaml","Type","Schema","FAILSAFE_SCHEMA","JSON_SCHEMA","CORE_SCHEMA","DEFAULT_SCHEMA","YAMLException","types","null","safeLoad","safeLoadAll","safeDump","HTMLReactParser","Ajv","properties","required","mdComponents","defaultFence","defaultCodeInline","pattern","matches","results","componentsType","_ref2","jsonData","createElement","setAttribute","dataset","outerHTML","e","yaml","compileVariables","variables","prop","newProps","hasOwn","classNames","classes","arg","appendClass","parseValue","includes","newClass","module","exports","MDComponents","_ref3","className","_components","classnames","htmlParser","attribs","class","componentsData","MdComponent","compiledProps","renderedChildren","renderChildren","child","ChildComponent","globalParams","MarkdownComponentsRender","_ref","customRender","_objectWithoutPropertiesLoose","_excluded","htmlTransform","useRefCallback","plugins","markdown","pluginArgs","useMemo","f","messages","suppressErrors","debug","$","H","documentTitle","onAfterPrint","onPrintError","p","preserveAfterPrint","print","h","g","a","focus","then","catch","contentDocument","E","ownerDocument","some","navigator","userAgent","vendor","opera","O","createTreeWalker","NodeFilter","SHOW_ELEMENT","nextNode","shadowRoot","attachShadow","innerHTML","W","contentNode","clonedContentNode","clonedImgNodes","clonedVideoNodes","numResourcesToLoad","originalCanvasNodes","bodyClass","fonts","ignoreGlobalStyles","pageStyle","C","nonce","T","A","copyShadowRoots","F","L","_","onload","d","appendChild","FontFace","family","weight","b","D","createTextNode","classList","U","getContext","drawImage","getAttribute","Image","onerror","S","N","preload","readyState","onloadeddata","onstalled","R","M","B","sheet","cssRules","cssText","hasAttribute","nodeName","nodeValue","I","Q","contentRef","optionalContent","K","cloneNode","onBeforePrint","printIframeProps","Y","srcdoc","allow","referrerPolicy","sandbox","V","J","_path","SvgPhotoFailpgpCmVwu","svgRef","titleId","viewBox","xmlns","xmlnsXlink","fill","ForwardRef","_defs","_g","SvgAvatarDefaultzCLybCAb","x1","y1","x2","y2","stopColor","stroke","strokeWidth","fillRule","transform","SvgAvatarFemaleIlLWtNkS","points","SvgAvatarMaleyBohnCwo","withOSSFile","WrappedComponent","_apis$file","_Object$assign","loading","ttl","cacheName","apis","currentApis","_excluded$i","baseApis","usePreset","getUrl","_Object$assign2","paramsType","paramsName","fileApi","_excluded2$4","fetchProps","formatId","Fetch","updateType","fetchApi","_excluded3","File","_excluded$h","downloadAction","MouseEvent","download","dispatchEvent","downloadBlobFile","async","locale","notFoundFile","blob","Blob","URL","createObjectURL","ajax","getAjax","headers","responseType","contentDisposition","fileNameMatch","fallbackMatch","formatStaticUrl","staticUrl","useStaticUrl","staticUrlProps","useDownload","_ref4","onError","onSuccess","_apis$file2","App","useApp","downLoading","setDownLoading","useState","_excluded$g","_useFetch","useFetch","auto","isLoading","refresh","otherProps","_excluded2$3","showError","successHandler","downloadHandler","useEffect","unnamedDownloadFile","fileUpload","uploadTips","maxLengthError","fileSizeError","uploadError","uploadAnomaly","fileLoadedError","fileNotFoundError","pageNotFoundError","unSupportFileType","unSupportFileTypeDescription","uploading","unNamedDownloadFile","downloadSuccess","pleaseSetApi","filePreview","Download","createWithIntlProvider","formatMessage","useIntl","api","onClick","_excluded$f","Button","DownloadOutlined","omit","HtmlInnerPreview","_ref5","propsApis","contentWindowUrl","contentWindowUrlProps","useRef","domDocument","DOMParser","parseFromString","parentElement","script","innerText","iFrameResize","frameBorder","HtmlPreview","ignoreContent","_excluded$e","defaultIframe","style$3","transformResponse","_ref6","_ref7","TypePreview","_excluded$d","fileUrl","PreviewComponent","typeComponentMapping","typeFormatComponent","OfficePreview","_excluded$c","previewOffice","_ref8","fileList","_ref9","PdfPreview","memo","scale","rotate","pdfjsUrl","pdfjsUrlProps","autoSize","renderTextLayer","numPages","setNumPages","pdfjs","workerSrc","documentProps","standardFontDataUrl","cMapUrl","cMapPacked","setWidth","useResize","Document","Spin","noData","onLoadSuccess","_ref0","Flex","vertical","gap","Page","pageNumber","renderAnnotationLayer","TextPreview","_ref1","setText","setLoading","setError","method","_ref10","UnknownPreview","_ref11","Result","status","subTitle","ImagePreview","_excluded$b","handlerLoad","handlerError","AudioPreview","_excluded$a","controls","VideoPreview","getElement","_excluded$9","getElementCallback","MarkdownPreview","_excluded$8","_ref12","MarkdownRender","typeFormat","txt","pdf","office","audio","video","unknown","OSSFilePreview","_excluded$7","component","FilePreview","originName","_excluded$6","PrintButton","printProps","_excluded$5","setIsLoading","handler","useReactToPrint","IntlProvider","createIntlProvider","useFileModalProps","footer","openDownload","openPrint","_excluded$4","onOpenChange","useControlValue","onChange","onCancel","Space","css_248z","_ref13","success","PrinterOutlined","useFileModal","renderModal","modalProps","Modal","_excluded2$2","fileProps","FileModal","FileButton","LinkOutlined","_excluded$3","fileModalProps","loadImage","_ref14","Promise","reject","loadingElement","Skeleton","Avatar","shape","active","photoFail","ReactComponent","avatarDefault","ReactComponent$1","avatarFemale","ReactComponent$2","avatarMale","ReactComponent$3","ImageInner","_ref15","innerLoading","innerError","_ref16","style$2","FetchImageInner","renderInner","_ref17","cloneElement","TypeElement","imageLoading","imageError","Image$1","_excluded$2","defaultAvatar","gender","propsShape","_excluded2$1","inner","styleProps","OptionButtons","hasPreview","getPermission","onEdit","onDelete","onPreview","propsRenderModal","justify","EyeOutlined","LoadingButton","EditOutlined","ConfirmButton","DeleteOutlined","List","dataSource","infoItemRenders","userName","Typography","Text","dayjs","List$1","rowKey","uuid","renderItem","Item","style$1","Row","wrap","Col","flex","align","FileType","span","Link","bordered","useFileUpload","useContext","createIntl","namespace","multiple","fileSize","concurrentCount","onAdd","onSave","onUpload","uploadingList","setUploadingList","concurrentCountRef","deferred","createDeferred","onFileSelected","allowCount","allSettled","uniqueId","catchError","errMsg","newList","findIndex","uploadFun","upload","outputData","defaultAccept","FileInput","accept","buttonText","_excluded2","UploadOutlined","_excluded$1","disabled","files","FileUpload","defaultValue","renderTips","defaultTips","showUploadList","ossUpload","propsValue","previewFileList","tipsText","computedAccept","acceptedFiles","acceptedFilesArray","fileName","mimeType","baseMimeType","validType","endsWith","core_1","require","draft7_1","discriminator_1","draft7MetaSchema","META_SUPPORT_DATA","META_SCHEMA_ID","_addVocabularies","super","addVocabulary","discriminator","addKeyword","_addDefaultMetaSchema","metaSchema","$data","$dataMetaSchema","addMetaSchema","refs","defaultMeta","getSchema","validate_1","KeywordCxt","codegen_1","nil","Name","CodeGen","validation_error_1","ref_error_1","_CodeOrName","IDENTIFIER","emptyStr","names","_Code","_items","_str","_names","strs","_len","_key","addCodeArg","plus","expr","safeStringify","_len2","_key2","mergeExprItems","optimize","c1","c2","rx","code_1","scope_1","code_2","strConcat","getProperty","regexpCode","scope_2","Scope","ValueScope","ValueScopeName","varKinds","GT","GTE","LT","LTE","EQ","NEQ","NOT","OR","AND","ADD","Node","optimizeNodes","optimizeNames","_constants","Def","varKind","rhs","es5","_n","var","constants","optimizeExpr","Assign","lhs","sideEffects","addExprNames","AssignOp","op","Label","Break","Throw","AnyCode","ParentNode","subtractNames","addNames","BlockNode","Root","Else","If","condition","else","cond","ns","not","For","ForLoop","iteration","ForRange","ForIter","loop","iterable","Func","Return","Try","finally","_b","Catch","Finally","replaceName","items","par","extScope","_values","_blockStarts","_extScope","_scope","parent","_nodes","_root","scopeName","scopeValue","prefixOrName","Set","getScopeValue","keyOrRef","getValue","scopeRefs","scopeCode","_def","nameOrPrefix","constant","toName","_leafNode","const","_constant","let","operators","keyValues","if","thenBody","elseBody","_blockNode","endIf","elseIf","_elseNode","_endBlockNode","_for","node","forBody","endFor","for","forRange","forOf","forIn","ownProperties","break","return","try","tryBody","catchCode","finallyCode","_currNode","throw","nodeCount","endBlock","toClose","funcBody","endFunc","N1","N2","andCode","mappend","orCode","_len3","_key3","ValueError","UsedValueState","prefixes","_prefixes","_parent","_newName","_nameGroup","nameStr","setValue","property","itemIndex","scopePath","scope","valueKey","vs","_name","values","_reduceValues","usedValues","getCode","valueCode","nameSet","Started","def","Completed","util_1","names_1","addError","gen","errObj","vErrors","returnErrors","it","errs","validateName","schemaEnv","$async","ValidationError","keyword","schemaType","cxt","keywordError","errorPaths","overrideAllErrors","compositeRule","allErrors","errorObjectCode","errsCount","schemaValue","instancePath","errorPath","errSchemaPath","verbose","schemaPath","propertyName","parentSchema","createErrors","errorInstancePath","errorSchemaPath","topSchemaRef","extraErrorProps","errorObject","instPath","getErrorPath","Str","schPath","resolve_1","SchemaEnv","dynamicAnchors","schemaId","root","baseId","normalizeId","localRefs","compileSchema","sch","_sch","getCompilingSchema","rootId","getFullPath","uriResolver","_ValidationError","schemaCxt","parentData","parentDataProperty","dataNames","dataPathArr","dataLevel","dataTypes","definedProperties","jtd","sourceCode","_compilations","validateFunctionCode","validateCode","Function","makeValidate","scopeValues","unevaluated","evaluated","dynamicProps","dynamicItems","logger","delete","inlineOrCompile","inlineRef","inlineRefs","schEnv","sameSchemaEnv","s1","s2","resolveSchema","refPath","_getFullPath","getJsonPointer","schOrRef","schId","resolveUrl","schOrFunc","PREVENT_SCOPE_CHANGE","parsedRef","fragment","partSchema","unescapeFragment","$ref","schemaHasRulesButRef","RULES","valCxt","rootData","jsonPos","jsonLen","jsonPart","MissingRefError","resolver","missingRef","missingSchema","equal","traverse","SIMPLE_INLINED","limit","hasRef","countKeys","REF_KEYWORDS","eachItem","serialize","TRAILING_SLASH_HASH","ANCHOR","baseIds","pathPrefix","schemaRefs","allKeys","jsonPtr","parentJsonPtr","fullPath","innerBaseId","addRef","_resolve","ambiguos","checkAmbiguosRef","addAnchor","$anchor","$dynamicAnchor","sch1","sch2","jsonTypes","groups","integer","boolean","post","all","keywords","checkUnknownRules","strictSchema","checkStrictMode","schemaHasRules","escapeJsonPointer","unescapeJsonPointer","makeMergeEvaluated","mergeNames","mergeToName","mergeValues","resultToName","evaluatedPropsToName","ps","setEvaluated","xs","snippets","dataProp","dataPropType","jsPropertySyntax","Num","shouldUseGroup","group","shouldUseRule","implements","kwd","errors_1","boolError","falseSchemaError","schemaCode","reportError","valid","rules_1","applicability_1","DataType","getJSONTypes","ts","every","isJSONType","nullable","coerceTo","coerceTypes","COERCIBLE","coerceToTypes","checkTypes","schemaHasRulesForType","wrongType","checkDataTypes","strictNumbers","Wrong","dataType","coerced","coerceSpecificType","reportTypeError","assignParentData","coerceData","checkDataType","strictNums","correct","Correct","numCond","_cond","and","toHash","notObj","typeError","schemaRefOrVal","getTypeErrorContext","assignDefault","childData","useDefaults","ty","boolSchema_1","dataType_1","dataType_2","defaults_1","keyword_1","subschema_1","validateFunction","funcSourceUrl","dynamicRef","destructureValCxtES5","destructureValCxt","subschemaCode","isSchemaObj","checkKeywords","schemaCxtHasRules","$comment","commentKeyword","updateContext","checkAsyncSchema","typeAndKeywords","subSchemaObjCode","boolOrEmptySchema","ignoreKeywordsWithRef","checkRefsAndKeywords","schemaKeywords","getSchemaTypes","coerceAndCheckDataType","rootName","typeErrors","groupKeywords","iterateKeywords","strictTypes","includesType","strictTypesError","withTypes","narrowSchemaTypes","checkContextTypes","allowUnionTypes","checkMultipleTypes","hasApplicableType","checkKeywordTypes","checkStrictTypes","keywordCode","assignDefaults","schTs","kwdT","checkNoDefault","resetEvaluated","assignEvaluated","returnResults","topSchemaObjCode","topBoolOrEmptySchema","validateKeywordUsage","getData","validSchemaType","allowUndefined","trackErrors","successAction","failAction","failResult","pass","fail","fail$data","or","invalid$data","append","errorParams","setParams","_error","reportExtraError","$dataError","keyword$DataError","reset","resetErrorsCount","block$data","codeBlock","$dataValid","check$data","validateSchema","st","wrong$DataType","validateSchemaRef","invalid$DataSchema","subschema","appl","getSubschema","extendSubschemaData","extendSubschemaMode","nextContext","mergeEvaluated","mergeValidEvaluated","ruleType","funcKeywordCode","macroKeywordCode","JSON_POINTER","RELATIVE_JSON_POINTER","jsonPointer","up","errorMsg","segments","segment","pointerType","modifyData","useKeyword","macroSchema","macro","schemaRef","checkAsyncKeyword","validateRef","assignValid","_await","passCxt","passContext","passSchema","callValidateCode","modifying","reportErrs","ruleErrs","validateAsync","validateErrs","validateSync","extendErrors","addErrs","deps","dependencies","errorsText","schemaProp","escapeFragment","dpType","dataContextProps","_nextData","jtdDiscriminator","jtdMetadata","compile_1","codegen_2","$dataRefSchema","uri_1","defaultRegExp","flags","META_IGNORE_OPTIONS","EXT_SCOPE_NAMES","removedOptions","errorDataPath","jsonPointers","extendRefs","missingRefs","processCode","strictDefaults","strictKeywords","uniqueItems","unknownFormats","ajvErrors","deprecatedOptions","unicode","requiredOptions","strict","_optz","regExp","_c","_d","_f","_e","_h","_k","_j","strictTuples","_m","_l","strictRequired","_p","_o","loopRequired","_q","loopEnum","_r","_s","_t","_u","_v","addUsedSchema","_w","_x","validateFormats","_y","unicodeRegExp","_z","int32range","_0","formats","_loading","_cache","noLogs","getLogger","formatOpt","_metaOpts","getMetaSchemaOptions","addInitialFormats","addInitialKeywords","addInitialSchemas","_dataRefSchema","$id","schemaKeyRef","_meta","_addSchema","_compileSchemaEnv","compileAsync","loadSchema","runCompileAsync","_schema","loadMetaSchema","$schema","_compileAsync","checkLoaded","loadMissingSchema","_loadSchema","addSchema","_validateSchema","_checkUnique","throwOrLogError","keyRef","getSchEnv","removeSchema","_removeAllSchemas","clear","cacheKey","definitions","kwdOrDef","checkKeyword","addRule","keywordMetaschema","getKeyword","removeKeyword","addFormat","separator","dataVar","keywordsJsonPointers","seg","schemaOrData","getSchemaRefs","startsWith","_compileMetaSchema","currentOpts","checkOpts","optsSchemas","defs","metaOpts","KEYWORD_NAME","ruleGroup","find","addBeforeRule","_rule","$dataRef","anyOf","ucs2length","uri","ajv","validation","validateAdditionalItems","alwaysValidSchema","validateItems","additionalProperty","removeAdditional","allSchemaProperties","patProps","patternProperties","deleteAdditional","additionalPropertyCode","applyAdditionalSchema","definedProp","propsSchema","isOwnProperty","usePattern","isAdditional","schCxt","validateUnion","minContains","maxContains","validateItemsWithCount","schValid","checkLimits","_valid","depsCount","property_ies","missingProperty","propDeps","schDeps","propertyDeps","schemaDeps","splitDependencies","validatePropertyDeps","validateSchemaDeps","missing","hasProperty","propertyInData","depProp","checkReportMissingProp","checkMissingProp","reportMissingProp","ifClause","hasThen","hasSchema","hasElse","validateIf","validateClause","additionalItems_1","prefixItems_1","items_1","items2020_1","contains_1","dependencies_1","propertyNames_1","additionalProperties_1","properties_1","patternProperties_1","not_1","anyOf_1","oneOf_1","allOf_1","if_1","thenElse_1","draft2020","applicator","validateTuple","validateArray","extraItems","schArr","fullTuple","minItems","maxItems","checkStrictTuple","prefixItems","passing","util_2","patterns","alwaysValidPatterns","checkProperties","allowMatchingProperties","checkMatchingProperties","pat","validateProperties","alwaysValid","validatePatternProperties","additionalProperties","allProps","hasDefault","applyPropertySchema","hasPropFunc","noPropertyInData","schemaMap","context","dataAndSchema","newRegExp","useFunc","validArr","notValid","id_1","ref_1","callRef","callRootRef","schOrEnv","resolveRef","getValidate","callValidate","schName","inlineRefSchema","addErrorsFrom","addEvaluatedFrom","schEvaluated","callAsyncRef","types_1","discrError","DiscrError","Tag","oneOf","applyTagSchema","oneOfMapping","topRequired","hasRequired","tagRequired","propSch","addMappings","addMapping","enum","tagValue","getMapping","Mapping","validateMapping","validation_1","applicator_1","format_1","metadata_1","draft7Vocabularies","metadataVocabulary","contentVocabulary","fmts","fDef","fType","callFormat","validData","invalidFmt","validate$DataFormat","formatDef","unknownMsg","unknownFormat","fmtType","fmtRef","fmtDef","fmt","getFormat","validCondition","validateFormat","equal_1","useLoop","eql","getEql","vSchema","equalCode","limitNumber_1","multipleOf_1","limitLength_1","pattern_1","limitProperties_1","required_1","limitItems_1","uniqueItems_1","const_1","enum_1","comp","ucs2length_1","ops","KWDs","maximum","okStr","minimum","exclusiveMaximum","exclusiveMinimum","prec","multipleOfPrecision","invalid","regExpCode","loopAllRequired","allErrorsMode","loopUntilMissing","exitOnErrorMode","requiredKey","itemTypes","loopN","indices","loopN2","outer","ElementType","Doctype","CDATA","Style","Script","Comment","Directive","isTag","elem","__createBinding","k2","desc","getOwnPropertyDescriptor","__esModule","__exportStar","DomHandler","domelementtype_1","node_js_1","defaultOpts","withStartIndices","withEndIndices","xmlMode","elementCB","dom","done","tagStack","lastNode","parser","onparserinit","onreset","onend","handleCallback","onclosetag","endIndex","onopentag","Element","addNode","ontext","oncomment","oncommentend","oncdatastart","oncdataend","onprocessinginstruction","ProcessingInstruction","previousSibling","startIndex","__extends","extendStatics","setPrototypeOf","__proto__","__","__assign","hasChildren","isDocument","isDirective","isComment","isText","isCDATA","NodeWithChildren","DataNode","recursive","_super","_this","cloneChildren","clone_1","clone_2","clone_3","instruction","sourceCodeLocation","childs","valueOf","CASE_SENSITIVE_TAG_NAMES","accumulator","CARRIAGE_RETURN","now","CARRIAGE_RETURN_PLACEHOLDER","utilities_1","escapeSpecialCharacters","FIRST_TAG_REGEX","firstTagName","HTML","doc","hasOpenTag","HEAD","BODY","elements","parseFromDocument","childNodes","createNodeList","parseFromTemplate","domParser_1","implementation","htmlDocument_1","createHTMLDocument","template","createDocumentFragment","DIRECTIVE_REGEX","directive","formatDOM","domparser_1","__importDefault","formatAttributes","openTag","constants_1","CARRIAGE_RETURN_REGEX","revertEscapedCharacters","domNodes","nodesLength","nodeType","formatTagName","domhandler_1","attributesLength","attribute","caseSensitiveTagName","CASE_SENSITIVE_TAG_NAMES_MAP","getCaseSensitiveTagName","CARRIAGE_RETURN_PLACEHOLDER_REGEX","isInputValueOnly","Boolean","valueOnlyInputs","attributeName","attributeValue","react_property_1","isCustomAttribute","attributeNameLowerCased","propName","getPropName","propertyInfo","getPropertyInfo","UNCONTROLLED_COMPONENT_ATTRIBUTES","UNCONTROLLED_COMPONENT_NAMES","BOOLEAN","OVERLOADED_BOOLEAN","PRESERVE_CUSTOM_ATTRIBUTES","setStyleProp","submit","possibleStandardNames","domToReact","reactElements","hasReplace","returnFirstArg","library","isValidElement","replaceElement","skipAttributesToProps","attributes_to_props_1","dangerouslySetInnerHTML","__html","canTextBeChildOfNode","react_1","isCustomComponent","dom_to_react_1","html_dom_parser_1","htmlparser2","domParserOptions","lowerCaseAttributeNames","is","RESERVED_SVG_MATHML_ELEMENTS","style_to_js_1","styleOptions","reactCompat","ELEMENTS_WITH_NO_TEXT_CHILDREN","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","lineno","updatePosition","Position","whitespace","comments","comment","declaration","decl","decls","declarations","cb","_traverse","pre","rootSchema","parentKeyword","keyIndex","arrayKeywords","propsKeywords","escapeJsonPtr","skipKeywords","additionalItems","contains","propertyNames","allOf","$defs","multipleOf","minLength","maxProperties","minProperties","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","entries","entry","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","__data__","Symbol","WeakMap","thisArg","iteratee","resIndex","baseTimes","isArguments","isBuffer","isIndex","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","baseAssignValue","eq","objValue","copyObject","keysIn","arrayEach","assignValue","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","getTag","initCloneArray","initCloneByTag","initCloneObject","isMap","isSet","argsTag","funcTag","objectTag","cloneableTags","baseClone","bitmask","customizer","isDeep","isFlat","isFull","isFunc","stacked","subValue","objectCreate","baseCreate","arrayPush","isFlattenable","baseFlatten","depth","isStrict","baseFor","createBaseFor","castPath","toKey","path","keysFunc","symbolsFunc","getRawTag","objectToString","symToStringTag","toStringTag","baseGetTag","isObjectLike","isMasked","toSource","reIsHostCtor","funcProto","objectProto","funcToString","reIsNative","isLength","typedArrayTags","isPrototype","nativeKeys","nativeKeysIn","isProto","assignMergeValue","baseMergeDeep","safeGet","baseMerge","srcIndex","srcValue","newValue","cloneTypedArray","isArrayLikeObject","isPlainObject","toPlainObject","mergeFunc","isCommon","isTyped","identity","overRest","setToString","baseSetToString","arrayMap","isSymbol","symbolProto","symbolToString","baseToString","isRootPrimitive","isKey","stringToPath","arrayBuffer","byteLength","freeExports","freeModule","Buffer","allocUnsafe","copy","cloneArrayBuffer","dataView","byteOffset","reFlags","regexp","symbolValueOf","symbol","typedArray","isNew","getSymbols","getSymbolsIn","coreJsData","baseRest","isIterateeCall","assigner","sources","guard","fromRight","flatten","freeGlobal","global","baseGetAllKeys","isKeyable","baseIsNative","getPrototype","overArg","getPrototypeOf","nativeObjectToString","isOwn","unmasked","arrayFilter","stubArray","propertyIsEnumerable","nativeGetSymbols","getOwnPropertySymbols","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ArrayBuffer","Ctor","ctorString","nativeCreate","cloneDataView","cloneRegExp","cloneSymbol","spreadableSymbol","isConcatSpreadable","reIsUint","isArrayLike","reIsDeepProp","reIsPlainProp","maskSrcKey","uid","IE_PROTO","assocIndexOf","getMapData","memoize","freeProcess","nodeUtil","binding","nativeMax","otherArgs","baseGet","baseSlice","freeSelf","shortOut","nativeNow","lastCalled","stamp","remaining","LARGE_ARRAY_SIZE","memoizeCapped","rePropName","reEscapeChar","quote","subString","other","baseIsArguments","stubFalse","baseIsMap","baseUnary","nodeIsMap","objectCtorString","baseIsSet","nodeIsSet","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeys","baseKeysIn","memoized","Cache","createAssigner","baseUnset","customOmitClone","flatRest","paths","CLONE_DEEP_FLAG","idCounter","PropertyInfoRecord","mustUseProperty","attributeNamespace","sanitizeURL","removeEmptyString","acceptsBooleans","CAMELIZE","capitalize","CAMELCASE","SAME","possibleStandardNamesOptimized","standardName","BOOLEANISH_STRING","NUMERIC","POSITIVE_NUMERIC","RESERVED","STRING","acceptCharset","accessKey","action","allowFullScreen","as","autoCapitalize","autoComplete","autoCorrect","autoFocus","autoPlay","autoSave","capture","cellPadding","cellSpacing","challenge","charSet","checked","cite","classID","cols","colSpan","contentEditable","contextMenu","controlsList","coords","crossOrigin","dateTime","defaultChecked","defer","dir","disablePictureInPicture","disableRemotePlayback","draggable","encType","enterKeyHint","form","formMethod","formAction","formEncType","formNoValidate","formTarget","high","hrefLang","htmlFor","httpEquiv","inputMode","integrity","itemID","itemProp","itemRef","itemScope","itemType","keyParams","keyType","lang","low","manifest","marginWidth","marginHeight","media","mediaGroup","muted","noModule","noValidate","optimum","placeholder","playsInline","poster","profile","radioGroup","readOnly","rel","reversed","role","rows","rowSpan","scoped","seamless","selected","sizes","spellCheck","srcDoc","srcLang","srcSet","step","summary","tabIndex","useMap","wmode","about","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","by","calcMode","capHeight","clipPath","clipPathUnits","clipRule","color","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","datatype","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","exponent","externalResourcesRequired","fillOpacity","filterRes","filterUnits","floodOpacity","floodColor","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","ideographic","imageRendering","in2","in","inlist","intercept","k1","k3","k4","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","numOctaves","opacity","operator","order","orient","orientation","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","resource","restart","ry","security","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","suppressContentEditableWarning","suppressHydrationWarning","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","typeof","u1","u2","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","unselectable","vAlphabetic","vectorEffect","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","vocab","widths","wordSpacing","writingMode","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlSpace","yChannelSelector","z","zoomAndPan","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","__self","__source","defaultProps","$$typeof","_owner","Fragment","jsx","jsxs","style_to_object_1","StyleToJS","camelCase","CUSTOM_PROPERTY_REGEX","HYPHEN_REGEX","NO_HYPHEN_REGEX","VENDOR_PREFIX_REGEX","MS_VENDOR_PREFIX_REGEX","trimHyphen","skipCamelCase","styleObject","inline_style_parser_1","hasIterator","normalizeIPv6","removeDotSegments","recomposeAuthority","normalizeComponentEncoding","isIPv4","nonSimpleDomain","SCHEMES","getSchemeHandler","resolveComponent","relative","skipNormalization","tolerant","scheme","userinfo","query","cmpts","nid","nss","reference","resourceName","secure","uriTokens","schemeHandler","skipEscape","unescape","escape","authority","absolutePath","URI_PARSE","isIP","ipv6result","isIPV6","unicodeSupport","domainHost","domainToASCII","skipNormalize","fastUri","baseURI","relativeURI","schemelessOptions","resolved","uriA","uriB","isUUID","URN_REG","supportedSchemeNames","wsIsSecure","wsComponent","httpParse","httpSerialize","wss","urn","urnComponent","uriComponent","uuidComponent","isValidSchemeName","stringArrayToHexStripped","consumeIsZone","consumeHextets","address","hex","findToken","ipv6","tokenCount","zone","endipv6Encountered","endIpv6","consume","getIPV6","newHost","escapedHost","ipV6res","esc","nextSlash","_defineProperty","toPropertyKey","toPrimitive","_typeof"],"sourceRoot":""}
|