@ecency/render-helper 2.2.10 → 2.2.14

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.
Files changed (46) hide show
  1. package/lib/catch-post-image.js +7 -7
  2. package/lib/catch-post-image.js.map +1 -1
  3. package/lib/consts/allowed-attributes.const.js +2 -0
  4. package/lib/consts/allowed-attributes.const.js.map +1 -1
  5. package/lib/consts/regexes.const.d.ts +1 -0
  6. package/lib/consts/regexes.const.js +3 -2
  7. package/lib/consts/regexes.const.js.map +1 -1
  8. package/lib/helper.d.ts +1 -0
  9. package/lib/helper.js +14 -2
  10. package/lib/helper.js.map +1 -1
  11. package/lib/markdown-2-html.js +7 -7
  12. package/lib/markdown-2-html.js.map +1 -1
  13. package/lib/methods/a.method.js +66 -46
  14. package/lib/methods/a.method.js.map +1 -1
  15. package/lib/methods/clean-reply.method.js +2 -2
  16. package/lib/methods/iframe.method.js +5 -5
  17. package/lib/methods/iframe.method.js.map +1 -1
  18. package/lib/methods/img.method.js +1 -1
  19. package/lib/methods/img.method.js.map +1 -1
  20. package/lib/methods/linkify.method.js +10 -10
  21. package/lib/methods/linkify.method.js.map +1 -1
  22. package/lib/methods/markdown-to-html.method.js +5 -5
  23. package/lib/methods/markdown-to-html.method.js.map +1 -1
  24. package/lib/methods/sanitize-html.method.js +1 -1
  25. package/lib/methods/sanitize-html.method.js.map +1 -1
  26. package/lib/methods/text.method.js +16 -10
  27. package/lib/methods/text.method.js.map +1 -1
  28. package/lib/methods/traverse.method.js +4 -4
  29. package/lib/methods/traverse.method.js.map +1 -1
  30. package/lib/post-body-summary.js +6 -5
  31. package/lib/post-body-summary.js.map +1 -1
  32. package/lib/proxify-image-src.js +12 -8
  33. package/lib/proxify-image-src.js.map +1 -1
  34. package/lib/render-helper.js +1 -1
  35. package/package.json +1 -1
  36. package/src/consts/allowed-attributes.const.ts +2 -0
  37. package/src/consts/regexes.const.ts +2 -1
  38. package/src/helper.ts +11 -0
  39. package/src/markdown-2-html.spec.ts +16 -4
  40. package/src/methods/a.method.ts +27 -2
  41. package/src/methods/clean-reply.method.ts +2 -2
  42. package/src/methods/markdown-to-html.method.ts +2 -2
  43. package/src/methods/text.method.ts +7 -1
  44. package/src/post-body-summary.ts +3 -1
  45. package/src/test/data/legacy/23.json +1 -1
  46. package/src/test/data/legacy/27.JSON +1 -1
@@ -25,18 +25,18 @@ function getImage(entry, width, height, format) {
25
25
  }
26
26
  }
27
27
  if (meta && meta.image && !!meta.image.length && meta.image[0]) {
28
- return proxify_image_src_1.proxifyImageSrc(meta.image[0], width, height, format);
28
+ return (0, proxify_image_src_1.proxifyImageSrc)(meta.image[0], width, height, format);
29
29
  }
30
30
  // try to find first image from post body
31
- var html = markdown_2_html_1.markdown2Html(entry);
32
- var doc = helper_1.createDoc(html);
31
+ var html = (0, markdown_2_html_1.markdown2Html)(entry);
32
+ var doc = (0, helper_1.createDoc)(html);
33
33
  if (!doc) {
34
34
  return null;
35
35
  }
36
36
  var imgEls = doc.getElementsByTagName('img');
37
37
  if (imgEls.length >= 1) {
38
38
  var src = imgEls[0].getAttribute('src');
39
- return proxify_image_src_1.proxifyImageSrc(src, width, height, format);
39
+ return (0, proxify_image_src_1.proxifyImageSrc)(src, width, height, format);
40
40
  }
41
41
  return null;
42
42
  }
@@ -47,13 +47,13 @@ function catchPostImage(obj, width, height, format) {
47
47
  if (typeof obj === 'string') {
48
48
  return getImage(obj, width, height, format);
49
49
  }
50
- var key = helper_1.makeEntryCacheKey(obj) + "-" + width + "x" + height + "-" + format;
51
- var item = cache_1.cacheGet(key);
50
+ var key = "".concat((0, helper_1.makeEntryCacheKey)(obj), "-").concat(width, "x").concat(height, "-").concat(format);
51
+ var item = (0, cache_1.cacheGet)(key);
52
52
  if (item) {
53
53
  return item;
54
54
  }
55
55
  var res = getImage(obj, width, height, format);
56
- cache_1.cacheSet(key, res);
56
+ (0, cache_1.cacheSet)(key, res);
57
57
  return res;
58
58
  }
59
59
  exports.catchPostImage = catchPostImage;
