PageSourceSearch

https://www.sheconomy.in/assets/listing-image-import-rules-DvnyGCX0.js

js sheconomy.in collected 2026-09-24 13:14:26 UTC 3,481 bytes, 1 lines download raw bytes

1var e={requireHttps:!0,requireDirectImageExtension:!0,allowedExtensions:[`jpg`,`jpeg`,`png`]},t=new Set([`ibb.co`,`www.ibb.co`,`dropbox.com`,`www.dropbox.com`]),n={exactHosts:`ibb.co,www.ibb.co,i.ibb.co,www.dropbox.com,dropbox.com,storage.googleapis.com,s3.amazonaws.com,res.cloudinary.com,imgur.com,www.imgur.com,i.imgur.com,postimg.cc,www.postimg.cc,i.postimg.cc,imageshack.com,www.imageshack.com,live.staticflickr.com,images.unsplash.com,plus.unsplash.com,images.pexels.com,cdn.pixabay.com,raw.githubusercontent.com,user-images.githubusercontent.com,supabaseusercontent.com,f000.backblazeb2.com,f001.backblazeb2.com,f002.backblazeb2.com,f003.backblazeb2.com,f004.backblazeb2.com,pub-images.r2.dev,zsaqrrzwygzwrlzgymxk.supabase.co,dfasp73o8frrg.cloudfront.net`.split(`,`),wildcardSuffixes:[`.dropboxusercontent.com`,`.s3.amazonaws.com`,`.storage.googleapis.com`,`.supabaseusercontent.com`,`.backblazeb2.com`,`.r2.dev`,`.cloudflareimages.com`,`.imageshack.com`,`.staticflickr.com`,`.supabase.co`,`.ibb.co`,`.dropbox.com`,`.res.cloudinary.com`,`.imgur.com`,`.postimg.cc`,`.unsplash.com`,`.cloudfront.net`]},r=[`ImgBB — ibb.co`,`Dropbox — dropbox.com`,`Google Cloud Storage — storage.googleapis.com`,`AWS S3 — s3.amazonaws.com or <bucket>.s3.amazonaws.com`,`Cloudinary — res.cloudinary.com`,`Imgur — imgur.com`,`Postimages — postimg.cc`,`Flickr — live.staticflickr.com`,`Unsplash — images.unsplash.com`,`Pexels — images.pexels.com`,`Pixabay — cdn.pixabay.com`,`GitHub Raw — raw.githubusercontent.com`,`Supabase Storage — *.supabaseusercontent.com`,`Backblaze B2 — *.backblazeb2.com`,`Cloudflare R2 — *.r2.dev`];function i(e){return String(e||``).trim().toLowerCase()}function a(e){let t=i(e);return t?n.exactHosts.includes(t)?!0:n.wildcardSuffixes.some(e=>t.endsWith(e)):!1}function o(e=``){return e.toLowerCase().split(`?`)[0].split(`#`)[0].split(`.`).pop()||``}function s(t){return t?e.allowedExtensions.includes(String(t).toLowerCase()):!1}function c(t,{enforceHostAllowlist:n=!0}={}){let r=[];if(!t||typeof t!=`string`)return{valid:!1,errors:[`Image URL is missing.`]};let i;try{i=new URL(t)}catch{return{valid:!1,errors:[`Image URL is invalid.`]}}if(e.requireHttps&&i.protocol.toLowerCase()!==`https:`&&r.push(`Image URL must use https:// (http:// is not allowed).`),n&&!a(i.hostname)&&r.push(`Image host is not supported. Use one of the approved providers listed in the template Rules sheet.`),e.requireDirectImageExtension&&!s(o(i.pathname))){let t=e.allowedExtensions.map(e=>`.${e}`).join(`, `);r.push(`Image URL must be a direct file link ending with ${t}. Page links or HTML links are not allowed.`)}return{valid:r.length===0,errors:r}}function l(){return[`Image URLs must use https:// only.`,`Image URLs must be direct file links ending with ${e.allowedExtensions.map(e=>`.${e}`).join(`, `)}.`,`Image page links (for example, an HTML preview page) are not accepted.`,`Image host must be from the approved provider list in the Rules sheet.`]}function u(){return[{area:`Images`,rule:`Protocol`,requirement:`Use HTTPS 
1URLs only`,allowed:`https://`,notAllowed:`http://`},{area:`Images`,rule:`File type`,requirement:`Use direct image file URLs`,allowed:e.allowedExtensions.map(e=>`.${e}`).join(`, `),notAllowed:`HTML page links, preview links, or URLs without image extension`},{area:`Images`,rule:`Host allowlist`,requirement:`Image host must be approved`,allowed:r.join(`; `),notAllowed:`Unlisted hosts`}]}export{c as a,a as i,l as n,u as r,t};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.