@devvit/ui-renderer 0.11.0-next-2024-10-03-38b7c67ab.0 → 0.11.0-next-2024-10-07-a281378ea.0

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.
@@ -0,0 +1,20 @@
1
+ export declare const REDD_IT = "redd.it";
2
+ export declare const REDDIT_STATIC = "redditstatic.com";
3
+ export declare const REDDIT_MEDIA = "redditmedia.com";
4
+ export declare const SNOO_DEV = "snoo.dev";
5
+ export declare const VerifiedPublicImageHosts: readonly string[];
6
+ export declare const VerifiedImageHosts: readonly string[];
7
+ /**
8
+ * Validates whether an image URL is allowed to be displayed
9
+ * @param imageUrl
10
+ * @returns true if the URL is allowed
11
+ */
12
+ export declare function isValidImageURL(imageUrl: string): boolean;
13
+ /**
14
+ * Performs any sanitization needed on a given image URL
15
+ * Currently only processes SVG data URIs
16
+ * @param imageUrl
17
+ * @returns the sanitized URL
18
+ */
19
+ export declare function sanitizeImageURL(imageUrl: string): string | undefined;
20
+ //# sourceMappingURL=imageUtil.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imageUtil.d.ts","sourceRoot":"","sources":["../../../library/src/blocks/templates/imageUtil.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,aAAa,qBAAqB,CAAC;AAChD,eAAO,MAAM,YAAY,oBAAoB,CAAC;AAC9C,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAA2C,CAAC;AAClG,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAK/C,CAAC;AAoBF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAgBzD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAuCrE"}
@@ -0,0 +1,91 @@
1
+ // Only the following domains are approved: redd.it, redditstatic.com, redditmedia.com, or snoo.dev
2
+ import { sanitizeSvg } from '@devvit/shared-types/sanitizeSvg.js';
3
+ export const REDD_IT = 'redd.it';
4
+ export const REDDIT_STATIC = 'redditstatic.com';
5
+ export const REDDIT_MEDIA = 'redditmedia.com';
6
+ export const SNOO_DEV = 'snoo.dev';
7
+ export const VerifiedPublicImageHosts = [REDD_IT, REDDIT_STATIC, REDDIT_MEDIA];
8
+ export const VerifiedImageHosts = [
9
+ SNOO_DEV,
10
+ REDD_IT,
11
+ REDDIT_STATIC,
12
+ REDDIT_MEDIA,
13
+ ];
14
+ const MIME_SVG_XML = 'image/svg+xml';
15
+ const ALLOWED_DATA_MIMETYPES = [MIME_SVG_XML];
16
+ function validateDataUrl(url) {
17
+ // mediaType is everything before the data section
18
+ const mediaType = url.pathname.split(',')[0];
19
+ // chunks are separated by semicolons, with the first being the mimetype
20
+ const mimetype = mediaType.split(';')[0];
21
+ return ALLOWED_DATA_MIMETYPES.includes(mimetype);
22
+ }
23
+ function validateHttpUrl(url) {
24
+ // Get just the domain name from the hostname
25
+ const domain = url.hostname.split('.').slice(-2).join('.');
26
+ return VerifiedImageHosts.includes(domain);
27
+ }
28
+ /**
29
+ * Validates whether an image URL is allowed to be displayed
30
+ * @param imageUrl
31
+ * @returns true if the URL is allowed
32
+ */
33
+ export function isValidImageURL(imageUrl) {
34
+ try {
35
+ const url = new URL(imageUrl);
36
+ const protocol = url.protocol.substring(0, 4);
37
+ switch (protocol) {
38
+ case 'blob':
39
+ return true;
40
+ case 'data':
41
+ return validateDataUrl(url);
42
+ case 'http':
43
+ return validateHttpUrl(url);
44
+ }
45
+ }
46
+ catch (_) {
47
+ // invalid imageUrl
48
+ }
49
+ return false;
50
+ }
51
+ /**
52
+ * Performs any sanitization needed on a given image URL
53
+ * Currently only processes SVG data URIs
54
+ * @param imageUrl
55
+ * @returns the sanitized URL
56
+ */
57
+ export function sanitizeImageURL(imageUrl) {
58
+ try {
59
+ // only parse up until the data segment so we don't waste time parsing it here
60
+ const dataSeparator = imageUrl.indexOf(',');
61
+ const url = new URL(dataSeparator > 0 ? imageUrl.slice(0, dataSeparator) : imageUrl);
62
+ // nothing to sanitize
63
+ if (url.protocol.startsWith('http') || url.protocol.startsWith('blob')) {
64
+ return encodeURI(imageUrl);
65
+ }
66
+ const mediaType = url.pathname;
67
+ const [mimetype] = mediaType.split(';');
68
+ // can't sanitize binary image data
69
+ if (mimetype !== MIME_SVG_XML) {
70
+ return imageUrl;
71
+ }
72
+ const base64 = mediaType.split(';').at(-1) === 'base64';
73
+ const data = imageUrl.slice(dataSeparator + 1);
74
+ const svgData = base64 ? atob(data) : data;
75
+ // extract SVG
76
+ const svg = decodeURIComponent(svgData);
77
+ // sanitize
78
+ const safeSvg = sanitizeSvg(svg);
79
+ if (safeSvg === undefined) {
80
+ return undefined;
81
+ }
82
+ // URI encode if we're not base64 encoding to ensure the img tag doesn't choke on `#` and `?` characters
83
+ const safeData = base64 ? btoa(safeSvg) : encodeURIComponent(safeSvg);
84
+ // eslint-disable-next-line @reddit/i18n-shreddit/no-unwrapped-strings
85
+ return `data:${mediaType},${safeData}`;
86
+ }
87
+ catch {
88
+ // failed to parse URL
89
+ }
90
+ }
91
+ //# sourceMappingURL=imageUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imageUtil.js","sourceRoot":"","sources":["../../../library/src/blocks/templates/imageUtil.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imageUtil.test.d.ts","sourceRoot":"","sources":["../../../library/src/blocks/templates/imageUtil.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imageUtil.test.js","sourceRoot":"","sources":["../../../library/src/blocks/templates/imageUtil.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderImageBlock.d.ts","sourceRoot":"","sources":["../../../library/src/blocks/templates/renderImageBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAgB5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAK9C,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,GAAG,YAAY,CAgE/E"}
1
+ {"version":3,"file":"renderImageBlock.d.ts","sourceRoot":"","sources":["../../../library/src/blocks/templates/renderImageBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAY5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAK9C,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,GAAG,YAAY,CAgE/E"}
@@ -1,7 +1,7 @@
1
- import { isValidImageURL, sanitizeImageURL, VerifiedPublicImageHosts, } from '@devvit/shared-types/imageUtil.js';
2
1
  import { getTemplateRenderingStrategy } from '@reddit/faceplate-ui/faceplateUIConfig.js';
3
2
  import { nothing } from 'lit';
4
3
  import { defaultClasses, defaultStyles, imageClasses, imageStyle, onClickAction, } from '../attributes.js';
4
+ import { isValidImageURL, sanitizeImageURL, VerifiedPublicImageHosts } from './imageUtil.js';
5
5
  import { classMap, getSizes } from './util.js';
6
6
  const FALLBACK_IMG_URL = 'https://i.redd.it/p1vmc5ulmpib1.png';
7
7
  export function renderImageBlock(block, ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"renderImageBlock.js","sourceRoot":"","sources":["../../../library/src/blocks/templates/renderImageBlock.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAE9B,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,gBAAgB,GAAG,qCAAqC,CAAC;AAE/D,MAAM,UAAU,gBAAgB,CAAC,KAAY,EAAE,GAAkB;IAC/D,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,4BAA4B,EAAE,CAAC;IAErE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,EACJ,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW,EACnB,GAAG,EACH,WAAW,EACX,UAAU,GACX,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;IAE7B,oDAAoD;IACpD,IAAI,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,gBAAgB,CAAC;IAChE,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CACX,sDAAsD,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC7F,CAAC;YACF,mCAAmC;YACnC,QAAQ,GAAG,gBAAgB,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG;QACd,GAAG,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC;QAC7B,GAAG,YAAY,CAAC,UAAU,CAAC;KAC5B,CAAC;IAEF,MAAM,MAAM,GAAG;QACb,GAAG,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC;QACnE,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC;KAC7B,CAAC;IAEF,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE1C,OAAO,IAAI,CAAA;;0BAEa,WAAW;eACtB,QAAQ,CAAC,OAAO,CAAC;eACjB,QAAQ,CAAC,MAAM,CAAC;gBACf,SAAS,CAAC,OAAO,CAAC;;;;eAInB,QAAQ;;;kBAGL;QACR,WAAW,EAAE,CAAC,KAA2C,EAAE,EAAE;YAC3D,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;YAEhD,sEAAsE;YACtE,KAAK,CAAC,MAAM,CAAC,aAAc,CAAC,KAAK,CAAC,eAAe,GAAG,OAAO,gBAAgB,GAAG,CAAC;QACjF,CAAC;QACD,IAAI,EAAE,IAAI;KACX;;;GAGN,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"renderImageBlock.js","sourceRoot":"","sources":["../../../library/src/blocks/templates/renderImageBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAE9B,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAG7F,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,gBAAgB,GAAG,qCAAqC,CAAC;AAE/D,MAAM,UAAU,gBAAgB,CAAC,KAAY,EAAE,GAAkB;IAC/D,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,4BAA4B,EAAE,CAAC;IAErE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,EACJ,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW,EACnB,GAAG,EACH,WAAW,EACX,UAAU,GACX,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;IAE7B,oDAAoD;IACpD,IAAI,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,gBAAgB,CAAC;IAChE,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CACX,sDAAsD,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC7F,CAAC;YACF,mCAAmC;YACnC,QAAQ,GAAG,gBAAgB,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG;QACd,GAAG,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC;QAC7B,GAAG,YAAY,CAAC,UAAU,CAAC;KAC5B,CAAC;IAEF,MAAM,MAAM,GAAG;QACb,GAAG,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC;QACnE,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC;KAC7B,CAAC;IAEF,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE1C,OAAO,IAAI,CAAA;;0BAEa,WAAW;eACtB,QAAQ,CAAC,OAAO,CAAC;eACjB,QAAQ,CAAC,MAAM,CAAC;gBACf,SAAS,CAAC,OAAO,CAAC;;;;eAInB,QAAQ;;;kBAGL;QACR,WAAW,EAAE,CAAC,KAA2C,EAAE,EAAE;YAC3D,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;YAEhD,sEAAsE;YACtE,KAAK,CAAC,MAAM,CAAC,aAAc,CAAC,KAAK,CAAC,eAAe,GAAG,OAAO,gBAAgB,GAAG,CAAC;QACjF,CAAC;QACD,IAAI,EAAE,IAAI;KACX;;;GAGN,CAAC;AACJ,CAAC"}
@@ -8178,25 +8178,20 @@
8178
8178
  "imports": [],
8179
8179
  "format": "esm"
8180
8180
  },
8181
- "../shared-types/dist/imageUtil.js": {
8182
- "bytes": 3179,
8181
+ "library/src/blocks/templates/imageUtil.ts": {
8182
+ "bytes": 3177,
8183
8183
  "imports": [
8184
8184
  {
8185
8185
  "path": "../shared-types/dist/sanitizeSvg.js",
8186
8186
  "kind": "import-statement",
8187
- "original": "./sanitizeSvg.js"
8187
+ "original": "@devvit/shared-types/sanitizeSvg.js"
8188
8188
  }
8189
8189
  ],
8190
8190
  "format": "esm"
8191
8191
  },
8192
8192
  "library/src/blocks/templates/renderImageBlock.ts": {
8193
- "bytes": 2465,
8193
+ "bytes": 2439,
8194
8194
  "imports": [
8195
- {
8196
- "path": "../shared-types/dist/imageUtil.js",
8197
- "kind": "import-statement",
8198
- "original": "@devvit/shared-types/imageUtil.js"
8199
- },
8200
8195
  {
8201
8196
  "path": "../../node_modules/@reddit/faceplate-ui/dist/faceplateUIConfig.js",
8202
8197
  "kind": "import-statement",
@@ -8212,6 +8207,11 @@
8212
8207
  "kind": "import-statement",
8213
8208
  "original": "../attributes.js"
8214
8209
  },
8210
+ {
8211
+ "path": "library/src/blocks/templates/imageUtil.ts",
8212
+ "kind": "import-statement",
8213
+ "original": "./imageUtil.js"
8214
+ },
8215
8215
  {
8216
8216
  "path": "library/src/blocks/templates/util.ts",
8217
8217
  "kind": "import-statement",
@@ -8816,7 +8816,7 @@
8816
8816
  "imports": [],
8817
8817
  "exports": [],
8818
8818
  "inputs": {},
8819
- "bytes": 6410813
8819
+ "bytes": 6410808
8820
8820
  },
8821
8821
  "dist/devvit-custom-post.min.js": {
8822
8822
  "imports": [
@@ -9415,7 +9415,7 @@
9415
9415
  "../shared-types/dist/sanitizeSvg.js": {
9416
9416
  "bytesInOutput": 1351
9417
9417
  },
9418
- "../shared-types/dist/imageUtil.js": {
9418
+ "library/src/blocks/templates/imageUtil.ts": {
9419
9419
  "bytesInOutput": 849
9420
9420
  },
9421
9421
  "library/src/blocks/templates/renderImageBlock.ts": {