@ecency/render-helper 2.3.17 → 2.4.2
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/LICENSE +1 -1
- package/README.md +171 -17
- package/dist/browser/index.d.ts +32 -0
- package/dist/browser/index.js +1556 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/node/index.cjs +1575 -0
- package/dist/node/index.cjs.map +1 -0
- package/dist/node/index.mjs +1559 -0
- package/dist/node/index.mjs.map +1 -0
- package/package.json +49 -47
- package/lib/cache.d.ts +0 -3
- package/lib/cache.js +0 -21
- package/lib/cache.js.map +0 -1
- package/lib/catch-post-image.d.ts +0 -2
- package/lib/catch-post-image.js +0 -76
- package/lib/catch-post-image.js.map +0 -1
- package/lib/consts/allowed-attributes.const.d.ts +0 -2
- package/lib/consts/allowed-attributes.const.js +0 -71
- package/lib/consts/allowed-attributes.const.js.map +0 -1
- package/lib/consts/dom-parser.const.d.ts +0 -2
- package/lib/consts/dom-parser.const.js +0 -12
- package/lib/consts/dom-parser.const.js.map +0 -1
- package/lib/consts/index.d.ts +0 -5
- package/lib/consts/index.js +0 -22
- package/lib/consts/index.js.map +0 -1
- package/lib/consts/regexes.const.d.ts +0 -44
- package/lib/consts/regexes.const.js +0 -49
- package/lib/consts/regexes.const.js.map +0 -1
- package/lib/consts/section-list.const.d.ts +0 -1
- package/lib/consts/section-list.const.js +0 -24
- package/lib/consts/section-list.const.js.map +0 -1
- package/lib/consts/white-list.const.d.ts +0 -2
- package/lib/consts/white-list.const.js +0 -37
- package/lib/consts/white-list.const.js.map +0 -1
- package/lib/helper.d.ts +0 -6
- package/lib/helper.js +0 -72
- package/lib/helper.js.map +0 -1
- package/lib/index.d.ts +0 -8
- package/lib/index.js +0 -19
- package/lib/index.js.map +0 -1
- package/lib/markdown-2-html.d.ts +0 -2
- package/lib/markdown-2-html.js +0 -25
- package/lib/markdown-2-html.js.map +0 -1
- package/lib/methods/a.method.d.ts +0 -1
- package/lib/methods/a.method.js +0 -647
- package/lib/methods/a.method.js.map +0 -1
- package/lib/methods/clean-reply.method.d.ts +0 -1
- package/lib/methods/clean-reply.method.js +0 -37
- package/lib/methods/clean-reply.method.js.map +0 -1
- package/lib/methods/get-inner-html.method.d.ts +0 -1
- package/lib/methods/get-inner-html.method.js +0 -16
- package/lib/methods/get-inner-html.method.js.map +0 -1
- package/lib/methods/iframe.method.d.ts +0 -1
- package/lib/methods/iframe.method.js +0 -159
- package/lib/methods/iframe.method.js.map +0 -1
- package/lib/methods/img.method.d.ts +0 -4
- package/lib/methods/img.method.js +0 -50
- package/lib/methods/img.method.js.map +0 -1
- package/lib/methods/index.d.ts +0 -7
- package/lib/methods/index.js +0 -24
- package/lib/methods/index.js.map +0 -1
- package/lib/methods/linkify.method.d.ts +0 -1
- package/lib/methods/linkify.method.js +0 -56
- package/lib/methods/linkify.method.js.map +0 -1
- package/lib/methods/markdown-to-html.method.d.ts +0 -1
- package/lib/methods/markdown-to-html.method.js +0 -98
- package/lib/methods/markdown-to-html.method.js.map +0 -1
- package/lib/methods/noop.method.d.ts +0 -1
- package/lib/methods/noop.method.js +0 -6
- package/lib/methods/noop.method.js.map +0 -1
- package/lib/methods/p.method.d.ts +0 -1
- package/lib/methods/p.method.js +0 -11
- package/lib/methods/p.method.js.map +0 -1
- package/lib/methods/remove-child-nodes.method.d.ts +0 -1
- package/lib/methods/remove-child-nodes.method.js +0 -10
- package/lib/methods/remove-child-nodes.method.js.map +0 -1
- package/lib/methods/sanitize-html.method.d.ts +0 -1
- package/lib/methods/sanitize-html.method.js +0 -42
- package/lib/methods/sanitize-html.method.js.map +0 -1
- package/lib/methods/text.method.d.ts +0 -1
- package/lib/methods/text.method.js +0 -69
- package/lib/methods/text.method.js.map +0 -1
- package/lib/methods/traverse.method.d.ts +0 -3
- package/lib/methods/traverse.method.js +0 -38
- package/lib/methods/traverse.method.js.map +0 -1
- package/lib/post-body-summary.d.ts +0 -2
- package/lib/post-body-summary.js +0 -123
- package/lib/post-body-summary.js.map +0 -1
- package/lib/proxify-image-src.d.ts +0 -5
- package/lib/proxify-image-src.js +0 -86
- package/lib/proxify-image-src.js.map +0 -1
- package/lib/render-helper.js +0 -1
- package/lib/types/entry.interface.d.ts +0 -7
- package/lib/types/entry.interface.js +0 -3
- package/lib/types/entry.interface.js.map +0 -1
- package/lib/types/index.d.ts +0 -2
- package/lib/types/index.js +0 -19
- package/lib/types/index.js.map +0 -1
- package/lib/types/xss-white-list.interface.d.ts +0 -6
- package/lib/types/xss-white-list.interface.js +0 -3
- package/lib/types/xss-white-list.interface.js.map +0 -1
- package/src/cache.ts +0 -15
- package/src/catch-post-image.spec.ts +0 -144
- package/src/catch-post-image.ts +0 -78
- package/src/consts/allowed-attributes.const.ts +0 -69
- package/src/consts/dom-parser.const.ts +0 -6
- package/src/consts/index.ts +0 -5
- package/src/consts/regexes.const.ts +0 -46
- package/src/consts/section-list.const.ts +0 -20
- package/src/consts/white-list.const.ts +0 -33
- package/src/external-types/multihashes.d.ts +0 -3
- package/src/helper.spec.ts +0 -16
- package/src/helper.ts +0 -77
- package/src/index.ts +0 -18
- package/src/markdown-2-html.spec.ts +0 -1251
- package/src/markdown-2-html.ts +0 -25
- package/src/methods/a.method.ts +0 -791
- package/src/methods/clean-reply.method.ts +0 -32
- package/src/methods/get-inner-html.method.ts +0 -11
- package/src/methods/iframe.method.ts +0 -176
- package/src/methods/img.method.ts +0 -62
- package/src/methods/index.ts +0 -7
- package/src/methods/linkify.method.ts +0 -61
- package/src/methods/markdown-to-html.method.ts +0 -104
- package/src/methods/noop.method.ts +0 -1
- package/src/methods/p.method.ts +0 -6
- package/src/methods/remove-child-nodes.method.ts +0 -5
- package/src/methods/sanitize-html.method.ts +0 -32
- package/src/methods/text.method.ts +0 -77
- package/src/methods/traverse.method.ts +0 -33
- package/src/post-body-summary.spec.ts +0 -150
- package/src/post-body-summary.ts +0 -130
- package/src/proxify-image-src.spec.ts +0 -76
- package/src/proxify-image-src.ts +0 -77
- package/src/sanitize-html.spec.ts +0 -15
- package/src/test/data/index.ts +0 -12
- package/src/test/data/json/muratkbesiroglu____sci-fi-novel-underground-city-part-13.json +0 -2120
- package/src/test/data/json/steemitboard____steemitboard-notify-dunsky-20181210t153450000z.json +0 -47
- package/src/test/data/legacy/10.json +0 -5
- package/src/test/data/legacy/20.json +0 -5
- package/src/test/data/legacy/21.json +0 -5
- package/src/test/data/legacy/2112524.json +0 -5
- package/src/test/data/legacy/22.json +0 -5
- package/src/test/data/legacy/23.json +0 -5
- package/src/test/data/legacy/24.json +0 -5
- package/src/test/data/legacy/25.json +0 -5
- package/src/test/data/legacy/26.json +0 -5
- package/src/test/data/legacy/27.JSON +0 -5
- package/src/test/data/legacy/28.json +0 -5
- package/src/test/data/legacy/29.json +0 -5
- package/src/test/data/legacy/31.json +0 -5
- package/src/test/snaps.json +0 -8
- package/src/types/entry.interface.ts +0 -7
- package/src/types/index.ts +0 -2
- package/src/types/xss-white-list.interface.ts +0 -7
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function removeChildNodes(node: Node): void;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.removeChildNodes = void 0;
|
|
4
|
-
function removeChildNodes(node) {
|
|
5
|
-
Array.from(Array(node.childNodes.length).keys()).forEach(function (x) {
|
|
6
|
-
node.removeChild(node.childNodes[x]);
|
|
7
|
-
});
|
|
8
|
-
}
|
|
9
|
-
exports.removeChildNodes = removeChildNodes;
|
|
10
|
-
//# sourceMappingURL=remove-child-nodes.method.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"remove-child-nodes.method.js","sourceRoot":"","sources":["../../src/methods/remove-child-nodes.method.ts"],"names":[],"mappings":";;;AAAA,SAAgB,gBAAgB,CAAC,IAAU;IACzC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAA,CAAC;QACxD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;AACJ,CAAC;AAJD,4CAIC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function sanitizeHtml(html: string): string;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.sanitizeHtml = void 0;
|
|
7
|
-
var xss_1 = __importDefault(require("xss"));
|
|
8
|
-
var consts_1 = require("../consts");
|
|
9
|
-
var decodeEntities = function (input) {
|
|
10
|
-
return input
|
|
11
|
-
.replace(/&#(\d+);?/g, function (_, dec) { return String.fromCharCode(dec); })
|
|
12
|
-
.replace(/&#x([0-9a-f]+);?/gi, function (_, hex) { return String.fromCharCode(parseInt(hex, 16)); });
|
|
13
|
-
};
|
|
14
|
-
function sanitizeHtml(html) {
|
|
15
|
-
return (0, xss_1.default)(html, {
|
|
16
|
-
whiteList: consts_1.ALLOWED_ATTRIBUTES,
|
|
17
|
-
stripIgnoreTag: true,
|
|
18
|
-
stripIgnoreTagBody: ['style'],
|
|
19
|
-
css: false,
|
|
20
|
-
onTagAttr: function (tag, name, value) {
|
|
21
|
-
var decoded = decodeEntities(value.trim().toLowerCase());
|
|
22
|
-
if (name.startsWith('on'))
|
|
23
|
-
return ''; // 🛡 event handlers
|
|
24
|
-
if (tag === 'img' && name === 'src' && (!/^https?:\/\//.test(decoded) || decoded.startsWith('javascript:')))
|
|
25
|
-
return '';
|
|
26
|
-
if (tag === 'video' && ['src', 'poster'].includes(name) &&
|
|
27
|
-
(!/^https?:\/\//.test(decoded) || decoded.startsWith('javascript:')))
|
|
28
|
-
return '';
|
|
29
|
-
if (tag === 'img' && ['dynsrc', 'lowsrc'].includes(name))
|
|
30
|
-
return '';
|
|
31
|
-
if (tag === 'span' && name === 'class' && value === 'wr')
|
|
32
|
-
return '';
|
|
33
|
-
if (name === 'id') {
|
|
34
|
-
if (!consts_1.ID_WHITELIST.test(decoded))
|
|
35
|
-
return '';
|
|
36
|
-
}
|
|
37
|
-
return undefined;
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
exports.sanitizeHtml = sanitizeHtml;
|
|
42
|
-
//# sourceMappingURL=sanitize-html.method.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize-html.method.js","sourceRoot":"","sources":["../../src/methods/sanitize-html.method.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAqB;AACrB,oCAA0D;AAE1D,IAAM,cAAc,GAAG,UAAC,KAAa;IACnC,OAAA,KAAK;SACF,OAAO,CAAC,YAAY,EAAE,UAAC,CAAC,EAAE,GAAG,IAAK,OAAA,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,EAAxB,CAAwB,CAAC;SAC3D,OAAO,CAAC,oBAAoB,EAAE,UAAC,CAAC,EAAE,GAAG,IAAK,OAAA,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAtC,CAAsC,CAAC;AAFpF,CAEoF,CAAC;AAEvF,SAAgB,YAAY,CAAC,IAAY;IACvC,OAAO,IAAA,aAAG,EAAC,IAAI,EAAE;QACf,SAAS,EAAE,2BAAkB;QAC7B,cAAc,EAAE,IAAI;QACpB,kBAAkB,EAAE,CAAC,OAAO,CAAC;QAC7B,GAAG,EAAE,KAAK;QACV,SAAS,EAAE,UAAC,GAAG,EAAE,IAAI,EAAE,KAAK;YAC1B,IAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YAE3D,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,EAAE,CAAC,CAAC,oBAAoB;YAC1D,IAAI,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBAAE,OAAO,EAAE,CAAC;YACvH,IACE,GAAG,KAAK,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACnD,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBACpE,OAAO,EAAE,CAAC;YACZ,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,EAAE,CAAC;YACpE,IAAI,GAAG,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,EAAE,CAAC;YACpE,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,IAAI,CAAC,qBAAY,CAAC,IAAI,CAAC,OAAO,CAAC;oBAAE,OAAO,EAAE,CAAC;aAC5C;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAvBD,oCAuBC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function text(node: HTMLElement | null, forApp: boolean, webp: boolean): void;
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.text = void 0;
|
|
4
|
-
var consts_1 = require("../consts");
|
|
5
|
-
var helper_1 = require("../helper");
|
|
6
|
-
var proxify_image_src_1 = require("../proxify-image-src");
|
|
7
|
-
var linkify_method_1 = require("./linkify.method");
|
|
8
|
-
var img_method_1 = require("./img.method");
|
|
9
|
-
function text(node, forApp, webp) {
|
|
10
|
-
if (!node || !node.parentNode) {
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
if (['a', 'code'].includes(node.parentNode.nodeName)) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
var nodeValue = node.nodeValue || '';
|
|
17
|
-
var linkified = (0, linkify_method_1.linkify)(nodeValue, forApp, webp);
|
|
18
|
-
if (linkified !== nodeValue) {
|
|
19
|
-
var replaceNode = consts_1.DOMParser.parseFromString("<span class=\"wr\">".concat(linkified, "</span>"));
|
|
20
|
-
node.parentNode.insertBefore(replaceNode, node);
|
|
21
|
-
node.parentNode.removeChild(node);
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
if (nodeValue.match(consts_1.IMG_REGEX)) {
|
|
25
|
-
var isLCP = false; // Traverse handles LCP; no need to double-count
|
|
26
|
-
var imageHTML = (0, img_method_1.createImageHTML)(nodeValue, isLCP, webp);
|
|
27
|
-
var replaceNode = consts_1.DOMParser.parseFromString(imageHTML);
|
|
28
|
-
node.parentNode.replaceChild(replaceNode, node);
|
|
29
|
-
}
|
|
30
|
-
// If a youtube video
|
|
31
|
-
if (nodeValue.match(consts_1.YOUTUBE_REGEX)) {
|
|
32
|
-
var e = consts_1.YOUTUBE_REGEX.exec(nodeValue);
|
|
33
|
-
if (e[1]) {
|
|
34
|
-
var vid = e[1];
|
|
35
|
-
var thumbnail = (0, proxify_image_src_1.proxifyImageSrc)("https://img.youtube.com/vi/".concat(vid.split('?')[0], "/hqdefault.jpg"), 0, 0, webp ? 'webp' : 'match');
|
|
36
|
-
var embedSrc = "https://www.youtube.com/embed/".concat(vid, "?autoplay=1");
|
|
37
|
-
var attrs = "class=\"markdown-video-link markdown-video-link-youtube\" data-embed-src=\"".concat(embedSrc, "\" data-youtube=\"").concat(vid, "\"");
|
|
38
|
-
//extract start time if available
|
|
39
|
-
var startTime = (0, helper_1.extractYtStartTime)(nodeValue);
|
|
40
|
-
if (startTime) {
|
|
41
|
-
attrs = attrs.concat(" data-start-time=\"".concat(startTime, "\""));
|
|
42
|
-
}
|
|
43
|
-
var thumbImg = node.ownerDocument.createElement('img');
|
|
44
|
-
thumbImg.setAttribute('class', 'no-replace video-thumbnail');
|
|
45
|
-
thumbImg.setAttribute('src', thumbnail);
|
|
46
|
-
var play = node.ownerDocument.createElement('span');
|
|
47
|
-
play.setAttribute('class', 'markdown-video-play');
|
|
48
|
-
var replaceNode = consts_1.DOMParser.parseFromString("<p><a ".concat(attrs, ">").concat(thumbImg).concat(play, "</a></p>"));
|
|
49
|
-
node.parentNode.replaceChild(replaceNode, node);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
if (nodeValue && typeof nodeValue === 'string') {
|
|
53
|
-
var postMatch = nodeValue.trim().match(consts_1.POST_REGEX);
|
|
54
|
-
if (postMatch && consts_1.WHITE_LIST.includes(postMatch[1].replace(/www./, ''))) {
|
|
55
|
-
var tag = postMatch[2];
|
|
56
|
-
var author = postMatch[3].replace('@', '');
|
|
57
|
-
var permlink = (0, helper_1.sanitizePermlink)(postMatch[4]);
|
|
58
|
-
if (!(0, helper_1.isValidUsername)(author))
|
|
59
|
-
return;
|
|
60
|
-
if (!(0, helper_1.isValidPermlink)(permlink))
|
|
61
|
-
return;
|
|
62
|
-
var attrs = forApp ? "data-tag=\"".concat(tag, "\" data-author=\"").concat(author, "\" data-permlink=\"").concat(permlink, "\" class=\"markdown-post-link\"") : "class=\"markdown-post-link\" href=\"/".concat(tag, "/@").concat(author, "/").concat(permlink, "\"");
|
|
63
|
-
var replaceNode = consts_1.DOMParser.parseFromString("<a ".concat(attrs, ">/@").concat(author, "/").concat(permlink, "</a>"));
|
|
64
|
-
node.parentNode.replaceChild(replaceNode, node);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
exports.text = text;
|
|
69
|
-
//# sourceMappingURL=text.method.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"text.method.js","sourceRoot":"","sources":["../../src/methods/text.method.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.traverse = void 0;
|
|
4
|
-
var a_method_1 = require("./a.method");
|
|
5
|
-
var iframe_method_1 = require("./iframe.method");
|
|
6
|
-
var img_method_1 = require("./img.method");
|
|
7
|
-
var p_method_1 = require("./p.method");
|
|
8
|
-
var text_method_1 = require("./text.method");
|
|
9
|
-
function traverse(node, forApp, depth, webp, state) {
|
|
10
|
-
if (depth === void 0) { depth = 0; }
|
|
11
|
-
if (webp === void 0) { webp = false; }
|
|
12
|
-
if (state === void 0) { state = { firstImageFound: false }; }
|
|
13
|
-
if (!node || !node.childNodes) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
Array.from(Array(node.childNodes.length).keys())
|
|
17
|
-
.map(function (i) { return node.childNodes[i]; })
|
|
18
|
-
.forEach(function (child) {
|
|
19
|
-
if (child.nodeName.toLowerCase() === 'a') {
|
|
20
|
-
(0, a_method_1.a)(child, forApp, webp);
|
|
21
|
-
}
|
|
22
|
-
if (child.nodeName.toLowerCase() === 'iframe') {
|
|
23
|
-
(0, iframe_method_1.iframe)(child);
|
|
24
|
-
}
|
|
25
|
-
if (child.nodeName === '#text') {
|
|
26
|
-
(0, text_method_1.text)(child, forApp, webp);
|
|
27
|
-
}
|
|
28
|
-
if (child.nodeName.toLowerCase() === 'img') {
|
|
29
|
-
(0, img_method_1.img)(child, webp, state);
|
|
30
|
-
}
|
|
31
|
-
if (child.nodeName.toLowerCase() === 'p') {
|
|
32
|
-
(0, p_method_1.p)(child);
|
|
33
|
-
}
|
|
34
|
-
traverse(child, forApp, depth + 1, webp, state);
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
exports.traverse = traverse;
|
|
38
|
-
//# sourceMappingURL=traverse.method.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"traverse.method.js","sourceRoot":"","sources":["../../src/methods/traverse.method.ts"],"names":[],"mappings":";;;AAAA,uCAA8B;AAC9B,iDAAwC;AACxC,2CAAkC;AAClC,uCAA8B;AAC9B,6CAAoC;AAEpC,SAAgB,QAAQ,CAAC,IAAU,EAAE,MAAe,EAAE,KAAS,EAAE,IAAY,EAAE,KAAkC;IAA3D,sBAAA,EAAA,SAAS;IAAE,qBAAA,EAAA,YAAY;IAAE,sBAAA,EAAA,UAAU,eAAe,EAAE,KAAK,EAAE;IAC/G,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;QAC7B,OAAM;KACP;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;SAC7C,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAlB,CAAkB,CAAC;SAC5B,OAAO,CAAC,UAAA,KAAK;QACZ,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE;YACxC,IAAA,YAAC,EAAc,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;SACpC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;YAC7C,IAAA,sBAAM,EAAc,KAAK,CAAC,CAAA;SAC3B;QACD,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE;YAC9B,IAAA,kBAAI,EAAc,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;SACvC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE;YAC1C,IAAA,gBAAG,EAAc,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;SACrC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE;YACxC,IAAA,YAAC,EAAc,KAAK,CAAC,CAAA;SACtB;QAED,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;AACN,CAAC;AA1BD,4BA0BC"}
|
package/lib/post-body-summary.js
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getPostBodySummary = void 0;
|
|
7
|
-
var he_1 = __importDefault(require("he"));
|
|
8
|
-
var helper_1 = require("./helper");
|
|
9
|
-
var cache_1 = require("./cache");
|
|
10
|
-
var methods_1 = require("./methods");
|
|
11
|
-
var consts_1 = require("./consts");
|
|
12
|
-
var Remarkable = require('remarkable').Remarkable;
|
|
13
|
-
var linkify = require('remarkable/linkify').linkify;
|
|
14
|
-
var joint = function (arr, limit) {
|
|
15
|
-
if (limit === void 0) { limit = 200; }
|
|
16
|
-
var result = '';
|
|
17
|
-
if (arr) {
|
|
18
|
-
for (var i = 0; i < arr.length; i++) {
|
|
19
|
-
// join array with space separator
|
|
20
|
-
if (result) {
|
|
21
|
-
result += " ";
|
|
22
|
-
}
|
|
23
|
-
// break with length reaches limit
|
|
24
|
-
if (result.length > limit) {
|
|
25
|
-
break;
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
// make sure last join doesn't break the limit too much
|
|
29
|
-
if ((result + arr[i]).length < limit + 10) {
|
|
30
|
-
result += arr[i];
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
break;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return result.trim();
|
|
39
|
-
};
|
|
40
|
-
function postBodySummary(entryBody, length, platform) {
|
|
41
|
-
if (platform === void 0) { platform = 'web'; }
|
|
42
|
-
if (!entryBody) {
|
|
43
|
-
return '';
|
|
44
|
-
}
|
|
45
|
-
entryBody = (0, methods_1.cleanReply)(entryBody);
|
|
46
|
-
var mdd = new Remarkable({
|
|
47
|
-
html: true,
|
|
48
|
-
breaks: true,
|
|
49
|
-
typographer: false,
|
|
50
|
-
}).use(linkify);
|
|
51
|
-
mdd.core.ruler.enable([
|
|
52
|
-
'abbr'
|
|
53
|
-
]);
|
|
54
|
-
mdd.block.ruler.enable([
|
|
55
|
-
'footnote',
|
|
56
|
-
'deflist'
|
|
57
|
-
]);
|
|
58
|
-
mdd.inline.ruler.enable([
|
|
59
|
-
'footnote_inline',
|
|
60
|
-
'ins',
|
|
61
|
-
'mark',
|
|
62
|
-
'sub',
|
|
63
|
-
'sup'
|
|
64
|
-
]);
|
|
65
|
-
//encrypt entities
|
|
66
|
-
var entities = entryBody.match(consts_1.ENTITY_REGEX);
|
|
67
|
-
var encEntities = [];
|
|
68
|
-
if (entities && platform !== 'web') {
|
|
69
|
-
entities.forEach(function (entity) {
|
|
70
|
-
var CryptoJS = require("react-native-crypto-js");
|
|
71
|
-
var encData = CryptoJS.AES.encrypt(entity, 'key').toString();
|
|
72
|
-
var encyptedEntity = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(encData));
|
|
73
|
-
encEntities.push(encyptedEntity);
|
|
74
|
-
entryBody = entryBody.replace(entity, encyptedEntity);
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
// Convert markdown to html
|
|
78
|
-
var text = '';
|
|
79
|
-
try {
|
|
80
|
-
text = mdd.render(entryBody);
|
|
81
|
-
}
|
|
82
|
-
catch (err) {
|
|
83
|
-
console.log(err);
|
|
84
|
-
}
|
|
85
|
-
//decrypt and put back entiteis
|
|
86
|
-
if (platform !== 'web') {
|
|
87
|
-
encEntities.forEach(function (encEntity) {
|
|
88
|
-
var CryptoJS = require("react-native-crypto-js");
|
|
89
|
-
var decData = CryptoJS.enc.Base64.parse(encEntity).toString(CryptoJS.enc.Utf8);
|
|
90
|
-
var entity = CryptoJS.AES.decrypt(decData, 'key').toString(CryptoJS.enc.Utf8);
|
|
91
|
-
text = text.replace(encEntity, entity);
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
text = text
|
|
95
|
-
.replace(/(<([^>]+)>)/gi, '') // Remove html tags
|
|
96
|
-
.replace(/\r?\n|\r/g, ' ') // Remove new lines
|
|
97
|
-
.replace(/(?:https?|ftp):\/\/[\n\S]+/g, '') // Remove urls
|
|
98
|
-
.trim()
|
|
99
|
-
.replace(/ +(?= )/g, ''); // Remove all multiple spaces
|
|
100
|
-
if (length) {
|
|
101
|
-
// Truncate
|
|
102
|
-
text = joint(text.split(' '), length);
|
|
103
|
-
}
|
|
104
|
-
if (text) {
|
|
105
|
-
text = he_1.default.decode(text); // decode html entities
|
|
106
|
-
}
|
|
107
|
-
return text;
|
|
108
|
-
}
|
|
109
|
-
function getPostBodySummary(obj, length, platform) {
|
|
110
|
-
if (typeof obj === 'string') {
|
|
111
|
-
return postBodySummary(obj, length, platform);
|
|
112
|
-
}
|
|
113
|
-
var key = "".concat((0, helper_1.makeEntryCacheKey)(obj), "-sum-").concat(length);
|
|
114
|
-
var item = (0, cache_1.cacheGet)(key);
|
|
115
|
-
if (item) {
|
|
116
|
-
return item;
|
|
117
|
-
}
|
|
118
|
-
var res = postBodySummary(obj.body, length, platform);
|
|
119
|
-
(0, cache_1.cacheSet)(key, res);
|
|
120
|
-
return res;
|
|
121
|
-
}
|
|
122
|
-
exports.getPostBodySummary = getPostBodySummary;
|
|
123
|
-
//# sourceMappingURL=post-body-summary.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"post-body-summary.js","sourceRoot":"","sources":["../src/post-body-summary.ts"],"names":[],"mappings":";;;;;;AAAA,0CAAmB;AACnB,mCAA4C;AAC5C,iCAA4C;AAE5C,qCAAsC;AACtC,mCAAuC;AAG/B,IAAA,UAAU,GAAK,OAAO,CAAC,YAAY,CAAC,WAA1B,CAA0B;AACpC,IAAA,OAAO,GAAK,OAAO,CAAC,oBAAoB,CAAC,QAAlC,CAAkC;AAEjD,IAAM,KAAK,GAAG,UAAC,GAAa,EAAE,KAAW;IAAX,sBAAA,EAAA,WAAW;IACvC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,GAAG,EAAE;QACP,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,kCAAkC;YAClC,IAAI,MAAM,EAAE;gBACV,MAAM,IAAI,GAAG,CAAC;aACf;YACD,kCAAkC;YAClC,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE;gBACzB,MAAM;aACP;iBAAM;gBACL,uDAAuD;gBACvD,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,GAAG,EAAE,EAAE;oBACzC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;iBAClB;qBAAM;oBACL,MAAM;iBACP;aACF;SACF;KACF;IACD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC,CAAC;AAEF,SAAS,eAAe,CAAC,SAAiB,EAAE,MAAe,EAAE,QAAsC;IAAtC,yBAAA,EAAA,gBAAsC;IACjG,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,EAAE,CAAA;KACV;IACD,SAAS,GAAG,IAAA,oBAAU,EAAC,SAAS,CAAC,CAAA;IAEjC,IAAM,GAAG,GAAG,IAAI,UAAU,CAAC;QACzB,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACf,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACpB,MAAM;KACP,CAAC,CAAC;IACH,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QACrB,UAAU;QACV,SAAS;KACV,CAAC,CAAC;IACH,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QACtB,iBAAiB;QACjB,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;KACN,CAAC,CAAC;IAEH,kBAAkB;IAClB,IAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,qBAAY,CAAC,CAAC;IAC/C,IAAM,WAAW,GAAY,EAAE,CAAC;IAChC,IAAG,QAAQ,IAAI,QAAQ,KAAK,KAAK,EAAC;QAChC,QAAQ,CAAC,OAAO,CAAC,UAAC,MAAM;YACtB,IAAI,QAAQ,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;YACjD,IAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC/D,IAAI,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YACrF,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACxD,CAAC,CAAC,CAAA;KACH;IAED,2BAA2B;IAC3B,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI;QACF,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;KAC7B;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KACjB;IAGD,+BAA+B;IAC/B,IAAG,QAAQ,KAAK,KAAK,EAAC;QACpB,WAAW,CAAC,OAAO,CAAC,UAAC,SAAS;YAC5B,IAAI,QAAQ,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;YACjD,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/E,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9E,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC,CAAC,CAAA;KACH;IAGD,IAAI,GAAG,IAAI;SACR,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,mBAAmB;SAChD,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,mBAAmB;SAC7C,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC,cAAc;SACzD,IAAI,EAAE;SACN,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA,CAAC,6BAA6B;IAExD,IAAI,MAAM,EAAE;QACV,WAAW;QACX,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;KACtC;IAED,IAAI,IAAI,EAAE;QACR,IAAI,GAAG,YAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,CAAC,yBAAyB;KACjD;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAgB,kBAAkB,CAAC,GAAmB,EAAE,MAAe,EAAE,QAA+B;IACtG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,OAAO,eAAe,CAAC,GAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;KACxD;IAED,IAAM,GAAG,GAAG,UAAG,IAAA,0BAAiB,EAAC,GAAG,CAAC,kBAAQ,MAAM,CAAE,CAAA;IAErD,IAAM,IAAI,GAAG,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAA;IAC1B,IAAI,IAAI,EAAE;QACR,OAAO,IAAI,CAAA;KACZ;IAED,IAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IACvD,IAAA,gBAAQ,EAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAElB,OAAO,GAAG,CAAA;AACZ,CAAC;AAhBD,gDAgBC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare function setProxyBase(p: string): void;
|
|
2
|
-
export declare function extractPHash(url: string): string | null;
|
|
3
|
-
export declare function isValidUrl(url: string): boolean;
|
|
4
|
-
export declare function getLatestUrl(str: string): string;
|
|
5
|
-
export declare function proxifyImageSrc(url?: string, width?: number, height?: number, format?: string): string;
|
package/lib/proxify-image-src.js
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
-
if (ar || !(i in from)) {
|
|
5
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
-
ar[i] = from[i];
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.proxifyImageSrc = exports.getLatestUrl = exports.isValidUrl = exports.extractPHash = exports.setProxyBase = void 0;
|
|
16
|
-
var multihashes_1 = __importDefault(require("multihashes"));
|
|
17
|
-
var querystring_1 = __importDefault(require("querystring"));
|
|
18
|
-
var proxyBase = 'https://images.ecency.com';
|
|
19
|
-
var fileExtension = true;
|
|
20
|
-
function setProxyBase(p) {
|
|
21
|
-
proxyBase = p;
|
|
22
|
-
fileExtension = proxyBase == 'https://images.ecency.com';
|
|
23
|
-
}
|
|
24
|
-
exports.setProxyBase = setProxyBase;
|
|
25
|
-
function extractPHash(url) {
|
|
26
|
-
if (url.startsWith("".concat(proxyBase, "/p/"))) {
|
|
27
|
-
var hash = url.split('/p/')[1].split('?')[0];
|
|
28
|
-
return hash.replace(/.webp/, '').replace(/.png/, '');
|
|
29
|
-
}
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
exports.extractPHash = extractPHash;
|
|
33
|
-
function isValidUrl(url) {
|
|
34
|
-
try {
|
|
35
|
-
return Boolean(new URL(url));
|
|
36
|
-
}
|
|
37
|
-
catch (e) {
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
exports.isValidUrl = isValidUrl;
|
|
42
|
-
function getLatestUrl(str) {
|
|
43
|
-
var last = __spreadArray([], str.replace(/https?:\/\//g, '\n$&').trim().split('\n'), true).reverse()[0];
|
|
44
|
-
return last;
|
|
45
|
-
}
|
|
46
|
-
exports.getLatestUrl = getLatestUrl;
|
|
47
|
-
function proxifyImageSrc(url, width, height, format) {
|
|
48
|
-
if (width === void 0) { width = 0; }
|
|
49
|
-
if (height === void 0) { height = 0; }
|
|
50
|
-
if (format === void 0) { format = 'match'; }
|
|
51
|
-
if (!url || typeof url !== 'string' || !isValidUrl(url)) {
|
|
52
|
-
return '';
|
|
53
|
-
}
|
|
54
|
-
// skip images already proxified with images.hive.blog
|
|
55
|
-
if (url.indexOf('https://images.hive.blog/') === 0 && url.indexOf('https://images.hive.blog/D') !== 0) {
|
|
56
|
-
return url.replace('https://images.hive.blog', proxyBase);
|
|
57
|
-
}
|
|
58
|
-
if (url.indexOf('https://steemitimages.com/') === 0 && url.indexOf('https://steemitimages.com/D') !== 0) {
|
|
59
|
-
return url.replace('https://steemitimages.com', proxyBase);
|
|
60
|
-
}
|
|
61
|
-
var realUrl = getLatestUrl(url);
|
|
62
|
-
var pHash = extractPHash(realUrl);
|
|
63
|
-
var options = {
|
|
64
|
-
format: format,
|
|
65
|
-
mode: 'fit',
|
|
66
|
-
};
|
|
67
|
-
if (width > 0) {
|
|
68
|
-
options.width = width;
|
|
69
|
-
}
|
|
70
|
-
if (height > 0) {
|
|
71
|
-
options.height = height;
|
|
72
|
-
}
|
|
73
|
-
var qs = querystring_1.default.stringify(options);
|
|
74
|
-
if (pHash) {
|
|
75
|
-
if (fileExtension) {
|
|
76
|
-
return "".concat(proxyBase, "/p/").concat(pHash).concat(format === 'webp' ? '.webp' : '.png', "?").concat(qs);
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
return "".concat(proxyBase, "/p/").concat(pHash, "?").concat(qs);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
var b58url = multihashes_1.default.toB58String(Buffer.from(realUrl.toString()));
|
|
83
|
-
return "".concat(proxyBase, "/p/").concat(b58url).concat(fileExtension ? format === 'webp' ? '.webp' : '.png' : '', "?").concat(qs);
|
|
84
|
-
}
|
|
85
|
-
exports.proxifyImageSrc = proxifyImageSrc;
|
|
86
|
-
//# sourceMappingURL=proxify-image-src.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"proxify-image-src.js","sourceRoot":"","sources":["../src/proxify-image-src.ts"],"names":[],"mappings":"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"}
|