@diplodoc/transform 4.77.11 → 4.77.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/transform/plugins/imsize/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/transform/plugins/imsize/plugin.ts"],"names":[],"mappings":";;;AAIA,mCAAmC;AACnC,uCAAyC;AAMlC,MAAM,aAAa,GAAG,CAAC,EAAc,EAAE,IAAoB,EAA2B,EAAE;IAC3F,sCAAsC;IACtC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;;;QACrB,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAExE,sDAAsD;QACtD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;QAEzB,IAAI,GAAG,GAAG,QAAQ,GAAG,CAAC,CAAC;QACvB,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1D,EAAE;YACF,cAAc;YACd,EAAE;YAEF,8BAA8B;YAC9B,kCAAkC;YAClC,GAAG,EAAE,CAAC;YACN,OAAO,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBACjC,MAAM;gBACV,CAAC;YACL,CAAC;YACD,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;gBACb,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,8BAA8B;YAC9B,2CAA2C;YAC3C,IAAI,KAAK,GAAG,GAAG,CAAC;YAChB,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACjF,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC;gBAChB,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACJ,IAAI,GAAG,EAAE,CAAC;gBACd,CAAC;YACL,CAAC;YAED,8BAA8B;YAC9B,0CAA0C;YAC1C,KAAK,GAAG,GAAG,CAAC;YACZ,OAAO,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBACjC,MAAM;gBACV,CAAC;YACL,CAAC;YAED,8BAA8B;YAC9B,8CAA8C;YAC9C,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAC5E,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;gBAC/C,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC;gBACxB,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;gBAEtB,8BAA8B;gBAC9B,mDAAmD;gBACnD,OAAO,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;oBACtB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBACvC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBACjC,MAAM;oBACV,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,KAAK,GAAG,EAAE,CAAC;YACf,CAAC;YAED,mCAAmC;YACnC,mDAAmD;YACnD,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACf,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBAE3C,0CAA0C;gBAC1C,sCAAsC;gBACtC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAChB,MAAM,UAAU,GAAG,IAAA,wBAAc,EAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;oBAChE,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC;wBAChB,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;wBACzB,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;wBAC3B,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;wBAErB,mCAAmC;wBACnC,wDAAwD;wBACxD,OAAO,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;4BACtB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;4BACvC,qCAAqC;4BACrC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gCACjC,MAAM;4BACV,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;YAED,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC3D,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC;gBACnB,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,GAAG,EAAE,CAAC;QACV,CAAC;aAAM,CAAC;YACJ,EAAE;YACF,iBAAiB;YACjB,EAAE;YACF,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;gBAC9C,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,eAAe;YACf,qDAAqD;YACrD,OAAO,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBACjC,MAAM;gBACV,CAAC;YACL,CAAC;YAED,IAAI,KAAK,GAAG,EAAE,CAAC;YAEf,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC1D,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;gBACtB,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC5C,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;oBACX,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACJ,GAAG,GAAG,QAAQ,GAAG,CAAC,CAAC;gBACvB,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,GAAG,GAAG,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;YAED,8CAA8C;YAC9C,sEAAsE;YACtE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;YACrE,IAAI,CAAC,GAAG,EAAE,CAAC;gBACP,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC;gBACnB,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YAChB,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACtB,CAAC;QAED,EAAE;QACF,uEAAuE;QACvE,iDAAiD;QACjD,EAAE;QACF,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC;YACvB,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;YAExB,MAAM,MAAM,GAAY,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CACtC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,EACrC,KAAK,CAAC,EAAE,EACR,KAAK,CAAC,GAAG,EACT,MAAM,CACT,CAAC;YACF,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAEtC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5C,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;YACxB,KAAK,CAAC,KAAK,GAAG;gBACV,CAAC,kBAAU,CAAC,GAAG,EAAE,IAAI,CAAC;gBACtB,CAAC,kBAAU,CAAC,GAAG,EAAE,EAAE,CAAC;aACvB,CAAC;YAEF,aAAa;YACb,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC3D,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC;gBACvB,IAAI,KAAK,GAAG,CAAC,CAAC;gBAEd,OAAO,QAAQ,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACjC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;oBAClD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;wBACrB,KAAK,EAAE,CAAC;oBACZ,CAAC;yBAAM,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;wBAC5B,KAAK,EAAE,CAAC;oBACZ,CAAC;oBACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;wBACZ,QAAQ,EAAE,CAAC;oBACf,CAAC;gBACL,CAAC;gBAED,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBACd,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;oBACrD,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;oBAEhD,IAAI,MAAM,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;wBACtB,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;oBACzB,CAAC;oBACD,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;wBACvB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;oBAC3B,CAAC;oBACD,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;wBACvB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;oBACzD,CAAC;oBACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;wBACnB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;4BAC1D,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;wBACnC,CAAC;oBACL,CAAC;oBAED,6DAA6D;oBAC7D,gEAAgE;oBAChE,uEAAuE;oBACvE,2DAA2D;oBAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBAClB,GAAG,GAAG,QAAQ,GAAG,CAAC,CAAC;oBACvB,CAAC;gBACL,CAAC;YACL,CAAC;YAED,IAAI,KAAK,EAAE,CAAC;gBACR,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;gBACf,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;gBAChB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,mBAAmB,EAAE,CAAC;gBAC5B,IAAI,KAAK,GAAuB,EAAE,CAAC;gBAEnC,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC7C,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAE/C,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;oBACf,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC;oBAC5D,KAAK,IAAI,UAAU,WAAW,GAAG,CAAC;gBACtC,CAAC;gBAED,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;oBAChB,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,iBAAiB,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBAC1D,KAAK,IAAI,iBAAiB,KAAK,MAAM,MAAM,gBAAgB,CAAC;wBAC5D,YAAA,KAAK,CAAC,GAAG,EAAC,6BAA6B,uCAA7B,6BAA6B,GAAK,EAAE,EAAC;wBAC/C,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;oBACnE,CAAC;yBAAM,CAAC;wBACJ,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;wBAChE,KAAK,IAAI,WAAW,YAAY,GAAG,CAAC;oBACxC,CAAC;gBACL,CAAC;gBAED,IAAI,KAAK,EAAE,CAAC;oBACR,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBAChD,CAAC;YACL,CAAC;QACL,CAAC;QAED,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;QAChB,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;AACN,CAAC,CAAC;AAxRW,QAAA,aAAa,iBAwRxB;AAYF,SAAS,SAAS,CAAC,GAAW;IAC1B,OAAO,CACH,GAAG,KAAK,OAAO;QACf,GAAG,KAAK,QAAQ;QAChB,GAAG,KAAK,QAAQ;QAChB,GAAG,KAAK,SAAS;QACjB,GAAG,KAAK,YAAY;QACpB,GAAG,KAAK,aAAa;QACrB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAC1B,CAAC;AACN,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,KAAa;IAC/C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;QAC9C,MAAM,cAAc,GAAG,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,CAAC;QAE7D,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,CAAC;IAED,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;QAChD,IAAI,KAAK,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QAE9B,OAAO,CAAC,QAAQ,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB;;IAC3C,wBAAwB;IACxB,MAAM,SAAS,GAAG,yCAAyC,CAAC;IAC5D,MAAM,MAAM,GAAgB,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;IAC9D,IAAI,KAAK,CAAC;IACV,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAE7C,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,SAAS;QACb,CAAC;QAED,GAAG,EAAE,CAAC;QACN,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5B,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1D,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACpB,SAAS;QACb,CAAC;QAED,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACX,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;YAC1C,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IAED,IAAI,MAAA,MAAM,CAAC,SAAS,0CAAG,iBAAiB,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC;IAC9C,CAAC;IAED,wEAAwE;IACxE,uEAAuE;IACvE,MAAM,CAAC,OAAO,GAAG,GAAG,KAAK,CAAC,IAAI,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC;IAE3D,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { MarkdownIt } from '../typings';
2
+ export default function linkifyStrikethrough(md: MarkdownIt): void;
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = linkifyStrikethrough;
4
+ // Matches the scheme expression used by markdown-it's built-in linkify rule.
5
+ const SCHEME_RE = /(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i;
6
+ const ASTERISK_MARKER = 0x2a;
7
+ const UNDERSCORE_MARKER = 0x5f;
8
+ const TILDE_MARKER = 0x7e;
9
+ function getUnmatchedOpeners(delimiters, scanStates) {
10
+ let scanState = scanStates.get(delimiters);
11
+ if (!scanState || scanState.scannedCount > delimiters.length) {
12
+ scanState = { scannedCount: 0, unmatchedOpeners: new Map() };
13
+ scanStates.set(delimiters, scanState);
14
+ }
15
+ // Process only new delimiters to keep the overall scan linear.
16
+ for (let index = scanState.scannedCount; index < delimiters.length; index++) {
17
+ const delimiter = delimiters[index];
18
+ if (delimiter.marker !== TILDE_MARKER && delimiter.marker !== UNDERSCORE_MARKER) {
19
+ continue;
20
+ }
21
+ const unmatchedOpeners = scanState.unmatchedOpeners.get(delimiter.marker) || 0;
22
+ if (delimiter.close && unmatchedOpeners > 0) {
23
+ scanState.unmatchedOpeners.set(delimiter.marker, unmatchedOpeners - 1);
24
+ }
25
+ else if (delimiter.open) {
26
+ scanState.unmatchedOpeners.set(delimiter.marker, unmatchedOpeners + 1);
27
+ }
28
+ }
29
+ scanState.scannedCount = delimiters.length;
30
+ return new Map(scanState.unmatchedOpeners);
31
+ }
32
+ function trimMarkdownSuffix(value, unmatchedOpeners) {
33
+ let end = value.length;
34
+ while (end > 0) {
35
+ const previousEnd = end;
36
+ // Preserve the built-in linkify rule's handling of emphasis markers.
37
+ while (end > 0 && value.codePointAt(end - 1) === ASTERISK_MARKER) {
38
+ end--;
39
+ }
40
+ let unmatchedStrikethrough = unmatchedOpeners.get(TILDE_MARKER) || 0;
41
+ while (unmatchedStrikethrough > 0 &&
42
+ end >= 2 &&
43
+ value.codePointAt(end - 1) === TILDE_MARKER &&
44
+ value.codePointAt(end - 2) === TILDE_MARKER) {
45
+ end -= 2;
46
+ unmatchedStrikethrough--;
47
+ }
48
+ unmatchedOpeners.set(TILDE_MARKER, unmatchedStrikethrough);
49
+ let unmatchedEmphasis = unmatchedOpeners.get(UNDERSCORE_MARKER) || 0;
50
+ while (unmatchedEmphasis > 0 &&
51
+ end > 0 &&
52
+ value.codePointAt(end - 1) === UNDERSCORE_MARKER) {
53
+ end--;
54
+ unmatchedEmphasis--;
55
+ }
56
+ unmatchedOpeners.set(UNDERSCORE_MARKER, unmatchedEmphasis);
57
+ if (end === previousEnd) {
58
+ break;
59
+ }
60
+ }
61
+ return end;
62
+ }
63
+ // The built-in linkify rule also excludes trailing stars from URLs.
64
+ function trimTrailingStars(value) {
65
+ let end = value.length;
66
+ while (end > 0 && value[end - 1] === '*') {
67
+ end--;
68
+ }
69
+ return value.slice(0, end);
70
+ }
71
+ function linkifyStrikethrough(md) {
72
+ // Each inline nesting level has its own delimiter array and scan progress.
73
+ const delimiterScanStates = new WeakMap();
74
+ // Replace the existing rule under the same name so md.disable('linkify') still works.
75
+ md.inline.ruler.at('linkify', (rawState, silent) => {
76
+ const state = rawState;
77
+ const pos = state.pos;
78
+ if (!state.md.options.linkify ||
79
+ state.linkLevel > 0 ||
80
+ pos + 3 > state.posMax ||
81
+ state.src.codePointAt(pos) !== 0x3a /* : */ ||
82
+ state.src.codePointAt(pos + 1) !== 0x2f /* / */ ||
83
+ state.src.codePointAt(pos + 2) !== 0x2f /* / */) {
84
+ return false;
85
+ }
86
+ const schemeMatch = SCHEME_RE.exec(state.pending);
87
+ if (!schemeMatch) {
88
+ return false;
89
+ }
90
+ const scheme = schemeMatch[1];
91
+ const linkify = state.md.linkify;
92
+ const linkSource = state.src.slice(pos - scheme.length);
93
+ let link = linkify.matchAtStart(linkSource);
94
+ if (!link) {
95
+ return false;
96
+ }
97
+ const unmatchedOpeners = getUnmatchedOpeners(state.delimiters, delimiterScanStates);
98
+ const linkSourceEnd = trimMarkdownSuffix(link.raw, unmatchedOpeners);
99
+ if (linkSourceEnd < link.raw.length) {
100
+ // Match again without closing markup so linkify can also restore punctuation boundaries.
101
+ link = linkify.matchAtStart(linkSource.slice(0, linkSourceEnd));
102
+ if (!link) {
103
+ return false;
104
+ }
105
+ }
106
+ const url = trimTrailingStars(link.url);
107
+ if (url.length <= scheme.length) {
108
+ return false;
109
+ }
110
+ const href = state.md.normalizeLink(url);
111
+ if (!state.md.validateLink(href)) {
112
+ return false;
113
+ }
114
+ // Silent mode checks whether the rule applies without creating tokens.
115
+ if (!silent) {
116
+ state.pending = state.pending.slice(0, -scheme.length);
117
+ const linkOpen = state.push('link_open', 'a', 1);
118
+ linkOpen.attrs = [['href', href]];
119
+ linkOpen.markup = 'linkify';
120
+ linkOpen.info = 'auto';
121
+ const linkText = state.push('text', '', 0);
122
+ linkText.content = state.md.normalizeLinkText(url);
123
+ const linkClose = state.push('link_close', 'a', -1);
124
+ linkClose.markup = 'linkify';
125
+ linkClose.info = 'auto';
126
+ }
127
+ // The scheme is already in pending, so advance only over the rest of the URL.
128
+ state.pos += url.length - scheme.length;
129
+ return true;
130
+ });
131
+ }
132
+ //# sourceMappingURL=linkify-strikethrough.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linkify-strikethrough.js","sourceRoot":"","sources":["../../src/transform/plugins/linkify-strikethrough.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diplodoc/transform",
3
- "version": "4.77.11",
3
+ "version": "4.77.13",
4
4
  "description": "A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML",
5
5
  "keywords": [
6
6
  "markdown",
@@ -12,6 +12,7 @@ import extractTitle from './title';
12
12
  import getHeadings from './headings';
13
13
  import sanitizeHtml, {defaultOptions, sanitizeStyles} from './sanitize';
14
14
  import {olAttrConversion} from './plugins/ol-attr-conversion';
15
+ import linkifyStrikethrough from './plugins/linkify-strikethrough';
15
16
  import {DEFAULT_LANG} from './constants';
16
17
  import {createIDGeneratorByStrategy} from './plugins/utils';
17
18
 
@@ -117,6 +118,7 @@ function initPlugins(md: MarkdownIt, options: OptionsType, pluginOptions: Markdo
117
118
 
118
119
  md.use(olAttrConversion);
119
120
 
121
+ md.use(linkifyStrikethrough);
120
122
  plugins.forEach((plugin) => md.use(plugin, pluginOptions));
121
123
 
122
124
  if (linkify && linkifyTlds) {
@@ -155,6 +155,11 @@ function collectDataAttrs(
155
155
  continue;
156
156
  }
157
157
 
158
+ if (key === 'gallery-id' && value !== '') {
159
+ result['data-gallery-id'] = value;
160
+ continue;
161
+ }
162
+
158
163
  const gallerySrc = resolveGallerySrcAttr(
159
164
  key,
160
165
  value,
@@ -173,6 +178,7 @@ function collectDataAttrs(
173
178
  if (
174
179
  key.startsWith('data-') &&
175
180
  key !== 'data-gallery-src' &&
181
+ (key !== 'data-gallery-id' || value !== '') &&
176
182
  (key !== 'data-gallery' || isGalleryValid(value))
177
183
  ) {
178
184
  result[key] = value;
@@ -182,10 +188,17 @@ function collectDataAttrs(
182
188
  image.attrs = image.attrs.filter(
183
189
  ([key, value]) =>
184
190
  key !== 'gallery' &&
191
+ key !== 'gallery-id' &&
185
192
  key !== 'gallery-src' &&
186
193
  (key !== 'data-gallery' || isGalleryValid(value)) &&
194
+ (key !== 'data-gallery-id' || value !== '') &&
187
195
  (key !== 'data-gallery-src' || value !== ''),
188
196
  );
197
+
198
+ if (result['data-gallery-id']) {
199
+ result['data-gallery'] = 'true';
200
+ }
201
+
189
202
  return result;
190
203
  }
191
204
 
@@ -307,19 +307,26 @@ function isOwnAttr(key: string): boolean {
307
307
  key === 'height' ||
308
308
  key === 'inline' ||
309
309
  key === 'gallery' ||
310
+ key === 'gallery-id' ||
310
311
  key === 'gallery-src' ||
311
312
  key.startsWith('data-')
312
313
  );
313
314
  }
314
315
 
315
316
  function resolveDataAttr(key: string, value: string): [string, string] | null {
316
- const isGalleryValid = value === 'true' || value === 'false';
317
+ if (key === 'gallery' || key === 'data-gallery') {
318
+ const isGalleryValid = value === 'true' || value === 'false';
317
319
 
318
- if (key === 'gallery') return isGalleryValid ? ['data-gallery', value] : null;
319
- if (key === 'data-gallery') return isGalleryValid ? [key, value] : null;
320
- if (key === 'gallery-src') return value === '' ? null : ['data-gallery-src', value];
321
- if (key.startsWith('data-')) return [key, value];
322
- return null;
320
+ return isGalleryValid ? ['data-gallery', value] : null;
321
+ }
322
+
323
+ if (key === 'gallery-id' || key === 'gallery-src') {
324
+ if (value === '') return null;
325
+
326
+ return [`data-${key}`, value];
327
+ }
328
+
329
+ return key.startsWith('data-') ? [key, value] : null;
323
330
  }
324
331
 
325
332
  function parseInlineAttributes(attrsStr: string): ParsedAttrs {
@@ -358,6 +365,10 @@ function parseInlineAttributes(attrsStr: string): ParsedAttrs {
358
365
  }
359
366
  }
360
367
 
368
+ if (result.dataAttrs?.['data-gallery-id']) {
369
+ result.dataAttrs['data-gallery'] = 'true';
370
+ }
371
+
361
372
  // The block is fully ours only if it carries our attributes and nothing
362
373
  // foreign is left over — otherwise someone downstream has to parse it.
363
374
  result.foreign = own === 0 || ownChars !== dense(attrsStr);
@@ -0,0 +1,185 @@
1
+ import type {Delimiter} from 'markdown-it/lib/rules_inline/state_inline';
2
+ import type StateInline from 'markdown-it/lib/rules_inline/state_inline';
3
+ import type {MarkdownIt} from '../typings';
4
+
5
+ // Matches the scheme expression used by markdown-it's built-in linkify rule.
6
+ const SCHEME_RE = /(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i;
7
+ const ASTERISK_MARKER = 0x2a;
8
+ const UNDERSCORE_MARKER = 0x5f;
9
+ const TILDE_MARKER = 0x7e;
10
+
11
+ // linkLevel exists at runtime in markdown-it but is missing from the public type.
12
+ type LinkifyState = StateInline & {
13
+ linkLevel: number;
14
+ };
15
+
16
+ type LinkifyMatch = NonNullable<ReturnType<MarkdownIt['linkify']['match']>>[number];
17
+
18
+ // matchAtStart exists in linkify-it but is missing from the installed types.
19
+ type LinkifyWithMatchAtStart = MarkdownIt['linkify'] & {
20
+ matchAtStart(value: string): LinkifyMatch | null;
21
+ };
22
+
23
+ type DelimiterScanState = {
24
+ scannedCount: number;
25
+ unmatchedOpeners: Map<number, number>;
26
+ };
27
+
28
+ function getUnmatchedOpeners(
29
+ delimiters: Delimiter[],
30
+ scanStates: WeakMap<Delimiter[], DelimiterScanState>,
31
+ ) {
32
+ let scanState = scanStates.get(delimiters);
33
+ if (!scanState || scanState.scannedCount > delimiters.length) {
34
+ scanState = {scannedCount: 0, unmatchedOpeners: new Map()};
35
+ scanStates.set(delimiters, scanState);
36
+ }
37
+
38
+ // Process only new delimiters to keep the overall scan linear.
39
+ for (let index = scanState.scannedCount; index < delimiters.length; index++) {
40
+ const delimiter = delimiters[index];
41
+ if (delimiter.marker !== TILDE_MARKER && delimiter.marker !== UNDERSCORE_MARKER) {
42
+ continue;
43
+ }
44
+
45
+ const unmatchedOpeners = scanState.unmatchedOpeners.get(delimiter.marker) || 0;
46
+ if (delimiter.close && unmatchedOpeners > 0) {
47
+ scanState.unmatchedOpeners.set(delimiter.marker, unmatchedOpeners - 1);
48
+ } else if (delimiter.open) {
49
+ scanState.unmatchedOpeners.set(delimiter.marker, unmatchedOpeners + 1);
50
+ }
51
+ }
52
+
53
+ scanState.scannedCount = delimiters.length;
54
+
55
+ return new Map(scanState.unmatchedOpeners);
56
+ }
57
+
58
+ function trimMarkdownSuffix(value: string, unmatchedOpeners: Map<number, number>) {
59
+ let end = value.length;
60
+
61
+ while (end > 0) {
62
+ const previousEnd = end;
63
+
64
+ // Preserve the built-in linkify rule's handling of emphasis markers.
65
+ while (end > 0 && value.codePointAt(end - 1) === ASTERISK_MARKER) {
66
+ end--;
67
+ }
68
+
69
+ let unmatchedStrikethrough = unmatchedOpeners.get(TILDE_MARKER) || 0;
70
+ while (
71
+ unmatchedStrikethrough > 0 &&
72
+ end >= 2 &&
73
+ value.codePointAt(end - 1) === TILDE_MARKER &&
74
+ value.codePointAt(end - 2) === TILDE_MARKER
75
+ ) {
76
+ end -= 2;
77
+ unmatchedStrikethrough--;
78
+ }
79
+ unmatchedOpeners.set(TILDE_MARKER, unmatchedStrikethrough);
80
+
81
+ let unmatchedEmphasis = unmatchedOpeners.get(UNDERSCORE_MARKER) || 0;
82
+ while (
83
+ unmatchedEmphasis > 0 &&
84
+ end > 0 &&
85
+ value.codePointAt(end - 1) === UNDERSCORE_MARKER
86
+ ) {
87
+ end--;
88
+ unmatchedEmphasis--;
89
+ }
90
+ unmatchedOpeners.set(UNDERSCORE_MARKER, unmatchedEmphasis);
91
+
92
+ if (end === previousEnd) {
93
+ break;
94
+ }
95
+ }
96
+
97
+ return end;
98
+ }
99
+
100
+ // The built-in linkify rule also excludes trailing stars from URLs.
101
+ function trimTrailingStars(value: string) {
102
+ let end = value.length;
103
+
104
+ while (end > 0 && value[end - 1] === '*') {
105
+ end--;
106
+ }
107
+
108
+ return value.slice(0, end);
109
+ }
110
+
111
+ export default function linkifyStrikethrough(md: MarkdownIt) {
112
+ // Each inline nesting level has its own delimiter array and scan progress.
113
+ const delimiterScanStates = new WeakMap<Delimiter[], DelimiterScanState>();
114
+
115
+ // Replace the existing rule under the same name so md.disable('linkify') still works.
116
+ md.inline.ruler.at('linkify', (rawState, silent) => {
117
+ const state = rawState as LinkifyState;
118
+ const pos = state.pos;
119
+
120
+ if (
121
+ !state.md.options.linkify ||
122
+ state.linkLevel > 0 ||
123
+ pos + 3 > state.posMax ||
124
+ state.src.codePointAt(pos) !== 0x3a /* : */ ||
125
+ state.src.codePointAt(pos + 1) !== 0x2f /* / */ ||
126
+ state.src.codePointAt(pos + 2) !== 0x2f /* / */
127
+ ) {
128
+ return false;
129
+ }
130
+
131
+ const schemeMatch = SCHEME_RE.exec(state.pending);
132
+ if (!schemeMatch) {
133
+ return false;
134
+ }
135
+
136
+ const scheme = schemeMatch[1];
137
+ const linkify = state.md.linkify as LinkifyWithMatchAtStart;
138
+ const linkSource = state.src.slice(pos - scheme.length);
139
+ let link = linkify.matchAtStart(linkSource);
140
+ if (!link) {
141
+ return false;
142
+ }
143
+
144
+ const unmatchedOpeners = getUnmatchedOpeners(state.delimiters, delimiterScanStates);
145
+ const linkSourceEnd = trimMarkdownSuffix(link.raw, unmatchedOpeners);
146
+ if (linkSourceEnd < link.raw.length) {
147
+ // Match again without closing markup so linkify can also restore punctuation boundaries.
148
+ link = linkify.matchAtStart(linkSource.slice(0, linkSourceEnd));
149
+ if (!link) {
150
+ return false;
151
+ }
152
+ }
153
+
154
+ const url = trimTrailingStars(link.url);
155
+ if (url.length <= scheme.length) {
156
+ return false;
157
+ }
158
+
159
+ const href = state.md.normalizeLink(url);
160
+ if (!state.md.validateLink(href)) {
161
+ return false;
162
+ }
163
+
164
+ // Silent mode checks whether the rule applies without creating tokens.
165
+ if (!silent) {
166
+ state.pending = state.pending.slice(0, -scheme.length);
167
+
168
+ const linkOpen = state.push('link_open', 'a', 1);
169
+ linkOpen.attrs = [['href', href]];
170
+ linkOpen.markup = 'linkify';
171
+ linkOpen.info = 'auto';
172
+
173
+ const linkText = state.push('text', '', 0);
174
+ linkText.content = state.md.normalizeLinkText(url);
175
+
176
+ const linkClose = state.push('link_close', 'a', -1);
177
+ linkClose.markup = 'linkify';
178
+ linkClose.info = 'auto';
179
+ }
180
+
181
+ // The scheme is already in pending, so advance only over the rest of the URL.
182
+ state.pos += url.length - scheme.length;
183
+ return true;
184
+ });
185
+ }