@@ -1 +1 @@
1
- {"version":3,"file":"catch-post-image.js","sourceRoot":"","sources":["../src/catch-post-image.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AACrD,qDAAiD;AACjD,mCAAuD;AACvD,iCAA4C;AAG5C,SAAS,QAAQ,CAAC,KAAY,EAAE,KAAS,EAAE,MAAU,EAAE,MAAgB;IAAvC,sBAAA,EAAA,SAAS;IAAE,uBAAA,EAAA,UAAU;IAAE,uBAAA,EAAA,gBAAgB;IACrE;;QAEI;IACJ,IAAI,IAAmC,CAAA;IAEvC,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,EAAE;QAC3C,IAAI,GAAG,KAAK,CAAC,aAAa,CAAA;KAC3B;SAAM;QACL,IAAI;YACF,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAuB,CAAC,CAAA;SACjD;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,GAAG,IAAI,CAAA;SACZ;KACF;IAED,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC9D,OAAO,mCAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAC7D;IAED,yCAAyC;IACzC,IAAM,IAAI,GAAG,+BAAa,CAAC,KAAK,CAAC,CAAA;IACjC,IAAM,GAAG,GAAG,kBAAS,CAAC,IAAI,CAAC,CAAA;IAC3B,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,IAAI,CAAA;KACZ;IAED,IAAM,MAAM,GAAG,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAC9C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;QACtB,IAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACzC,OAAO,mCAAe,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KACnD;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAgB,cAAc,CAAC,GAAmB,EAAE,KAAS,EAAE,MAAU,EAAE,MAAgB;IAAvC,sBAAA,EAAA,SAAS;IAAE,uBAAA,EAAA,UAAU;IAAE,uBAAA,EAAA,gBAAgB;IACzF,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,OAAO,QAAQ,CAAC,GAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KACnD;IACD,IAAM,GAAG,GAAM,0BAAiB,CAAC,GAAG,CAAC,SAAI,KAAK,SAAI,MAAM,SAAI,MAAQ,CAAA;IAEpE,IAAM,IAAI,GAAG,gBAAQ,CAAS,GAAG,CAAC,CAAA;IAClC,IAAI,IAAI,EAAE;QACR,OAAO,IAAI,CAAA;KACZ;IAED,IAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAChD,gBAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAElB,OAAO,GAAG,CAAA;AACZ,CAAC;AAfD,wCAeC"}
1
+ {"version":3,"file":"catch-post-image.js","sourceRoot":"","sources":["../src/catch-post-image.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AACrD,qDAAiD;AACjD,mCAAuD;AACvD,iCAA4C;AAG5C,SAAS,QAAQ,CAAC,KAAY,EAAE,KAAS,EAAE,MAAU,EAAE,MAAgB;IAAvC,sBAAA,EAAA,SAAS;IAAE,uBAAA,EAAA,UAAU;IAAE,uBAAA,EAAA,gBAAgB;IACrE;;QAEI;IACJ,IAAI,IAAmC,CAAA;IAEvC,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,EAAE;QAC3C,IAAI,GAAG,KAAK,CAAC,aAAa,CAAA;KAC3B;SAAM;QACL,IAAI;YACF,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAuB,CAAC,CAAA;SACjD;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,GAAG,IAAI,CAAA;SACZ;KACF;IAED,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC9D,OAAO,IAAA,mCAAe,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAC7D;IAED,yCAAyC;IACzC,IAAM,IAAI,GAAG,IAAA,+BAAa,EAAC,KAAK,CAAC,CAAA;IACjC,IAAM,GAAG,GAAG,IAAA,kBAAS,EAAC,IAAI,CAAC,CAAA;IAC3B,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,IAAI,CAAA;KACZ;IAED,IAAM,MAAM,GAAG,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAC9C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;QACtB,IAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACzC,OAAO,IAAA,mCAAe,EAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KACnD;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAgB,cAAc,CAAC,GAAmB,EAAE,KAAS,EAAE,MAAU,EAAE,MAAgB;IAAvC,sBAAA,EAAA,SAAS;IAAE,uBAAA,EAAA,UAAU;IAAE,uBAAA,EAAA,gBAAgB;IACzF,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,OAAO,QAAQ,CAAC,GAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KACnD;IACD,IAAM,GAAG,GAAG,UAAG,IAAA,0BAAiB,EAAC,GAAG,CAAC,cAAI,KAAK,cAAI,MAAM,cAAI,MAAM,CAAE,CAAA;IAEpE,IAAM,IAAI,GAAG,IAAA,gBAAQ,EAAS,GAAG,CAAC,CAAA;IAClC,IAAI,IAAI,EAAE;QACR,OAAO,IAAI,CAAA;KACZ;IAED,IAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAChD,IAAA,gBAAQ,EAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAElB,OAAO,GAAG,CAAA;AACZ,CAAC;AAfD,wCAeC"}
@@ -13,6 +13,8 @@ exports.ALLOWED_ATTRIBUTES = {
13
13
  'data-community',
14
14
  'data-filter',
15
15
  'data-embed-src',
16
+ 'data-youtube',
17
+ 'data-start-time',
16
18
  'data-video-href',
17
19
  'data-proposal',
18
20
  'class',
@@ -1 +1 @@
1
- {"version":3,"file":"allowed-attributes.const.js","sourceRoot":"","sources":["../../src/consts/allowed-attributes.const.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAiB;IAC9C,GAAG,EAAE;QACH,MAAM;QACN,QAAQ;QACR,KAAK;QACL,eAAe;QACf,UAAU;QACV,aAAa;QACb,WAAW;QACX,gBAAgB;QAChB,aAAa;QACb,gBAAgB;QAChB,iBAAiB;QACjB,eAAe;QACf,OAAO;QACP,OAAO;QACP,SAAS;KACV;IACD,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,SAAS,CAAC;IACtH,KAAK,EAAE,CAAC,OAAO,CAAC;IAChB,QAAQ,EAAE,EAAE;IACZ,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,EAAE;IACT,YAAY,EAAE,CAAC,OAAO,CAAC;IACvB,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;CACV,CAAA"}
1
+ {"version":3,"file":"allowed-attributes.const.js","sourceRoot":"","sources":["../../src/consts/allowed-attributes.const.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAiB;IAC9C,GAAG,EAAE;QACH,MAAM;QACN,QAAQ;QACR,KAAK;QACL,eAAe;QACf,UAAU;QACV,aAAa;QACb,WAAW;QACX,gBAAgB;QAChB,aAAa;QACb,gBAAgB;QAChB,cAAc;QACd,iBAAiB;QACjB,iBAAiB;QACjB,eAAe;QACf,OAAO;QACP,OAAO;QACP,SAAS;KACV;IACD,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,SAAS,CAAC;IACtH,KAAK,EAAE,CAAC,OAAO,CAAC;IAChB,QAAQ,EAAE,EAAE;IACZ,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,EAAE;IACT,YAAY,EAAE,CAAC,OAAO,CAAC;IACvB,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;CACV,CAAA"}
@@ -38,3 +38,4 @@ export declare const BRAND_NEW_TUBE_REGEX: RegExp;
38
38
  export declare const LOOM_REGEX: RegExp;
39
39
  export declare const LOOM_EMBED_REGEX: RegExp;
40
40
  export declare const AUREAL_EMBED_REGEX: RegExp;
41
+ export declare const ENTITY_REGEX: RegExp;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AUREAL_EMBED_REGEX = exports.LOOM_EMBED_REGEX = exports.LOOM_REGEX = exports.BRAND_NEW_TUBE_REGEX = exports.TWITCH_EMBED_REGEX = exports.SOUNDCLOUD_EMBED_REGEX = exports.SPOTIFY_EMBED_REGEX = exports.VIMM_EMBED_REGEX = exports.BRIGHTEON_REGEX = exports.RUMBLE_REGEX = exports.SPOTIFY_REGEX = exports.TWITTER_REGEX = exports.SPEAK_EMBED_REGEX = exports.SPEAK_REGEX = exports.ARCH_REGEX = exports.ODYSEE_REGEX = exports.LBRY_REGEX = exports.TRUVVL_REGEX = exports.DAPPLR_REGEX = exports.TWITCH_REGEX = exports.D_TUBE_EMBED_REGEX = exports.D_TUBE_REGEX2 = exports.D_TUBE_REGEX = exports.BITCHUTE_REGEX = exports.VIMEO_EMBED_REGEX = exports.VIMEO_REGEX = exports.YOUTUBE_EMBED_REGEX = exports.YOUTUBE_REGEX = exports.CUSTOM_COMMUNITY_REGEX = exports.INTERNAL_POST_REGEX = exports.INTERNAL_POST_TAG_REGEX = exports.INTERNAL_TOPIC_REGEX = exports.INTERNAL_MENTION_REGEX = exports.TOPIC_REGEX = exports.MENTION_REGEX = exports.CCC_REGEX = exports.POST_REGEX = exports.IPFS_REGEX = exports.IMG_REGEX = exports.URL_REGEX = void 0;
3
+ exports.ENTITY_REGEX = exports.AUREAL_EMBED_REGEX = exports.LOOM_EMBED_REGEX = exports.LOOM_REGEX = exports.BRAND_NEW_TUBE_REGEX = exports.TWITCH_EMBED_REGEX = exports.SOUNDCLOUD_EMBED_REGEX = exports.SPOTIFY_EMBED_REGEX = exports.VIMM_EMBED_REGEX = exports.BRIGHTEON_REGEX = exports.RUMBLE_REGEX = exports.SPOTIFY_REGEX = exports.TWITTER_REGEX = exports.SPEAK_EMBED_REGEX = exports.SPEAK_REGEX = exports.ARCH_REGEX = exports.ODYSEE_REGEX = exports.LBRY_REGEX = exports.TRUVVL_REGEX = exports.DAPPLR_REGEX = exports.TWITCH_REGEX = exports.D_TUBE_EMBED_REGEX = exports.D_TUBE_REGEX2 = exports.D_TUBE_REGEX = exports.BITCHUTE_REGEX = exports.VIMEO_EMBED_REGEX = exports.VIMEO_REGEX = exports.YOUTUBE_EMBED_REGEX = exports.YOUTUBE_REGEX = exports.CUSTOM_COMMUNITY_REGEX = exports.INTERNAL_POST_REGEX = exports.INTERNAL_POST_TAG_REGEX = exports.INTERNAL_TOPIC_REGEX = exports.INTERNAL_MENTION_REGEX = exports.TOPIC_REGEX = exports.MENTION_REGEX = exports.CCC_REGEX = exports.POST_REGEX = exports.IPFS_REGEX = exports.IMG_REGEX = exports.URL_REGEX = void 0;
4
4
  // link regex
5
5
  exports.URL_REGEX = /(https?:\/\/[^\s]+)/g;
6
6
  exports.IMG_REGEX = /(https?:\/\/.*\.(?:tiff?|jpe?g|gif|png|svg|ico|heic|webp))(.*)/gim;
@@ -14,7 +14,7 @@ exports.INTERNAL_TOPIC_REGEX = /^\/(trending|hot|created|promoted|muted|payout)\
14
14
  exports.INTERNAL_POST_TAG_REGEX = /\/(.*)\/(@[\w.\d-]+)\/(.*)/i;
15
15
  exports.INTERNAL_POST_REGEX = /^\/(@[\w.\d-]+)\/(.*)$/i;
16
16
  exports.CUSTOM_COMMUNITY_REGEX = /^https?:\/\/(.*)\/c\/(hive-\d+)(.*)/i;
17
- exports.YOUTUBE_REGEX = /(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/watch\?v=|youtu\.be\/)([^& \n<]+)(?:[^ \n<]+)?/g;
17
+ exports.YOUTUBE_REGEX = /(?:youtube.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu.be\/)([^"&?\/\s]{11})/g;
18
18
  exports.YOUTUBE_EMBED_REGEX = /^(https?:)?\/\/www.youtube.com\/(embed|shorts)\/.*/i;
19
19
  exports.VIMEO_REGEX = /(https?:\/\/)?(www\.)?(?:vimeo)\.com.*(?:videos|video|channels|)\/([\d]+)/i;
20
20
  exports.VIMEO_EMBED_REGEX = /https:\/\/player\.vimeo\.com\/video\/([0-9]+)/;
@@ -42,4 +42,5 @@ exports.BRAND_NEW_TUBE_REGEX = /^https:\/\/brandnewtube\.com\/embed\/[a-z0-9]+$/
42
42
  exports.LOOM_REGEX = /^(https?:)?\/\/www.loom.com\/share\/(.*)/i;
43
43
  exports.LOOM_EMBED_REGEX = /^(https?:)?\/\/www.loom.com\/embed\/(.*)/i;
44
44
  exports.AUREAL_EMBED_REGEX = /^(https?:\/\/)?(www\.)?(?:aureal-embed)\.web\.app\/([0-9]+)/i;
45
+ exports.ENTITY_REGEX = /&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-fA-F]{1,6});/ig;
45
46
  //# sourceMappingURL=regexes.const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"regexes.const.js","sourceRoot":"","sources":["../../src/consts/regexes.const.ts"],"names":[],"mappings":";;;AAAA,aAAa;AACA,QAAA,SAAS,GAAG,sBAAsB,CAAA;AAClC,QAAA,SAAS,GAAG,mEAAmE,CAAA;AAC/E,QAAA,UAAU,GAAG,4CAA4C,CAAA;AACzD,QAAA,UAAU,GAAG,6CAA6C,CAAA;AAC1D,QAAA,SAAS,GAAG,2CAA2C,CAAA;AACvD,QAAA,aAAa,GAAG,kCAAkC,CAAA;AAClD,QAAA,WAAW,GAAG,wEAAwE,CAAA;AACtF,QAAA,sBAAsB,GAAG,iBAAiB,CAAA;AAC1C,QAAA,oBAAoB,GAAG,yDAAyD,CAAA;AAChF,QAAA,uBAAuB,GAAG,6BAA6B,CAAA;AACvD,QAAA,mBAAmB,GAAG,yBAAyB,CAAA;AAC/C,QAAA,sBAAsB,GAAG,sCAAsC,CAAA;AAC/D,QAAA,aAAa,GAAG,4FAA4F,CAAA;AAC5G,QAAA,mBAAmB,GAAG,qDAAqD,CAAA;AAC3E,QAAA,WAAW,GAAG,4EAA4E,CAAA;AAC1F,QAAA,iBAAiB,GAAG,+CAA+C,CAAA;AACnE,QAAA,cAAc,GAAG,wEAAwE,CAAA;AACzF,QAAA,YAAY,GAAG,0CAA0C,CAAA;AACzD,QAAA,aAAa,GAAG,uCAAuC,CAAA;AACvD,QAAA,kBAAkB,GAAG,4BAA4B,CAAA;AACjD,QAAA,YAAY,GAAG,wEAAwE,CAAA;AACvF,QAAA,YAAY,GAAG,4DAA4D,CAAA;AAC3E,QAAA,YAAY,GAAG,mDAAmD,CAAA;AAClE,QAAA,UAAU,GAAG,wCAAwC,CAAA;AACrD,QAAA,YAAY,GAAG,2CAA2C,CAAA;AAC1D,QAAA,UAAU,GAAG,wCAAwC,CAAA;AACrD,QAAA,WAAW,GAAG,2GAA2G,CAAA;AACzH,QAAA,iBAAiB,GAAG,4CAA4C,CAAA;AAChE,QAAA,aAAa,GAAG,4DAA4D,CAAA;AAC5E,QAAA,aAAa,GAAG,mDAAmD,CAAA;AACnE,QAAA,YAAY,GAAI,wDAAwD,CAAA;AACxE,QAAA,eAAe,GAAG,8DAA8D,CAAA;AAChF,QAAA,gBAAgB,GAAG,6BAA6B,CAAA;AAChD,QAAA,mBAAmB,GAAG,kGAAkG,CAAA;AACxH,QAAA,sBAAsB,GAAG,0CAA0C,CAAA;AACnE,QAAA,kBAAkB,GAAG,sCAAsC,CAAA;AAC3D,QAAA,oBAAoB,GAAG,kDAAkD,CAAA;AACzE,QAAA,UAAU,GAAG,2CAA2C,CAAA;AACxD,QAAA,gBAAgB,GAAG,2CAA2C,CAAA;AAC9D,QAAA,kBAAkB,GAAG,8DAA8D,CAAA"}
1
+ {"version":3,"file":"regexes.const.js","sourceRoot":"","sources":["../../src/consts/regexes.const.ts"],"names":[],"mappings":";;;AAAA,aAAa;AACA,QAAA,SAAS,GAAG,sBAAsB,CAAA;AAClC,QAAA,SAAS,GAAG,mEAAmE,CAAA;AAC/E,QAAA,UAAU,GAAG,4CAA4C,CAAA;AACzD,QAAA,UAAU,GAAG,6CAA6C,CAAA;AAC1D,QAAA,SAAS,GAAG,2CAA2C,CAAA;AACvD,QAAA,aAAa,GAAG,kCAAkC,CAAA;AAClD,QAAA,WAAW,GAAG,wEAAwE,CAAA;AACtF,QAAA,sBAAsB,GAAG,iBAAiB,CAAA;AAC1C,QAAA,oBAAoB,GAAG,yDAAyD,CAAA;AAChF,QAAA,uBAAuB,GAAG,6BAA6B,CAAA;AACvD,QAAA,mBAAmB,GAAG,yBAAyB,CAAA;AAC/C,QAAA,sBAAsB,GAAG,sCAAsC,CAAA;AAC/D,QAAA,aAAa,GAAG,2FAA2F,CAAA;AAC3G,QAAA,mBAAmB,GAAG,qDAAqD,CAAA;AAC3E,QAAA,WAAW,GAAG,4EAA4E,CAAA;AAC1F,QAAA,iBAAiB,GAAG,+CAA+C,CAAA;AACnE,QAAA,cAAc,GAAG,wEAAwE,CAAA;AACzF,QAAA,YAAY,GAAG,0CAA0C,CAAA;AACzD,QAAA,aAAa,GAAG,uCAAuC,CAAA;AACvD,QAAA,kBAAkB,GAAG,4BAA4B,CAAA;AACjD,QAAA,YAAY,GAAG,wEAAwE,CAAA;AACvF,QAAA,YAAY,GAAG,4DAA4D,CAAA;AAC3E,QAAA,YAAY,GAAG,mDAAmD,CAAA;AAClE,QAAA,UAAU,GAAG,wCAAwC,CAAA;AACrD,QAAA,YAAY,GAAG,2CAA2C,CAAA;AAC1D,QAAA,UAAU,GAAG,wCAAwC,CAAA;AACrD,QAAA,WAAW,GAAG,2GAA2G,CAAA;AACzH,QAAA,iBAAiB,GAAG,4CAA4C,CAAA;AAChE,QAAA,aAAa,GAAG,4DAA4D,CAAA;AAC5E,QAAA,aAAa,GAAG,mDAAmD,CAAA;AACnE,QAAA,YAAY,GAAI,wDAAwD,CAAA;AACxE,QAAA,eAAe,GAAG,8DAA8D,CAAA;AAChF,QAAA,gBAAgB,GAAG,6BAA6B,CAAA;AAChD,QAAA,mBAAmB,GAAG,kGAAkG,CAAA;AACxH,QAAA,sBAAsB,GAAG,0CAA0C,CAAA;AACnE,QAAA,kBAAkB,GAAG,sCAAsC,CAAA;AAC3D,QAAA,oBAAoB,GAAG,kDAAkD,CAAA;AACzE,QAAA,UAAU,GAAG,2CAA2C,CAAA;AACxD,QAAA,gBAAgB,GAAG,2CAA2C,CAAA;AAC9D,QAAA,kBAAkB,GAAG,8DAA8D,CAAA;AACnF,QAAA,YAAY,GAAG,gDAAgD,CAAC"}
package/lib/helper.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export declare function createDoc(html: string): Document | null;
2
2
  export declare function makeEntryCacheKey(entry: any): string;
3
+ export declare function extractYtStartTime(url: string): string;
package/lib/helper.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeEntryCacheKey = exports.createDoc = void 0;
3
+ exports.extractYtStartTime = exports.makeEntryCacheKey = exports.createDoc = void 0;
4
4
  var consts_1 = require("./consts");
5
5
  function createDoc(html) {
6
6
  if (html.trim() === '') {
@@ -11,7 +11,19 @@ function createDoc(html) {
11
11
  }
12
12
  exports.createDoc = createDoc;
13
13
  function makeEntryCacheKey(entry) {
14
- return entry.author + "-" + entry.permlink + "-" + entry.last_update;
14
+ return "".concat(entry.author, "-").concat(entry.permlink, "-").concat(entry.last_update);
15
15
  }
16
16
  exports.makeEntryCacheKey = makeEntryCacheKey;
17
+ function extractYtStartTime(url) {
18
+ var urlObj = new URL(url);
19
+ var params = new URLSearchParams(urlObj.search);
20
+ if (params.has('t')) {
21
+ return '' + parseInt(params.get('t')); //parsing is important as sometimes t is famated '123s';
22
+ }
23
+ else if (params.has('start')) {
24
+ return params.get('start');
25
+ }
26
+ return '';
27
+ }
28
+ exports.extractYtStartTime = extractYtStartTime;
17
29
  //# sourceMappingURL=helper.js.map
package/lib/helper.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AAEpC,SAAgB,SAAS,CAAC,IAAY;IACpC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACtB,OAAO,IAAI,CAAA;KACZ;IAED,IAAM,GAAG,GAAG,kBAAS,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAExD,OAAO,GAAG,CAAA;AACZ,CAAC;AARD,8BAQC;AAED,SAAgB,iBAAiB,CAAC,KAAU;IAC1C,OAAU,KAAK,CAAC,MAAM,SAAI,KAAK,CAAC,QAAQ,SAAI,KAAK,CAAC,WAAa,CAAA;AACjE,CAAC;AAFD,8CAEC"}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AAEpC,SAAgB,SAAS,CAAC,IAAY;IACpC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACtB,OAAO,IAAI,CAAA;KACZ;IAED,IAAM,GAAG,GAAG,kBAAS,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAExD,OAAO,GAAG,CAAA;AACZ,CAAC;AARD,8BAQC;AAED,SAAgB,iBAAiB,CAAC,KAAU;IAC1C,OAAO,UAAG,KAAK,CAAC,MAAM,cAAI,KAAK,CAAC,QAAQ,cAAI,KAAK,CAAC,WAAW,CAAE,CAAA;AACjE,CAAC;AAFD,8CAEC;AAED,SAAgB,kBAAkB,CAAC,GAAU;IAC3C,IAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,IAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAC;QACjB,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,wDAAwD;KAChG;SAAK,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAC;QAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;KAC5B;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAVD,gDAUC"}
@@ -8,17 +8,17 @@ function markdown2Html(obj, forApp, webp) {
8
8
  if (forApp === void 0) { forApp = true; }
9
9
  if (webp === void 0) { webp = false; }
10
10
  if (typeof obj === 'string') {
11
- obj = methods_1.cleanReply(obj);
12
- return methods_1.markdownToHTML(obj, forApp, webp);
11
+ obj = (0, methods_1.cleanReply)(obj);
12
+ return (0, methods_1.markdownToHTML)(obj, forApp, webp);
13
13
  }
14
- var key = helper_1.makeEntryCacheKey(obj) + "-md" + (webp ? '-webp' : '');
15
- var item = cache_1.cacheGet(key);
14
+ var key = "".concat((0, helper_1.makeEntryCacheKey)(obj), "-md").concat(webp ? '-webp' : '');
15
+ var item = (0, cache_1.cacheGet)(key);
16
16
  if (item) {
17
17
  return item;
18
18
  }
19
- obj.body = methods_1.cleanReply(obj.body);
20
- var res = methods_1.markdownToHTML(obj.body, forApp, webp);
21
- cache_1.cacheSet(key, res);
19
+ obj.body = (0, methods_1.cleanReply)(obj.body);
20
+ var res = (0, methods_1.markdownToHTML)(obj.body, forApp, webp);
21
+ (0, cache_1.cacheSet)(key, res);
22
22
  return res;
23
23
  }
24
24
  exports.markdown2Html = markdown2Html;
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-2-html.js","sourceRoot":"","sources":["../src/markdown-2-html.ts"],"names":[],"mappings":";;;AAAA,mCAA4C;AAC5C,qCAAsD;AACtD,iCAA4C;AAG5C,SAAgB,aAAa,CAAC,GAAmB,EAAE,MAAa,EAAE,IAAY;IAA3B,uBAAA,EAAA,aAAa;IAAE,qBAAA,EAAA,YAAY;IAC5E,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,GAAG,GAAG,oBAAU,CAAC,GAAG,CAAC,CAAA;QACrB,OAAO,wBAAc,CAAC,GAAa,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;KACnD;IAED,IAAM,GAAG,GAAM,0BAAiB,CAAC,GAAG,CAAC,YAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAE,CAAA;IAEhE,IAAM,IAAI,GAAG,gBAAQ,CAAS,GAAG,CAAC,CAAA;IAClC,IAAI,IAAI,EAAE;QACR,OAAO,IAAI,CAAA;KACZ;IAED,GAAG,CAAC,IAAI,GAAG,oBAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAE/B,IAAM,GAAG,GAAG,wBAAc,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAClD,gBAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAElB,OAAO,GAAG,CAAA;AACZ,CAAC;AAnBD,sCAmBC"}
1
+ {"version":3,"file":"markdown-2-html.js","sourceRoot":"","sources":["../src/markdown-2-html.ts"],"names":[],"mappings":";;;AAAA,mCAA4C;AAC5C,qCAAsD;AACtD,iCAA4C;AAG5C,SAAgB,aAAa,CAAC,GAAmB,EAAE,MAAa,EAAE,IAAY;IAA3B,uBAAA,EAAA,aAAa;IAAE,qBAAA,EAAA,YAAY;IAC5E,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,GAAG,GAAG,IAAA,oBAAU,EAAC,GAAG,CAAC,CAAA;QACrB,OAAO,IAAA,wBAAc,EAAC,GAAa,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;KACnD;IAED,IAAM,GAAG,GAAG,UAAG,IAAA,0BAAiB,EAAC,GAAG,CAAC,gBAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAE,CAAA;IAEhE,IAAM,IAAI,GAAG,IAAA,gBAAQ,EAAS,GAAG,CAAC,CAAA;IAClC,IAAI,IAAI,EAAE;QACR,OAAO,IAAI,CAAA;KACZ;IAED,GAAG,CAAC,IAAI,GAAG,IAAA,oBAAU,EAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAE/B,IAAM,GAAG,GAAG,IAAA,wBAAc,EAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAClD,IAAA,gBAAQ,EAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAElB,OAAO,GAAG,CAAA;AACZ,CAAC;AAnBD,sCAmBC"}
@@ -5,6 +5,7 @@ var consts_1 = require("../consts");
5
5
  var get_inner_html_method_1 = require("./get-inner-html.method");
6
6
  var proxify_image_src_1 = require("../proxify-image-src");
7
7
  var remove_child_nodes_method_1 = require("./remove-child-nodes.method");
8
+ var helper_1 = require("../helper");
8
9
  function a(el, forApp, webp) {
9
10
  var href = el.getAttribute('href');
10
11
  // Continue if href has no value
@@ -25,22 +26,22 @@ function a(el, forApp, webp) {
25
26
  // & => &amp; can break equality
26
27
  if (href.match(consts_1.IMG_REGEX) &&
27
28
  href.trim().replace(/&amp;/g, '&') ===
28
- get_inner_html_method_1.getSerializedInnerHTML(el).trim().replace(/&amp;/g, '&')) {
29
- var attrs = forApp ? "data-href=\"" + href + "\" class=\"markdown-img-link\" src=\"" + proxify_image_src_1.proxifyImageSrc(href, 0, 0, webp ? 'webp' : 'match') + "\"" : "class=\"markdown-img-link\" src=\"" + proxify_image_src_1.proxifyImageSrc(href, 0, 0, webp ? 'webp' : 'match') + "\"";
30
- var replaceNode = consts_1.DOMParser.parseFromString("<img " + attrs + "/>");
29
+ (0, get_inner_html_method_1.getSerializedInnerHTML)(el).trim().replace(/&amp;/g, '&')) {
30
+ var attrs = forApp ? "data-href=\"".concat(href, "\" class=\"markdown-img-link\" src=\"").concat((0, proxify_image_src_1.proxifyImageSrc)(href, 0, 0, webp ? 'webp' : 'match'), "\"") : "class=\"markdown-img-link\" src=\"".concat((0, proxify_image_src_1.proxifyImageSrc)(href, 0, 0, webp ? 'webp' : 'match'), "\"");
31
+ var replaceNode = consts_1.DOMParser.parseFromString("<img ".concat(attrs, "/>"));
31
32
  el.parentNode.replaceChild(replaceNode, el);
32
33
  return;
33
34
  }
34
35
  if (href.match(consts_1.IPFS_REGEX) &&
35
36
  href.trim().replace(/&amp;/g, '&') ===
36
- get_inner_html_method_1.getSerializedInnerHTML(el).trim().replace(/&amp;/g, '&') &&
37
+ (0, get_inner_html_method_1.getSerializedInnerHTML)(el).trim().replace(/&amp;/g, '&') &&
37
38
  href.indexOf('#') === -1) {
38
39
  if (forApp) {
39
40
  el.setAttribute('data-href', href);
40
41
  el.removeAttribute('href');
41
42
  }
42
43
  el.setAttribute('class', 'markdown-img-link');
43
- remove_child_nodes_method_1.removeChildNodes(el);
44
+ (0, remove_child_nodes_method_1.removeChildNodes)(el);
44
45
  var img = el.ownerDocument.createElement('img');
45
46
  img.setAttribute('src', href);
46
47
  el.appendChild(img);
@@ -54,7 +55,7 @@ function a(el, forApp, webp) {
54
55
  var author = postMatch[3].replace('@', '');
55
56
  var permlink = postMatch[4];
56
57
  if (el.textContent === href) {
57
- el.textContent = "@" + author + "/" + permlink;
58
+ el.textContent = "@".concat(author, "/").concat(permlink);
58
59
  }
59
60
  if (forApp) {
60
61
  el.removeAttribute('href');
@@ -63,7 +64,7 @@ function a(el, forApp, webp) {
63
64
  el.setAttribute('data-permlink', permlink);
64
65
  }
65
66
  else {
66
- var h = "/" + tag + "/@" + author + "/" + permlink;
67
+ var h = "/".concat(tag, "/@").concat(author, "/").concat(permlink);
67
68
  el.setAttribute('href', h);
68
69
  }
69
70
  return;
@@ -75,14 +76,14 @@ function a(el, forApp, webp) {
75
76
  var author = mentionMatch[2].replace('@', '').toLowerCase();
76
77
  if (author.indexOf('/') === -1) {
77
78
  if (el.textContent === href) {
78
- el.textContent = "@" + author;
79
+ el.textContent = "@".concat(author);
79
80
  }
80
81
  if (forApp) {
81
82
  el.removeAttribute('href');
82
83
  el.setAttribute('data-author', author);
83
84
  }
84
85
  else {
85
- var h = "/@" + author;
86
+ var h = "/@".concat(author);
86
87
  el.setAttribute('href', h);
87
88
  }
88
89
  }
@@ -96,14 +97,14 @@ function a(el, forApp, webp) {
96
97
  var author = tpostMatch[2].replace('@', '').toLowerCase();
97
98
  var section = tpostMatch[3];
98
99
  if (el.textContent === href) {
99
- el.textContent = "@" + author + "/" + section;
100
+ el.textContent = "@".concat(author, "/").concat(section);
100
101
  }
101
102
  if (forApp) {
102
- var ha = "https://ecency.com/@" + author + "/" + section;
103
+ var ha = "https://ecency.com/@".concat(author, "/").concat(section);
103
104
  el.setAttribute('href', ha);
104
105
  }
105
106
  else {
106
- var h = "/@" + author + "/" + section;
107
+ var h = "/@".concat(author, "/").concat(section);
107
108
  el.setAttribute('href', h);
108
109
  }
109
110
  return;
@@ -117,7 +118,7 @@ function a(el, forApp, webp) {
117
118
  var author = tpostMatch[2].replace('@', '');
118
119
  var permlink = tpostMatch[3];
119
120
  if (el.textContent === href) {
120
- el.textContent = "@" + author + "/" + permlink;
121
+ el.textContent = "@".concat(author, "/").concat(permlink);
121
122
  }
122
123
  if (forApp) {
123
124
  el.removeAttribute('href');
@@ -126,7 +127,7 @@ function a(el, forApp, webp) {
126
127
  el.setAttribute('data-permlink', permlink);
127
128
  }
128
129
  else {
129
- var h = "/" + tag + "/@" + author + "/" + permlink;
130
+ var h = "/".concat(tag, "/@").concat(author, "/").concat(permlink);
130
131
  el.setAttribute('href', h);
131
132
  }
132
133
  return;
@@ -139,14 +140,14 @@ function a(el, forApp, webp) {
139
140
  var author = imentionMatch[0].replace('/@', '').toLowerCase();
140
141
  if (author.indexOf('/') === -1) {
141
142
  if (el.textContent === href) {
142
- el.textContent = "@" + author;
143
+ el.textContent = "@".concat(author);
143
144
  }
144
145
  if (forApp) {
145
146
  el.removeAttribute('href');
146
147
  el.setAttribute('data-author', author);
147
148
  }
148
149
  else {
149
- var h = "/@" + author;
150
+ var h = "/@".concat(author);
150
151
  el.setAttribute('href', h);
151
152
  }
152
153
  }
@@ -160,14 +161,14 @@ function a(el, forApp, webp) {
160
161
  var author = cpostMatch[1].replace('@', '').toLowerCase();
161
162
  var section = cpostMatch[2];
162
163
  if (el.textContent === href) {
163
- el.textContent = "@" + author + "/" + section;
164
+ el.textContent = "@".concat(author, "/").concat(section);
164
165
  }
165
166
  if (forApp) {
166
- var ha = "https://ecency.com/@" + author + "/" + section;
167
+ var ha = "https://ecency.com/@".concat(author, "/").concat(section);
167
168
  el.setAttribute('href', ha);
168
169
  }
169
170
  else {
170
- var h = "/@" + author + "/" + section;
171
+ var h = "/@".concat(author, "/").concat(section);
171
172
  el.setAttribute('href', h);
172
173
  }
173
174
  return;
@@ -178,7 +179,7 @@ function a(el, forApp, webp) {
178
179
  var author = cpostMatch[1].replace('@', '');
179
180
  var permlink = cpostMatch[2];
180
181
  if (el.textContent === href) {
181
- el.textContent = "@" + author + "/" + permlink;
182
+ el.textContent = "@".concat(author, "/").concat(permlink);
182
183
  }
183
184
  if (forApp) {
184
185
  el.removeAttribute('href');
@@ -187,7 +188,7 @@ function a(el, forApp, webp) {
187
188
  el.setAttribute('data-permlink', permlink);
188
189
  }
189
190
  else {
190
- var h = "/" + tag + "/@" + author + "/" + permlink;
191
+ var h = "/".concat(tag, "/@").concat(author, "/").concat(permlink);
191
192
  el.setAttribute('href', h);
192
193
  }
193
194
  return;
@@ -200,7 +201,7 @@ function a(el, forApp, webp) {
200
201
  var filter = topicMatch[2];
201
202
  var tag = topicMatch[3];
202
203
  if (el.textContent === href) {
203
- el.textContent = "/" + filter + "/" + tag;
204
+ el.textContent = "/".concat(filter, "/").concat(tag);
204
205
  }
205
206
  if (forApp) {
206
207
  el.removeAttribute('href');
@@ -208,7 +209,7 @@ function a(el, forApp, webp) {
208
209
  el.setAttribute('data-tag', tag);
209
210
  }
210
211
  else {
211
- var h = "/" + filter + "/" + tag;
212
+ var h = "/".concat(filter, "/").concat(tag);
212
213
  el.setAttribute('href', h);
213
214
  }
214
215
  return;
@@ -220,7 +221,7 @@ function a(el, forApp, webp) {
220
221
  var filter = itopicMatch[1];
221
222
  var tag = itopicMatch[2];
222
223
  if (el.textContent === href) {
223
- el.textContent = "/" + filter + "/" + tag;
224
+ el.textContent = "/".concat(filter, "/").concat(tag);
224
225
  }
225
226
  if (forApp) {
226
227
  el.removeAttribute('href');
@@ -228,7 +229,7 @@ function a(el, forApp, webp) {
228
229
  el.setAttribute('data-tag', tag);
229
230
  }
230
231
  else {
231
- var h = "/" + filter + "/" + tag;
232
+ var h = "/".concat(filter, "/").concat(tag);
232
233
  el.setAttribute('href', h);
233
234
  }
234
235
  return;
@@ -245,7 +246,7 @@ function a(el, forApp, webp) {
245
246
  filter = 'created';
246
247
  }
247
248
  if (el.textContent === href) {
248
- el.textContent = filter + "/" + community;
249
+ el.textContent = "".concat(filter, "/").concat(community);
249
250
  }
250
251
  if (forApp) {
251
252
  el.removeAttribute('href');
@@ -253,7 +254,7 @@ function a(el, forApp, webp) {
253
254
  el.setAttribute('data-filter', filter);
254
255
  }
255
256
  else {
256
- var h = "/" + filter + "/" + community;
257
+ var h = "/".concat(filter, "/").concat(community);
257
258
  el.setAttribute('href', h);
258
259
  }
259
260
  return;
@@ -266,7 +267,7 @@ function a(el, forApp, webp) {
266
267
  var author = cccMatch[2].replace('@', '');
267
268
  var permlink = cccMatch[3];
268
269
  if (el.textContent === href) {
269
- el.textContent = "@" + author + "/" + permlink;
270
+ el.textContent = "@".concat(author, "/").concat(permlink);
270
271
  }
271
272
  if (forApp) {
272
273
  el.removeAttribute('href');
@@ -275,7 +276,7 @@ function a(el, forApp, webp) {
275
276
  el.setAttribute('data-permlink', permlink);
276
277
  }
277
278
  else {
278
- var h = "/" + tag + "/@" + author + "/" + permlink;
279
+ var h = "/".concat(tag, "/@").concat(author, "/").concat(permlink);
279
280
  el.setAttribute('href', h);
280
281
  }
281
282
  return;
@@ -286,7 +287,7 @@ function a(el, forApp, webp) {
286
287
  var vid = e[1];
287
288
  el.setAttribute('class', 'markdown-video-link');
288
289
  el.removeAttribute('href');
289
- var embedSrc = "https://www.bitchute.com/embed/" + vid + "/";
290
+ var embedSrc = "https://www.bitchute.com/embed/".concat(vid, "/");
290
291
  el.textContent = '';
291
292
  el.setAttribute('data-embed-src', embedSrc);
292
293
  var play = el.ownerDocument.createElement('span');
@@ -299,7 +300,7 @@ function a(el, forApp, webp) {
299
300
  var e = consts_1.RUMBLE_REGEX.exec(href);
300
301
  if (e[1]) {
301
302
  var vid = e[1];
302
- var embedSrc = "https://www.rumble.com/embed/" + vid + "/?pub=4";
303
+ var embedSrc = "https://www.rumble.com/embed/".concat(vid, "/?pub=4");
303
304
  el.setAttribute('class', 'markdown-video-link');
304
305
  el.removeAttribute('href');
305
306
  el.textContent = '';
@@ -315,7 +316,7 @@ function a(el, forApp, webp) {
315
316
  var e = consts_1.BRIGHTEON_REGEX.exec(href);
316
317
  if (e[2]) {
317
318
  var vid = e[2];
318
- var embedSrc = "https://www.brighteon.com/embed/" + vid;
319
+ var embedSrc = "https://www.brighteon.com/embed/".concat(vid);
319
320
  el.setAttribute('class', 'markdown-video-link');
320
321
  el.removeAttribute('href');
321
322
  el.textContent = '';
@@ -334,10 +335,16 @@ function a(el, forApp, webp) {
334
335
  el.setAttribute('class', 'markdown-video-link markdown-video-link-youtube');
335
336
  el.removeAttribute('href');
336
337
  var vid = e[1];
337
- var thumbnail = proxify_image_src_1.proxifyImageSrc("https://img.youtube.com/vi/" + vid.split('?')[0] + "/hqdefault.jpg", 0, 0, webp ? 'webp' : 'match');
338
- var embedSrc = "https://www.youtube.com/embed/" + vid + "?autoplay=1";
338
+ var thumbnail = (0, proxify_image_src_1.proxifyImageSrc)("https://img.youtube.com/vi/".concat(vid.split('?')[0], "/hqdefault.jpg"), 0, 0, webp ? 'webp' : 'match');
339
+ var embedSrc = "https://www.youtube.com/embed/".concat(vid, "?autoplay=1");
339
340
  el.textContent = '';
340
341
  el.setAttribute('data-embed-src', embedSrc);
342
+ el.setAttribute('data-youtube', vid);
343
+ //extract start time if available
344
+ var startTime = (0, helper_1.extractYtStartTime)(href);
345
+ if (startTime) {
346
+ el.setAttribute('data-start-time', startTime);
347
+ }
341
348
  var thumbImg = el.ownerDocument.createElement('img');
342
349
  thumbImg.setAttribute('class', 'no-replace video-thumbnail');
343
350
  thumbImg.setAttribute('itemprop', 'thumbnailUrl');
@@ -356,7 +363,7 @@ function a(el, forApp, webp) {
356
363
  if (e[3]) {
357
364
  el.setAttribute('class', 'markdown-video-link markdown-video-link-vimeo');
358
365
  el.removeAttribute('href');
359
- var embedSrc = "https://player.vimeo.com/video/" + e[3];
366
+ var embedSrc = "https://player.vimeo.com/video/".concat(e[3]);
360
367
  el.textContent = '';
361
368
  var ifr = el.ownerDocument.createElement('iframe');
362
369
  ifr.setAttribute('frameborder', '0');
@@ -375,10 +382,10 @@ function a(el, forApp, webp) {
375
382
  el.removeAttribute('href');
376
383
  var embedSrc = '';
377
384
  if (e[1] === undefined) {
378
- embedSrc = "https://player.twitch.tv/?channel=" + e[2];
385
+ embedSrc = "https://player.twitch.tv/?channel=".concat(e[2]);
379
386
  }
380
387
  else {
381
- embedSrc = "https://player.twitch.tv/?video=" + e[1];
388
+ embedSrc = "https://player.twitch.tv/?video=".concat(e[1]);
382
389
  }
383
390
  el.textContent = '';
384
391
  var ifr = el.ownerDocument.createElement('iframe');
@@ -396,7 +403,7 @@ function a(el, forApp, webp) {
396
403
  if (e[1]) {
397
404
  el.setAttribute('class', 'markdown-audio-link markdown-audio-link-spotify');
398
405
  el.removeAttribute('href');
399
- var embedSrc = "https://open.spotify.com/embed/playlist/" + e[1];
406
+ var embedSrc = "https://open.spotify.com/embed/playlist/".concat(e[1]);
400
407
  el.textContent = '';
401
408
  var ifr = el.ownerDocument.createElement('iframe');
402
409
  ifr.setAttribute('frameborder', '0');
@@ -414,7 +421,7 @@ function a(el, forApp, webp) {
414
421
  if (e[2]) {
415
422
  el.setAttribute('class', 'markdown-video-link markdown-video-link-loom');
416
423
  el.removeAttribute('href');
417
- var embedSrc = "https://www.loom.com/embed/" + e[2];
424
+ var embedSrc = "https://www.loom.com/embed/".concat(e[2]);
418
425
  el.textContent = '';
419
426
  var ifr = el.ownerDocument.createElement('iframe');
420
427
  ifr.setAttribute('frameborder', '0');
@@ -436,8 +443,8 @@ function a(el, forApp, webp) {
436
443
  if (e[2] && e[3]) {
437
444
  el.setAttribute('class', 'markdown-video-link markdown-video-link-dtube');
438
445
  el.removeAttribute('href');
439
- var thumbnail = proxify_image_src_1.proxifyImageSrc(imgEls[0].getAttribute('src').replace(/\s+/g, ''), 0, 0, webp ? 'webp' : 'match');
440
- var videoHref = "https://emb.d.tube/#!/" + e[2] + "/" + e[3];
446
+ var thumbnail = (0, proxify_image_src_1.proxifyImageSrc)(imgEls[0].getAttribute('src').replace(/\s+/g, ''), 0, 0, webp ? 'webp' : 'match');
447
+ var videoHref = "https://emb.d.tube/#!/".concat(e[2], "/").concat(e[3]);
441
448
  // el.setAttribute('data-video-href', videoHref)
442
449
  el.setAttribute('data-embed-src', videoHref);
443
450
  var thumbImg = el.ownerDocument.createElement('img');
@@ -461,7 +468,7 @@ function a(el, forApp, webp) {
461
468
  if (e[2] && e[3]) {
462
469
  el.setAttribute('class', 'markdown-video-link markdown-video-link-dtube');
463
470
  el.removeAttribute('href');
464
- var videoHref = "https://emb.d.tube/#!/" + e[2] + "/" + e[3];
471
+ var videoHref = "https://emb.d.tube/#!/".concat(e[2], "/").concat(e[3]);
465
472
  // el.setAttribute('data-video-href', videoHref);
466
473
  el.setAttribute('data-embed-src', videoHref);
467
474
  var play = el.ownerDocument.createElement('span');
@@ -478,7 +485,7 @@ function a(el, forApp, webp) {
478
485
  var e = consts_1.SPEAK_REGEX.exec(href);
479
486
  // e[1] = tld , e[3] = embed address
480
487
  if (e[1] && e[3]) {
481
- var videoHref = "https://3speak." + e[1] + "/embed?v=" + e[3];
488
+ var videoHref = "https://3speak.".concat(e[1], "/embed?v=").concat(e[3]);
482
489
  el.setAttribute('class', 'markdown-video-link markdown-video-link-speak');
483
490
  el.removeAttribute('href');
484
491
  el.setAttribute('data-embed-src', videoHref);
@@ -486,7 +493,7 @@ function a(el, forApp, webp) {
486
493
  el.textContent = '';
487
494
  }
488
495
  if (imgEls.length === 1) {
489
- var thumbnail = proxify_image_src_1.proxifyImageSrc(imgEls[0].getAttribute('src').replace(/\s+/g, ''), 0, 0, webp ? 'webp' : 'match');
496
+ var thumbnail = (0, proxify_image_src_1.proxifyImageSrc)(imgEls[0].getAttribute('src').replace(/\s+/g, ''), 0, 0, webp ? 'webp' : 'match');
490
497
  var thumbImg = el.ownerDocument.createElement('img');
491
498
  thumbImg.setAttribute('class', 'no-replace video-thumbnail');
492
499
  thumbImg.setAttribute('itemprop', 'thumbnailUrl');
@@ -509,7 +516,7 @@ function a(el, forApp, webp) {
509
516
  if (e) {
510
517
  var url = e[0].replace(/(<([^>]+)>)/gi, '');
511
518
  var author = e[1].replace(/(<([^>]+)>)/gi, '');
512
- var twitterCode = "<blockquote class=\"twitter-tweet\"><p>" + url + "</p>- <a href=\"" + url + "\">" + author + "</a></blockquote>";
519
+ var twitterCode = "<blockquote class=\"twitter-tweet\"><p>".concat(url, "</p>- <a href=\"").concat(url, "\">").concat(author, "</a></blockquote>");
513
520
  var replaceNode = consts_1.DOMParser.parseFromString(twitterCode);
514
521
  el.parentNode.replaceChild(replaceNode, el);
515
522
  return;
@@ -535,10 +542,23 @@ function a(el, forApp, webp) {
535
542
  el.setAttribute('class', 'markdown-external-link');
536
543
  // Prepend https if no scheme provided
537
544
  if (!(/^((#)|(mailto:)|(\/(?!\/))|(((steem|hive|esteem|ecency|https?):)?\/\/))/.test(href))) {
538
- href = "https://" + href;
545
+ href = "https://".concat(href);
539
546
  }
540
547
  if (forApp) {
541
548
  el.setAttribute('data-href', href);
549
+ var match_1 = href.match(consts_1.YOUTUBE_REGEX);
550
+ if (match_1) {
551
+ var e = consts_1.YOUTUBE_REGEX.exec(href);
552
+ if (e[1]) {
553
+ var vid = e[1];
554
+ el.setAttribute('data-youtube', vid);
555
+ //extract start time if available
556
+ var startTime = (0, helper_1.extractYtStartTime)(href);
557
+ if (startTime) {
558
+ el.setAttribute('data-start-time', startTime);
559
+ }
560
+ }
561
+ }
542
562
  el.removeAttribute('href');
543
563
  }
544
564
  else {