1"use strict";(self.webpackChunkrspamd_docs=self.webpackChunkrspamd_docs||[]).push([[7158],{28453:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>c});var s=r(96540);const d={},l=s.createContext(d);function i(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:i(e.components),s.createElement(l.Provider,{value:n},e.children)}},37322:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>t,contentTitle:()=>c,default:()=>x,frontMatter:()=>i,metadata:()=>s,toc:()=>h});const s=JSON.parse('{"id":"lua/rspamd_url","title":"Module rspamd_url","description":"Module rspamd_url","source":"@site/docs/lua/rspamd_url.md","sourceDirName":"lua","slug":"/lua/rspamd_url","permalink":"/lua/rspamd_url","draft":false,"unlisted":false,"editUrl":"https://github.com/rspamd/docs.rspamd.com/edit/master/docs/lua/rspamd_url.md","tags":[],"version":"current","frontMatter":{"title":"Module rspamd_url"},"sidebar":"docs","previous":{"title":"Module rspamd_upstream","permalink":"/lua/rspamd_upstream"},"next":{"title":"Module rspamd_util","permalink":"/lua/rspamd_util"}}');var d=r(74848),l=r(28453);const i={title:"Module rspamd_url"},c=void 0,t={},h=[{value:"Module <code>rspamd_url</code>",id:"m3cff9",level:2},{value:"Example:",id:"example",level:3},{value:"Brief content:",id:"brief-content",level:3},{value:"Functions",id:"functions",level:2},{value:"Function <code>url.create([mempool,] str, [{flags_table}])</code>",id:"f4b0c4",level:3},{value:"Function <code>url.init(tld_file)</code>",id:"f827cf",level:3},{value:"Methods",id:"methods",level:2},{value:"Method <code>url:get_length()</code>",id:"ma34b8",level:3},{value:"Method <code>url:get_host()</code>",id:"m281e9",level:3},{value:"Method <code>url:get_port()</code>",id:"mf396b",level:3},{value:"Method <code>url:get_user()</code>",id:"mad469",level:3},{value:"Method <code>url:get_path()</code>",id:"m47175",level:3},{value:"Method <code>url:get_query()</code>",id:"m261fc",level:3},{value:"Method <code>url:get_fragment()</code>",id:"mbeb9d",level:3},{value:"Method <code>url:get_text([as_text])</code>",id:"m1c9e0",level:3},{value:"Method <code>url:tostring()</code>",id:"m6b648",level:3},{value:"Method <code>url:to_http()</code>",id:"m344e3",level:3},{value:"Method <code>url:get_raw()</code>",id:"m98ac2",level:3},{value:"Method <code>url:is_phished()</code>",id:"mf3861",level:3},{value:"Method <code>url:is_redirected()</code>",id:"m2244a",level:3},{value:"Method <code>url:is_obscured()</code>",id:"m21c54",level:3},{value:"Method <code>url:is_html_displayed()</code>",id:"m041ca",level:3},{value:"Method <code>url:is_subject()</code>",id:"m51b38",level:3},{value:"Method <code>url:get_phished()</code>",id:"mf39eb",level:3},{value:"Method <code>url:set_redirected(url, pool)</code>",id:"mc128d",level:3},{value:"Method <code>url:get_tld()</code>",id:"m2698e",level:3},{value:"Method <code>url:get_public_suffix()</code>",id:"m9caf4",level:3},{value:"Method <code>url:get_protocol()</code>",id:"m4a520",level:3},{value:"Method <code>url:get_count()</code>",id:"md4354",level:3},{value:"Method <code>url:get_query_embedded_urls()</code>",id:"m7ce2a",level:3},{value:"Method <code>url:get_visible()</code>",id:"m633d1",level:3},{value:"Method <code>url:get_hash()</code>",id:"m47c4c",level:3},{value:"Method <code>url:to_table()</code>",id:"m724c2",level:3},{value:"Method <code>url:get_flags()</code>",id:"m5a610",level:3}];function o(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(n.h2,{id:"m3cff9",children:["Module ",(0,d.jsx)(n.code,{children:"rspamd_url"})]}),"\n",(0,d.jsxs)(n.p,{children:["This module provides routines to handle URL's and extract URL's from the text.\nObjects of this class are returned, for example, by ",(0,d.jsx)(n.code,{children:"task:get_urls()"})," or ",(0,d.jsx)(n.code,{children:"task:get_emails()"}),".\nYou can also create ",(0,d.jsx)(n.code,{children:"rspamd_url"})," from any text."]}),"\n",(0,d.jsx)(n.h3,{id:"example",children:"Example:"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-lua",children:"local url = require \"rspamd_url\"\nlocal mpool = require \"rspamd_mempool\"\n\nurl.init(\"/usr/share/rspamd/effective_tld_names.dat\")\nlocal pool = mpool.create()\nlocal res = url.create(pool, 'Look at: http://[email protected]/test?query\")\nlocal t = res:to_table()\n-- Content of t:\n-- url = ['http://test.example.com/test?query']\n-- host = ['test.example.com']\n-- user = ['user']\n-- path = ['test']\n-- tld = ['example.com']\n\npool:destroy() -- res is destroyed here, so you should not use it afterwards\n\nlocal mistake = res:to_table() -- INVALID! as pool is destroyed\n"})}),"\n",(0,d.jsx)(n.h3,{id:"brief-content",children:"Brief content:"}),"\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.strong,{children:"Functions"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,d.jsxs)(n.table,{children:[(0,d.jsx)(n.thead,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.th,{children:"Function"}),(0,d.jsx)(n.th,{children:"Description"})]})}),(0,d.jsxs)(n.tbody,{children:[(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#f4b0c4",children:(0,d.jsx)(n.code,{children:"url.create([mempool,] str, [{flags_table}])"})})}),(0,d.jsx)(n.td,{children:"No description"})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#f827cf",children:(0,d.jsx)(n.code,{children:"url.init(tld_file)"})})}),(0,d.jsx)(n.td,{children:"Initialize url library if not initialized yet by Rspamd."})]})]})]}),"\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.strong,{children:"Methods"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,d.jsxs)(n.table,{children:[(0,d.jsx)(n.thead,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.th,{children:"Method"}),(0,d.jsx)(n.th,{children:"Description"})]})}),(0,d.jsxs)(n.tbody,{children:[(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#ma34b8",children:(0,d.jsx)(n.code,{children:"url:get_length()"})})}),(0,d.jsx)(n.td,{children:"Get length of the url."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m281e9",children:(0,d.jsx)(n.code,{children:"url:get_host()"})})}),(0,d.jsx)(n.td,{children:"Get domain part of the url."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#mf396b",children:(0,d.jsx)(n.code,{children:"url:get_port()"})})}),(0,d.jsx)(n.td,{children:"Get port of the url."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#mad469",children:(0,d.jsx)(n.code,{children:"url:get_user()"})})}),(0,d.jsx)(n.td,{children:"Get user part of the url (e.g."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m47175",children:(0,d.jsx)(n.code,{children:"url:get_path()"})})}),(0,d.jsx)(n.td,{children:"Get path of the url."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m261fc",children:(0,d.jsx)(n.code,{children:"url:get_query()"})})}),(0,d.jsx)(n.td,{children:"Get query of the url."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#mbeb9d",children:(0,d.jsx)(n.code,{children:"url:get_fragment()"})})}),(0,d.jsx)(n.td,{children:"Get fragment of the url."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m
11c9e0",children:(0,d.jsx)(n.code,{children:"url:get_text([as_text])"})})}),(0,d.jsx)(n.td,{children:"Get full content of the url."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m6b648",children:(0,d.jsx)(n.code,{children:"url:tostring()"})})}),(0,d.jsx)(n.td,{children:"Get full content of the url or user@domain in case of email."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m344e3",children:(0,d.jsx)(n.code,{children:"url:to_http()"})})}),(0,d.jsx)(n.td,{children:"Get URL suitable for HTTP request (e.g."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m98ac2",children:(0,d.jsx)(n.code,{children:"url:get_raw()"})})}),(0,d.jsx)(n.td,{children:"Get full content of the url as it was parsed (e.g."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#mf3861",children:(0,d.jsx)(n.code,{children:"url:is_phished()"})})}),(0,d.jsx)(n.td,{children:"Check whether URL is treated as phished."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m2244a",children:(0,d.jsx)(n.code,{children:"url:is_redirected()"})})}),(0,d.jsx)(n.td,{children:"Check whether URL was redirected."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m21c54",children:(0,d.jsx)(n.code,{children:"url:is_obscured()"})})}),(0,d.jsx)(n.td,{children:"Check whether URL is treated as obscured or obfuscated (e.g."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m041ca",children:(0,d.jsx)(n.code,{children:"url:is_html_displayed()"})})}),(0,d.jsx)(n.td,{children:"Check whether URL is just displayed in HTML (e.g."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m51b38",children:(0,d.jsx)(n.code,{children:"url:is_subject()"})})}),(0,d.jsx)(n.td,{children:"Check whether URL is found in subject."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#mf39eb",children:(0,d.jsx)(n.code,{children:"url:get_phished()"})})}),(0,d.jsx)(n.td,{children:"Get another URL that pretends to be this URL (e.g."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#mc128d",children:(0,d.jsx)(n.code,{children:"url:set_redirected(url, pool)"})})}),(0,d.jsx)(n.td,{children:"Set url as redirected to another url."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m2698e",children:(0,d.jsx)(n.code,{children:"url:get_tld()"})})}),(0,d.jsx)(n.td,{children:"Get effective second level domain (eSLD) of the URL host."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m9caf4",children:(0,d.jsx)(n.code,{children:"url:get_public_suffix()"})})}),(0,d.jsx)(n.td,{children:"Get the public suffix of the URL host using the suffix list loaded by."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m4a520",children:(0,d.jsx)(n.code,{children:"url:get_protocol()"})})}),(0,d.jsx)(n.td,{children:"Get protocol name."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#md4354",children:(0,d.jsx)(n.code,{children:"url:get_count()"})})}),(0,d.jsx)(n.td,{children:"Return number of occurrences for this particular URL."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m7ce2a",children:(0,d.jsx)(n.code,{children:"url:get_query_embedded_urls()"})})}),(0,d.jsx)(n.td,{children:"Get the number of URLs found embedded in this URL's query string."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m633d1",children:(0,d.jsx)(n.code,{children:"url:get_visible()"})})}),(0,d.jsx)(n.td,{children:"Get visible part of the url with html tags stripped."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m47c4c",children:(0,d.jsx)(n.code,{children:"url:get_hash()"})})}),(0,d.jsx)(n.td,{children:"Get fast hash of the url for deduplication purposes."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m724c2",children:(0,d.jsx)(n.code,{children:"url:to_table()"})})}),(0,d.jsx)(n.td,{children:"Return url as a table with the following fields."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"#m5a610",children:(0,d.jsx)(n.code,{children:"url:get_flags()"})})}),(0,d.jsx)(n.td,{children:"Return flags for a specified URL as map 'flag'->true for all flags set,."})]})]})]}),"\n",(0,d.jsx)(n.h2,{id:"functions",children:"Functions"}),"\n",(0,d.jsxs)(n.p,{children:["The module ",(0,d.jsx)(n.code,{children:"rspamd_url"})," defines the following functions."]}),"\n",(0,d.jsxs)(n.h3,{id:"f4b0c4",children:["Function ",(0,d.jsx)(n.code,{children:"url.create([mempool,] str, [{flags_table}])"})]}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"memory {rspamd_mempool}"}),": pool for URL, e.g. ",(0,d.jsx)(n.code,{children:"task:get_mempool()"})]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"text {string}"}),": that contains URL (can also contain other stuff)"]}),"\n"]}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{url}"}),": new url object that exists as long as the corresponding mempool exists"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"f827cf",children:["Function ",(0,d.jsx)(n.code,{children:"url.init(tld_file)"})]}),"\n",(0,d.jsx)(n.p,{children:"Initialize url library if not initialized yet by Rspamd"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"tld_file {string}"}),": path to effective_tld_names.dat file (public suffix list)"]}),"\n"]}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsx)(n.li,{children:"nothing"}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsx)(n.h2,{id:"methods",children:"Methods"}),"\n",(0,d.jsxs)(n.p,{children:["The module ",(0,d.jsx)(n.code,{children:"rspamd_url"})," defines the following methods."]}),"\n",(0,d.jsxs)(n.h3,{id:"ma34b8",children:["Method ",(0,d.jsx)(n.code,{children:"url:get_length()"})]}),"\n",(0,d.jsx)(n.p,{children:"Get length of the url"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{number}"}),": length of url in bytes"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m281e9",children:["Method ",(0,d.jsx)(n.code,{children:"url:get_host()"})]}),"\n",(0,d.jsx)(n.p,{children:"Get domain part of the url"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{string}"}),": domain part of URL"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"mf396b",children:["Method ",(0,d.jsx)(n.code,{children:"url:get_port()"})]}),"\n",(0,d.jsx)(n.p,{children:"Get port of the url"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{number}"}),": url port"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"mad469",children:["Method ",(0,d.jsx)(n.code,{children:"url:get_user()"})]}),"\n",(0,d.jsx)(n.p,{children:"Get user part of the url (e.g. username in email)"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{string}"}),": user part of URL"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m47175",children:["Method ",(0,d.jsx)(n.code,{children:"url:get_path()"})]}),"\n",(0,d.jsx)(n.p,{children:"Get path of the url"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{string}"}),": path part of URL"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m261fc",children:["Method ",(0,d.jsx)(n.code,{children:"url:get_query()"})]}),"\n",(0,d.jsx)(n.p,{children:"Get query of the url"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{string}"}),": query part of URL"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"mbeb9d",children:["Method ",(0,d.jsx)(n.code,{children:"url:get_fragment()"})]}),"\n",(0,d.jsx)(n.p,{children:"Get fragment of the url"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{string}"}),": fragment part of URL"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m1c9e0",children:["Method ",(0,d.jsx)(n.code,{children:"url:get_text([as_text])"})]}),"\n",(0,d.jsx)(n.p,{children:"Get full content of the url"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"as_text {boolean}"}),": if true, return as rspamd_text, otherwise as string"]}),"\n"]}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{string|rspamd_text}"}),": url string or text object"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m6b648",children:["Method ",(0,d.jsx)(n.code,{children:"url:tostring()"})]}),"\n",(0,d.jsx)(n.p,{children:"Get full content of the url or user@domain in case of email"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{string}"}),": url as a string"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m344e3",children:["Method ",(0,d.jsx)(n.code,{children:"url:to_http()"})]}),"\n",(0,d.jsx)(n.p,{children:"Get URL suitable for HTTP request (e.g. by trimming fragment and user parts)"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{string}"}),": url as a string"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m98ac2",children:["Method ",(0,d.jsx)(n.code,{children:"url:get_raw()"})]}),"\n",(0,d.jsx)(n.p,{children:"Get full content of the url as it was parsed (e.g. with urldecode)"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{string}"}),": url string"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"mf3861",children:["Method ",(0,d.jsx)(n.code,{children:"url:is_phished()"})]}),"\n",(0,d.jsx)(n.p,{children:"Check whether URL is treated as phished"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{boolean}"}),": ",(0,d.jsx)(n.code,{children:"true"})," if URL is phished"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m2244a",children:["Method ",(0,d.jsx)(n.code,{children:"url:is_redirected()"})]}),"\n",(0,d.jsx)(n.p,{children:"Check whether URL was redirected"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{boolean}"}),": ",(0,d.jsx)(n.code,{children:"true"})," if URL is redirected"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m21c54",children:["Method ",(0,d.jsx)(n.code,{children:"url:is_obscured()"})]}),"\n",(0,d.jsx)(n.p,{children:"Check whether URL is treated as obscured or obfuscated (e.g. numbers in IP address or other hacks)"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{boolean}"}),": ",(0,d.jsx)(n.code,{children:"true"})," if URL is obscured"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m041ca",children:["Method ",(0,d.jsx)(n.code,{children:"url:is_html_displayed()"})]}),"\n",(0,d.jsx)(n.p,{children:"Check whether URL is just displayed in HTML (e.g. NOT a real href)"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{boolean}"}),": ",(0,d.jsx)(n.code,{children:"true"})," if URL is displayed only"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m51b38",children:["Method ",(0,d.jsx)(n.code,{children:"url:is_subject()"})]}),"\n",(0,d.jsx)(n.p,{children:"Check whether URL is found in subject"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx
1)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{boolean}"}),": ",(0,d.jsx)(n.code,{children:"true"})," if URL is found in subject"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"mf39eb",children:["Method ",(0,d.jsx)(n.code,{children:"url:get_phished()"})]}),"\n",(0,d.jsx)(n.p,{children:"Get another URL that pretends to be this URL (e.g. used in phishing)"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{url}"}),": phished URL"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"mc128d",children:["Method ",(0,d.jsx)(n.code,{children:"url:set_redirected(url, pool)"})]}),"\n",(0,d.jsx)(n.p,{children:"Set url as redirected to another url"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"url {string|url}"}),": new url that is redirecting an old one"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"pool {pool}"}),": memory pool to allocate memory if needed"]}),"\n"]}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{url}"}),": parsed redirected url (if needed)"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m2698e",children:["Method ",(0,d.jsx)(n.code,{children:"url:get_tld()"})]}),"\n",(0,d.jsx)(n.p,{children:"Get effective second level domain (eSLD) of the URL host.\nThis method uses the Public Suffix List (PSL) to determine boundaries\nand compute the eSLD, not the top-level domain."}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{string}"}),": effective second level domain part (eSLD) of the url host"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m9caf4",children:["Method ",(0,d.jsx)(n.code,{children:"url:get_public_suffix()"})]}),"\n",(0,d.jsxs)(n.p,{children:["Get the public suffix of the URL host using the suffix list loaded by\nrspamd. Unlike ",(0,d.jsx)(n.code,{children:"url:get_tld()"}),", which returns the registrable domain\n(eSLD), this returns the suffix itself (e.g. ",(0,d.jsx)(n.code,{children:"co.uk"}),").\n",(0,d.jsx)(n.code,{children:"flags"})," table of the ",(0,d.jsx)(n.code,{children:"rspamd_tld_lookup"})," module)"]}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{string}"}),": public suffix (or nil) and match flags (see the"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m4a520",children:["Method ",(0,d.jsx)(n.code,{children:"url:get_protocol()"})]}),"\n",(0,d.jsx)(n.p,{children:"Get protocol name"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{string}"}),": protocol as a string"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"md4354",children:["Method ",(0,d.jsx)(n.code,{children:"url:get_count()"})]}),"\n",(0,d.jsx)(n.p,{children:"Return number of occurrences for this particular URL"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{number}"}),": number of occurrences"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m7ce2a",children:["Method ",(0,d.jsx)(n.code,{children:"url:get_query_embedded_urls()"})]}
1),"\n",(0,d.jsx)(n.p,{children:"Get the number of URLs found embedded in this URL's query string"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{number}"}),": count of query-embedded URLs (0 if none)"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m633d1",children:["Method ",(0,d.jsx)(n.code,{children:"url:get_visible()"})]}),"\n",(0,d.jsx)(n.p,{children:"Get visible part of the url with html tags stripped"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{string}"}),": url string"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m47c4c",children:["Method ",(0,d.jsx)(n.code,{children:"url:get_hash()"})]}),"\n",(0,d.jsx)(n.p,{children:"Get fast hash of the url for deduplication purposes. Uses the same hash function\nas internal URL storage (rspamd_cryptobox_fast_hash). This is much more efficient\nthan converting URLs to strings for deduplication, especially with large numbers of URLs."}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{number}"}),": 64-bit hash as a Lua number"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m724c2",children:["Method ",(0,d.jsx)(n.code,{children:"url:to_table()"})]}),"\n",(0,d.jsx)(n.p,{children:"Return url as a table with the following fields:"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"url"}),": full content"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"host"}),": hostname part"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"user"}),": user part"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"path"}),": path part"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"tld"}),": top level domain"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"protocol"}),": url protocol"]}),"\n"]}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{table}"}),": URL as a table"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.h3,{id:"m5a610",children:["Method ",(0,d.jsx)(n.code,{children:"url:get_flags()"})]}),"\n",(0,d.jsx)(n.p,{children:"Return flags for a specified URL as map 'flag'->true for all flags set,\npossible flags are:"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"phished"}),": URL is likely phished"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"numeric"}),": URL is numeric (e.g. IP address)"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"obscured"}),": URL was obscured"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"redirected"}),": URL comes from redirector"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"html_displayed"}),": URL is used just for displaying purposes"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"text"}),": URL comes from the text"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"subject"}),": URL comes from the subject"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"host_encoded"}),": URL host part is encoded"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"schema_encoded"}),": URL schema part is encoded"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"query_encoded"}),": URL query part is encoded"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"missing_slashes"}),": URL has some slashes missing"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"idn"}),": URL has international characters"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"has_port"}),": URL has port"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"has_user"}),": URL has user part"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"schemaless"}),": URL has no schema"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"unnormalised"}),": URL has some unicode unnormalities"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"zw_spaces"}),": URL has some zero width spaces"]}
1),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"url_displayed"}),": URL has some other url-like string in visible part"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"image"}),": URL is from src attribute of img HTML tag"]}),"\n"]}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Parameters:"})}),"\n",(0,d.jsx)(n.p,{children:"No parameters"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.strong,{children:"Returns:"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"{table}"}),": URL flags"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#m3cff9",children:"module description"}),"."]}),"\n",(0,d.jsxs)(n.p,{children:["Back to ",(0,d.jsx)(n.a,{href:"#",children:"top"}),"."]})]})}function x(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(o,{...e})}):o(e)}}}]);
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.