PageSourceSearch

https://v3-meteor-api-docs.netlify.app/assets/chunks/theme.Gnmke8ax.js

js v3-meteor-api-docs.netlify.app collected 2026-10-03 11:34:15 UTC 399,507 bytes, 902 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPAlgoliaSearchBox.CR4y2Zr3.js","assets/chunks/framework._qMUHcxA.js"])))=>i.map(i=>d[i]);
2import{d as g,o as s,c as m,r as u,n as D,a as R,t as M,b as A,w as h,e as f,T as ge,_ as C,u as ye,i as Ke,f as Qe,g as be,h as T,j as r,k as c,l as G,m as de,p as P,q,s as Q,v as B,x as ae,y as ve,z as Ze,A as en,B as z,F as O,C as x,D as ke,E as se,G as k,H as F,I as $e,J as ie,K as W,L as re,M as nn,N as ce,O as on,P as we,Q as qe,R as le,S as tn,U as an,V as sn,W as Fe,X as Ae,Y as rn,Z as cn,$ as ln,a0 as pn,a1 as mn,a2 as dn,a3 as K,a4 as oe,a5 as Ee,a6 as un,a7 as hn,a8 as fn,a9 as Se,aa as gn}from"./framework._qMUHcxA.js";const yn=g({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(a){return(e,n)=>(s(),m("span",{class:D(["VPBadge",e.type])},[u(e.$slots,"default",{},()=>[R(M(e.text),1)])],2))}}),bn={key:0,class:"VPBackdrop"},vn=g({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(a){return(e,n)=>(s(),A(ge,{name:"fade"},{default:h(()=>[e.show?(s(),m("div",bn)):f("",!0)]),_:1}))}}),kn=C(vn,[["__scopeId","data-v-54a304ca"]]),j=ye;function wn(a,e){let n,o=!1;return()=>{n&&clearTimeout(n),o?n=setTimeout(a,e):(a(),(o=!0)&&setTimeout(()=>o=!1,e))}}function ue(a){return a.startsWith("/")?a:`/${a}`}function Ce(a){const{pathname:e,search:n,hash:o,protocol:t}=new URL(a,"http://a.com");if(Ke(a)||a.startsWith("#")||!t.startsWith("http")||!Qe(e))return a;const{site:l}=j(),i=e.endsWith("/")||e.endsWith(".html")?a:a.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,l.value.cleanUrls?"":".html")}${n}${o}`);return be(i)}function Z({correspondingLink:a=!1}={}){const{site:e,localeIndex:n,page:o,theme:t,hash:l}=j(),i=T(()=>{var d,v;return{label:(d=e.value.locales[n.value])==null?void 0:d.label,link:((v=e.value.locales[n.value])==null?void 0:v.link)||(n.value==="root"?"/":`/${n.value}/`)}});return{localeLinks:T(()=>Object.entries(e.value.locales).flatMap(([d,v])=>i.value.label===v.label?[]:{text:v.label,link:An(v.link||(d==="root"?"/":`/${d}/`),t.value.i18nRouting!==!1&&a,o.value.relativePath.slice(i.value.link.length-1),!e.value.cleanUrls)+l.value})),currentLang:i}}function An(a,e,n,o){return e?a.replace(/\/$/,"")+ue(n.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,o?".html":"")):a}const Sn={class:"NotFound"},Cn={class:"code"},_n={class:"title"},Mn={class:"quote"},Tn={class:"action"},Pn=["href","aria-label"],jn=g({__name:"NotFound",setup(a){const{theme:e}=j(),{currentLang:n}=Z();return(o,t)=>{var l,i,p,d,v;return s(),m("div",Sn,[r("p",Cn,M(((l=c(e).notFound)==null?void 0:l.code)??"404"),1),r("h1",_n,M(((i=c(e).notFound)==null?void 0:i.title)??"PAGE NOT FOUND"),1),t[0]||(t[0]=r("div",{class:"divider"},null,-1)),r("blockquote",Mn,M(((p=c(e).notFound)==null?void 0:p.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),r("div",Tn,[r("a",{class:"link",href:c(be)(c(n).link),"aria-label":((d=c(e).notFound)==null?void 0:d.linkLabel)??"go to home"},M(((v=c(e).notFound)==null?void 0:v.linkText)??"Take me home"),9,Pn)])])}}}),On=C(jn,[["__scopeId","data-v-6ff51ddd"]]);function Be(a,e){if(Array.isArray(a))return ne(a);if(a==null)return[];e=ue(e);const n=Object.keys(a).sort((t,l)=>l.split("/").length-t.split("/").length).find(t=>e.startsWith(ue(t))),o=n?a[n]:[];return Array.isArray(o)?ne(o):ne(o.items,o.base)}function En(a){const e=[];let n=0;for(const o in a){const t=a[o];if(t.items){n=e.push(t);continue}e[n]||e.push({items:[]}),e[n].items.push(t)}return e}function In(a){const e=[];function n(o){for(const t of o)t.text&&t.link&&e.push({text:t.text,link:t.link,docFooterText:t.docFooterText}),t.items&&n(t.items)}return n(a),e}function he(a,e){return Array.isArray(e)?e.some(n=>he(a,n)):G(a,e.link)?!0:e.items?he(a,e.items):!1}function ne(a,e){return[...a].map(n=>{const o={...n},t=o.base||e;return t&&o.link&&(o.link=t+o.link),o.items&&(o.items=ne(o.items,t)),o})}function U(){const{frontmatter:a,page:e,theme:n}=j(),o=de("(min-width: 960px)"),t=P(!1),l=T(()=>{const E=n.value.sidebar,I=e.value.relativePath;return E?Be(E,I):[]}),i=P(l.value);q(l,(E,I)=>{JSON.stringify(E)!==JSON.stringify(I)&&(i.value=l.value)});const p=T(()=>a.value.sidebar!==!1&&i.value.length>0&&a.value.layout!=="home"),d=T(()=>v?a.value.aside==null?n.value.aside==="left":a.value.aside==="left":!1),v=T(()=>a.value.layout==="home"?!1:a.value.aside!=null?!!a.value.aside:n.value.aside!==!1),y=T(()=>p.value&&o.value),S=T(()=>p.value?En(i.value):[]);function b(){t.value=!0}function _(){t.value=!1}function w(){t.value?_():b()}return{isOpen:t,sidebar:i,sidebarGroups:S,hasSidebar:p,hasAside:v,leftAside:d,isSidebarEnabled:y,open:b,close:_,toggle:w}}function Rn(a,e){let n;Q(()=>{n=a.value?document.activeElement:void 0}),B(()=>{window.addEventListener("keyup",o)}),ae(()=>{window.removeEventListener("keyup",o)});function o(t){t.key==="Escape"&&a.value&&(e(),n==null||n.focus())}}function Dn(a){const{page:e,hash:n}=j(),o=P(!1),t=T(()=>a.value.collapsed!=null),l=T(()=>!!a.value.link),i=P(!1),p=()=>{i.value=G(e.value.relativePath,a.value.link)};q([e,a,n],p),B(p);const d=T(()=>i.value?!0:a.value.items?he(e.value.relativePath,a.value.items):!1),v=T(()=>!!(a.value.items&&a.value.items.length));Q(()=>{o.value=!!(t.value&&a.value.collapsed)}),ve(()=>{(i.value||d.value)&&(o.value=!1)});function y(){t.value&&(o.value=!o.value)}return{collapsed:o,collapsible:t,isLink:l,isActiveLink:i,hasActiveLink:d,hasChildren:v,toggle:y}}function xn(){const{hasSidebar:a}=U(),e=de("(min-width: 960px)"),n=de("(min-width: 1280px)");return{isAsideEnabled:T(()=>!n.value&&!e.value?!1:a.value?n.value:e.value)}}const Ln=/\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/,fe=[];function Ve(a){return typeof a.outline=="object"&&!Array.isArray(a.outline)&&a.outline.label||a.outlineTitle||"On this page"}function _e(a){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(n=>n.id&&n.hasChildNodes()).map(n=>{const o=Number(n.tagName[1]);return{element:n,title:Nn(n),link:"#"+n.id,level:o}});return $n(e,a)}function Nn(a){let e="";for(const n of a.childNodes)if(n.nodeType===1){if(Ln.test(n.className))continue;e+=n.textContent}else n.nodeType===3&&(e+=n.textContent);return e.trim()}function $n(a,e){if(e===!1)return[];const n=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[o,t]=typeof n=="number"?[n,n]:n==="deep"?[2,6]:n;return Bn(a,o,t)}function qn(a,e){const{isAsideEnabled:n}=xn(),o=wn(l,100);let t=null;B(()=>{requestAnimationFrame(l),window.addEventListener("scroll",o)}),Ze(()=>{i(location.hash)}),ae(()=>{window.removeEventListener("scroll",o)});function l(){if(!n.value)return;const p=window.scrollY,d=window.innerHeight,v=document.body.offsetHeight,y=Math.abs(p+d-v)<1,S=fe.map(({element:_,link:w})=>({link:w,top:Fn(_)})).filter(({top:_})=>!Number.isNaN(_)).sort((_,w)=>_.top-w.top);if(!S.length){i(null);return}if(p<1){i(null);return}if(y){i(S[S.length-1].link);return}let b=null;for(const{link:_,top:w}
2of S){if(w>p+en()+4)break;b=_}i(b)}function i(p){t&&t.classList.remove("active"),p==null?t=null:t=a.value.querySelector(`a[href="${decodeURIComponent(p)}"]`);const d=t;d?(d.classList.add("active"),e.value.style.top=d.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Fn(a){let e=0;for(;a!==document.body;){if(a===null)return NaN;e+=a.offsetTop,a=a.offsetParent}return e}function Bn(a,e,n){fe.length=0;const o=[],t=[];return a.forEach(l=>{const i={...l,children:[]};let p=t[t.length-1];for(;p&&p.level>=i.level;)t.pop(),p=t[t.length-1];if(i.element.classList.contains("ignore-header")||p&&"shouldIgnore"in p){t.push({level:i.level,shouldIgnore:!0});return}i.level>n||i.level<e||(fe.push({element:i.element,link:i.link}),p?p.children.push(i):o.push(i),t.push(i))}),o}const Vn=["href","title"],Hn=g({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(a){function e({target:n}){const o=n.href.split("#")[1],t=document.getElementById(decodeURIComponent(o));t==null||t.focus({preventScroll:!0})}return(n,o)=>{const t=z("VPDocOutlineItem",!0);return s(),m("ul",{class:D(["VPDocOutlineItem",n.root?"root":"nested"])},[(s(!0),m(O,null,x(n.headers,({children:l,link:i,title:p})=>(s(),m("li",null,[r("a",{class:"outline-link",href:i,onClick:e,title:p},M(p),9,Vn),l!=null&&l.length?(s(),A(t,{key:0,headers:l},null,8,["headers"])):f("",!0)]))),256))],2)}}}),He=C(Hn,[["__scopeId","data-v-53c99d69"]]),Un={class:"content"},Jn={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Wn=g({__name:"VPDocAsideOutline",setup(a){const{frontmatter:e,theme:n}=j(),o=ke([]);se(()=>{o.value=_e(e.value.outline??n.value.outline)});const t=P(),l=P();return qn(t,l),(i,p)=>(s(),m("nav",{"aria-labelledby":"doc-outline-aria-label",class:D(["VPDocAsideOutline",{"has-outline":o.value.length>0}]),ref_key:"container",ref:t},[r("div",Un,[r("div",{class:"outline-marker",ref_key:"marker",ref:l},null,512),r("div",Jn,M(c(Ve)(c(n))),1),k(He,{headers:o.value,root:!0},null,8,["headers"])])],2))}}),Gn=C(Wn,[["__scopeId","data-v-f610f197"]]),zn={class:"VPDocAsideCarbonAds"},Yn=g({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(a){const e=()=>null;return(n,o)=>(s(),m("div",zn,[k(c(e),{"carbon-ads":n.carbonAds},null,8,["carbon-ads"])]))}}),Xn={class:"VPDocAside"},Kn=g({__name:"VPDocAside",setup(a){const{theme:e}=j();return(n,o)=>(s(),m("div",Xn,[u(n.$slots,"aside-top",{},void 0,!0),u(n.$slots,"aside-outline-before",{},void 0,!0),k(Gn),u(n.$slots,"aside-outline-after",{},void 0,!0),o[0]||(o[0]=r("div",{class:"spacer"},null,-1)),u(n.$slots,"aside-ads-before",{},void 0,!0),c(e).carbonAds?(s(),A(Yn,{key:0,"carbon-ads":c(e).carbonAds},null,8,["carbon-ads"])):f("",!0),u(n.$slots,"aside-ads-after",{},void 0,!0),u(n.$slots,"aside-bottom",{},void 0,!0)]))}}),Qn=C(Kn,[["__scopeId","data-v-cb998dce"]]);function Zn(){const{theme:a,page:e}=j();return T(()=>{const{text:n="Edit this page",pattern:o=""}=a.value.editLink||{};let t;return typeof o=="function"?t=o(e.value):t=o.replace(/:path/g,e.value.filePath),{url:t,text:n}})}function eo(){const{page:a,theme:e,frontmatter:n}=j();return T(()=>{var v,y,S,b,_,w,E,I;const o=Be(e.value.sidebar,a.value.relativePath),t=In(o),l=no(t,N=>N.link.replace(/[?#].*$/,"")),i=l.findIndex(N=>G(a.value.relativePath,N.link)),p=((v=e.value.docFooter)==null?void 0:v.prev)===!1&&!n.value.prev||n.value.prev===!1,d=((y=e.value.docFooter)==null?void 0:y.next)===!1&&!n.value.next||n.value.next===!1;return{prev:p?void 0:{text:(typeof n.value.prev=="string"?n.value.prev:typeof n.value.prev=="object"?n.value.prev.text:void 0)??((S=l[i-1])==null?void 0:S.docFooterText)??((b=l[i-1])==null?void 0:b.text),link:(typeof n.value.prev=="object"?n.value.prev.link:void 0)??((_=l[i-1])==null?void 0:_.link)},next:d?void 0:{text:(typeof n.value.next=="string"?n.value.next:typeof n.value.next=="object"?n.value.next.text:void 0)??((w=l[i+1])==null?void 0:w.docFooterText)??((E=l[i+1])==null?void 0:E.text),link:(typeof n.value.next=="object"?n.value.next.link:void 0)??((I=l[i+1])==null?void 0:I.link)}}})}function no(a,e){const n=new Set;return a.filter(o=>{const t=e(o);return n.has(t)?!1:n.add(t)})}const H=g({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(a){const e=a,n=T(()=>e.tag??(e.href?"a":"span")),o=T(()=>e.href&&$e.test(e.href)||e.target==="_blank");return(t,l)=>(s(),A(F(n.value),{class:D(["VPLink",{link:t.href,"vp-external-link-icon":o.value,"no-icon":t.noIcon}]),href:t.href?c(Ce)(t.href):void 0,target:t.target??(o.value?"_blank":void 0),rel:t.rel??(o.value?"noreferrer":void 0)},{default:h(()=>[u(t.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),oo={class:"VPLastUpdated"},to=["datetime"],ao=g({__name:"VPDocFooterLastUpdated",setup(a){const{theme:e,page:n,lang:o}=j(),t=T(()=>new Date(n.value.lastUpdated)),l=T(()=>t.value.toISOString()),i=P("");return B(()=>{Q(()=>{var p,d,v;i.value=new Intl.DateTimeFormat((d=(p=e.value.lastUpdated)==null?void 0:p.formatOptions)!=null&&d.forceLocale?o.value:void 0,((v=e.value.lastUpdated)==null?void 0:v.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(t.value)})}),(p,d)=>{var v;return s(),m("p",oo,[R(M(((v=c(e).lastUpdated)==null?void 0:v.text)||c(e).lastUpdatedText||"Last updated")+": ",1),r("time",{datetime:l.value},M(i.value),9,to)])}}}),so=C(ao,[["__scopeId","data-v-1bb0c8a8"]]),io={key:0,class:"VPDocFooter"},ro={key:0,class:"edit-info"},co={key:0,class:"edit-link"},lo={key:1,class:"last-updated"},po={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},mo={class:"pager"},uo=["innerHTML"],ho=["innerHTML"],fo={class:"pager"},go=["innerHTML"],yo=["innerHTML"],bo=g({__name:"VPDocFooter",setup(a){const{theme:e,page:n,frontmatter:o}=j(),t=Zn(),l=eo(),i=T(()=>e.value.editLink&&o.value.editLink!==!1),p=T(()=>n.value.lastUpdated),d=T(()=>i.value||p.value||l.value.prev||l.value.next);return(v,y)=>{var S,b,_,w;return d.value?(s(),m("footer",io,[u(v.$slots,"doc-footer-before",{},void 0,!0),i.value||p.value?(s(),m("div",ro,[i.value?(s(),m("div",co,[k(H,{class:"edit-link-button",href:c(t).url,"no-icon":!0},{default:h(()=>[y[0]||(y[0]=r("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),R(" "+M(c(t).text),1)]),_:1},8,["href"])])):f("",!0),p.value?(s(),m("div",lo,[k(so)])):f("",!0)])):f("",!0),(S=c(l).prev)!=null&&S.link||(b=c(l).next)!=null&&b.link?(s(),m("nav",po,[y[1]||(y[1]=r("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),r("div",mo,[(_=c(l).prev)!=null&&_.link?(s(),A(H,{key:0,class:"pager-link prev",href:c(l).prev.link},{default:h(()=>{var E;return[r("span",{class:"desc",innerHTML:((E=c(e).docFooter)==null?void 0:E.prev)||"Previous page"},null,8,uo),r("span",{class:"title",innerHTML:c(l).prev.text},null,8,ho)]}),_:1},8,["href"])):f("",!0)]),r("div",fo,[(w=c(l).next)!=null&&w.link?(s(),A(H,{key:0,class:"pager-link next",href:c(l).next.link},{default:h(()=>{var E;return[r("span",{class:"desc",innerHTML:((E=c(e).docFooter)==null?void 0:E.next)||"Next page"},null,8,go),r("span",{class:"title",innerHTML:c(l).next.text},null,8,yo)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),vo=C(bo,[["__scopeId","data-v-1bcd8184"]]),ko={class:"container"},wo={class:"aside-container"},Ao={class:"aside-content"},So={class:"content"},Co={class:"content-container"},_o={class:"main"},Mo=g({__name:"VPDoc",setup(a){const{theme:e}=j(),n=ie(),{hasSidebar:o,hasAside:t,leftAside:l}=U(),i=T(()=>n.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(p,d)=>{const v=z("Content");return s(),m("div",{class:D(["VPDoc",{"has-sidebar":c(o),"has-aside":c(t)}])},[u(p.$slots,"doc-top",{},void 0,!0),r("div",ko,[c(t)?(s(),m("div",{key:0,class:D(["aside",{"left-aside":c(l)}])},[d[0]||(d[0]=r("div",{class:"aside-curtain"}
2,null,-1)),r("div",wo,[r("div",Ao,[k(Qn,null,{"aside-top":h(()=>[u(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":h(()=>[u(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":h(()=>[u(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[u(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[u(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[u(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),r("div",So,[r("div",Co,[u(p.$slots,"doc-before",{},void 0,!0),r("main",_o,[k(v,{class:D(["vp-doc",[i.value,c(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),k(vo,null,{"doc-footer-before":h(()=>[u(p.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),u(p.$slots,"doc-after",{},void 0,!0)])])]),u(p.$slots,"doc-bottom",{},void 0,!0)],2)}}}),To=C(Mo,[["__scopeId","data-v-e6f2a212"]]),Po=g({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(a){const e=a,n=T(()=>e.href&&$e.test(e.href)),o=T(()=>e.tag||(e.href?"a":"button"));return(t,l)=>(s(),A(F(o.value),{class:D(["VPButton",[t.size,t.theme]]),href:t.href?c(Ce)(t.href):void 0,target:e.target??(n.value?"_blank":void 0),rel:e.rel??(n.value?"noreferrer":void 0)},{default:h(()=>[R(M(t.text),1)]),_:1},8,["class","href","target","rel"]))}}),jo=C(Po,[["__scopeId","data-v-93dc4167"]]),Oo=["src","alt"],Eo=g({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(a){return(e,n)=>{const o=z("VPImage",!0);return e.image?(s(),m(O,{key:0},[typeof e.image=="string"||"src"in e.image?(s(),m("img",W({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:c(be)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,Oo)):(s(),m(O,{key:1},[k(o,W({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),k(o,W({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),te=C(Eo,[["__scopeId","data-v-ab19afbb"]]),Io={class:"container"},Ro={class:"main"},Do={class:"heading"},xo=["innerHTML"],Lo=["innerHTML"],No=["innerHTML"],$o={key:0,class:"actions"},qo={key:0,class:"image"},Fo={class:"image-container"},Bo=g({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(a){const e=re("hero-image-slot-exists");return(n,o)=>(s(),m("div",{class:D(["VPHero",{"has-image":n.image||c(e)}])},[r("div",Io,[r("div",Ro,[u(n.$slots,"home-hero-info-before",{},void 0,!0),u(n.$slots,"home-hero-info",{},()=>[r("h1",Do,[n.name?(s(),m("span",{key:0,innerHTML:n.name,class:"name clip"},null,8,xo)):f("",!0),n.text?(s(),m("span",{key:1,innerHTML:n.text,class:"text"},null,8,Lo)):f("",!0)]),n.tagline?(s(),m("p",{key:0,innerHTML:n.tagline,class:"tagline"},null,8,No)):f("",!0)],!0),u(n.$slots,"home-hero-info-after",{},void 0,!0),n.actions?(s(),m("div",$o,[(s(!0),m(O,null,x(n.actions,t=>(s(),m("div",{key:t.link,class:"action"},[k(jo,{tag:"a",size:"medium",theme:t.theme,text:t.text,href:t.link,target:t.target,rel:t.rel},null,8,["theme","text","href","target","rel"])]))),128))])):f("",!0),u(n.$slots,"home-hero-actions-after",{},void 0,!0)]),n.image||c(e)?(s(),m("div",qo,[r("div",Fo,[o[0]||(o[0]=r("div",{class:"image-bg"},null,-1)),u(n.$slots,"home-hero-image",{},()=>[n.image?(s(),A(te,{key:0,class:"image-src",image:n.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),Vo=C(Bo,[["__scopeId","data-v-dd8814ff"]]),Ho=g({__name:"VPHomeHero",setup(a){const{frontmatter:e}=j();return(n,o)=>c(e).hero?(s(),A(Vo,{key:0,class:"VPHomeHero",name:c(e).hero.name,text:c(e).hero.text,tagline:c(e).hero.tagline,image:c(e).hero.image,actions:c(e).hero.actions},{"home-hero-info-before":h(()=>[u(n.$slots,"home-hero-info-before")]),"home-hero-info":h(()=>[u(n.$slots,"home-hero-info")]),"home-hero-info-after":h(()=>[u(n.$slots,"home-hero-info-after")]),"home-hero-actions-after":h(()=>[u(n.$slots,"home-hero-actions-after")]),"home-hero-image":h(()=>[u(n.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Uo={class:"box"},Jo={key:0,class:"icon"},Wo=["innerHTML"],Go=["innerHTML"],zo=["innerHTML"],Yo={key:4,class:"link-text"},Xo={class:"link-text-value"},Ko=g({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(a){return(e,n)=>(s(),A(H,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:h(()=>[r("article",Uo,[typeof e.icon=="object"&&e.icon.wrap?(s(),m("div",Jo,[k(te,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(s(),A(te,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(s(),m("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Wo)):f("",!0),r("h2",{class:"title",innerHTML:e.title},null,8,Go),e.details?(s(),m("p",{key:3,class:"details",innerHTML:e.details},null,8,zo)):f("",!0),e.linkText?(s(),m("div",Yo,[r("p",Xo,[R(M(e.linkText)+" ",1),n[0]||(n[0]=r("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Qo=C(Ko,[["__scopeId","data-v-bd37d1a2"]]),Zo={key:0,class:"VPFeatures"},et={class:"container"},nt={class:"items"},ot=g({__name:"VPFeatures",props:{features:{}},setup(a){const e=a,n=T(()=>{const o=e.features.length;if(o){if(o===2)return"grid-2";if(o===3)return"grid-3";if(o%3===0)return"grid-6";if(o>3)return"grid-4"}else return});return(o,t)=>o.features?(s(),m("div",Zo,[r("div",et,[r("div",nt,[(s(!0),m(O,null,x(o.features,l=>(s(),m("div",{key:l.title,class:D(["item",[n.value]])},[k(Qo,{icon:l.icon,title:l.title,details:l.details,link:l.link,"link-text":l.linkText,rel:l.rel,target:l.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),tt=C(ot,[["__scopeId","data-v-b1eea84a"]]),at=g({__name:"VPHomeFeatures",setup(a){const{frontmatter:e}=j();return(n,o)=>c(e).features?(s(),A(tt,{key:0,class:"VPHomeFeatures",features:c(e).features},null,8,["features"])):f("",!0)}}),st=g({__name:"VPHomeContent",setup(a){const{width:e}=nn({initialWidth:0,includeScrollbar:!1});return(n,o)=>(s(),m("div",{class:"vp-doc container",style:ce(c(e)?{"--vp-offset":`calc(50% - ${c(e)/2}px)`}:{})},[u(n.$slots,"default",{},void 0,!0)],4))}}),it=C(st,[["__scopeId","data-v-c141a4bd"]]),rt=g({__name:"VPHome",setup(a){const{frontmatter:e,theme:n}=j();return(o,t)=>{const l=z("Content");return s(),m("div",{class:D(["VPHome",{"external-link-icon-enabled":c(n).externalLinkIcon}])},[u(o.$slots,"home-hero-before",{},void 0,!0),k(Ho,null,{"home-hero-info-before":h(()=>[u(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[u(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[u(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[u(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[u(o.$slots,"home-hero-image",{},void 0,!0)]),_:3}),u(o.$slots,"home-hero-after",{},void 0,!0),u(o.$slots,"home-features-before",{}
2,void 0,!0),k(at),u(o.$slots,"home-features-after",{},void 0,!0),c(e).markdownStyles!==!1?(s(),A(it,{key:0},{default:h(()=>[k(l)]),_:1})):(s(),A(l,{key:1}))],2)}}}),ct=C(rt,[["__scopeId","data-v-e07eaea7"]]),lt={},pt={class:"VPPage"};function mt(a,e){const n=z("Content");return s(),m("div",pt,[u(a.$slots,"page-top"),k(n),u(a.$slots,"page-bottom")])}const dt=C(lt,[["render",mt]]),ut=g({__name:"VPContent",setup(a){const{page:e,frontmatter:n}=j(),{hasSidebar:o}=U();return(t,l)=>(s(),m("div",{class:D(["VPContent",{"has-sidebar":c(o),"is-home":c(n).layout==="home"}]),id:"VPContent"},[c(e).isNotFound?u(t.$slots,"not-found",{key:0},()=>[k(On)],!0):c(n).layout==="page"?(s(),A(dt,{key:1},{"page-top":h(()=>[u(t.$slots,"page-top",{},void 0,!0)]),"page-bottom":h(()=>[u(t.$slots,"page-bottom",{},void 0,!0)]),_:3})):c(n).layout==="home"?(s(),A(ct,{key:2},{"home-hero-before":h(()=>[u(t.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":h(()=>[u(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[u(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[u(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[u(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[u(t.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":h(()=>[u(t.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":h(()=>[u(t.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":h(()=>[u(t.$slots,"home-features-after",{},void 0,!0)]),_:3})):c(n).layout&&c(n).layout!=="doc"?(s(),A(F(c(n).layout),{key:3})):(s(),A(To,{key:4},{"doc-top":h(()=>[u(t.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":h(()=>[u(t.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":h(()=>[u(t.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":h(()=>[u(t.$slots,"doc-before",{},void 0,!0)]),"doc-after":h(()=>[u(t.$slots,"doc-after",{},void 0,!0)]),"aside-top":h(()=>[u(t.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":h(()=>[u(t.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[u(t.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[u(t.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[u(t.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":h(()=>[u(t.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),ht=C(ut,[["__scopeId","data-v-9a6c75ad"]]),ft={class:"container"},gt=["innerHTML"],yt=["innerHTML"],bt=g({__name:"VPFooter",setup(a){const{theme:e,frontmatter:n}=j(),{hasSidebar:o}=U();return(t,l)=>c(e).footer&&c(n).footer!==!1?(s(),m("footer",{key:0,class:D(["VPFooter",{"has-sidebar":c(o)}])},[r("div",ft,[c(e).footer.message?(s(),m("p",{key:0,class:"message",innerHTML:c(e).footer.message},null,8,gt)):f("",!0),c(e).footer.copyright?(s(),m("p",{key:1,class:"copyright",innerHTML:c(e).footer.copyright},null,8,yt)):f("",!0)])],2)):f("",!0)}}),vt=C(bt,[["__scopeId","data-v-566314d4"]]);function kt(){const{theme:a,frontmatter:e}=j(),n=ke([]),o=T(()=>n.value.length>0);return se(()=>{n.value=_e(e.value.outline??a.value.outline)}),{headers:n,hasLocalNav:o}}const wt={class:"menu-text"},At={class:"header"},St={class:"outline"},Ct=g({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(a){const e=a,{theme:n}=j(),o=P(!1),t=P(0),l=P(),i=P();function p(S){var b;(b=l.value)!=null&&b.contains(S.target)||(o.value=!1)}q(o,S=>{if(S){document.addEventListener("click",p);return}document.removeEventListener("click",p)}),on("Escape",()=>{o.value=!1}),se(()=>{o.value=!1});function d(){o.value=!o.value,t.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function v(S){S.target.classList.contains("outline-link")&&(i.value&&(i.value.style.transition="none"),we(()=>{o.value=!1}))}function y(){o.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(S,b)=>(s(),m("div",{class:"VPLocalNavOutlineDropdown",style:ce({"--vp-vh":t.value+"px"}),ref_key:"main",ref:l},[S.headers.length>0?(s(),m("button",{key:0,onClick:d,class:D({open:o.value})},[r("span",wt,M(c(Ve)(c(n))),1),b[0]||(b[0]=r("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(s(),m("button",{key:1,onClick:y},M(c(n).returnToTopLabel||"Return to top"),1)),k(ge,{name:"flyout"},{default:h(()=>[o.value?(s(),m("div",{key:0,ref_key:"items",ref:i,class:"items",onClick:v},[r("div",At,[r("a",{class:"top-link",href:"#",onClick:y}
2,M(c(n).returnToTopLabel||"Return to top"),1)]),r("div",St,[k(He,{headers:S.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),_t=C(Ct,[["__scopeId","data-v-6b867909"]]),Mt={class:"container"},Tt=["aria-expanded"],Pt={class:"menu-text"},jt=g({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(a){const{theme:e,frontmatter:n}=j(),{hasSidebar:o}=U(),{headers:t}=kt(),{y:l}=qe(),i=P(0);B(()=>{i.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),se(()=>{t.value=_e(n.value.outline??e.value.outline)});const p=T(()=>t.value.length===0),d=T(()=>p.value&&!o.value),v=T(()=>({VPLocalNav:!0,"has-sidebar":o.value,empty:p.value,fixed:d.value}));return(y,S)=>c(n).layout!=="home"&&(!d.value||c(l)>=i.value)?(s(),m("div",{key:0,class:D(v.value)},[r("div",Mt,[c(o)?(s(),m("button",{key:0,class:"menu","aria-expanded":y.open,"aria-controls":"VPSidebarNav",onClick:S[0]||(S[0]=b=>y.$emit("open-menu"))},[S[1]||(S[1]=r("span",{class:"vpi-align-left menu-icon"},null,-1)),r("span",Pt,M(c(e).sidebarMenuLabel||"Menu"),1)],8,Tt)):f("",!0),k(_t,{headers:c(t),navHeight:i.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),Ot=C(jt,[["__scopeId","data-v-2488c25a"]]);function Et(){const a=P(!1);function e(){a.value=!0,window.addEventListener("resize",t)}function n(){a.value=!1,window.removeEventListener("resize",t)}function o(){a.value?n():e()}function t(){window.outerWidth>=768&&n()}const l=ie();return q(()=>l.path,n),{isScreenOpen:a,openScreen:e,closeScreen:n,toggleScreen:o}}const It={},Rt={class:"VPSwitch",type:"button",role:"switch"},Dt={class:"check"},xt={key:0,class:"icon"};function Lt(a,e){return s(),m("button",Rt,[r("span",Dt,[a.$slots.default?(s(),m("span",xt,[u(a.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Nt=C(It,[["render",Lt],["__scopeId","data-v-b4ccac88"]]),$t=g({__name:"VPSwitchAppearance",setup(a){const{isDark:e,theme:n}=j(),o=re("toggle-appearance",()=>{e.value=!e.value}),t=P("");return ve(()=>{t.value=e.value?n.value.lightModeSwitchTitle||"Switch to light theme":n.value.darkModeSwitchTitle||"Switch to dark theme"}),(l,i)=>(s(),A(Nt,{title:t.value,class:"VPSwitchAppearance","aria-checked":c(e),onClick:c(o)},{default:h(()=>i[0]||(i[0]=[r("span",{class:"vpi-sun sun"},null,-1),r("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),Me=C($t,[["__scopeId","data-v-be9742d9"]]),qt={key:0,class:"VPNavBarAppearance"},Ft=g({__name:"VPNavBarAppearance",setup(a){const{site:e}=j();return(n,o)=>c(e).appearance&&c(e).appearance!=="force-dark"&&c(e).appearance!=="force-auto"?(s(),m("div",qt,[k(Me)])):f("",!0)}}),Bt=C(Ft,[["__scopeId","data-v-3f90c1a5"]]),Te=P();let Ue=!1,me=0;function Vt(a){const e=P(!1);if(le){!Ue&&Ht(),me++;const n=q(Te,o=>{var t,l,i;o===a.el.value||(t=a.el.value)!=null&&t.contains(o)?(e.value=!0,(l=a.onFocus)==null||l.call(a)):(e.value=!1,(i=a.onBlur)==null||i.call(a))});ae(()=>{n(),me--,me||Ut()})}return tn(e)}function Ht(){document.addEventListener("focusin",Je),Ue=!0,Te.value=document.activeElement}function Ut(){document.removeEventListener("focusin",Je)}function Je(){Te.value=document.activeElement}const Jt={class:"VPMenuLink"},Wt=["innerHTML"],Gt=g({__name:"VPMenuLink",props:{item:{}},setup(a){const{page:e}=j();return(n,o)=>(s(),m("div",Jt,[k(H,{class:D({active:c(G)(c(e).relativePath,n.item.activeMatch||n.item.link,!!n.item.activeMatch)}),href:n.item.link,target:n.item.target,rel:n.item.rel,"no-icon":n.item.noIcon},{default:h(()=>[r("span",{innerHTML:n.item.text},null,8,Wt)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),pe=C(Gt,[["__scopeId","data-v-7eeeb2dc"]]),zt={class:"VPMenuGroup"},Yt={key:0,class:"title"},Xt=g({__name:"VPMenuGroup",props:{text:{},items:{}},setup(a){return(e,n)=>(s(),m("div",zt,[e.text?(s(),m("p",Yt,M(e.text),1)):f("",!0),(s(!0),m(O,null,x(e.items,o=>(s(),m(O,null,["link"in o?(s(),A(pe,{key:0,item:o},null,8,["item"])):f("",!0)],64))),256))]))}}),Kt=C(Xt,[["__scopeId","data-v-a6b0397c"]]),Qt={class:"VPMenu"},Zt={key:0,class:"items"},ea=g({__name:"VPMenu",props:{items:{}},setup(a){return(e,n)=>(s(),m("div",Qt,[e.items?(s(),m("div",Zt,[(s(!0),m(O,null,x(e.items,o=>(s(),m(O,{key:JSON.stringify(o)},["link"in o?(s(),A(pe,{key:0,item:o},null,8,["item"])):"component"in o?(s(),A(F(o.component),W({key:1,ref_for:!0},o.props),null,16)):(s(),A(Kt,{key:2,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):f("",!0),u(e.$slots,"default",{},void 0,!0)]))}}),na=C(ea,[["__scopeId","data-v-20ed86d6"]]),oa=["aria-expanded","aria-label"],ta={key:0,class:"text"},aa=["innerHTML"],sa={key:1,class:"vpi-more-horizontal icon"},ia={class:"menu"},ra=g({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(a){const e=P(!1),n=P();Vt({el:n,onBlur:o});function o(){e.value=!1}return(t,l)=>(s(),m("div",{class:"VPFlyout",ref_key:"el",ref:n,onMouseenter:l[1]||(l[1]=i=>e.value=!0),onMouseleave:l[2]||(l[2]=i=>e.value=!1)},[r("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":t.label,onClick:l[0]||(l[0]=i=>e.value=!e.value)},[t.button||t.icon?(s(),m("span",ta,[t.icon?(s(),m("span",{key:0,class:D([t.icon,"option-icon"])},null,2)):f("",!0),t.button?(s(),m("span",{key:1,innerHTML:t.button},null,8,aa)):f("",!0),l[3]||(l[3]=r("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(s(),m("span",sa))],8,oa),r("div",ia,[k(na,{items:t.items},{default:h(()=>[u(t.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),Pe=C(ra,[["__scopeId","data-v-bfe7971f"]]),ca=["href","aria-label","innerHTML"],la=g({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(a){const e=a,n=P();B(async()=>{var l;await we();const t=(l=n.value)==null?void 0:l.children[0];t instanceof HTMLElement&&t.className.startsWith("vpi-social-")&&(getComputedStyle(t).maskImage||getComputedStyle(t).webkitMaskImage)==="none"&&t.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${e.icon}.svg')`)});const o=T(()=>typeof e.icon=="object"?e.icon.svg:`<span class="vpi-social-${e.icon}"></span>`);return(t,l)=>(s(),m("a",{ref_key:"el",ref:n,class:"VPSocialLink no-icon",href:t.link,"aria-label":t.ariaLabel??(typeof t.icon=="str
2ing"?t.icon:""),target:"_blank",rel:"noopener",innerHTML:o.value},null,8,ca))}}),pa=C(la,[["__scopeId","data-v-60a9a2d3"]]),ma={class:"VPSocialLinks"},da=g({__name:"VPSocialLinks",props:{links:{}},setup(a){return(e,n)=>(s(),m("div",ma,[(s(!0),m(O,null,x(e.links,({link:o,icon:t,ariaLabel:l})=>(s(),A(pa,{key:o,icon:t,link:o,ariaLabel:l},null,8,["icon","link","ariaLabel"]))),128))]))}}),je=C(da,[["__scopeId","data-v-e71e869c"]]),ua={key:0,class:"group translations"},ha={class:"trans-title"},fa={key:1,class:"group"},ga={class:"item appearance"},ya={class:"label"},ba={class:"appearance-action"},va={key:2,class:"group"},ka={class:"item social-links"},wa=g({__name:"VPNavBarExtra",setup(a){const{site:e,theme:n}=j(),{localeLinks:o,currentLang:t}=Z({correspondingLink:!0}),l=T(()=>o.value.length&&t.value.label||e.value.appearance||n.value.socialLinks);return(i,p)=>l.value?(s(),A(Pe,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:h(()=>[c(o).length&&c(t).label?(s(),m("div",ua,[r("p",ha,M(c(t).label),1),(s(!0),m(O,null,x(c(o),d=>(s(),A(pe,{key:d.link,item:d},null,8,["item"]))),128))])):f("",!0),c(e).appearance&&c(e).appearance!=="force-dark"&&c(e).appearance!=="force-auto"?(s(),m("div",fa,[r("div",ga,[r("p",ya,M(c(n).darkModeSwitchLabel||"Appearance"),1),r("div",ba,[k(Me)])])])):f("",!0),c(n).socialLinks?(s(),m("div",va,[r("div",ka,[k(je,{class:"social-links-list",links:c(n).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),Aa=C(wa,[["__scopeId","data-v-f953d92f"]]),Sa=["aria-expanded"],Ca=g({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(a){return(e,n)=>(s(),m("button",{type:"button",class:D(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:n[0]||(n[0]=o=>e.$emit("click"))},n[1]||(n[1]=[r("span",{class:"container"},[r("span",{class:"top"}),r("span",{class:"middle"}),r("span",{class:"bottom"})],-1)]),10,Sa))}}),_a=C(Ca,[["__scopeId","data-v-6bee1efd"]]),Ma=["innerHTML"],Ta=g({__name:"VPNavBarMenuLink",props:{item:{}},setup(a){const{page:e}=j();return(n,o)=>(s(),A(H,{class:D({VPNavBarMenuLink:!0,active:c(G)(c(e).relativePath,n.item.activeMatch||n.item.link,!!n.item.activeMatch)}),href:n.item.link,target:n.item.target,rel:n.item.rel,"no-icon":n.item.noIcon,tabindex:"0"},{default:h(()=>[r("span",{innerHTML:n.item.text},null,8,Ma)]),_:1},8,["class","href","target","rel","no-icon"]))}}),Pa=C(Ta,[["__scopeId","data-v-815115f5"]]),ja=g({__name:"VPNavBarMenuGroup",props:{item:{}},setup(a){const e=a,{page:n}=j(),o=l=>"component"in l?!1:"link"in l?G(n.value.relativePath,l.link,!!e.item.activeMatch):l.items.some(o),t=T(()=>o(e.item));return(l,i)=>(s(),A(Pe,{class:D({VPNavBarMenuGroup:!0,active:c(G)(c(n).relativePath,l.item.activeMatch,!!l.item.activeMatch)||t.value}),button:l.item.text,items:l.item.items},null,8,["class","button","items"]))}}),Oa={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Ea=g({__name:"VPNavBarMenu",setup(a){const{theme:e}=j();return(n,o)=>c(e).nav?(s(),m("nav",Oa,[o[0]||(o[0]=r("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(s(!0),m(O,null,x(c(e).nav,t=>(s(),m(O,{key:JSON.stringify(t)},["link"in t?(s(),A(Pa,{key:0,item:t},null,8,["item"])):"component"in t?(s(),A(F(t.component),W({key:1,ref_for:!0},t.props),null,16)):(s(),A(ja,{key:2,item:t},null,8,["item"]))],64))),128))])):f("",!0)}}),Ia=C(Ea,[["__scopeId","data-v-afb2845e"]]);function Ra(a){const{localeIndex:e,theme:n}=j();function o(t){var w,E,I;const l=t.split("."),i=(w=n.value.search)==null?void 0:w.options,p=i&&typeof i=="object",d=p&&((I=(E=i.locales)==null?void 0:E[e.value])==null?void 0:I.translations)||null,v=p&&i.translations||null;let y=d,S=v,b=a;const _=l.pop();for(const N of l){let $=null;const V=b==null?void 0:b[N];V&&($=b=V);const Y=S==null?void 0:S[N];Y&&($=S=Y);const X=y==null?void 0:y[N];X&&($=y=X),V||(b=$),Y||(S=$),X||(y=$)}return(y==null?void 0:y[_])??(S==null?void 0:S[_])??(b==null?void 0:b[_])??""}return o}const Da=["aria-label"],xa={class:"DocSearch-Button-Container"},La={class:"DocSearch-Button-Placeholder"},Ie=g({__name:"VPNavBarSearchButton",setup(a){const n=Ra({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(o,t)=>(s(),m("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":c(n)("button.buttonAriaLabel")},[r("span",xa,[t[0]||(t[0]=r("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),r("span",La,M(c(n)("button.buttonText")),1)]),t[1]||(t[1]=r("span",{class:"DocSearch-Button-Keys"},[r("kbd",{class:"DocSearch-Button-Key"}),r("kbd",{class:"DocSearch-Button-Key"}
2,"K")],-1))],8,Da))}}),Na={class:"VPNavBarSearch"},$a={id:"local-search"},qa={key:1,id:"docsearch"},Fa=g({__name:"VPNavBarSearch",setup(a){const e=()=>null,n=an(()=>sn(()=>import("./VPAlgoliaSearchBox.CR4y2Zr3.js"),__vite__mapDeps([0,1]))),{theme:o}=j(),t=P(!1),l=P(!1),i=()=>{const b="VPAlgoliaPreconnect";(window.requestIdleCallback||setTimeout)(()=>{var E;const w=document.createElement("link");w.id=b,w.rel="preconnect",w.href=`https://${(((E=o.value.search)==null?void 0:E.options)??o.value.algolia).appId}-dsn.algolia.net`,w.crossOrigin="",document.head.appendChild(w)})};B(()=>{i();const b=w=>{(w.key.toLowerCase()==="k"&&(w.metaKey||w.ctrlKey)||!v(w)&&w.key==="/")&&(w.preventDefault(),p(),_())},_=()=>{window.removeEventListener("keydown",b)};window.addEventListener("keydown",b),ae(_)});function p(){t.value||(t.value=!0,setTimeout(d,16))}function d(){const b=new Event("keydown");b.key="k",b.metaKey=!0,window.dispatchEvent(b),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||d()},16)}function v(b){const _=b.target,w=_.tagName;return _.isContentEditable||w==="INPUT"||w==="SELECT"||w==="TEXTAREA"}const y=P(!1),S="algolia";return(b,_)=>{var w;return s(),m("div",Na,[c(S)==="local"?(s(),m(O,{key:0},[y.value?(s(),A(c(e),{key:0,onClose:_[0]||(_[0]=E=>y.value=!1)})):f("",!0),r("div",$a,[k(Ie,{onClick:_[1]||(_[1]=E=>y.value=!0)})])],64)):c(S)==="algolia"?(s(),m(O,{key:1},[t.value?(s(),A(c(n),{key:0,algolia:((w=c(o).search)==null?void 0:w.options)??c(o).algolia,onVnodeBeforeMount:_[2]||(_[2]=E=>l.value=!0)},null,8,["algolia"])):f("",!0),l.value?f("",!0):(s(),m("div",qa,[k(Ie,{onClick:p})]))],64)):f("",!0)])}}}),Ba=g({__name:"VPNavBarSocialLinks",setup(a){const{theme:e}=j();return(n,o)=>c(e).socialLinks?(s(),A(je,{key:0,class:"VPNavBarSocialLinks",links:c(e).socialLinks},null,8,["links"])):f("",!0)}}),Va=C(Ba,[["__scopeId","data-v-ef6192dc"]]),Ha=["href","rel","target"],Ua=["innerHTML"],Ja={key:2},Wa=g({__name:"VPNavBarTitle",setup(a){const{site:e,theme:n}=j(),{hasSidebar:o}=U(),{currentLang:t}=Z(),l=T(()=>{var d;return typeof n.value.logoLink=="string"?n.value.logoLink:(d=n.value.logoLink)==null?void 0:d.link}),i=T(()=>{var d;return typeof n.value.logoLink=="string"||(d=n.value.logoLink)==null?void 0:d.rel}),p=T(()=>{var d;return typeof n.value.logoLink=="string"||(d=n.value.logoLink)==null?void 0:d.target});return(d,v)=>(s(),m("div",{class:D(["VPNavBarTitle",{"has-sidebar":c(o)}])},[r("a",{class:"title",href:l.value??c(Ce)(c(t).link),rel:i.value,target:p.value},[u(d.$slots,"nav-bar-title-before",{},void 0,!0),c(n).logo?(s(),A(te,{key:0,class:"logo",image:c(n).logo},null,8,["image"])):f("",!0),c(n).siteTitle?(s(),m("span",{key:1,innerHTML:c(n).siteTitle},null,8,Ua)):c(n).siteTitle===void 0?(s(),m("span",Ja,M(c(e).title),1)):f("",!0),u(d.$slots,"nav-bar-title-after",{},void 0,!0)],8,Ha)],2))}}),Ga=C(Wa,[["__scopeId","data-v-9f43907a"]]),za={class:"items"},Ya={class:"title"},Xa=g({__name:"VPNavBarTranslations",setup(a){const{theme:e}=j(),{localeLinks:n,currentLang:o}=Z({correspondingLink:!0});return(t,l)=>c(n).length&&c(o).label?(s(),A(Pe,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:c(e).langMenuLabel||"Change language"},{default:h(()=>[r("div",za,[r("p",Ya,M(c(o).label),1),(s(!0),m(O,null,x(c(n),i=>(s(),A(pe,{key:i.link,item:i},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),Ka=C(Xa,[["__scopeId","data-v-acee064b"]]),Qa={class:"wrapper"},Za={class:"container"},es={class:"title"},ns={class:"content"},os={class:"content-body"},ts=g({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(a){const e=a,{y:n}=qe(),{hasSidebar:o}=U(),{frontmatter:t}=j(),l=P({});return ve(()=>{l.value={"has-sidebar":o.value,home:t.value.layout==="home",top:n.value===0,"screen-open":e.isScreenOpen}}),(i,p)=>(s(),m("div",{class:D(["VPNavBar",l.value])},[r("div",Qa,[r("div",Za,[r("div",es,[k(Ga,null,{"nav-bar-title-before":h(()=>[u(i.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[u(i.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),r("div",ns,[r("div",os,[u(i.$slots,"nav-bar-content-before",{},void 0,!0),k(Fa,{class:"search"}),k(Ia,{class:"menu"}),k(Ka,{class:"translations"}),k(Bt,{class:"appearance"}),k(Va,{class:"social-links"}),k(Aa,{class:"extra"}),u(i.$slots,"nav-bar-content-after",{},void 0,!0),k(_a,{class:"hamburger",active:i.isScreenOpen,onClick:p[
20]||(p[0]=d=>i.$emit("toggle-screen"))},null,8,["active"])])])])]),p[1]||(p[1]=r("div",{class:"divider"},[r("div",{class:"divider-line"})],-1))],2))}}),as=C(ts,[["__scopeId","data-v-9fd4d1dd"]]),ss={key:0,class:"VPNavScreenAppearance"},is={class:"text"},rs=g({__name:"VPNavScreenAppearance",setup(a){const{site:e,theme:n}=j();return(o,t)=>c(e).appearance&&c(e).appearance!=="force-dark"&&c(e).appearance!=="force-auto"?(s(),m("div",ss,[r("p",is,M(c(n).darkModeSwitchLabel||"Appearance"),1),k(Me)])):f("",!0)}}),cs=C(rs,[["__scopeId","data-v-a3e2920d"]]),ls=["innerHTML"],ps=g({__name:"VPNavScreenMenuLink",props:{item:{}},setup(a){const e=re("close-screen");return(n,o)=>(s(),A(H,{class:"VPNavScreenMenuLink",href:n.item.link,target:n.item.target,rel:n.item.rel,"no-icon":n.item.noIcon,onClick:c(e)},{default:h(()=>[r("span",{innerHTML:n.item.text},null,8,ls)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),ms=C(ps,[["__scopeId","data-v-fa963d97"]]),ds=["innerHTML"],us=g({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(a){const e=re("close-screen");return(n,o)=>(s(),A(H,{class:"VPNavScreenMenuGroupLink",href:n.item.link,target:n.item.target,rel:n.item.rel,"no-icon":n.item.noIcon,onClick:c(e)},{default:h(()=>[r("span",{innerHTML:n.item.text},null,8,ds)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),We=C(us,[["__scopeId","data-v-e04f3e85"]]),hs={class:"VPNavScreenMenuGroupSection"},fs={key:0,class:"title"},gs=g({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(a){return(e,n)=>(s(),m("div",hs,[e.text?(s(),m("p",fs,M(e.text),1)):f("",!0),(s(!0),m(O,null,x(e.items,o=>(s(),A(We,{key:o.text,item:o},null,8,["item"]))),128))]))}}),ys=C(gs,[["__scopeId","data-v-f60dbfa7"]]),bs=["aria-controls","aria-expanded"],vs=["innerHTML"],ks=["id"],ws={key:0,class:"item"},As={key:1,class:"item"},Ss={key:2,class:"group"},Cs=g({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(a){const e=a,n=P(!1),o=T(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function t(){n.value=!n.value}return(l,i)=>(s(),m("div",{class:D(["VPNavScreenMenuGroup",{open:n.value}])},[r("button",{class:"button","aria-controls":o.value,"aria-expanded":n.value,onClick:t},[r("span",{class:"button-text",innerHTML:l.text},null,8,vs),i[0]||(i[0]=r("span",{class:"vpi-plus button-icon"},null,-1))],8,bs),r("div",{id:o.value,class:"items"},[(s(!0),m(O,null,x(l.items,p=>(s(),m(O,{key:JSON.stringify(p)},["link"in p?(s(),m("div",ws,[k(We,{item:p},null,8,["item"])])):"component"in p?(s(),m("div",As,[(s(),A(F(p.component),W({ref_for:!0},p.props,{"screen-menu":""}),null,16))])):(s(),m("div",Ss,[k(ys,{text:p.text,items:p.items},null,8,["text","items"])]))],64))),128))],8,ks)],2))}}),_s=C(Cs,[["__scopeId","data-v-d99bfeec"]]),Ms={key:0,class:"VPNavScreenMenu"},Ts=g({__name:"VPNavScreenMenu",setup(a){const{theme:e}=j();return(n,o)=>c(e).nav?(s(),m("nav",Ms,[(s(!0),m(O,null,x(c(e).nav,t=>(s(),m(O,{key:JSON.stringify(t)},["link"in t?(s(),A(ms,{key:0,item:t},null,8,["item"])):"component"in t?(s(),A(F(t.component),W({key:1,ref_for:!0},t.props,{"screen-menu":""}),null,16)):(s(),A(_s,{key:2,text:t.text||"",items:t.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Ps=g({__name:"VPNavScreenSocialLinks",setup(a){const{theme:e}=j();return(n,o)=>c(e).socialLinks?(s(),A(je,{key:0,class:"VPNavScreenSocialLinks",links:c(e).socialLinks},null,8,["links"])):f("",!0)}}),js={class:"list"},Os=g({__name:"VPNavScreenTranslations",setup(a){const{localeLinks:e,currentLang:n}=Z({correspondingLink:!0}),o=P(!1);function t(){o.value=!o.value}return(l,i)=>c(e).length&&c(n).label?(s(),m("div",{key:0,class:D(["VPNavScreenTranslations",{open:o.value}])},[r("button",{class:"title",onClick:t},[i[0]||(i[0]=r("span",{class:"vpi-languages icon lang"},null,-1)),R(" "+M(c(n).label)+" ",1),i[1]||(i[1]=r("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),r("ul",js,[(s(!0),m(O,null,x(c(e),p=>(s(),m("li",{key:p.link,class:"item"},[k(H,{class:"link",href:p.link},{default:h(()=>[R(M(p.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),Es=C(Os,[["__scopeId","data-v-516e4bc3"]]),Is={class:"container"},Rs=g({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(a){const e=P(null),n=Fe(le?document.body:null);return(o,t)=>(s(),A(ge,{name:"fade",onEnter:t[0]||(t[0]=l=>n.value=!0),onAfterLeave:t[1]||(t[1]=l=>n.value=!1)},{default:h(()=>[o.open?(s(),m("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[r("div",Is,[u(o.$slots,"nav-screen-content-before",{},void 0,!0),k(Ts,{class:"menu"}),k(Es,{class:"translations"}),k(cs,{class:"appearance"}),k(Ps,{class:"social-links"}),u(o.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),Ds=C(Rs,[["__scopeId","data-v-2dd6d0c7"]]),xs={key:0,class:"VPNav"},Ls=g({__name:"VPNav",setup(a){const{isScreenOpen:e,closeScreen:n,toggleScreen:o}=Et(),{frontmatter:t}=j(),l=T(()=>t.value.navbar!==!1);return Ae("close-screen",n),Q(()=>{le&&document.documentElement.classList.toggle("hide-nav",!l.value)}),(i,p)=>l.value?(s(),m("header",xs,[k(as,{"is-screen-open":c(e),onToggleScreen:c(o)}
2,{"nav-bar-title-before":h(()=>[u(i.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[u(i.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":h(()=>[u(i.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":h(()=>[u(i.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),k(Ds,{open:c(e)},{"nav-screen-content-before":h(()=>[u(i.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":h(()=>[u(i.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),Ns=C(Ls,[["__scopeId","data-v-7ad780c2"]]),$s=["role","tabindex"],qs={key:1,class:"items"},Fs=g({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(a){const e=a,{collapsed:n,collapsible:o,isLink:t,isActiveLink:l,hasActiveLink:i,hasChildren:p,toggle:d}=Dn(T(()=>e.item)),v=T(()=>p.value?"section":"div"),y=T(()=>t.value?"a":"div"),S=T(()=>p.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),b=T(()=>t.value?void 0:"button"),_=T(()=>[[`level-${e.depth}`],{collapsible:o.value},{collapsed:n.value},{"is-link":t.value},{"is-active":l.value},{"has-active":i.value}]);function w(I){"key"in I&&I.key!=="Enter"||!e.item.link&&d()}function E(){e.item.link&&d()}return(I,N)=>{const $=z("VPSidebarItem",!0);return s(),A(F(v.value),{class:D(["VPSidebarItem",_.value])},{default:h(()=>[I.item.text?(s(),m("div",W({key:0,class:"item",role:b.value},rn(I.item.items?{click:w,keydown:w}:{},!0),{tabindex:I.item.items&&0}),[N[1]||(N[1]=r("div",{class:"indicator"},null,-1)),I.item.link?(s(),A(H,{key:0,tag:y.value,class:"link",href:I.item.link,rel:I.item.rel,target:I.item.target},{default:h(()=>[(s(),A(F(S.value),{class:"text",innerHTML:I.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(s(),A(F(S.value),{key:1,class:"text",innerHTML:I.item.text},null,8,["innerHTML"])),I.item.collapsed!=null&&I.item.items&&I.item.items.length?(s(),m("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:E,onKeydown:cn(E,["enter"]),tabindex:"0"},N[0]||(N[0]=[r("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):f("",!0)],16,$s)):f("",!0),I.item.items&&I.item.items.length?(s(),m("div",qs,[I.depth<5?(s(!0),m(O,{key:0},x(I.item.items,V=>(s(),A($,{key:V.text,item:V,depth:I.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),Bs=C(Fs,[["__scopeId","data-v-0009425e"]]),Vs=g({__name:"VPSidebarGroup",props:{items:{}},setup(a){const e=P(!0);let n=null;return B(()=>{n=setTimeout(()=>{n=null,e.value=!1},300)}),ln(()=>{n!=null&&(clearTimeout(n),n=null)}),(o,t)=>(s(!0),m(O,null,x(o.items,l=>(s(),m("div",{key:l.text,class:D(["group",{"no-transition":e.value}])},[k(Bs,{item:l,depth:0},null,8,["item"])],2))),128))}}),Hs=C(Vs,[["__scopeId","data-v-51288d80"]]),Us={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Js=g({__name:"VPSidebar",props:{open:{type:Boolean}},setup(a){const{sidebarGroups:e,hasSidebar:n}=U(),o=a,t=P(null),l=Fe(le?document.body:null);q([o,t],()=>{var p;o.open?(l.value=!0,(p=t.value)==null||p.focus()):l.value=!1},{immediate:!0,flush:"post"});const i=P(0);return q(e,()=>{i.value+=1},{deep:!0}),(p,d)=>c(n)?(s(),m("aside",{key:0,class:D(["VPSidebar",{open:p.open}]),ref_key:"navEl",ref:t,onClick:d[0]||(d[0]=pn(()=>{},["stop"]))},[d[2]||(d[2]=r("div",{class:"curtain"},null,-1)),r("nav",Us,[d[1]||(d[1]=r("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),u(p.$slots,"sidebar-nav-before",{},void 0,!0),(s(),A(Hs,{items:c(e),key:i.value},null,8,["items"])),u(p.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),Ws=C(Js,[["__scopeId","data-v-42c4c606"]]),Gs=g({__name:"VPSkipLink",setup(a){const{theme:e}=j(),n=ie(),o=P();q(()=>n.path,()=>o.value.focus());function t({target:l}){const i=document.getElementById(decodeURIComponent(l.hash).slice(1));if(i){const p=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",p)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",p),i.focus(),window.scrollTo(0,0)}}return(l,i)=>(s(),m(O,null,[r("span",{ref_key:"backToTop",ref:o,tabindex:"-1"},null,512),r("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:t},M(c(e).skipToContentLabel||"Skip to content"),1)],64))}}),zs=C(Gs,[["__scopeId","data-v-fcbfc0e0"]]),Ys=g({__name:"Layout",setup(a){const{isOpen:e,open:n,close:o}=U(),t=ie();q(()=>t.path,o),Rn(e,o);const{frontmatter:l}=j(),i=mn(),p=T(()=>!!i["home-hero-image"]);return Ae("hero-image-slot-exists",p),(d,v)=>{const y=z("Content");return c(l).layout!==!1?(s(),m("div",{key:0,class:D(["Layout",c(l).pageClass])},[u(d.$slots,"layout-top",{},void 0,!0),k(zs),k(kn,{class:"backdrop",show:c(e),onClick:c(o)},null,8,["show","onClick"]),k(Ns,null,{"nav-bar-title-before":h(()=>[u(d.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[u(d.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":h(()=>[u(d.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":h(()=>[u(d.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":h(()=>[u(d.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":h(()=>[u(d.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),k(Ot,{open:c(e),onOpenMenu:c(n)},null,8,["open","onOpenMenu"]),k(Ws,{open:c(e)},{"sidebar-nav-before":h(()=>[u(d.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":h(()=>[u(d.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),k(ht,null,{"page-top":h(()=>[u(d.$slots,"page-top",{},void 0,!0)]),"page-bottom":h(()=>[u(d.$slots,"page-bottom",{},void 0,!0)]),"not-found":h(()=>[u(d.$slots,"not-found",{},void 0,!0)]),"home-hero-before":h(()=>[u(d.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":h(()=>[u(d.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[u(d.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[u(d.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[u(d.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[u(d.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":h(()=>[u(d.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":h(()=>[u(d.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":h(()=>[u(d.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":h(()=>[u(d.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":h(()=>[u(d.$slots,"doc-before",{},void 0,!0)]),"doc-after":h(()=>[u(d.$slots,"doc-after",{},void 0,!0)]),"doc-top":h(()=>[u(d.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":h(()=>[u(d.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":h(()=>[u(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":h(()=>[u(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":h(()=>[u(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[u(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[u(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[u(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),k(vt),u(d.$slots,"layout-bottom",{},void 0,!0)],2)):(s(),A(y,{key:1}))}}}),Xs=C(Ys,[["__scopeId","data-v-d8b57b2d"]]),Ge={Layout:Xs,enhanceApp:({app:a})=>{a.component("Badge",yn)}},Ks={key:0,class:"line"},Qs={style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},Zs={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},Oe=g({__name:"Import",props:{scope:{},what:{},from:{},isDefaultImport:{type:Boolean}},setup(a){const e=a,n=o=>e.isDefaultImport?` ${o} `:` { ${o} } `;return(o,t)=>e.scope!=="instance"&&e.from?(s(),m("span",Ks,[t[0]||(t[0]=r("span",{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"}}
2,"import",-1)),r("span",Qs,M(n(o.what)),1),t[1]||(t[1]=r("span",{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"}},"from",-1)),r("span",Zs,' "meteor/'+M(e.from)+'"',1),t[2]||(t[2]=r("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},";",-1))])):f("",!0)}}),ei={class:"language-js vp-adaptive-theme"},ni={class:"shiki shiki-themes github-light github-dark vp-code"},oi={class:"line"},ti={style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},ai=g({__name:"Booleans",props:{from:{},isDefaultImport:{type:Boolean},longname:{},memberof:{}},setup(a){const e=a;return(n,o)=>(s(),m("div",ei,[o[6]||(o[6]=r("button",{title:"Copy Code",class:"copy"},null,-1)),o[7]||(o[7]=r("span",{class:"lang"},"js",-1)),r("pre",ni,[r("code",null,[k(Oe,{what:e.memberof,"is-default-import":e.isDefaultImport,from:e.from,scope:"static"},null,8,["what","is-default-import","from"]),o[1]||(o[1]=dn(`
3<span class="line"></span>
4<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">/** </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@type</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> {Boolean}</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> */</span></span>
5`,5)),r("span",oi,[o[0]||(o[0]=r("span",{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"}},"if",-1)),r("span",ti," ("+M(e.longname)+") {",1)]),o[2]||(o[2]=R(`
6`)),o[3]||(o[3]=r("span",{class:"line"},[r("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"}},"  // do something")],-1)),o[4]||(o[4]=R(`
7`)),o[5]||(o[5]=r("span",{class:"line"},[r("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"}")],-1))])])]))}}),J={function:()=>'<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  () </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {}',string:a=>`<span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">  "${a}"`,number:()=>'<span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">  42',boolean:()=>'<span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">  false',object:a=>`<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  ${a}`,array:()=>'<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  []',"array.<string>":()=>'<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"string"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]',"array.<object>":()=>'<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  [</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}]',"array.<ejsonable>":()=>`<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ${J.ejsonable({pre:"[",post:"]"})}`,ejsonable(a){let e,n;return typeof a=="string"&&(e=""),typeof a=="object"&&(e=a.pre,n=a.post),e.length>1&&(e=""),`<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ${e??""}{ num:${J.number()}</span> , someProp:${J.string("foo")} </span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}${n??""}`},ejson(a,e){return J.ejsonable(a,e)},jsoncompatible(a,e){return J.ejsonable(a,e)},promise:()=>'<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  Promise {</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}',any:()=>'<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  any',error:a=>`<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  Error(${a})`,mongoselector:()=>'<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  MongoSelector',mongomodifier:()=>'<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  MongoModifier',iterationcallback:()=>'<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  IterationCallback',expresshandlerscallback:()=>'<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  ExpressHandlersCallback',addruntimeconfighookcallback:()=>'<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  addRuntimeConfigHookCallback',addupdatednotifyhookcallback:()=>'<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  addUpdatedNotifyHookCallback',"tracker.computationfunction":()=>'<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  Tracker.ComputationFunction',computation:()=>'<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  Computation',func:()=>J.function(),"tracker.computation":()=>J.computation()},si='<span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span>',ii="<br/>",ri=a=>a.replace(/</g,"&lt;").replace(/>/g,"&gt;"),ci=a=>`<span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">/** </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@returns</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> ${ri(a)}</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> */</span>`,ze=(a="  // this param is optional ")=>`<span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">${a}</span>`,li=({html:a,pre:e,post:n}={pre:"",post:"",html:""})=>`${e}<span class="line">${a}</span>${n}`,Ye=({primitive:a,arr:e,index:n,isOptional:o,name:t})=>{let l=a[0],i=l.toLowerCase(),p;try{p=J[i](t)}catch(d){throw console.error("primitive that we got:",a),new Error(`primitive ${i} is not registred in the map, here is the error: ${d}`)}return e.length>1?li({html:p+`${si}</span>`,pre:n===0?"":ii,post:o?ze():""}):p+"</span>"},pi={class:"language-js vp-adaptive-theme"}
7,mi={class:"shiki shiki-themes github-light github-dark vp-code"},di={class:"line"},ui={style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},hi={style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},fi={style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},gi=["innerHTML"],yi=g({__name:"Classes",props:{from:{},isDefaultImport:{type:Boolean},longname:{},params:{}},setup(a){var t;const e=a,n=l=>(l.includes(".")&&(l=l.split(".")[1]),l.replace(/(?:^\w|[A-Z]|\b\w)/g,function(i,p){return p===0?i.toLowerCase():i.toUpperCase()}).replace(/\s+/g,"")),o=((t=e==null?void 0:e.params)==null?void 0:t.length)===0;return(l,i)=>(s(),m("div",pi,[i[11]||(i[11]=r("button",{title:"Copy Code",class:"copy"},null,-1)),i[12]||(i[12]=r("span",{class:"lang"},"js",-1)),i[13]||(i[13]=R()),r("pre",mi,[r("code",null,[k(Oe,{what:e.longname.split(".")[0],"is-default-import":e.isDefaultImport,from:e.from,scope:"static"},null,8,["what","is-default-import","from"]),i[7]||(i[7]=R(`
8`)),i[8]||(i[8]=r("span",{class:"line"},null,-1)),i[9]||(i[9]=R(`
9`)),r("span",di,[i[1]||(i[1]=r("span",{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"}},"const",-1)),r("span",ui," "+M(n(e.longname)),1),i[2]||(i[2]=r("span",{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"}}," =",-1)),i[3]||(i[3]=r("span",{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"}}," new",-1)),r("span",hi," "+M(e.longname),1),r("span",fi,[i[0]||(i[0]=R("(")),K(r("span",null,");",512),[[oe,o]])]),i[4]||(i[4]=R(`
10`)),(s(!0),m(O,null,x(e.params,(p,d)=>(s(),m("span",{class:"line",key:p.name},[r("span",{innerHTML:c(Ye)({primitive:[p.type.names[0]],arr:e.params,index:d,isOptional:p.optional,name:p.name})},null,8,gi)]))),128)),i[5]||(i[5]=R(`
11`)),i[6]||(i[6]=r("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},");",-1))]),i[10]||(i[10]=R(`
12`))])])]))}}),bi={class:"language-js vp-adaptive-theme"},vi={class:"shiki shiki-themes github-light github-dark vp-code"},ki=["innerHTML"],wi=["innerHTML"],Ai={class:"line"},Si={style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},Ci={style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},_i={style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},Mi=["innerHTML"],Ti={class:"line"},Pi=g({__name:"Functions",props:{from:{},isDefaultImport:{type:Boolean},longname:{},memberof:{},fnName:{},params:{},scope:{},returns:{}},setup(a){const e=a,n=e.params.length===0;function o(i){return i.startsWith(".")?i.slice(1):i}function t(i){return i.split("#")[0]}function l(i){var d,v;const p=(v=(d=i==null?void 0:i[0])==null?void 0:d.type)==null?void 0:v.names[0];return p?p.replace(".<","<"):!1}return(i,p)=>(s(),m("div",bi,[p[8]||(p[8]=r("button",{title:"Copy Code",class:"copy"},null,-1)),p[9]||(p[9]=r("span",{class:"lang"},"js",-1)),r("pre",vi,[r("code",null,[k(Oe,{what:e.memberof.split(".")[0],"is-default-import":e.isDefaultImport,from:e.from,scope:e.scope},null,8,["what","is-default-import","from","scope"]),p[3]||(p[3]=R(`
13`)),e.scope==="instance"?(s(),m("span",{key:0,class:"line",innerHTML:c(ze)(`// ${e.memberof} is an instance of ${t(e.longname)}`)},null,8,ki)):f("",!0),p[4]||(p[4]=R(`
14`)),e.returns!==void 0?(s(),m("span",{key:1,class:"line",innerHTML:c(ci)(l(e.returns))},null,8,wi)):f("",!0),p[5]||(p[5]=R(`
15`)),r("span",Ai,[r("span",Si,[r("span",{style:ce({display:e.returns===void 0?"none":""})},p[0]||(p[0]=[r("span",{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"}},"const ",-1),R("result = ")]),4),R(M(e.memberof)+".",1)]),r("span",Ci,M(o(e.fnName)),1),r("span",_i,[p[1]||(p[1]=R("(")),K(r("span",null,");",512),[[oe,n]])])]),p[6]||(p[6]=R(`
16`)),(s(!0),m(O,null,x(e.params,(d,v)=>(s(),m("span",{class:"line",key:d.name},[r("span",{innerHTML:c(Ye)({primitive:[d.type.names[0]],arr:e.params,index:v,isOptional:d.optional,name:d.name})},null,8,Mi)]))),128)),p[7]||(p[7]=R(`
17`)),K(r("span",Ti,p[2]||(p[2]=[r("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},");",-1)]),512),[[oe,!n]])])])]))}}),ji={class:"warning custom-block"},Oi=g({__name:"Locus",props:{locus:{}},setup(a){const e=a;return(n,o)=>(s(),m("div",ji,[r("p",null,M(e.locus)+" only",1)]))}}),Ei=C(Oi,[["__scopeId","data-v-4fb07365"]]),Xe="--vc-auto-duration",Ii=`height var(${Xe}) cubic-bezier(0.33, 1, 0.68, 1)`,ee={padding:0},Ri=300,Di={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:"0"};function Re(a){return a.value?parseFloat(getComputedStyle(a.value).height):0}
17function De(a){if(!a.value)return{};const{transition:e}=getComputedStyle(a.value);return e==="all 0s ease 0s"||e==="all"?{transition:Ii}:{transition:e}}function xe(a){if(!a.value)return!0;const{transition:e}=getComputedStyle(a.value);return typeof window.requestAnimationFrame>"u"||window.matchMedia("(prefers-reduced-motion: reduce)").matches||e.includes("none")||e.includes("height 0s")}function xi(a=0){if(a===0)return 0;const e=a/36,n=Math.round((4+15*e**.25+e/5)*10);return Number.isFinite(n)?n:0}const Li=g({inheritAttrs:!0,__name:"Collapse",props:{when:{type:Boolean},baseHeight:{default:0},as:{default:"div"}},emits:["collapse","expand","collapsed","expanded"],setup(a,{emit:e}){const n=a,o=e,t=Ee(n,"when"),l=Ee(n,"baseHeight"),i=T(()=>({overflow:"hidden",height:`${l.value}px`})),p=T(()=>({...ee,...l.value===0?{display:"none"}:i.value})),d=P(null),v=P(t.value?"expanded":"collapsed"),y=L=>v.value=L;function S(){return t.value?ee:l.value===0?Di:p.value}const b=ke(S()),_=L=>b.value=L,w=L=>_({...b.value,...L}),E=P(Ri),I=L=>E.value=L,N=T(()=>({[Xe]:`${E.value}ms`}));let $=NaN;function V(){_(ee),y("expanded"),o("expanded")}function Y(){_(p.value),y("collapsed"),o("collapsed")}B(()=>{if(!d.value)return;const L=xi(d.value.scrollHeight-l.value);L>0&&I(L),!t.value&&l.value===0&&_(p.value)}),q(t,L=>
17{if(d.value)if($=NaN,L){if(xe(d))return V();y("expanding"),o("expand"),_({...ee,...i.value,...N.value}),requestAnimationFrame(()=>{if(d.value.scrollHeight===0)return V();$=d.value.scrollHeight,w({...De(d),height:`${$}px`,willChange:"height"})})}else{if(xe(d)||(y("collapsing"),o("collapse"),w({...N.value,height:`${d.value.scrollHeight}px`}),d.value.scrollHeight===0))return Y();requestAnimationFrame(()=>{w({...i.value,...De(d),willChange:"height"})})}}),q(l,L=>{t.value||(L>0?w({display:void 0,height:`${L}px`}):w({display:"none"}))});function X(L){L.target&&L.target===d.value&&L.propertyName==="height"&&(t.value?Math.abs(d.value.scrollHeight-Re(d))<1?V():$<d.value.scrollHeight&&w({height:`${d.value.scrollHeight}px`}):Math.abs(l.value-Re(d))<1&&Y())}return(L,Er)=>(s(),A(F(n.as),{ref_key:"collapseRef",ref:d,style:ce(b.value),onTransitionend:X,"data-collapse":v.value},{default:h(()=>[u(L.$slots,"default",un(hn({state:v.value})))]),_:3},40,["style","data-collapse"]))}}),Ni=g({__name:"Caret",props:{isOpen:{type:Boolean}},setup(a){const e=a;return(n,o)=>(s(),m("div",{class:D([e.isOpen?"caret-btn-open ":"caret-btn-closed","caret-btn"]),role:"button","aria-label":"toggle section",tabindex:"0"},o[0]||(o[0]=[r("svg",{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24",class:""},[r("path",{d:"M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"})],-1)]),2))}}),$i=C(Ni,[["__scopeId","data-v-7e7825d4"]]),qi={key:0},Fi={key:0},Bi=["innerHTML"],Vi=["innerHTML"],Hi=["innerHTML"],Ui=g({__name:"ParamTable",props:{params:{},from:{},options:{}},setup(a){const e=v=>{const y=[];for(const S of v)y.push(S);return y},n=a,o=e(n.params),t=({params:v})=>{for(const y of v)if(y.name==="options")return!0},l=P(!0);function i(){l.value=!l.value}const p=v=>{const y=e(v);if(y.length===1)return y[0];const S=y.pop();return y.join(", ")+" or "+S},d=`https://github.com/meteor/meteor/blob/devel/packages/${n.from.filePath}#L${n.from.lineNumber}`;return(v,y)=>{var S;return c(o).length>0?(s(),m("div",qi,[r("header",null,[y[0]||(y[0]=r("h4",null,"Arguments:",-1)),r("a",{href:d}," Source code ")]),r("table",null,[y[1]||(y[1]=r("thead",null,[r("tr",null,[r("th",null,"Name"),r("th",null,"Type"),r("th",null,"Description"),r("th",null,"Required")])],-1)),r("tbody",null,[(s(!0),m(O,null,x(c(o),b=>{var _;return s(),m("tr",{key:b.name},[r("td",null,M(b.name),1),r("td",null,M(p(b.type.names)),1),b.name==="options"?(s(),m("td",Fi,[b.description?(s(),m("span",{key:0,innerHTML:b.description},null,8,Bi)):f("",!0),(((_=n.options)==null?void 0:_.length)||-1)>0?(s(),m("button",{key:1,type:"button",onClick:i},[R(M(l.value?"Close":"Open")+" options table ",1),k($i,{"is-open":l.value},null,8,["is-open"])])):f("",!0)])):(s(),m("td",{key:1,innerHTML:b.description??"----"},null,8,Vi)),r("td",null,M(b.optional?"No":"Yes"),1)])}),128))])]),K(k(c(Li),{when:l.value,class:"options-table"},{default:h(()=>[y[4]||(y[4]=r("h4",null,"Options:",-1)),r("table",null,[y[3]||(y[3]=r("thead",null,[r("tr",null,[r("th",null,"Name"),r("th",null,"Type"),r("th",null,"Description"),r("th",null,"Required")])],-1)),r("tbody",null,[(s(!0),m(O,null,x(n.options,b=>(s(),m("tr",{key:b.name},[r("td",null,M(b.name),1),r("td",null,M(b.type.names[0]),1),r("td",{innerHTML:b.description??""},null,8,Hi),y[2]||(y[2]=r("td",null,"No",-1))]))),128))])])]),_:1},8,["when"]),[[oe,t(n)&&n.options&&((S=n.options)==null?void 0:S.length)>0]])])):f("",!0)}}}),Ji=C(Ui,[["__scopeId","data-v-a68c829a"]]),Le={Accounts:{filepath:"accounts-base/server_main.js",kind:"namespace",lineno:3,longname:"Accounts",module:"accounts-base",name:"Accounts",scope:"global",summary:"<p>The namespace for all server-side accounts-related methods.</p>"},"Accounts.addEmailAsync":{filepath:"accounts-password/password_server.js",importfrompackage:"accounts-base",kind:"function",lineno:1047,locus:"Server",longname:"Accounts.addEmailAsync",memberof:"Accounts",module:"accounts-base",name:"addEmailAsync",options:[],params:[{description:"<p>The ID of the user to update.</p>",name:"userId",type:{names:["String"]}},{description:"<p>A new email address for the user.</p>",name:"newEmail",type:{names:["String"]}},{description:`<p>Optional - whether the new email address should
18be marked as verified. Defaults to false.</p>`,name:"verified",optional:!0,type:{names:["Boolean"]}}],scope:"static",summary:`<p>Asynchronously add an email address for a user. Use this instead of directly
19updating the database. The operation will fail if there is a different user
20with an email only differing in case. If the specified user has an existing
21email only differing in case however, we replace it.</p>`},"Accounts.buildEmailUrl":{filepath:"accounts-base/accounts_server.js",kind:"member",lineno:115,locus:"Server",longname:"Accounts.buildEmailUrl",memberof:"Accounts",module:"accounts-base",name:"buildEmailUrl",params:[{description:"<p>The path to append to the root URL (e.g., <code>#/reset-password/TOKEN</code>).</p>",name:"path",type:{names:["String"]}},{defaultvalue:"{}",description:"<p>Additional query parameters to include in the URL.</p>",name:"extraParams",optional:!0,type:{names:["Object"]}}],returns:[{description:"<p>The complete URL.</p>",type:{names:["String"]}}],scope:"static",summary:`<p>Builds a URL for account-related emails by combining the app's
22root URL with a path and optional extra parameters.</p>`},"Accounts.changePassword":{filepath:"accounts-password/password_client.js",importfrompackage:"accounts-base",kind:"function",lineno:176,locus:"Client",longname:"Accounts.changePassword",memberof:"Accounts",module:"accounts-base",name:"changePassword",options:[],params:[{description:"<p>The user's current password. This is <strong>not</strong> sent in plain text over the wire.</p>",name:"oldPassword",type:{names:["String"]}},{description:"<p>A new password for the user. This is <strong>not</strong> sent in plain text over the wire.</p>",name:"newPassword",type:{names:["String"]}},{description:"<p>Optional callback. Called with no arguments on success, or with a single <code>Error</code> argument on failure.</p>",name:"callback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Change the current user's password. Must be logged in.</p>"},"Accounts.createUser":{filepath:"accounts-password/password_client.js",importfrompackage:"accounts-base",kind:"function",lineno:118,locus:"Anywhere",longname:"Accounts.createUser",memberof:"Accounts",module:"accounts-base",name:"createUser",options:[{description:"<p>A unique name for this user.</p>",name:"username",type:{names:["String"]}},{description:"<p>The user's email address.</p>",name:"email",type:{names:["String"]}},{description:"<p>The user's password. This is <strong>not</strong> sent in plain text over the wire.</p>",name:"password",type:{names:["String"]}},{description:"<p>The user's profile, typically including the <code>name</code> field.</p>",name:"profile",type:{names:["Object"]}}],params:[{name:"options",type:{names:["Object"]}},{description:"<p>Client only, optional callback. Called with no arguments on success, or with a single <code>Error</code> argument on failure.</p>",name:"callback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Create a new user.</p>"},"Accounts.createUserAsync":{filepath:"accounts-password/password_client.js",importfrompackage:"accounts-base",kind:"function",lineno:148,locus:"Anywhere",longname:"Accounts.createUserAsync",memberof:"Accounts",module:"accounts-base",name:"createUserAsync",options:[{description:"<p>A unique name for this user.</p>",name:"username",type:{names:["String"]}},{description:"<p>The user's email address.</p>",name:"email",type:{names:["String"]}},{description:"<p>The user's password. This is <strong>not</strong> sent in plain text over the wire.</p>",name:"password",type:{names:["String"]}},{description:"<p>The user's profile, typically including the <code>name</code> field.</p>",name:"profile",type:{names:["Object"]}}],params:[{name:"options",type:{names:["Object"]}}],scope:"static",summary:"<p>Create a new user and returns a promise of its result.</p>"},"Accounts.createUserVerifyingEmail":{filepath:"accounts-password/password_server.js",importfrompackage:"accounts-base",kind:"function",lineno:1249,locus:"Server",longname:"Accounts.createUserVerifyingEmail",memberof:"Accounts",module:"accounts-base",name:"createUserVerifyingEmail",options:[{description:"<p>A unique name for this user.</p>",name:"username",type:{names:["String"]}},{description:"<p>The user's email address.</p>",name:"email",type:{names:["String"]}},{description:"<p>The user's password. This is <strong>not</strong> sent in plain text over the wire.</p>",name:"password",type:{names:["String"]}},{description:"<p>The user's profile, typically including the <code>name</code> field.</p>",name:"profile",type:{names:["Object"]}}],params:[{description:`<p>The options object to be passed down when creating
23the user</p>`,name:"options",type:{names:["Object"]}}],scope:"static",summary:`<p>Creates an user asynchronously and sends an email if <code>options.email</code> is informed.
24Then if the <code>sendVerificationEmail</code> option from the <code>Accounts</code> package is
25enabled, you'll send a verification email if <code>options.password</code> is informed,
26otherwise you'll send an enrollment email.</p>`},"Accounts.disableUser2fa":{filepath:"accounts-2fa/2fa-client.js",kind:"function",lineno:74,locus:"Client",longname:"Accounts.disableUser2fa",memberof:"Accounts",module:"accounts-2fa",name:"disableUser2fa",options:[],params:[{description:`<p>Optional callback.
27Called with no arguments on success, or with a single <code>Error</code> argument
28on failure.</p>`,name:"callback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Disable user 2FA</p>"},"Accounts.emailTemplates":{filepath:"accounts-passwordless/email_templates.js",importfrompackage:"accounts-base",kind:"member",lineno:6,locus:"Server",longname:"Accounts.emailTemplates",memberof:"Accounts",module:"accounts-base",name:"emailTemplates",scope:"static",summary:"<p>Options to customize emails sent from the Accounts system.</p>"},"Accounts.enableUser2fa":{filepath:"accounts-2fa/2fa-client.js",kind:"function",lineno:57,locus:"Client",longname:"Accounts.enableUser2fa",memberof:"Accounts",module:"accounts-2fa",name:"enableUser2fa",options:[],params:[{description:"<p>Code received from the authenticator app.</p>",name:"code",type:{names:["String"]}},{description:`<p>Optional callback.
29Called with no arguments on success, or with a single <code>Error</code> argument
30on failure.</p>`,name:"callback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Enable the user 2FA</p>"},"Accounts.findUserByEmail":{filepath:"accounts-base/accounts_server.js",importfrompackage:"accounts-base",kind:"member",lineno:384,locus:"Server",longname:"Accounts.findUserByEmail",memberof:"Accounts",module:"accounts-base",name:"findUserByEmail",params:[{description:"<p>The email address to look for</p>",name:"email",type:{names:["String"]}},{name:"options",optional:!0,type:{names:["Object"]}},{description:"<p>Limit the fields to return from the user document</p>",name:"options.fields",type:{names:["Object"]}}],returns:[{description:"<p>A user if found, else null</p>",type:{names:["Promise.<Object>"]}}],scope:"static",summary:"<p>Find a user by one of their email addresses.</p>"}
30,"Accounts.findUserByUsername":{filepath:"accounts-base/accounts_server.js",importfrompackage:"accounts-base",kind:"member",lineno:397,locus:"Server",longname:"Accounts.findUserByUsername",memberof:"Accounts",module:"accounts-base",name:"findUserByUsername",params:[{description:"<p>The username to look for</p>",name:"username",type:{names:["String"]}},{name:"options",optional:!0,type:{names:["Object"]}},{description:"<p>Limit the fields to return from the user document</p>",name:"options.fields",type:{names:["Object"]}}],returns:[{description:"<p>A user if found, else null</p>",type:{names:["Promise.<Object>"]}}],scope:"static",summary:"<p>Find a user by their username.</p>"},"Accounts.forgotPassword":{filepath:"accounts-password/password_client.js",importfrompackage:"accounts-base",kind:"function",lineno:220,locus:"Client",longname:"Accounts.forgotPassword",memberof:"Accounts",module:"accounts-base",name:"forgotPassword",options:[{description:"<p>The email address to send a password reset link.</p>",name:"email",type:{names:["String"]}}],params:[{name:"options",type:{names:["Object"]}},{description:"<p>Optional callback. Called with no arguments on success, or with a single <code>Error</code> argument on failure.</p>",name:"callback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Request a forgot password email.</p>"},"Accounts.generate2faActivationQrCode":{filepath:"accounts-2fa/2fa-client.js",kind:"function",lineno:31,locus:"Client",longname:"Accounts.generate2faActivationQrCode",memberof:"Accounts",module:"accounts-2fa",name:"generate2faActivationQrCode",options:[],params:[{description:"<p>It's the name of your app that will show up when the user scans the QR code.</p>",name:"appName",type:{names:["String"]}},{description:`<p>Called with a single <code>Error</code> argument on failure.
31Or, on success, called with an object containing the QR code in SVG format (svg),
32the QR secret (secret), and the URI so the user can manually activate the 2FA without reading the QR code (uri).</p>`,name:"callback",type:{names:["function"]}}],scope:"static",summary:"<p>Generates a svg QR code and save secret on user</p>"},"Accounts.generateResetToken":{filepath:"accounts-password/password_server.js",importfrompackage:"accounts-base",kind:"function",lineno:532,locus:"Server",longname:"Accounts.generateResetToken",memberof:"Accounts",module:"accounts-base",name:"generateResetToken",options:[],params:[{description:"<p>The id of the user to generate the reset token for.</p>",name:"userId",type:{names:["String"]}},{description:"<p>Which address of the user to generate the reset token for. This address must be in the user's <code>emails</code> list. If <code>null</code>, defaults to the first email in the list.</p>",name:"email",type:{names:["String"]}},{description:"<p><code>resetPassword</code> or <code>enrollAccount</code>.</p>",name:"reason",type:{names:["String"]}},{description:"<p>Optional additional data to be added into the token record.</p>",name:"extraTokenData",optional:!0,type:{names:["Object"]}}],returns:[{description:"<p>Promise of an object with {email, user, token} values.</p>",type:{names:["Promise.<Object>"]}}],scope:"static",summary:"<p>Asynchronously generates a reset token and saves it into the database.</p>"},"Accounts.generateVerificationToken":{filepath:"accounts-password/password_server.js",importfrompackage:"accounts-base",kind:"function",lineno:612,locus:"Server",longname:"Accounts.generateVerificationToken",memberof:"Accounts",module:"accounts-base",name:"generateVerificationToken",options:[],params:[{description:"<p>The id of the user to generate the  e-mail verification token for.</p>",name:"userId",type:{names:["String"]}},{description:"<p>Which address of the user to generate the e-mail verification token for. This address must be in the user's <code>emails</code> list. If <code>null</code>, defaults to the first unverified email in the list.</p>",name:"email",type:{names:["String"]}},{description:"<p>Optional additional data to be added into the token record.</p>",name:"extraTokenData",optional:!0,type:{names:["Object"]}}],returns:[{description:"<p>Promise of an object with {email, user, token} values.</p>",type:{names:["Promise.<Object>"]}}],scope:"static",summary:"<p>Generates asynchronously an e-mail verification token and saves it into the database.</p>"},"Accounts.has2faEnabled":{filepath:"accounts-2fa/2fa-client.js",kind:"function",lineno:18,locus:"Client",longname:"Accounts.has2faEnabled",memberof:"Accounts",module:"accounts-2fa",name:"has2faEnabled",options:[],params:[{description:`<p>Called with a boolean on success that indicates whether the user has
33or not 2FA enabled, or with a single <code>Error</code> argument on failure.</p>`,name:"callback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Verify if the logged user has 2FA enabled</p>"},"Accounts.onEmailVerificationLink":{filepath:"accounts-base/accounts_client.js",forceMemberof:!0,kind:"member",lineno:867,locus:"Client",longname:"Accounts.onEmailVerificationLink",memberof:"Accounts",module:"accounts-base",name:".onEmailVerificationLink",params:[{description:`<p>The function to call. It is given two arguments:</p>
34<ol>
35<li><code>token</code>: An email verification token that can be passed to
36<a href="#Accounts-verifyEmail"><code>Accounts.verifyEmail</code></a>.</li>
37<li><code>done</code>: A function to call when the email verification UI flow is complete.
38The normal login process is suspended until this function is called, so
39that the user can be notified that they are verifying their email before
40being logged in.</li>
41</ol>`,name:"callback",type:{names:["function"]}}],scope:"static",summary:`<p>Register a function to call when an email verification link is
42clicked in an email sent by
43<a href="#Accounts-sendVerificationEmail"><code>Accounts.sendVerificationEmail</code></a>.
44This function should be called in top-level code, not inside
45<code>Meteor.startup()</code>.</p>`},"Accounts.onEnrollmentLink":{filepath:"accounts-base/accounts_client.js",forceMemberof:!0,kind:"member",lineno:889,locus:"Client",longname:"Accounts.onEnrollmentLink",memberof:"Accounts",module:"accounts-base",name:".onEnrollmentLink",params:[{description:`<p>The function to call. It is given two arguments:</p>
46<ol>
47<li><code>token</code>: A password reset token that can be passed to
48<a href="#Accounts-resetPassword"><code>Accounts.resetPassword</code></a> to give the newly
49enrolled account a password.</li>
50<li><code>done</code>: A function to call when the enrollment UI flow is complete.
51The normal login process is suspended until this function is called, so that
52user A can be enrolled even if user B was logged in.</li>
53</ol>`,name:"callback",type:{names:["function"]}}],scope:"static",summary:`<p>Register a function to call when an account enrollment link is
54clicked in an email sent by
55<a href="#Accounts-sendEnrollmentEmail"><code>Accounts.sendEnrollmentEmail</code></a>.
56This function should be called in top-level code, not inside
57<code>Meteor.startup()</code>.</p>`},"Accounts.onResetPasswordLink":{filepath:"accounts-base/accounts_client.js",forceMemberof:!0,kind:"member",lineno:846,locus:"Client",longname:"Accounts.onResetPasswordLink",memberof:"Accounts",module:"accounts-base",name:".onResetPasswordLink",params:[{description:`<p>The function to call. It is given two arguments:</p>
58<ol>
59<li><code>token</code>: A password reset token that can be passed to
60<a href="#Accounts-resetPassword"><code>Accounts.resetPassword</code></a>.</li>
61<li><code>done</code>: A function to call when the password reset UI flow is complete. The normal
62login process is suspended until this function is called, so that the
63password for user A can be reset even if user B was logged in.</li>
64</ol>`,name:"callback",type:{names:["function"]}}],scope:"static",summary:`<p>Register a function to call when a reset password link is clicked
65in an email sent by
66<a href="#Accounts-sendResetPasswordEmail"><code>Accounts.sendResetPasswordEmail</code></a>.
67This function should be called in top-level code, not inside
68<code>Meteor.startup()</code>.</p>`}
68,"Accounts.removeEmail":{filepath:"accounts-password/password_server.js",importfrompackage:"accounts-base",kind:"function",lineno:1157,locus:"Server",longname:"Accounts.removeEmail",memberof:"Accounts",module:"accounts-base",name:"removeEmail",options:[],params:[{description:"<p>The ID of the user to update.</p>",name:"userId",type:{names:["String"]}},{description:"<p>The email address to remove.</p>",name:"email",type:{names:["String"]}}],scope:"static",summary:`<p>Remove an email address asynchronously for a user. Use this instead of updating
69the database directly.</p>`},"Accounts.replaceEmailAsync":{filepath:"accounts-password/password_server.js",importfrompackage:"accounts-base",kind:"function",lineno:1003,locus:"Server",longname:"Accounts.replaceEmailAsync",memberof:"Accounts",module:"accounts-base",name:"replaceEmailAsync",options:[],params:[{description:"<p>The ID of the user to update.</p>",name:"userId",type:{names:["String"]}},{description:"<p>The email address to replace.</p>",name:"oldEmail",type:{names:["String"]}},{description:"<p>The new email address to use.</p>",name:"newEmail",type:{names:["String"]}},{description:`<p>Optional - whether the new email address should
70be marked as verified. Defaults to false.</p>`,name:"verified",optional:!0,type:{names:["Boolean"]}}],scope:"static",summary:`<p>Asynchronously replace an email address for a user. Use this instead of directly
71updating the database. The operation will fail if there is a different user
72with an email only differing in case. If the specified user has an existing
73email only differing in case however, we replace it.</p>`},"Accounts.requestLoginTokenForUser":{filepath:"accounts-passwordless/passwordless_client.js",kind:"function",lineno:98,locus:"Client",longname:"Accounts.requestLoginTokenForUser",memberof:"Accounts",module:"accounts-passwordless",name:"requestLoginTokenForUser",options:[{description:"<p>The email address to get a token for or username or a mongo selector.</p>",name:"selector",type:{names:["String"]}},{description:"<p>When creating a user use this data if selector produces no result.</p>",name:"userData",type:{names:["String"]}},{description:"<p>For example userCreationDisabled.</p>",name:"options",type:{names:["Object"]}}],params:[{name:"options",type:{names:["Object"]}},{description:"<p>Optional callback. Called with no arguments on success, or with a single <code>Error</code> argument on failure.</p>",name:"callback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Request a login token.</p>"},"Accounts.resetPassword":{filepath:"accounts-password/password_client.js",importfrompackage:"accounts-base",kind:"function",lineno:247,locus:"Client",longname:"Accounts.resetPassword",memberof:"Accounts",module:"accounts-base",name:"resetPassword",options:[],params:[{description:"<p>The token retrieved from the reset password URL.</p>",name:"token",type:{names:["String"]}},{description:"<p>A new password for the user. This is <strong>not</strong> sent in plain text over the wire.</p>",name:"newPassword",type:{names:["String"]}},{description:"<p>Optional callback. Called with no arguments on success, or with a single <code>Error</code> argument on failure.</p>",name:"callback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Reset the password for a user using a token received in email. Logs the user in afterwards if the user doesn't have 2FA enabled.</p>"},"Accounts.sendEnrollmentEmail":{filepath:"accounts-password/password_server.js",importfrompackage:"accounts-base",kind:"function",lineno:710,locus:"Server",longname:"Accounts.sendEnrollmentEmail",memberof:"Accounts",module:"accounts-base",name:"sendEnrollmentEmail",options:[],params:[{description:"<p>The id of the user to send email to.</p>",name:"userId",type:{names:["String"]}},{description:"<p>Optional. Which address of the user's to send the email to. This address must be in the user's <code>emails</code> list. Defaults to the first email in the list.</p>",name:"email",optional:!0,type:{names:["String"]}},{description:"<p>Optional additional data to be added into the token record.</p>",name:"extraTokenData",optional:!0,type:{names:["Object"]}},{description:"<p>Optional additional params to be added to the enrollment url.</p>",name:"extraParams",optional:!0,type:{names:["Object"]}}],returns:[{description:"<p>Promise of an object {email, user, token, url, options} values.</p>",type:{names:["Promise.<Object>"]}}],scope:"static",summary:"<p>
73Send an email asynchronously with a link the user can use to set their initial password.</p>"},"Accounts.sendLoginTokenEmail":{filepath:"accounts-passwordless/passwordless_server.js",kind:"function",lineno:221,locus:"Server",longname:"Accounts.sendLoginTokenEmail",memberof:"Accounts",module:"accounts-passwordless",name:"sendLoginTokenEmail",options:[{description:"<p>The id of the user to send email to.</p>",name:"userId",type:{names:["String"]}},{description:"<p>The token to be provided</p>",name:"sequence",type:{names:["String"]}},{description:"<p>Which address of the user's to send the email to.</p>",name:"email",type:{names:["String"]}},{description:"<p>Optional. Extra properties</p>",name:"extra",type:{names:["Object"]}}],params:[{name:"options",type:{names:["Object"]}}],returns:[{description:"<p>Object with {email, user, token, url, options} values.</p>",type:{names:["Object"]}}],scope:"static",summary:"<p>Send an email with a link the user can use to login with token.</p>"},"Accounts.sendResetPasswordEmail":{filepath:"accounts-password/password_server.js",importfrompackage:"accounts-base",kind:"function",lineno:678,locus:"Server",longname:"Accounts.sendResetPasswordEmail",memberof:"Accounts",module:"accounts-base",name:"sendResetPasswordEmail",options:[],params:[{description:"<p>The id of the user to send email to.</p>",name:"userId",type:{names:["String"]}},{description:"<p>Optional. Which address of the user's to send the email to. This address must be in the user's <code>emails</code> list. Defaults to the first email in the list.</p>",name:"email",optional:!0,type:{names:["String"]}},{description:"<p>Optional additional data to be added into the token record.</p>",name:"extraTokenData",optional:!0,type:{names:["Object"]}},{description:"<p>Optional additional params to be added to the reset url.</p>",name:"extraParams",optional:!0,type:{names:["Object"]}}],returns:[{description:"<p>Promise of an object with {email, user, token, url, options} values.</p>",type:{names:["Promise.<Object>"]}}],scope:"static",summary:"<p>Send an email asynchronously with a link the user can use to reset their password.</p>"},"Accounts.sendVerificationEmail":{filepath:"accounts-password/password_server.js",importfrompackage:"accounts-base",kind:"function",lineno:897,locus:"Server",longname:"Accounts.sendVerificationEmail",memberof:"Accounts",module:"accounts-base",name:"sendVerificationEmail",options:[],params:[{description:"<p>The id of the user to send email to.</p>",name:"userId",type:{names:["String"]}},{description:"<p>Optional. Which address of the user's to send the email to. This address must be in the user's <code>emails</code> list. Defaults to the first unverified email in the list.</p>",name:"email",optional:!0,type:{names:["String"]}},{description:"<p>Optional additional data to be added into the token record.</p>",name:"extraTokenData",optional:!0,type:{names:["Object"]}},{description:"<p>Optional additional params to be added to the verification url.</p>",name:"extraParams",optional:!0,type:{names:["Object"]}}],returns:[{description:"<p>Promise of an object with {email, user, token, url, options} values.</p>",type:{names:["Promise.<Object>"]}}],scope:"static",summary:"<p>Send an email asynchronously with a link the user can use verify their email address.</p>"},"Accounts.setPasswordAsync":{filepath:"accounts-password/password_server.js",importfrompackage:"accounts-base",kind:"function",lineno:472,locus:"Server",longname:"Accounts.setPasswordAsync",memberof:"Accounts",module:"accounts-base",name:"setPasswordAsync",options:[{description:"<p>Logout all current connections with this userId (default: true)</p>",name:"logout",type:{names:["Object"]}}],params:[{description:"<p>The id of the user to update.</p>",name:"userId",type:{names:["String"]}},{description:"<p>A new password for the user.</p>",name:"newPlaintextPassword",type:{names:["String"]}},{name:"options",optional:!0,type:{names:["Object"]}}],scope:"static",summary:"<p>Forcibly change the password for a user.</p>"},"Accounts.setUsername":{filepath:"accounts-password/password_server.js",importfrompackage:"accounts-base",kind:"function",lineno:372,locus:"Server",longname:"Accounts.setUsername",memberof:"Accounts",module:"accounts-base",name:"setUsername",options:[],params:[{description:"<p>The ID of the user to update.</p>",name:"userId",type:{names:["String"]}},{description:"<p>A new username for the user.</p>",name:"newUsername",type:{names:["String"]}}],scope:"static",summary:`<p>Change a user's username asynchronously. Use this instead of updating the
74database directly. The operation will fail if there is an existing user
75with a username only differing in case.</p>`},"Accounts.ui":{filepath:"accounts-ui-unstyled/accounts_ui.js",importfrompackage:"accounts-base",kind:"namespace",lineno:7,longname:"Accounts.ui",memberof:"Accounts",module:"accounts-base",name:"ui",scope:"static",summary:"<p>Accounts UI</p>"},"Accounts.ui.config":{filepath:"accounts-ui-unstyled/accounts_ui.js",importfrompackage:"accounts-base",kind:"function",lineno:51,locus:"Client",longname:"Accounts.ui.config",memberof:"Accounts.ui",module:"accounts-base",name:"config",options:[{description:'<p>Which <a href="#requestpermissions">permissions</a> to request from the user for each external service.</p>',name:"requestPermissions",type:{names:["Object"]}},{description:'<p>To ask the user for permission to act on their behalf when offline, map the relevant external service to <code>true</code>. Currently only supported with Google. See <a href="#meteor_loginwithexternalservice">Meteor.loginWithExternalService</a> for more details.</p>',name:"requestOfflineToken",type:{names:["Object"]}},{description:"<p>If true, forces the user to approve the app's permissions, even if previously approved. Currently only supported with Google.</p>",name:"forceApprovalPrompt",type:{names:["Object"]}},{description:"<p>Which fields to display in the user creation form. One of '<code>USERNAME_AND_EMAIL</code>', '<code>USERNAME_AND_OPTIONAL_EMAIL</code>', '<code>USERNAME_ONLY</code>', or '<code>EMAIL_ONLY</code>' (default).</p>",name:"passwordSignupFields",type:{names:["String"]}},{description:"<p>Which fields to display in the user creation form. One of '<code>USERNAME_AND_EMAIL</code>', '<code>EMAIL_ONLY</code>' (default).</p>",name:"passwordlessSignupFields",type:{names:["String"]}}],params:[{name:"options",type:{names:["Object"]}}],scope:"static",summary:'<p>Configure the behavior of <a href="#accountsui"><code>{{&gt; loginButtons}}</code></a>.</p>'},"Accounts.urls":{filepath:"accounts-base/accounts_server.js",kind:"member",lineno:86,locus:"Server",longname:"Accounts.urls",memberof:"Accounts",module:"accounts-base",name:"urls",properties:[{description:"<p><code>(token, extraParams) =&gt; string</code> - Generates password reset URL.</p>",name:"resetPassword",type:{names:["function"]}},{description:"<p><code>(token, extraParams) =&gt; string</code> - Generates email verification URL.</p>",name:"verifyEmail",type:{names:["function"]}},{description:"<p><code>(token, extraParams) =&gt; string</code> - Generates account enrollment URL.</p>",name:"enrollAccount",type:{names:["function"]}},{description:"<p><code>(selector, token, extraParams) =&gt; string</code> - Generates login token URL.</p>",name:"loginToken",type:{names:["function"]}}],scope:"static",summary:`<p>Object containing functions that generate URLs for account-related emails.
76Override these to customize URLs in emails sent by
77<a href="#Accounts-sendResetPasswordEmail"><code>Accounts.sendResetPasswordEmail</code></a>,
78<a href="#Accounts-sendEnrollmentEmail"><code>Accounts.sendEnrollmentEmail</code></a>, and
79<a href="#Accounts-sendVerificationEmail"><code>Accounts.sendVerificationEmail</code></a>.</p>
80<p>By default, URLs use hash fragments (e.g., <code>#/reset-password/:token</code>) for security:
81hash fragments are not sent to the server in HTTP requests, preventing tokens from
82appearing in server logs or referrer headers.</p>`,type:{names:["Object"]}},"Accounts.verifyEmail":{filepath:"accounts-password/password_client.js",importfrompackage:"accounts-base",kind:"function",lineno:279,locus:"Client",longname:"Accounts.verifyEmail",memberof:"Accounts",module:"accounts-base",name:"verifyEmail",options:[],params:[{description:"<p>The token retrieved from the verification URL.</p>",name:"token",type:{names:["String"]}},{description:"<p>Optional callback. Called with no arguments on success, or with a single <code>Error</code> argument on failure.</p>",name:"callback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Marks the user's email address as verified. Logs the user in afterwards if the user doesn't have 2FA enabled.</p>"},AccountsClient:{augments:["AccountsCommon"],filepath:"accounts-base/accounts_client.js",instancename:"accountsClient",kind:"class",lineno:3,locus:"Client",longname:"AccountsClient",module:"accounts-base",name:"AccountsClient",options:[{description:"<p>Optional DDP connection to reuse.</p>",name:"connection",type:{names:["Object"]}},{description:"<p>Optional URL for creating a new DDP connection.</p>",name:"ddpUrl",type:{names:["String"]}},{description:"<p>Optional Define what kind of storage you want for credentials on the client. Default is 'local' to use <code>localStorage</code>
82. Set to 'session' to use session storage. Use 'none' to avoid persisting tokens.</p>",name:"clientStorage",type:{names:["'session'","'local'","'none'"]}},{description:"<p>Optional Enable HttpOnly cookie flow for auth resume. When enabled, the client will try to refresh a login token from a server HttpOnly cookie during startup, and will sync the cookie after logins/logouts.</p>",name:"useHttpOnlyCookies",type:{names:["Boolean"]}}],params:[{description:"<p>an object with fields:</p>",name:"options",type:{names:["Object"]}}],scope:"global",summary:"<p>Constructor for the <code>Accounts</code> object on the client.</p>"},"AccountsClient#_registerLinkCallback":{filepath:"accounts-base/accounts_client.js",kind:"function",lineno:836,locus:"Client",longname:"AccountsClient#_registerLinkCallback",memberof:"AccountsClient",module:"accounts-base",name:"_registerLinkCallback",options:[],params:[{description:"<p>The callback type (e.g. 'reset-password', 'verify-email', 'enroll-account').</p>",name:"type",type:{names:["String"]}},{description:"<p>The function to call when the link is clicked.</p>",name:"callback",type:{names:["function"]}}],scope:"instance",summary:"<p>Shared implementation for registering account link callbacks.</p>"},"AccountsClient#applyLoginFunction":{filepath:"accounts-base/accounts_client.js",kind:"function",lineno:145,locus:"Client",longname:"AccountsClient#applyLoginFunction",memberof:"AccountsClient",module:"accounts-base",name:"applyLoginFunction",options:[],params:[{description:"<p>The name of the login function you wanted to call.</p>",name:"funcName",type:{names:["String"]}},{description:"<p>The <code>arguments</code> for the login function.</p>",name:"funcArgs",type:{names:["Array"]}}],scope:"instance",summary:"<p>Same as ``callLoginFunction<code>but accept an</code>arguments` which contains all arguments for the login\nfunction.</p>"},"AccountsClient#callLoginFunction":{filepath:"accounts-base/accounts_client.js",kind:"function",lineno:131,locus:"Client",longname:"AccountsClient#callLoginFunction",memberof:"AccountsClient",module:"accounts-base",name:"callLoginFunction",options:[],params:[{description:"<p>The name of the login function you wanted to call.</p>",name:"funcName",type:{names:["String"]}}],scope:"instance",summary:`<p>Call a login function defined using <code>Accounts.registerClientLoginFunction</code>. Excluding the first argument, all remaining
83arguments are passed to the login function accordingly. Use <code>applyLoginFunction</code> if you want to pass in an arguments array that contains
84all arguments for the login function.</p>`},"AccountsClient#config":{examples:[`// For UI-related options like forbidClientAccountCreation, call Accounts.config on both client and server
85// Create a shared configuration file (e.g., lib/accounts-config.js):
86import { Accounts } from 'meteor/accounts-base';
87
88Accounts.config({
89  forbidClientAccountCreation: true,
90  sendVerificationEmail: true,
91});
92
93// Then import this file in both client/main.js and server/main.js:
94// import '../lib/accounts-config.js';`],filepath:"accounts-base/accounts_common.js",inherited:!0,inherits:"AccountsCommon#config",kind:"function",lineno:244,locus:"Anywhere",longname:"AccountsClient#config",memberof:"AccountsClient",module:"accounts-base",name:"config",options:[{description:"<p>New users with an email address will receive an address verification email.</p>",name:"sendVerificationEmail",type:{names:["Boolean"]}},{description:'<p>Calls to <a href="#accounts_createuser"><code>createUser</code></a> from the client will be rejected. In addition, if you are using <a href="#accountsui">accounts-ui</a>, the &quot;Create account&quot; link will not be available. <strong>Important</strong>: This option must be set on both the client and server to take full effect. If only set on the server, account creation will be blocked but the UI will still show the &quot;Create account&quot; link.</p>',name:"forbidClientAccountCreation",type:{names:["Boolean"]}},{description:"<p>If set to a string, only allows new users if the domain part of their email address matches the string. If set to a function, only allows new users if the function returns true.  The function is passed the full email address of the proposed new user.  Works with password-based sign-in and external services that expose email addresses (Google, Facebook, GitHub). All existing users still can log in after enabling this option. Example: <code>Accounts.config({ restrictCreationByEmailDomain: 'school.edu' })</code>.</p>",name:"restrictCreationByEmailDomain",type:{names:["String","function"]}},{description:"<p>The number of milliseconds from when a user logs in until their token expires and they are logged out, for a more granular control. If <code>loginExpirationInDays</code> is set, it takes precedent.</p>",name:"loginExpiration",type:{names:["Number"]}},{description:"<p>The number of days from when a user logs in until their token expires and they are logged out. Defaults to 90. Set to <code>null</code> to disable login expiration.</p>",name:"loginExpirationInDays",type:{names:["Number"]}},{description:"<p>When using the <code>oauth-encryption</code> package, the 16 byte key using to encrypt sensitive account credentials in the database, encoded in base64.  This option may only be specified on the server.  See packages/oauth-encryption/README.md for details.</p>",name:"oauthSecretKey",type:{names:["String"]}},{description:"<p>The number of days from when a link to reset password is sent until token expires and user can't reset password with the link anymore. Defaults to 3.</p>",name:"passwordResetTokenExpirationInDays",type:{names:["Number"]}},{description:"<p>The number of milliseconds from when a link to reset password is sent until token expires and user can't reset password with the link anymore. If <code>passwordResetTokenExpirationInDays</code> is set, it takes precedent.</p>",name:"passwordResetTokenExpiration",type:{names:["Number"]}},{description:"<p>The number of days from when a link to set initial password is sent until token expires and user can't set password with the link anymore. Defaults to 30.</p>",name:"passwordEnrollTokenExpirationInDays",type:{names:["Number"]}},{description:"<p>The number of milliseconds from when a link to set initial password is sent until token expires and user can't set password with the link anymore. If <code>passwordEnrollTokenExpirationInDays</code> is set, it takes precedent.</p>",name:"passwordEnrollTokenExpiration",type:{names:["Number"]}},{description:"<p>Return ambiguous error messages from login failures to prevent user enumeration. Defaults to <code>true</code>.</p>",name:"ambiguousErrorMessages",type:{names:["Boolean"]}},{description:"<p>
94Allows override of number of bcrypt rounds (aka work factor) used to store passwords. The default is 10.</p>",name:"bcryptRounds",type:{names:["Number"]}},{description:"<p>Enable argon2 algorithm usage in replacement for bcrypt. The default is <code>false</code>.</p>",name:"argon2Enabled",type:{names:["Boolean"]}},{description:"<p>Allows override of the argon2 algorithm type. The default is <code>argon2id</code>.</p>",name:"argon2Type",type:{names:["'argon2id'","'argon2i'","'argon2d'"]}},{description:"<p>Allows override of number of argon2 iterations (aka time cost) used to store passwords. The default is 2.</p>",name:"argon2TimeCost",type:{names:["Number"]}},{description:"<p>Allows override of the amount of memory (in KiB) used by the argon2 algorithm. The default is 19456 (19MB).</p>",name:"argon2MemoryCost",type:{names:["Number"]}},{description:"<p>Allows override of the number of threads used by the argon2 algorithm. The default is 1.</p>",name:"argon2Parallelism",type:{names:["Number"]}},{description:"<p>To exclude by default large custom fields from <code>Meteor.user()</code> and <code>Meteor.findUserBy...()</code> functions when called without a field selector, and all <code>onLogin</code>, <code>onLoginFailure</code> and <code>onLogout</code> callbacks.  Example: <code>Accounts.config({ defaultFieldSelector: { myBigArray: 0 }})</code>. Beware when using this. If, for instance, you do not include <code>email</code> when excluding the fields, you can have problems with functions like <code>forgotPassword</code> that will break because they won't have the required data available. It's recommend that you always keep the fields <code>_id</code>, <code>username</code>, and <code>email</code>.</p>",name:"defaultFieldSelector",type:{names:["MongoFieldSpecifier"]}},{description:"<p>A collection name or a Mongo.Collection object to hold the users.</p>",name:"collection",type:{names:["String","Mongo.Collection"]}},{description:"<p>When using the package <code>accounts-2fa</code>, use this to set the amount of time a token sent is valid. As it's just a number, you can use, for example, 0.5 to make the token valid for just half hour. The default is 1 hour.</p>",name:"loginTokenExpirationHours",type:{names:["Number"]}},{description:"<p>When using the package <code>accounts-2fa</code>, use this to the size of the token sequence generated. The default is 6.</p>",name:"tokenSequenceLength",type:{names:["Number"]}},{description:"<p>By default login credentials are stored in local storage, setting this to true will switch to using session storage.</p>",name:"clientStorage",type:{names:["'session'","'local'"]}}],overrides:"AccountsCommon#config",params:[{name:"options",type:{names:["Object"]}}],scope:"instance",summary:"<p>Set global accounts options. You can also set these in <code>Meteor.settings.packages.accounts</code> without the need to call this function.</p>"},"AccountsClient#loggingIn":{filepath:"accounts-base/accounts_client.js",kind:"function",lineno:97,locus:"Client",longname:"AccountsClient#loggingIn",memberof:"AccountsClient",module:"accounts-base",name:"loggingIn",options:[],params:[],scope:"instance",summary:"<p>True if a login method (such as <code>Meteor.loginWithPassword</code>, <code>Meteor.loginWithFacebook</code>, or <code>Accounts.createUser</code>) is currently in progress. A reactive data source.</p>"},"AccountsClient#loggingOut":{filepath:"accounts-base/accounts_client.js",kind:"function",lineno:105,locus:"Client",longname:"AccountsClient#loggingOut",memberof:"AccountsClient",module:"accounts-base",name:"loggingOut",options:[],params:[],scope:"instance",summary:"<p>True if a logout method (such as <code>Meteor.logout</code>) is currently in progress. A reactive data source.</p>"},"AccountsClient#logout":{filepath:"accounts-base/accounts_client.js",kind:"function",lineno:157,locus:"Client",longname:"AccountsClient#logout",memberof:"AccountsClient",module:"accounts-base",name:"logout",options:[],params:[{description:"<p>Optional callback. Called with no arguments on success, or with a single <code>Error</code> argument on failure.</p>",name:"callback",optional:!0,type:{names:["function"]}}],scope:"instance",summary:"<p>Log the user out.</p>"},"AccountsClient#logoutAllClients":{filepath:"accounts-base/accounts_client.js",kind:"function",lineno:185,locus:"Client",longname:"AccountsClient#logoutAllClients",memberof:"AccountsClient",module:"accounts-base",name:"logoutAllClients",options:[],params:[{description:"<p>Optional callback. Called with no arguments on success, or with a single <code>Error</code> argument on failure.</p>",name:"callback",optional:!0,type:{names:["function"]}}],scope:"instance",summary:"<p>Log out all clients logged in as the current user and logs the current user out as well.</p>"},"AccountsClient#logoutOtherClients":{filepath:"accounts-base/accounts_client.js",kind:"function",lineno:213,locus:"Client",longname:"AccountsClient#logoutOtherClients",memberof:"AccountsClient",module:"accounts-base",name:"logoutOtherClients",options:[],params:[{description:"<p>Optional callback. Called with no arguments on success, or with a single <code>Error</code> argument on failure.</p>",name:"callback",optional:!0,type:{names:["function"]}}],scope:"instance",summary:"<p>Log out other clients logged in as the current user, but does not log out the client that calls this function.</p>"},"AccountsClient#onLogin":{filepath:"accounts-base/accounts_common.js",inherited:!0,inherits:"AccountsCommon#onLogin",kind:"function",lineno:317,locus:"Anywhere",longname:"AccountsClient#onLogin",memberof:"AccountsClient",module:"accounts-base",name:"onLogin",options:[],params:[{description:`<p>The callback to be called when login is successful.
95The callback receives a single object that
96holds login details. This object contains the login
97result type (password, resume, etc.) on both the
98client and server. <code>onLogin</code> callbacks registered
99on the server also receive extra data, such
100as user details, connection information, etc.</p>`,name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>Register a callback to be called after a login attempt succeeds.</p>"},"AccountsClient#onLoginFailure":{filepath:"accounts-base/accounts_common.js",inherited:!0,inherits:"AccountsCommon#onLoginFailure",kind:"function",lineno:329,locus:"Anywhere",longname:"AccountsClient#onLoginFailure",memberof:"AccountsClient",module:"accounts-base",name:"onLoginFailure",options:[],params:[{description:"<p>The callback to be called after the login has failed.</p>",name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>Register a callback to be called after a login attempt fails.</p>"},"AccountsClient#onLogout":{filepath:"accounts-base/accounts_common.js",inherited:!0,inherits:"AccountsCommon#onLogout",kind:"function",lineno:338,locus:"Anywhere",longname:"AccountsClient#onLogout",memberof:"AccountsClient",module:"accounts-base",name:"onLogout",options:[],params:[{description:"<p>The callback to be called when logout is successful.</p>",name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>Register a callback to be called after a logout attempt succeeds.</p>"},"AccountsClient#registerClientLoginFunction":{filepath:"accounts-base/accounts_client.js",kind:"function",lineno:117,locus:"Client",longname:"AccountsClient#registerClientLoginFunction",memberof:"AccountsClient",module:"accounts-base",name:"registerClientLoginFunction",options:[],params:[{description:`<p>The name of your login function. Used by <code>Accounts.callLoginFunction</code> and <code>Accounts.applyLoginFunction</code>.
101Should be the OAuth provider name accordingly.</p>`,name:"funcName",type:{names:["String"]}},{description:"<p>The actual function you want to call. Just write it in the manner of <code>loginWithFoo</code>.</p>",name:"func",type:{names:["function"]}}],scope:"instance",summary:`<p>Register a new login function on the client. Intended for OAuth package authors. You can call the login function by using
102<code>Accounts.callLoginFunction</code> or <code>Accounts.callLoginFunction</code>.</p>`},"AccountsClient#user":{filepath:"accounts-base/accounts_common.js",inherited:!0,inherits:"AccountsCommon#user",kind:"function",lineno:172,locus:"Anywhere",longname:"AccountsClient#user",memberof:"AccountsClient",module:"accounts-base",name:"user",options:[{description:"<p>Dictionary of fields to return or exclude.</p>",name:"fields",type:{names:["MongoFieldSpecifier"]}}],params:[{name:"options",optional:!0,type:{names:["Object"]}}],scope:"instance",summary:"<p>Get the current user record, or <code>null</code> if no user is logged in. On the client this can also be <code>undefined</code> while a user id is set but the user document is not yet in Minimongo. A reactive data source. In the server this fuction returns a promise.</p>"},"AccountsClient#userAsync":{async:!0,filepath:"accounts-base/accounts_common.js",inherited:!0,inherits:"AccountsCommon#userAsync",kind:"function",lineno:197,locus:"Anywhere",longname:"AccountsClient#userAsync",memberof:"AccountsClient",module:"accounts-base",name:"userAsync",options:[{description:"<p>Dictionary of fields to return or exclude.</p>",name:"fields",type:{names:["MongoFieldSpecifier"]}}],params:[{name:"options",optional:!0,type:{names:["Object"]}}],scope:"instance",summary:"<p>Get the current user record, or <code>null</code> if no user is logged in. May also be <code>undefined</code> when a user id is set but the user document cannot be found yet.</p>"},"AccountsClient#userId":{filepath:"accounts-base/accounts_common.js",inherited:!0,inherits:"AccountsCommon#userId",kind:"function",lineno:128,locus:"Anywhere",longname:"AccountsClient#userId",memberof:"AccountsClient",module:"accounts-base",name:"userId",options:[],overrides:"AccountsCommon#userId",params:[],scope:"instance",summary:"<p>Get the current user id, or <code>null</code> if no user is logged in. A reactive data source.</p>"},AccountsCommon:{filepath:"accounts-base/accounts_common.js",instancename:"accountsClientOrServer",kind:"class",lineno:32,locus:"Anywhere",longname:"AccountsCommon",module:"accounts-base",name:"AccountsCommon",options:[],params:[{description:`<p>an object with fields:</p>
103<ul>
104<li>connection {Object} Optional DDP connection to reuse.</li>
105<li>
105ddpUrl {String} Optional URL for creating a new DDP connection.</li>
106<li>collection {String|Mongo.Collection} The name of the Mongo.Collection
107or the Mongo.Collection object to hold the users.</li>
108</ul>`,name:"options",type:{names:["Object"]}}],scope:"global",summary:"<p>Super-constructor for AccountsClient and AccountsServer.</p>"},"AccountsCommon#config":{examples:[`// For UI-related options like forbidClientAccountCreation, call Accounts.config on both client and server
109// Create a shared configuration file (e.g., lib/accounts-config.js):
110import { Accounts } from 'meteor/accounts-base';
111
112Accounts.config({
113  forbidClientAccountCreation: true,
114  sendVerificationEmail: true,
115});
116
117// Then import this file in both client/main.js and server/main.js:
118// import '../lib/accounts-config.js';`],filepath:"accounts-base/accounts_common.js",kind:"function",lineno:244,locus:"Anywhere",longname:"AccountsCommon#config",memberof:"AccountsCommon",module:"accounts-base",name:"config",options:[{description:"<p>New users with an email address will receive an address verification email.</p>",name:"sendVerificationEmail",type:{names:["Boolean"]}},{description:'<p>Calls to <a href="#accounts_createuser"><code>createUser</code></a> from the client will be rejected. In addition, if you are using <a href="#accountsui">accounts-ui</a>, the &quot;Create account&quot; link will not be available. <strong>Important</strong>: This option must be set on both the client and server to take full effect. If only set on the server, account creation will be blocked but the UI will still show the &quot;Create account&quot; link.</p>',name:"forbidClientAccountCreation",type:{names:["Boolean"]}},{description:"<p>If set to a string, only allows new users if the domain part of their email address matches the string. If set to a function, only allows new users if the function returns true.  The function is passed the full email address of the proposed new user.  Works with password-based sign-in and external services that expose email addresses (Google, Facebook, GitHub). All existing users still can log in after enabling this option. Example: <code>Accounts.config({ restrictCreationByEmailDomain: 'school.edu' })</code>.</p>",name:"restrictCreationByEmailDomain",type:{names:["String","function"]}},{description:"<p>The number of milliseconds from when a user logs in until their token expires and they are logged out, for a more granular control. If <code>loginExpirationInDays</code> is set, it takes precedent.</p>",name:"loginExpiration",type:{names:["Number"]}},{description:"<p>The number of days from when a user logs in until their token expires and they are logged out. Defaults to 90. Set to <code>null</code> to disable login expiration.</p>",name:"loginExpirationInDays",type:{names:["Number"]}},{description:"<p>When using the <code>oauth-encryption</code> package, the 16 byte key using to encrypt sensitive account credentials in the database, encoded in base64.  This option may only be specified on the server.  See packages/oauth-encryption/README.md for details.</p>",name:"oauthSecretKey",type:{names:["String"]}},{description:"<p>The number of days from when a link to reset password is sent until token expires and user can't reset password with the link anymore. Defaults to 3.</p>",name:"passwordResetTokenExpirationInDays",type:{names:["Number"]}},{description:"<p>The number of milliseconds from when a link to reset password is sent until token expires and user can't reset password with the link anymore. If <code>passwordResetTokenExpirationInDays</code> is set, it takes precedent.</p>",name:"passwordResetTokenExpiration",type:{names:["Number"]}},{description:"<p>The number of days from when a link to set initial password is sent until token expires and user can't set password with the link anymore. Defaults to 30.</p>",name:"passwordEnrollTokenExpirationInDays",type:{names:["Number"]}},{description:"<p>The number of milliseconds from when a link to set initial password is sent until token expires and user can't set password with the link anymore. If <code>passwordEnrollTokenExpirationInDays</code> is set, it takes precedent.</p>",name:"passwordEnrollTokenExpiration",type:{names:["Number"]}},{description:"<p>Return ambiguous error messages from login failures to prevent user enumeration. Defaults to <code>true</code>.</p>",name:"ambiguousErrorMessages",type:{names:["Boolean"]}},{description:"<p>
118Allows override of number of bcrypt rounds (aka work factor) used to store passwords. The default is 10.</p>",name:"bcryptRounds",type:{names:["Number"]}},{description:"<p>Enable argon2 algorithm usage in replacement for bcrypt. The default is <code>false</code>.</p>",name:"argon2Enabled",type:{names:["Boolean"]}},{description:"<p>Allows override of the argon2 algorithm type. The default is <code>argon2id</code>.</p>",name:"argon2Type",type:{names:["'argon2id'","'argon2i'","'argon2d'"]}},{description:"<p>Allows override of number of argon2 iterations (aka time cost) used to store passwords. The default is 2.</p>",name:"argon2TimeCost",type:{names:["Number"]}},{description:"<p>Allows override of the amount of memory (in KiB) used by the argon2 algorithm. The default is 19456 (19MB).</p>",name:"argon2MemoryCost",type:{names:["Number"]}},{description:"<p>Allows override of the number of threads used by the argon2 algorithm. The default is 1.</p>",name:"argon2Parallelism",type:{names:["Number"]}},{description:"<p>To exclude by default large custom fields from <code>Meteor.user()</code> and <code>Meteor.findUserBy...()</code> functions when called without a field selector, and all <code>onLogin</code>, <code>onLoginFailure</code> and <code>onLogout</code> callbacks.  Example: <code>Accounts.config({ defaultFieldSelector: { myBigArray: 0 }})</code>. Beware when using this. If, for instance, you do not include <code>email</code> when excluding the fields, you can have problems with functions like <code>forgotPassword</code> that will break because they won't have the required data available. It's recommend that you always keep the fields <code>_id</code>, <code>username</code>, and <code>email</code>.</p>",name:"defaultFieldSelector",type:{names:["MongoFieldSpecifier"]}},{description:"<p>A collection name or a Mongo.Collection object to hold the users.</p>",name:"collection",type:{names:["String","Mongo.Collection"]}},{description:"<p>When using the package <code>accounts-2fa</code>, use this to set the amount of time a token sent is valid. As it's just a number, you can use, for example, 0.5 to make the token valid for just half hour. The default is 1 hour.</p>",name:"loginTokenExpirationHours",type:{names:["Number"]}},{description:"<p>When using the package <code>accounts-2fa</code>, use this to the size of the token sequence generated. The default is 6.</p>",name:"tokenSequenceLength",type:{names:["Number"]}},{description:"<p>By default login credentials are stored in local storage, setting this to true will switch to using session storage.</p>",name:"clientStorage",type:{names:["'session'","'local'"]}}],params:[{name:"options",type:{names:["Object"]}}],scope:"instance",summary:"<p>Set global accounts options. You can also set these in <code>Meteor.settings.packages.accounts</code> without the need to call this function.</p>"},"AccountsCommon#onLogin":{filepath:"accounts-base/accounts_common.js",kind:"function",lineno:317,locus:"Anywhere",longname:"AccountsCommon#onLogin",memberof:"AccountsCommon",module:"accounts-base",name:"onLogin",options:[],params:[{description:`<p>The callback to be called when login is successful.
119The callback receives a single object that
120holds login details. This object contains the login
121result type (password, resume, etc.) on both the
122client and server. <code>onLogin</code> callbacks registered
123on the server also receive extra data, such
124as user details, connection information, etc.</p>`,name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>Register a callback to be called after a login attempt succeeds.</p>"},"AccountsCommon#onLoginFailure":{filepath:"accounts-base/accounts_common.js",kind:"function",lineno:329,locus:"Anywhere",longname:"AccountsCommon#onLoginFailure",memberof:"AccountsCommon",module:"accounts-base",name:"onLoginFailure",options:[],params:[{description:"<p>The callback to be called after the login has failed.</p>",name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>Register a callback to be called after a login attempt fails.</p>"},"AccountsCommon#onLogout":{filepath:"accounts-base/accounts_common.js",kind:"function",lineno:338,locus:"Anywhere",longname:"AccountsCommon#onLogout",memberof:"AccountsCommon",module:"accounts-base",name:"onLogout",options:[],params:[{description:"<p>The callback to be called when logout is successful.</p>",name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>Register a callback to be called after a logout attempt succeeds.</p>"},"AccountsCommon#user":{filepath:"accounts-base/accounts_common.js",kind:"function",lineno:172,locus:"Anywhere",longname:"AccountsCommon#user",memberof:"AccountsCommon",module:"accounts-base",name:"user",options:[{description:"<p>Dictionary of fields to return or exclude.</p>",name:"fields",type:{names:["MongoFieldSpecifier"]}}],params:[{name:"options",optional:!0,type:{names:["Object"]}}],scope:"instance",summary:"<p>Get the current user record, or <code>null</code> if no user is logged in. On the client this can also be <code>undefined</code> while a user id is set but the user document is not yet in Minimongo. A reactive data source. In the server this fuction returns a promise.</p>"},"AccountsCommon#userAsync":{async:!0,filepath:"accounts-base/accounts_common.js",kind:"function",lineno:197,locus:"Anywhere",longname:"AccountsCommon#userAsync",memberof:"AccountsCommon",module:"accounts-base",name:"userAsync",options:[{description:"<p>Dictionary of fields to return or exclude.</p>",name:"fields",type:{names:["MongoFieldSpecifier"]}}],params:[{name:"options",optional:!0,type:{names:["Object"]}}],scope:"instance",summary:"<p>Get the current user record, or <code>null</code> if no user is logged in. May also be <code>undefined</code> when a user id is set but the user document cannot be found yet.</p>"},"AccountsCommon#userId":{filepath:"accounts-base/accounts_common.js",kind:"function",lineno:128,locus:"Anywhere",longname:"AccountsCommon#userId",memberof:"AccountsCommon",module:"accounts-base",name:"userId",options:[],params:[],scope:"instance",summary:"<p>Get the current user id, or <code>null</code> if no user is logged in. A reactive data source.</p>"},AccountsServer:{augments:["AccountsCommon"],filepath:"accounts-base/accounts_server.js",instancename:"accountsServer",kind:"class",lineno:12,locus:"Server",longname:"AccountsServer",module:"accounts-base",name:"AccountsServer",options:[],params:[{description:"<p>A server object such as <code>Meteor.server</code>.</p>",name:"server",type:{names:["Object"]}}],scope:"global",summary:"<p>Constructor for the <code>Accounts</code> namespace on the server.</p>"},"AccountsServer#addDefaultRateLimit":{filepath:"accounts-base/accounts_server.js",importfrompackage:"accounts-base",kind:"function",lineno:1482,locus:"Server",longname:"AccountsServer#addDefaultRateLimit",memberof:"AccountsServer",module:"accounts-base",name:"addDefaultRateLimit",options:[],params:[],scope:"instance",summary:`<p>Add a default rule of limiting logins, creating new users and password reset
125to 5 times every 10 seconds per connection.</p>`},"AccountsServer#beforeExternalLogin":{filepath:"accounts-base/accounts_server.js",kind:"function",lineno:198,locus:"Server",longname:"AccountsServer#beforeExternalLogin",memberof:"AccountsServer",module:"accounts-base",name:"beforeE
125xternalLogin",options:[],params:[{description:"<p>Called whenever login/user creation from external service is attempted. Login or user creation based on this login can be aborted by passing a falsy value or throwing an exception.</p>",name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>Validate login from external service</p>"},"AccountsServer#config":{examples:[`// For UI-related options like forbidClientAccountCreation, call Accounts.config on both client and server
126// Create a shared configuration file (e.g., lib/accounts-config.js):
127import { Accounts } from 'meteor/accounts-base';
128
129Accounts.config({
130  forbidClientAccountCreation: true,
131  sendVerificationEmail: true,
132});
133
134// Then import this file in both client/main.js and server/main.js:
135// import '../lib/accounts-config.js';`],filepath:"accounts-base/accounts_common.js",inherited:!0,inherits:"AccountsCommon#config",kind:"function",lineno:244,locus:"Anywhere",longname:"AccountsServer#config",memberof:"AccountsServer",module:"accounts-base",name:"config",options:[{description:"<p>New users with an email address will receive an address verification email.</p>",name:"sendVerificationEmail",type:{names:["Boolean"]}},{description:'<p>Calls to <a href="#accounts_createuser"><code>createUser</code></a> from the client will be rejected. In addition, if you are using <a href="#accountsui">accounts-ui</a>, the &quot;Create account&quot; link will not be available. <strong>Important</strong>: This option must be set on both the client and server to take full effect. If only set on the server, account creation will be blocked but the UI will still show the &quot;Create account&quot; link.</p>',name:"forbidClientAccountCreation",type:{names:["Boolean"]}},{description:"<p>If set to a string, only allows new users if the domain part of their email address matches the string. If set to a function, only allows new users if the function returns true.  The function is passed the full email address of the proposed new user.  Works with password-based sign-in and external services that expose email addresses (Google, Facebook, GitHub). All existing users still can log in after enabling this option. Example: <code>Accounts.config({ restrictCreationByEmailDomain: 'school.edu' })</code>.</p>",name:"restrictCreationByEmailDomain",type:{names:["String","function"]}},{description:"<p>The number of milliseconds from when a user logs in until their token expires and they are logged out, for a more granular control. If <code>loginExpirationInDays</code> is set, it takes precedent.</p>",name:"loginExpiration",type:{names:["Number"]}},{description:"<p>The number of days from when a user logs in until their token expires and they are logged out. Defaults to 90. Set to <code>null</code> to disable login expiration.</p>",name:"loginExpirationInDays",type:{names:["Number"]}},{description:"<p>When using the <code>oauth-encryption</code> package, the 16 byte key using to encrypt sensitive account credentials in the database, encoded in base64.  This option may only be specified on the server.  See packages/oauth-encryption/README.md for details.</p>",name:"oauthSecretKey",type:{names:["String"]}},{description:"<p>The number of days from when a link to reset password is sent until token expires and user can't reset password with the link anymore. Defaults to 3.</p>",name:"passwordResetTokenExpirationInDays",type:{names:["Number"]}},{description:"<p>The number of milliseconds from when a link to reset password is sent until token expires and user can't reset password with the link anymore. If <code>passwordResetTokenExpirationInDays</code> is set, it takes precedent.</p>",name:"passwordResetTokenExpiration",type:{names:["Number"]}},{description:"<p>The number of days from when a link to set initial password is sent until token expires and user can't set password with the link anymore. Defaults to 30.</p>",name:"passwordEnrollTokenExpirationInDays",type:{names:["Number"]}},{description:"<p>The number of milliseconds from when a link to set initial password is sent until token expires and user can't set password with the link anymore. If <code>passwordEnrollTokenExpirationInDays</code> is set, it takes precedent.</p>",name:"passwordEnrollTokenExpiration",type:{names:["Number"]}},{description:"<p>Return ambiguous error messages from login failures to prevent user enumeration. Defaults to <code>true</code>.</p>",name:"ambiguousErrorMessages",type:{names:["Boolean"]}},{description:"<p>
135Allows override of number of bcrypt rounds (aka work factor) used to store passwords. The default is 10.</p>",name:"bcryptRounds",type:{names:["Number"]}},{description:"<p>Enable argon2 algorithm usage in replacement for bcrypt. The default is <code>false</code>.</p>",name:"argon2Enabled",type:{names:["Boolean"]}},{description:"<p>Allows override of the argon2 algorithm type. The default is <code>argon2id</code>.</p>",name:"argon2Type",type:{names:["'argon2id'","'argon2i'","'argon2d'"]}},{description:"<p>Allows override of number of argon2 iterations (aka time cost) used to store passwords. The default is 2.</p>",name:"argon2TimeCost",type:{names:["Number"]}},{description:"<p>Allows override of the amount of memory (in KiB) used by the argon2 algorithm. The default is 19456 (19MB).</p>",name:"argon2MemoryCost",type:{names:["Number"]}},{description:"<p>Allows override of the number of threads used by the argon2 algorithm. The default is 1.</p>",name:"argon2Parallelism",type:{names:["Number"]}},{description:"<p>To exclude by default large custom fields from <code>Meteor.user()</code> and <code>Meteor.findUserBy...()</code> functions when called without a field selector, and all <code>onLogin</code>, <code>onLoginFailure</code> and <code>onLogout</code> callbacks.  Example: <code>Accounts.config({ defaultFieldSelector: { myBigArray: 0 }})</code>. Beware when using this. If, for instance, you do not include <code>email</code> when excluding the fields, you can have problems with functions like <code>forgotPassword</code> that will break because they won't have the required data available. It's recommend that you always keep the fields <code>_id</code>, <code>username</code>, and <code>email</code>.</p>",name:"defaultFieldSelector",type:{names:["MongoFieldSpecifier"]}},{description:"<p>A collection name or a Mongo.Collection object to hold the users.</p>",name:"collection",type:{names:["String","Mongo.Collection"]}},{description:"<p>When using the package <code>accounts-2fa</code>, use this to set the amount of time a token sent is valid. As it's just a number, you can use, for example, 0.5 to make the token valid for just half hour. The default is 1 hour.</p>",name:"loginTokenExpirationHours",type:{names:["Number"]}},{description:"<p>When using the package <code>accounts-2fa</code>, use this to the size of the token sequence generated. The default is 6.</p>",name:"tokenSequenceLength",type:{names:["Number"]}},{description:"<p>By default login credentials are stored in local storage, setting this to true will switch to using session storage.</p>",name:"clientStorage",type:{names:["'session'","'local'"]}}],overrides:"AccountsCommon#config",params:[{name:"options",type:{names:["Object"]}}],scope:"instance",summary:"<p>Set global accounts options. You can also set these in <code>Meteor.settings.packages.accounts</code> without the need to call this function.</p>"},"AccountsServer#generateOptionsForEmail":{async:!0,filepath:"accounts-base/accounts_server.js",importfrompackage:"accounts-base",kind:"function",lineno:1506,locus:"Server",longname:"AccountsServer#generateOptionsForEmail",memberof:"AccountsServer",module:"accounts-base",name:"generateOptionsForEmail",options:[],params:[{description:"<p>Which address of the user's to send the email to.</p>",name:"email",type:{names:["Object"]}},{description:"<p>The user object to generate options for.</p>",name:"user",type:{names:["Object"]}},{description:"<p>URL to which user is directed to confirm the email.</p>",name:"url",type:{names:["String"]}},{description:"<p><code>resetPassword</code> or <code>enrollAccount</code>.</p>",name:"reason",type:{names:["String"]}}],returns:[{description:"<p>Options which can be passed to <code>Email.send</code>.</p>",type:{names:["Object"]}}],scope:"instance",summary:`<p>Creates options for email sending for reset password and enroll account emails.
136You can use this function when customizing a reset password or enroll account email sending.</p>`},"AccountsServer#onCreateLoginToken":{filepath:"accounts-base/accounts_server.js",kind:"member",lineno:216,locus:"Server",longname:"AccountsServer#onCreateLoginToken",memberof:"AccountsServer",module:"accounts-base",name:"onCreateLoginToken",params:[{description:`<p>Called whenever a new token is created.
137Return the sequence and the user object. Return true to keep sending the default email, or false to override the behavior.</p>`,name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>Customize login token creation.</p>"},"AccountsServer#onCreateUser":{filepath:"accounts-base/accounts_server.js",kind:"function",lineno:229,locus:"Server",longname:"AccountsServer#onCreateUser",memberof:"AccountsServer",module:"accounts-base",name:"onCreateUser",options:[],params:[{description:"<p>Called whenever a new user is created. Return the new user object, or throw an <code>Error</code> to abort the creation.</p>",name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>Customize new user creation.</p>"},"AccountsServer#onExternalLogin":{filepath:"accounts-base/accounts_server.js",kind:"function",lineno:242,locus:"Server",longname:"AccountsServer#onExternalLogin",memberof:"AccountsServer",module:"accounts-base",name:"onExternalLogin",options:[],params:[{description:"<p>Called whenever a user is logged in via oauth. Return the profile object to be merged, or throw an <code>Error</code> to abort the creation.</p>",name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>Customize oauth user profile updates</p>"},"AccountsServer#onLogin":{filepath:"accounts-base/accounts_common.js",inherited:!0,inherits:"AccountsCommon#onLogin",kind:"function",lineno:317,locus:"Anywhere",longname:"AccountsServer#onLogin",memberof:"AccountsServer",module:"accounts-base",name:"onLogin",options:[],params:[{description:`<p>The callback to be called when login is successful.
138The callback receives a single object that
139holds login details. This object contains the login
140result type (password, resume, etc.) on both the
141client and server. <code>onLogin</code> callbacks registered
142on the server also receive extra data, such
143as user details, connection information, etc.</p>`,name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>Register a callback to be called after a login attempt succeeds.</p>"},"AccountsServer#onLoginFailure":{filepath:"accounts-base/accounts_common.js",inherited:!0,inherits:"AccountsCommon#onLoginFailure",kind:"function",lineno:329,locus:"Anywhere",longname:"AccountsServer#onLoginFailure",memberof:"AccountsServer",module:"accounts-base",name:"onLoginFailure",options:[],params:[{description:"<p>The callback to be called after the login has failed.</p>",name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>Register a callback to be called after a login attempt fails.</p>"},"AccountsServer#onLogout":{filepath:"accounts-base/accounts_common.js",inherited:!0,inherits:"AccountsCommon#onLogout",kind:"function",lineno:338,locus:"Anywhere",longname:"AccountsServer#onLogout",memberof:"AccountsServer",module:"accounts-base",name:"onLogout",options:[],params:[{description:"<p>The callback to be called when logout is successful.</p>",name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>Register a callback to be called after a logout attempt succeeds.</p>"},"AccountsServer#registerLoginHandler":{filepath:"accounts-base/accounts_server.js",kind:"function",lineno:627,locus:"Server",longname:"AccountsServer#registerLoginHandler",memberof:"AccountsServer",module:"accounts-base",name:"registerLoginHandler",options:[],params:[{description:"<p>The type of login method like oauth, password, etc.</p>",name:"name",optional:!0,type:{names:["String"]}},{description:`<p>A function that receives an options object
144(as passed as an argument to the <code>login</code> method) and returns one of
145<code>undefined</code>, meaning don't handle or a login method result object.</p>`,name:"handler",type:{names:["function"]}}],scope:"instance",summary:"<p>Registers a new login handler.</p>"},"AccountsServer#removeDefaultRateLimit":{filepath:"accounts-base/accounts_server.js",importfrompackage:"accounts-base",kind:"function",lineno:1470,locus:"Server",longname:"AccountsServer#removeDefaultRateLimit",memberof:"AccountsServer",module:"accounts-base",name:"removeDefaultRateLimit",options:[],params:[],scope:"instance",summary:"<p>Removes default rate limiting rule</p>"},"AccountsServer#setAdditionalFindUserOnExternalLogin":{filepath:"accounts-base/accounts_server.js",kind:"function",lineno:256,locus:"Server",longname:"AccountsServer#setAdditionalFindUserOnExternalLogin",memberof:"AccountsServer",module:"accounts-base",name:"setAdditionalFindUserOnExternalLogin",options:[],params:[{description:`<p>Called whenever a user is logged in via oauth and a
146user is not found with the service id. Return the user or undefined.</p>`,name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>Customize user selection on external logins</p>"},"AccountsServer#user":{filepath:"accounts-base/accounts_common.js",inherited:!0,inherits:"AccountsCommon#user",kind:"function",lineno:172,locus:"Anywhere",longname:"AccountsServer#user",memberof:"AccountsServer",module:"accounts-base",name:"user",options:[{description:"<p>Dictionary of fields to return or exclude.</p>",name:"fields",type:{names:["MongoFieldSpecifier"]}}],params:[{name:"options",optional:!0,type:{names:["Object"]}}],scope:"instance",summary:"<p>Get the current user record, or <code>null</code> if no user is logged in. On the client this can also be <code>undefined</code> while a user id is set but the user document is not yet in Minimongo. A reactive data source. In the server this fuction returns a promise.</p>"},"AccountsServer#userAsync":{async:!0,filepath:"accounts-base/accounts_common.js",inherited:!0,inherits:"AccountsCommon#userAsync",kind:"function",lineno:197,locus:"Anywhere",longname:"AccountsServer#userAsync",memberof:"AccountsServer",module:"accounts-base",name:"userAsync",options:[{description:"<p>Dictionary of fields to return or exclude.</p>",name:"fields",type:{names:["MongoFieldSpecifier"]}}],params:[{name:"options",optional:!0,type:{names:["Object"]}}],scope:"instance",summary:"<p>Get the current user record, or <code>null</code> if no user is logged in. May also be <code>undefined</code> when a user id is set but the user document cannot be found yet.</p>"},"AccountsServer#userId":{filepath:"accounts-base/accounts_common.js",inherited:!0,inherits:"AccountsCommon#userId",kind:"function",lineno:128,locus:"Anywhere",longname:"AccountsServer#userId",memberof:"AccountsServer",module:"accounts-base",name:"userId",options:[],overrides:"AccountsCommon#userId",params:[],scope:"instance",summary:"<p>Get the current user id, or <code>null</code> if no user is logged in. A reactive data source.</p>"},"AccountsServer#validateLoginAttempt":{filepath:"accounts-base/accounts_server.js",kind:"function",lineno:179,locus:"Server",longname:"AccountsServer#validateLoginAttempt",memberof:"AccountsServer",module:"accounts-base",name:"validateLoginAttempt",options:[],params:[{description:"<p>Called whenever a login is attempted (either successful or unsuccessful).  A login can be aborted by returning a falsy value or throwing an exception.</p>",name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>Validate login attempts.</p>"},"AccountsServer#validateNewUser":{filepath:"accounts-base/accounts_server.js",kind:"function",lineno:189,locus:"Server",longname:"AccountsServer#validateNewUser",memberof:"AccountsServer",module:"accounts-base",name:"validateNewUser",options:[],params:[{description:"<p>Called whenever a new user is created. Takes the new user object, and returns true to allow the creation or false to abort.</p>",name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>
146Set restrictions on new user creation.</p>"},App:{kind:"namespace",longname:"App",name:"App",scope:"global",summary:"<p>The App configuration object in mobile-config.js</p>"},"App.accessRule":{kind:"function",longname:"App.accessRule",memberof:"App",name:"accessRule",options:[{description:`<p>Possible values:</p>
147<ul>
148<li><strong><code>'intent'</code></strong>: Controls which URLs the app is allowed to ask the system to open.
149(e.g. in the phone app or an email client).</li>
150<li><strong><code>'navigation'</code></strong>: Controls which URLs the WebView itself can be navigated to
151(can also needed for iframes).</li>
152<li><strong><code>'network'</code> or undefined</strong>: Controls which network requests (images, XHRs, etc) are allowed to be made.</li>
153</ul>`,name:"type",type:{names:["String"]}},{description:"<p>(Deprecated, use <code>type: 'intent'</code> instead.)</p>",name:"launchExternal",type:{names:["Boolean"]}}],params:[{description:"<p>The pattern defining affected domains or URLs.</p>",name:"pattern",type:{names:["String"]}},{name:"options",optional:!0,type:{names:["Object"]}}],scope:"static",summary:`<p>Set a new access rule based on origin domain for your app.
154By default your application has a limited list of servers it can contact.
155Use this method to extend this list.</p>
156<p>Default access rules:</p>
157<ul>
158<li><code>tel:*</code>, <code>geo:*</code>, <code>mailto:*</code>, <code>sms:*</code>, <code>market:*</code> are allowed and
159are handled by the system (e.g. opened in the phone app or an email client)</li>
160<li><code>http://localhost:*</code> is used to serve the app's assets from.</li>
161<li>The domain or address of the Meteor server to connect to for DDP and
162hot code push of new versions.</li>
163</ul>
164<p>Read more about domain patterns in <a href="http://cordova.apache.org/docs/en/6.0.0/guide_appdev_whitelist_index.md.html">Cordova
165docs</a>.</p>
166<p>Starting with Meteor 1.0.4 access rule for all domains and protocols
167(<code>&lt;access origin=&quot;*&quot;/&gt;</code>) is no longer set by default due to
168<a href="http://cordova.apache.org/announcements/2014/08/04/android-351.html">certain kind of possible
169attacks</a>.</p>`},"App.addResourceFile":{kind:"function",longname:"App.addResourceFile",memberof:"App",name:"addResourceFile",options:[],params:[{description:"<p>The project resource path.</p>",name:"src",type:{names:["String"]}},{description:"<p>Resource destination in build.</p>",name:"target",type:{names:["String"]}},{description:"<p>Optional. A platform name (either <code>ios</code> or <code>android</code>, both if omitted) to add a resource-file entry.</p>",name:"platform",optional:!0,type:{names:["String"]}}],scope:"static",summary:`<p>Add a resource file for your build as described in the
170<a href="http://cordova.apache.org/docs/en/7.x/config_ref/index.html#resource-file">Cordova documentation</a>.</p>`},"App.appendToConfig":{kind:"function",longname:"App.appendToConfig",memberof:"App",name:"appendToConfig",options:[],params:[{description:"<p>The XML you want to include</p>",name:"element",type:{names:["String"]}}],scope:"static",summary:`<p>Append custom tags into config's widget element.</p>
171<p><code>App.appendToConfig('&lt;any-xml-content/&gt;');</code></p>`},"App.configurePlugin":{kind:"function",longname:"App.configurePlugin",memberof:"App",name:"configurePlugin",options:[],params:[{description:`<p>The identifier of the plugin you want to
172configure.</p>`,name:"id",type:{names:["String"]}},{description:`<p>A set of key-value pairs which will be passed
173at build-time to configure the specified plugin.</p>`,name:"config",type:{names:["Object"]}}],scope:"static",summary:"<p>Set the build-time configuration for a Cordova plugin.</p>"},"App.icons":{kind:"function",longname:"App.icons",memberof:"App",name:"icons",options:[],params:[{description:`<p>An Object where the keys are different
174devices and screen sizes, and values are image paths
175relative to the project root directory.</p>
176<p>Valid key values:</p>
177<ul>
178<li><code>app_store</code> (1024x1024) // Apple App Store</li>
179<li><code>iphone_2x</code> (120x120) // iPhone 5, SE, 6, 6s, 7, 8</li>
180<li><code>iphone_3x</code> (180x180) // iPhone 6 Plus, 6s Plus, 7 Plus, 8 Plus, X</li>
181<li><code>ipad_2x</code> (152x152) // iPad, iPad mini</li>
182<li><code>ipad_pro</code> (167x167) // iPad Pro</li>
183<li><code>ios_settings_2x</code> (58x58) // iPhone 5, SE, 6, 6s, 7, 8, iPad, mini, Pro</li>
184<li><code>ios_settings_3x</code> (87x87) // iPhone 6 Plus, 6s Plus, 7 Plus, 8 Plus, X</li>
185<li><code>ios_spotlight_2x</code> (80x80) // iPhone 5, SE, 6, 6s, 7, 8, iPad, mini, Pro</li>
186<li><code>ios_spotlight_3x</code> (120x120) // iPhone 6 Plus, 6s Plus, 7 Plus, 8 Plus, X</li>
187<li><code>ios_notification_2x</code> (40x40) // iPhone 5, SE, 6, 6s, 7, 8, iPad, mini, Pro</li>
188<li><code>ios_notification_3x</code> (60x60 // iPhone 6 Plus, 6s Plus, 7 Plus, 8 Plus, X</li>
189<li><code>ipad</code> (76x76) // Legacy</li>
190<li><code>ios_settings</code> (29x29) // Legacy</li>
191<li><code>ios_spotlight</code> (40x40) // Legacy</li>
192<li><code>ios_notification</code> (20x20) // Legacy</li>
193<li><code>iphone_legacy</code> (57x57) // Legacy</li>
194<li><code>iphone_legacy_2x</code> (114x114) // Legacy</li>
195<li><code>ipad_spotlight_legacy</code> (50x50) // Legacy</li>
196<li><code>ipad_spotlight_legacy_2x</code> (100x100) // Legacy</li>
197<li><code>ipad_app_legacy</code> (72x72) // Legacy</li>
198<li><code>ipad_app_legacy_2x</code> (144x144) // Legacy</li>
199<li><code>android_mdpi</code> (48x48)</li>
200<li><code>android_hdpi</code> (72x72)</li>
201<li><code>android_xhdpi</code> (96x96)</li>
202<li><code>android_xxhdpi</code> (144x144)</li>
203<li><code>android_xxxhdpi</code> (192x192)</li>
204</ul>`,name:"icons",type:{names:["Object"]}}],scope:"static",summary:"<p>Set the icons for your mobile app.</p>"},"App.info":{kind:"function",longname:"App.info",memberof:"App",name:"info",options:[{description:`<p>Each of the options correspond to a key in the app's core configuration
205as described in the <a href="http://cordova.apache.org/docs/en/5.1.1/config_ref_index.md.html#The%20config.xml%20File_core_configuration_elements">Cordova documentation</a>.</p>`,name:"id, version, name, description, author, email, website",optional:!0,type:{names:["String"]}}],params:[{name:"options",type:{names:["Object"]}}],scope:"static",summary:"<p>Set your mobile app's core configuration information.</p>"},"App.launchScreens":{kind:"function",longname:"App.launchScreens",memberof:"App",name:"launchScreens",options:[],params:[{description:`<p>A dictionary where keys are different
206devices, screen sizes, and orientations, and the values are image paths
207relative to the project root directory or an object containing a dark mode image path too <code>{ src, srcDarkMode }</code> (iOS only).
208Note: If you want to have a dark theme splash screen on Android, please follow the instructions described <a href="https://developer.android.com/develop/ui/views/theming/darktheme">here</a>.</p>
209<p>For Android specific information, check the <a href="https://cordova.apache.org/docs/en/latest/core/features/splashscreen/index.html#android-specific-information">Cordova docs</a> and <a href="https://developer.android.com/develop/ui/views/launch/splash-screen#splash_screen_dimensions">Android docs</a>.
210Also note that for android the asset can either be an XML Vector Drawable or PNG.</p>
211<p>For best practices when developing a splash image, see the <a href="https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/launch-screen/">Apple Guidelines</a>.
212To learn more about size classes for iOS, check out the <a href="https://cordova.apache.org/docs/en/10.x/reference/cordova-plugin-splashscreen/#size-classes">documentation</a> from Cordova.</p>
213<p>Valid key values:</p>
214<p>iOS:</p>
215<ul>
216<li><code>ios_universal</code> ([email protected] - 2732x2732 px) - All @2x devices, if device/mode specific is not declared</li>
217<li><code>ios_universal_3x</code> ([email protected] - 2208x2208 px) - All @3x devices, if device/mode specific is not declared</li>
218<li><code>Default@2x~universal~comany</code> (1278x2732 px) - All @2x devices in portrait mode</li>
219<li><code>Default@2x~universal~comcom</code> (1334x750 px) - All @2x devices in landscape (narrow) mode</li>
220<li><code>Default@3x~universal~anycom</code> (2208x1242 px) - All @3x devices in landscape (wide) mode</li>
221<li><code>Default@3x~universal~comany</code> (1242x2208 px) - All @3x devices in portrait mode</li>
222<li><code>Default@2x~iphone~anyany</code> (1334x1334 px) - iPhone SE/6s/7/8/XR</li>
223<li><code>Default@2x~iphone~comany</code> (750x1334 px) - iPhone SE/6s/7/8/XR - portrait mode</li>
224<li><code>Default@2x~iphone~comcom</code> (1334x750 px) - iPhone SE/6s/7/8/XR - landscape (narrow) mode</li>
225<li><code>Default@3x~iphone~anyany</code> (2208x2208 px) - iPhone 6s Plus/7 Plus/8 Plus/X/XS/XS Max</li>
226<li><code>Default@3x~iphone~anycom</code> (2208x1242 px) - iPhone 6s Plus/7 Plus/8 Plus/X/XS/XS Max - landscape (wide) mode</li>
227<li><code>Default@3x~iphone~comany</code> (1242x2208 px) - iPhone 6s Plus/7 Plus/8 Plus/X/XS/XS Max - portrait mode</li>
228<li><code>Default@2x~ipad~anyany</code> (2732x2732 px) - iPad Pro 12.9&quot;/11&quot;/10.5&quot;/9.7&quot;/7.9&quot;</li>
229<li><code>Default@2x~ipad~comany</code> (1278x2732 px) - iPad Pro 12.9&quot;/11&quot;/10.5&quot;/9.7&quot;/7.9&quot; - portrait mode</li>
230</ul>
231<p>Android:</p>
232<ul>
233<li><code>android_universal</code> (288x288 dp)</li>
234</ul>`,name:"launchScreens",type:{names:["Object"]}}],scope:"static",summary:"<p>Set the launch screen images for your mobile app.</p>"},"App.setPreference":{kind:"function",longname:"App.setPreference",memberof:"App",name:"setPreference",options:[],params:[{description:`<p>A preference name supported by Cordova's
235<code>config.xml</code>.</p>`,name:"name",type:{names:["String"]}},{description:"<p>The value for that preference.</p>",name:"value",type:{names:["String"]}},{description:"<p>Optional. A platform name (either <code>ios</code> or <code>android</code>) to add a platform-specific preference.</p>",name:"platform",optional:!0,type:{names:["String"]}}],scope:"static",summary:`<p>
235Add a preference for your build as described in the
236<a href="http://cordova.apache.org/docs/en/5.1.1/config_ref_index.md.html#The%20config.xml%20File_global_preferences">Cordova documentation</a>.</p>`},"App.settings":{kind:"member",longname:"App.settings",memberof:"App",name:"settings",scope:"static",summary:`<p>Like <code>Meteor.settings</code>, contains data read from a JSON
237file provided via the <code>--settings</code> command-line option at
238build time, or null if no settings were provided.</p>`,type:{names:["Object"]}},Assets:{kind:"namespace",longname:"Assets",name:"Assets",scope:"global",summary:"<p>The namespace for Assets functions, lives in the bundler.</p>"},"Assets.absoluteFilePath":{kind:"function",locus:"Server [Not in build plugins]",longname:"Assets.absoluteFilePath",memberof:"Assets",name:"absoluteFilePath",options:[],params:[{description:"<p>The path of the asset, relative to the application's <code>private</code> subdirectory.</p>",name:"assetPath",type:{names:["String"]}}],scope:"static",summary:"<p>Get the absolute path to the static server asset. Note that assets are read-only.</p>"},"Assets.getBinaryAsync":{kind:"function",locus:"Server",longname:"Assets.getBinaryAsync",memberof:"Assets",name:"getBinaryAsync",options:[],params:[{description:"<p>The path of the asset, relative to the application's <code>private</code> subdirectory.</p>",name:"assetPath",type:{names:["String"]}},{description:"<p>Optional callback, which is called asynchronously with the error or result after the function is complete. If not provided, the function runs synchronously.</p>",name:"asyncCallback",optional:!0,type:{names:["function"]}}],scope:"static",summary:'<p>Retrieve the contents of the static server asset as an <a href="#ejson_new_binary">EJSON Binary</a>.</p>'},"Assets.getTextAsync":{kind:"function",locus:"Server",longname:"Assets.getTextAsync",memberof:"Assets",name:"getTextAsync",options:[],params:[{description:"<p>The path of the asset, relative to the application's <code>private</code> subdirectory.</p>",name:"assetPath",type:{names:["String"]}},{description:"<p>Optional callback, which is called asynchronously with the error or result after the function is complete. If not provided, the function runs synchronously.</p>",name:"asyncCallback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Retrieve the contents of the static server asset as a UTF8-encoded string.</p>"},CompileStep:{description:`<p>The comments for this class aren't used to generate docs right now.
239The docs live in the GitHub Wiki at: https://github.com/meteor/meteor/wiki/CompileStep-API-for-Build-Plugin-Source-Handlers</p>`,kind:"class",longname:"CompileStep",name:"CompileStep",options:[],params:[],scope:"global",summary:"<p>The object passed into Plugin.registerSourceHandler</p>"},"CompileStep#addAsset":{kind:"function",longname:"CompileStep#addAsset",memberof:"CompileStep",name:"addAsset",options:[],params:[{name:"options",type:{names:["Object"]}},{description:"<p>The path at which to serve the asset.</p>",name:"path",type:{names:["String"]}},{description:`<p>The data that should be placed in
240the file.</p>`,name:"data",type:{names:["Buffer","String"]}}],scope:"instance",summary:`<p>Add a file to serve as-is to the browser or to include on
241the browser, depending on the target. On the web, it will be served
242at the exact path requested. For server targets, it can be retrieved
243using <code>Assets.getText</code> or <code>Assets.getBinary</code>.</p>`},"CompileStep#addHtml":{kind:"function",longname:"CompileStep#addHtml",memberof:"CompileStep",name:"addHtml",options:[{description:`<p>Which section of the document should
244be appended to. Can only be &quot;head&quot; or &quot;body&quot;.</p>`,name:"section",type:{names:["String"]}},{description:"<p>The content to append.</p>",name:"data",type:{names:["String"]}}],params:[{name:"options",type:{names:["Object"]}}],scope:"instance",summary:`<p>Works in web targets only. Add markup to the <code>head</code> or <code>body</code>
245section of the document.</p>`},"CompileStep#addJavaScript":{kind:"function",longname:"CompileStep#addJavaScript",memberof:"CompileStep",name:"addJavaScript",options:[{description:`<p>The path at which the JavaScript file
246should be inserted, may not be honored in case of path conflicts.</p>`,name:"path",type:{names:["String"]}},{description:"<p>The code to be added.</p>",name:"data",type:{names:["String"]}},{description:`<p>The path that will be used in
247any error messages generated by this file, e.g. <code>foo.js:4:1: error</code>.</p>`,name:"sourcePath",type:{names:["String"]}}],params:[{name:"options",type:{names:["Object"]}}],scope:"instance",summary:`<p>Add JavaScript code. The code added will only see the
248namespaces imported by this package as runtime dependencies using
249<a href="#PackageAPI-use">'api.use'</a>. If the file being compiled was added
250with the bare flag, the resulting JavaScript won't be wrapped in a
251closure.</p>`},"CompileStep#addStylesheet":{kind:"function",longname:"CompileStep#addStylesheet",memberof:"CompileStep",name:"addStylesheet",options:[],params:[{name:"options",type:{names:["Object"]}},{description:`<p>The requested path for the added CSS, may not be
252satisfied if there are path conflicts.</p>`,name:"path",type:{names:["String"]}},{description:`<p>The content of the stylesheet that should be
253added.</p>`,name:"data",type:{names:["String"]}},{description:`<p>A stringified JSON sourcemap, in case the
254stylesheet was generated from a different file.</p>`,name:"sourceMap",type:{names:["String"]}}],scope:"instance",summary:"<p>Web targets only. Add a stylesheet to the document.</p>"},"CompileStep#arch":{kind:"member",longname:"CompileStep#arch",memberof:"CompileStep",name:"arch",scope:"instance",summary:`<p>The architecture for which we are building. Can be &quot;os&quot;,
255&quot;web.browser&quot;, or &quot;web.cordova&quot;.</p>`,type:{names:["String"]}},"CompileStep#declaredExports":{kind:"member",longname:"CompileStep#declaredExports",memberof:"CompileStep",name:"declaredExports",scope:"instance",summary:`<p>The list of exports that the current package has defined.
256Can be used to treat those symbols differently during compilation.</p>`,type:{names:["Object"]}},"CompileStep#error":{kind:"function",longname:"CompileStep#error",memberof:"CompileStep",name:"error",options:[],params:[{name:"options",type:{names:["Object"]}},{description:"<p>The error message to display.</p>",name:"message",type:{names:["String"]}},{description:"<p>The path to display in the error message.</p>",name:"sourcePath",optional:!0,type:{names:["String"]}},{description:"<p>The line number to display in the error message.</p>",name:"line",type:{names:["Integer"]}},{description:"<p>The function name to display in the error message.</p>",name:"func",type:{names:["String"]}}],scope:"instance",summary:"<p>Display a build error.</p>"},"CompileStep#fileOptions":{kind:"member",longname:"CompileStep#fileOptions",memberof:"CompileStep",name:"fileOptions",scope:"instance",summary:"<p>Any options passed to &quot;api.addFiles&quot;.</p>",type:{names:["Object"]}},"CompileStep#fullInputPath":{kind:"member",longname:"CompileStep#fullInputPath",memberof:"CompileStep",name:"fullInputPath",scope:"instance",summary:`<p>The filename and absolute path of the input file.
257Please don't use this filename to read the file from disk, instead
258use <a href="CompileStep-read">compileStep.read</a>.</p>`,type:{names:["String"]}},"CompileStep#inputPath":{kind:"member",longname:"CompileStep#inputPath",memberof:"CompileStep",name:"inputPath",scope:"instance",summary:`<p>The filename and relative path of the input file.
259Please don't use this filename to read the file from disk, instead
260use <a href="CompileStep-read">compileStep.read</a>.</p>`,type:{names:["String"]}},"CompileStep#inputSize":{kind:"member",longname:"CompileStep#inputSize",memberof:"CompileStep",name:"inputSize",scope:"instance",summary:"<p>The total number of bytes in the input file.</p>",type:{names:["Integer"]}},"CompileStep#packageName":{kind:"member",longname:"CompileStep#packageName",memberof:"CompileStep",name:"packageName",scope:"instance",summary:"<p>The name of the package in which the file being built exists.</p>",type:{names:["String"]}},"CompileStep#pathForSourceMap":{kind:"member",longname:"CompileStep#pathForSourceMap",memberof:"CompileStep",name:"pathForSourceMap",scope:"instance",summary:`<p>If you are generating a sourcemap for the compiled file, use
261this path for the original file in the sourcemap.</p>`,type:{names:["String"]}},"CompileStep#read":{kind:"function",longname:"CompileStep#read",memberof:"CompileStep",name:"read",options:[],params:[{description:"<p>The number of bytes to return.</p>",name:"n",optional:!0,type:{names:["Integer"]}}],returns:[{type:{names:["Buffer"]}}],scope:"instance",summary:`<p>Read from the input file. If <code>n</code> is specified, returns the
262next <code>n</code> bytes of the file as a Buffer. XXX not sure if this actually
263returns a String sometimes...</p>`},"CompileStep#rootOutputPath":{kind:"member",longname:"CompileStep#rootOutputPath",memberof:"CompileStep",name:"rootOutputPath",scope:"instance",summary:`<p>On web targets, this will be the root URL prepended
264to the paths you pick for your output files. For example,
265it could be &quot;/packages/my-package&quot;.</p>`,type:{names:["String"]}},Cordova:{kind:"namespace",longname:"Cordova",name:"Cordova",scope:"global",summary:"<p>The Cordova object in package.js.</p>"},DDP:{filepath:"ddp-client/common/namespace.js",kind:"namespace",lineno:11,longname:"DDP",module:"ddp-client",name:"DDP",scope:"global",summary:"<p>Namespace for DDP-related methods/classes.</p>"},"DDP.connect":{filepath:"ddp-client/common/namespace.js",kind:"function",lineno:69,locus:"Anywhere",longname:"DDP.connect",memberof:"DDP",module:"ddp-client",name:"connect",options:[{description:"<p>is it OK to reload if there are outstanding methods?</p>",name:"reloadWithOutstanding",type:{names:["Boolean"]}},{description:"<p>extra headers to send on the websockets connection, for server-to-server DDP only</p>",name:"headers",type:{names:["Object"]}},{description:"<p>Specifies options to pass through to the sockjs client</p>",name:"_sockjsOptions",type:{names:["Object"]}},{description:"<p>callback when version negotiation fails.</p>",name:"onDDPNegotiationVersionFailure",type:{names:["function"]}}],params:[{description:"<p>The URL of another Meteor application.</p>",name:"url",type:{names:["String"]}},{name:"options",optional:!0,type:{names:["Object"]}}],scope:"static",summary:"<p>Connect to the server of a different Meteor application to subscribe to its document sets and invoke its remote methods.</p>"},"DDP.onReconnect":{filepath:"ddp-client/common/namespace.js",kind:"function",lineno:96,locus:"Anywhere",longname:"DDP.onReconnect",memberof:"DDP",module:"ddp-client",name:"onReconnect",options:[],params:[{description:`<p>The function to call. It will be called with a
266single argument, the <a href="#ddp_connect">connection object</a> that is reconnecting.</p>`,name:"callback",type:{names:["function"]}}],scope:"static",summary:`<p>Register a function to call as the first step of
267reconnecting. This function can call methods which will be executed before
268any other outstanding methods. For example, this can be used to re-establish
269the appropriate authentication context on the connection.</p>`},DDPCommon:{filepath:"ddp-common/namespace.js",kind:"namespace",lineno:1,longname:"DDPCommon",module:"ddp-common",name:"DDPCommon",scope:"global",summary:`<p>Namespace for DDPCommon-related methods/classes. Shared between
270<code>ddp-client</code> and <code>ddp-server</code>, where the ddp-client is the implementation
271of a ddp client for both client AND server; and the ddp server is the
272implementation of the livedata server and stream server. Common
273functionality shared between both can be shared under this namespace</p>`},"DDPCommon.MethodInvocation":{filepath:"ddp-common/method_invocation.js",instancename:"this",kind:"class",lineno:10,longname:"DDPCommon.MethodInvocation",memberof:"DDPCommon",module:"ddp-common",name:"MethodInvocation",options:[],params:[{name:"options",type:{names:["Object"]}}],scope:"static",showinstancename:"true",summary:`<p>The state for a single invocation of a method, referenced by this
274inside a method definition.</p>`},"DDPCommon.MethodInvocation#connection":{filepath:"ddp-common/method_invocation.js",kind:"member",lineno:66,locus:"Server",longname:"DDPCommon.MethodInvocation#connection",memberof:"DDPCommon.MethodInvocation",module:"ddp-common",name:"connection",scope:"instance",summary:'<p>Access inside a method invocation. The <a href="#meteor_onconnection">connection</a> that this method was received on. <code>null</code> if the method is not associated with a connection, eg. a server initiated method call. Calls to methods made from a server method which was in turn initiated from the client share the same <code>connection</code>.</p>'},"DDPCommon.MethodInvocation#isSimulation":{filepath:"ddp-common/method_invocation.js",kind:"member",lineno:30,locus:"Anywhere",longname:"DDPCommon.MethodInvocation#isSimulation",memberof:"DDPCommon.MethodInvocation",module:"ddp-common",name:"isSimulation",scope:"instance",summary:"<p>Access inside a method invocation.  Boolean value, true if this invocation is a stub.</p>",type:{names:["Boolean"]}},"DDPCommon.MethodInvocation#name":{filepath:"ddp-common/method_invocation.js",kind:"member",lineno:20,locus:"Anywhere",longname:"DDPCommon.MethodInvocation#name",memberof:"DDPCommon.MethodInvocation",module:"ddp-common",name:"name",scope:"instance",summary:"<p>The name given to the method.</p>",type:{names:["String"]}},"DDPCommon.MethodInvocation#setUserId":{async:!0,filepath:"ddp-common/method_invocation.js",kind:"function",lineno:102,locus:"Server",longname:"DDPCommon.MethodInvocation#setUserId",memberof:"DDPCommon.MethodInvocation",module:"ddp-common",name:"setUserId",options:[],params:[{description:"<p>The value that should be returned by <code>userId</code> on this connection.</p>",name:"userId",type:{names:["String","null"]}}],scope:"instance",summary:"<p>Set the logged in user.</p>"},"DDPCommon.MethodInvocation#unblock":{filepath:"ddp-common/method_invocation.js",kind:"function",lineno:90,locus:"Server",longname:"DDPCommon.MethodInvocation#unblock",memberof:"DDPCommon.MethodInvocation",module:"ddp-common",name:"unblock",options:[],params:[],scope:"instance",summary:"<p>Call inside a method invocation.  Allow subsequent method from this client to begin running in a new fiber.</p>"},"DDPCommon.MethodInvocation#userId":{filepath:"ddp-common/method_invocation.js",kind:"member",lineno:51,locus:"Anywhere",longname:"DDPCommon.MethodInvocation#userId",memberof:"DDPCommon.MethodInvocation",module:"ddp-common",name:"userId",scope:"instance",summary:"<p>The id of the user that made this method call, or <code>null</code> if no user was logged in.</p>"},"DDPRateLimiter.addRule":{filepath:"ddp-rate-limiter/ddp-rate-limiter.js",kind:"function",lineno:103,locus:"Server",longname:"DDPRateLimiter.addRule",memberof:"DDPRateLimiter",module:"ddp-rate-limiter",n
274ame:"addRule",options:[],params:[{description:`<p>Matchers specify which events are counted towards a rate limit. A matcher
275is an object that has a subset of the same properties as the event objects
276described above. Each value in a matcher object is one of the following:</p>
277<ul>
278<li>
279<p>a string: for the event to satisfy the matcher, this value must be equal
280to the value of the same property in the event object</p>
281</li>
282<li>
283<p>a function: for the event to satisfy the matcher, the function must
284evaluate to true when passed the value of the same property
285in the event object</p>
286</li>
287</ul>
288<p>Here's how events are counted: Each event that satisfies the matcher's
289filter is mapped to a bucket. Buckets are uniquely determined by the
290event object's values for all properties present in both the matcher and
291event objects.</p>`,name:"matcher",type:{names:["Object"]}},{description:`<p>number of requests allowed per time interval.
292Default = 10.</p>`,name:"numRequests",type:{names:["number"]}},{description:`<p>time interval in milliseconds after which
293rule's counters are reset. Default = 1000.</p>`,name:"timeInterval",type:{names:["number"]}},{description:"<p>function to be called after a rule is executed.</p>",name:"callback",type:{names:["function"]}}],scope:"static",summary:`<p>Add a rule that matches against a stream of events describing method or
294subscription attempts. Each event is an object with the following
295properties:</p>
296<ul>
297<li><code>type</code>: Either &quot;method&quot; or &quot;subscription&quot;</li>
298<li><code>name</code>: The name of the method or subscription being called</li>
299<li><code>userId</code>: The user ID attempting the method or subscription</li>
300<li><code>connectionId</code>: A string representing the user's DDP connection</li>
301<li><code>clientAddress</code>: The IP address of the user</li>
302</ul>
303<p>Returns unique <code>ruleId</code> that can be passed to <code>removeRule</code> and <code>setErrorMessageOnRule</code></p>`},"DDPRateLimiter.removeRule":{filepath:"ddp-rate-limiter/ddp-rate-limiter.js",kind:"function",lineno:115,locus:"Server",longname:"DDPRateLimiter.removeRule",memberof:"DDPRateLimiter",module:"ddp-rate-limiter",name:"removeRule",options:[],params:[{description:"<p>'ruleId' returned from <code>addRule</code></p>",name:"id",type:{names:["string"]}}],returns:[{description:"<p>True if a rule was removed.</p>",type:{names:["boolean"]}}],scope:"static",summary:`<p>Removes the specified rule from the rate limiter. If rule had
304hit a rate limit, that limit is removed as well.</p>`},"DDPRateLimiter.setErrorMessage":{filepath:"ddp-rate-limiter/ddp-rate-limiter.js",kind:"function",lineno:47,locus:"Server",longname:"DDPRateLimiter.setErrorMessage",memberof:"DDPRateLimiter",module:"ddp-rate-limiter",name:"setErrorMessage",options:[],params:[{description:`<p>Functions are passed in an object with a
305<code>timeToReset</code> field that specifies the number of milliseconds until the next
306method or subscription is allowed to run. The function must return a string
307of the error message.</p>`,name:"message",type:{names:["string","function"]}}],scope:"static",summary:`<p>Set error message text when method or subscription rate limit
308exceeded.</p>`},"DDPRateLimiter.setErrorMessageOnRule":{filepath:"ddp-rate-limiter/ddp-rate-limiter.js",kind:"function",lineno:61,locus:"Server",longname:"DDPRateLimiter.setErrorMessageOnRule",memberof:"DDPRateLimiter",module:"ddp-rate-limiter",name:"setErrorMessageOnRule",options:[],params:[{description:"<p>The ruleId returned from <code>addRule</code></p>",name:"ruleId",type:{names:["string"]}},{description:`<p>Functions are passed in an object with a
309<code>timeToReset</code> field that specifies the number of milliseconds until the next
310method or subscription is allowed to run. The function must return a string
311of the error message.</p>`,name:"message",type:{names:["string","function"]}}],scope:"static",summary:`<p>Set error message text when method or subscription rate limit
312exceeded for a specific rule.</p>`},"DocumentProcessors#_process_added":{async:!0,filepath:"ddp-client/common/document_processors.js",kind:"function",lineno:16,longname:"DocumentProcessors#_process_added",memberof:"DocumentProcessors",module:"ddp-client",name:"_process_added",options:[],params:[{description:"<p>The added message</p>",name:"msg",type:{names:["Object"]}},{description:"<p>The updates accumulator</p>",name:"updates",type:{names:["Object"]}}],scope:"instance",summary:"<p>Process an 'added' message from the server</p>"},"DocumentProcessors#_process_changed":{filepath:"ddp-client/common/document_processors.js",kind:"function",lineno:50,longname:"DocumentProcessors#_process_changed",memberof:"DocumentProcessors",module:"ddp-client",name:"_process_changed",options:[],params:[{description:"<p>The changed message</p>",name:"msg",type:{names:["Object"]}},{description:"<p>The updates accumulator</p>",name:"updates",type:{names:["Object"]}}],scope:"instance",summary:"<p>Process a 'changed' message from the server</p>"},"DocumentProcessors#_process_ready":{filepath:"ddp-client/common/document_processors.js",kind:"function",lineno:93,longname:"DocumentProcessors#_process_ready",memberof:"DocumentProcessors",module:"ddp-client",name:"_process_ready",options:[],params:[{description:"<p>The ready message</p>",name:"msg",type:{names:["Object"]}},{description:"<p>The updates accumulator</p>",name:"updates",type:{names:["Object"]}}],scope:"instance",summary:"<p>Process a 'ready' message from the server</p>"},"DocumentProcessors#_process_removed":{filepath:"ddp-client/common/document_processors.js",kind:"function",lineno:69,longname:"DocumentProcessors#_process_removed",memberof:"DocumentProcessors",module:"ddp-client",name:"_process_removed",options:[],params:[{description:"<p>The removed message</p>",name:"msg",type:{names:["Object"]}},{description:"<p>The updates accumulator</p>",name:"updates",type:{names:["Object"]}}],scope:"instance",summary:"<p>Process a 'removed' message from the server</p>"},"DocumentProcessors#_process_updated":{filepath:"ddp-client/common/document_processors.js",kind:"function",lineno:118,longname:"DocumentProcessors#_process_updated",memberof:"DocumentProcessors",module:"ddp-client",name:"_process_updated",options:[],params:[{description:"<p>The updated message</p>",name:"msg",type:{names:["Object"]}},{description:"<p>The updates accumulator</p>",name:"updates",type:{names:["Object"]}}],scope:"instance",summary:"<p>Process an 'updated' message from the server</p>"},EJSON:{filepath:"ejson/ejson.js",kind:"namespace",lineno:18,longname:"EJSON",module:"ejson",name:"EJSON",params:[],scope:"global",summary:"<p>Namespace for EJSON functions</p>"},"EJSON.CustomType":{filepath:"ejson/ejson.js",instancename:"customType",kind:"class",lineno:21,longname:"EJSON.CustomType",memberof:"EJSON",module:"ejson",name:"CustomType",options:[],params:[],scope:"static",summary:`<p>The interface that a class must satisfy to be able to become an
313EJSON custom type via EJSON.addType.</p>`}
313,"EJSON.CustomType#clone":{filepath:"ejson/ejson.js",kind:"function",lineno:47,locus:"Anywhere",longname:"EJSON.CustomType#clone",memberof:"EJSON.CustomType",module:"ejson",name:"clone",options:[],params:[],scope:"instance",summary:`<p>Return a value <code>r</code> such that <code>this.equals(r)</code> is true, and
314modifications to <code>r</code> do not affect <code>this</code> and vice versa.</p>`},"EJSON.CustomType#equals":{filepath:"ejson/ejson.js",kind:"function",lineno:56,locus:"Anywhere",longname:"EJSON.CustomType#equals",memberof:"EJSON.CustomType",module:"ejson",name:"equals",options:[],params:[{description:"<p>Another object to compare this to.</p>",name:"other",type:{names:["Object"]}}],scope:"instance",summary:`<p>Return <code>true</code> if <code>other</code> has a value equal to <code>this</code>; <code>false</code>
315otherwise.</p>`},"EJSON.CustomType#toJSONValue":{filepath:"ejson/ejson.js",kind:"function",lineno:39,locus:"Anywhere",longname:"EJSON.CustomType#toJSONValue",memberof:"EJSON.CustomType",module:"ejson",name:"toJSONValue",options:[],params:[],scope:"instance",summary:"<p>Serialize this instance into a JSON-compatible value.</p>"},"EJSON.CustomType#typeName":{filepath:"ejson/ejson.js",kind:"function",lineno:29,locus:"Anywhere",longname:"EJSON.CustomType#typeName",memberof:"EJSON.CustomType",module:"ejson",name:"typeName",options:[],params:[],scope:"instance",summary:`<p>Return the tag used to identify this type.  This must match the
316tag used to register this type with
317<a href="#ejson_add_type"><code>EJSON.addType</code></a>.</p>`},"EJSON.addType":{filepath:"ejson/ejson.js",kind:"function",lineno:91,locus:"Anywhere",longname:"EJSON.addType",memberof:"EJSON",module:"ejson",name:"addType",options:[],params:[{description:`<p>A tag for your custom type; must be unique among
318custom data types defined in your project, and must
319match the result of your type's <code>typeName</code> method.</p>`,name:"name",type:{names:["String"]}},{description:`<p>A function that deserializes a JSON-compatible
320value into an instance of your type.  This should
321match the serialization performed by your
322type's <code>toJSONValue</code> method.</p>`,name:"factory",type:{names:["function"]}}],scope:"static",summary:"<p>Add a custom datatype to EJSON.</p>"},"EJSON.clone":{filepath:"ejson/ejson.js",kind:"function",lineno:659,locus:"Anywhere",longname:"EJSON.clone",memberof:"EJSON",module:"ejson",name:"clone",options:[],params:[{description:"<p>A value to copy.</p>",name:"val",type:{names:["EJSON"]}}],scope:"static",summary:"<p>Return a deep copy of <code>val</code>.</p>"},"EJSON.equals":{filepath:"ejson/ejson.js",kind:"function",lineno:537,locus:"Anywhere",longname:"EJSON.equals",memberof:"EJSON",module:"ejson",name:"equals",options:[{description:`<p>Compare in key sensitive order,
323if supported by the JavaScript implementation.  For example, <code>{a: 1, b: 2}</code>
324is equal to <code>{b: 2, a: 1}</code> only when <code>keyOrderSensitive</code> is <code>false</code>.  The
325default is <code>false</code>.</p>`,name:"keyOrderSensitive",type:{names:["Boolean"]}}],params:[{name:"a",type:{names:["EJSON"]}},{name:"b",type:{names:["EJSON"]}},{name:"options",optional:!0,type:{names:["Object"]}}],scope:"static",summary:`<p>Return true if <code>a</code> and <code>b</code> are equal to each other.  Return false
326otherwise.  Uses the <code>equals</code> method on <code>a</code> if present, otherwise
327performs a deep comparison.</p>`},"EJSON.fromJSONValue":{filepath:"ejson/ejson.js",kind:"function",lineno:471,locus:"Anywhere",longname:"EJSON.fromJSONValue",memberof:"EJSON",module:"ejson",name:"fromJSONValue",options:[],params:[{description:"<p>A value to deserialize into EJSON.</p>",name:"val",type:{names:["JSONCompatible"]}}],scope:"static",summary:"<p>Deserialize an EJSON value from its plain JSON representation.</p>"},"EJSON.isBinary":{filepath:"ejson/ejson.js",kind:"function",lineno:517,locus:"Anywhere",longname:"EJSON.isBinary",memberof:"EJSON",module:"ejson",name:"isBinary",options:[],params:[{description:"<p>The variable to check.</p>",name:"x",type:{names:["Object"]}}],scope:"static",summary:`<p>Returns true if <code>x</code> is a buffer of binary data, as returned from
328<a href="#ejson_new_binary"><code>EJSON.newBinary</code></a>.</p>`},"EJSON.newBinary":{filepath:"ejson/ejson.js",kind:"member",lineno:723,locus:"Anywhere",longname:"EJSON.newBinary",memberof:"EJSON",module:"ejson",name:"newBinary",params:[{description:"<p>The number of bytes of binary data to allocate.</p>",name:"size",type:{names:["Number"]}}],scope:"static",summary:"<p>Allocate a new buffer of binary data that EJSON can serialize.</p>"},"EJSON.parse":{filepath:"ejson/ejson.js",kind:"function",lineno:504,locus:"Anywhere",longname:"EJSON.parse",memberof:"EJSON",module:"ejson",name:"parse",options:[],params:[{description:"<p>A string to parse into an EJSON value.</p>",name:"str",type:{names:["String"]}}],scope:"static",summary:`<p>Parse a string into an EJSON value. Throws an error if the string
329is not valid EJSON.</p>`},"EJSON.stringify":{filepath:"ejson/ejson.js",kind:"member",lineno:487,locus:"Anywhere",longname:"EJSON.stringify",memberof:"EJSON",module:"ejson",name:"stringify",params:[{description:"<p>A value to stringify.</p>",name:"val",type:{names:["EJSON"]}},{name:"options",optional:!0,type:{names:["Object"]}},{description:`<p>Indents objects and
330arrays for easy readability.  When <code>true</code>, indents by 2 spaces; when an
331integer, indents by that number of spaces; and when a string, uses the
332string as the indentation pattern.</p>`,name:"options.indent",optional:!0,type:{names:["Boolean","Integer","String"]}},{description:`<p>When <code>true</code>, stringifies keys in an
333object in sorted order.</p>`,name:"options.canonical",optional:!0,type:{names:["Boolean"]}}],scope:"static",summary:`<p>Serialize a value to a string. For EJSON values, the serialization
334fully represents the value. For non-EJSON values, serializes the
335same way as <code>JSON.stringify</code>.</p>`},"EJSON.toJSONValue":{filepath:"ejson/ejson.js",kind:"function",lineno:358,locus:"Anywhere",longname:"EJSON.toJSONValue",memberof:"EJSON",module:"ejson",name:"toJSONValue",options:[],params:[{description:"<p>A value to serialize to plain JSON.</p>",name:"val",type:{names:["EJSON"]}}],scope:"static",summary:`<p>Serialize an EJSON-compatible value into its plain JSON
336representation.</p>`},"Email.customTransport":{filepath:"email/email.js",kind:"member",lineno:199,locus:"Server",longname:"Email.customTransport",memberof:"Email",module:"email",name:"customTransport",params:[{description:`<p>function that will receive options from the send function and under <code>packageSettings</code> will
337include the package settings from Meteor.settings.packages.email for your custom transport to access.</p>`,name:"f",type:{names:["function"]}}],scope:"static",since:"2.2",summary:"<p>Overrides sending function with your own.</p>"},"Email.hookSend":{filepath:"email/email.js",kind:"function",lineno:188,locus:"Server",longname:"Email.hookSend",memberof:"Email",module:"email",name:"hookSend",options:[],params:[{description:`<p>receives the arguments to Email.send and should return true to go
338ahead and send the email (or at least, try subsequent hooks), or
339false to skip sending.</p>`,name:"f",type:{names:["function"]}}],returns:[{type:{names:["Object"]}}],scope:"static",summary:"<p>Hook that runs before email is sent.</p>"},"Email.send":{deprecated:!0,filepath:"email/email.js",kind:"function",lineno:319,locus:"Server",longname:"Email.send",memberof:"Email",module:"email",name:"send",options:[{description:"<p>&quot;From:&quot; address (required)</p>",name:"from",type:{names:["String"]}},{description:"<p>&quot;To:&quot;, &quot;Cc:&quot;, &quot;Bcc:&quot;, and &quot;Reply-To:&quot; addresses</p>",name:"to, cc, bcc, replyTo",type:{names:["String","Array.<String>"]}},{description:"<p>Message-ID this message is replying to</p>",name:"inReplyTo",optional:!0,type:{names:["String"]}},{description:"<p>Array (or space-separated string) of Message-IDs to refer to</p>",name:"references",optional:!0,type:{names:["String","Array.<String>"]}},{description:"<p>Message-ID for this message; otherwise, will be set to a random value</p>",name:"messageId",optional:!0,type:{names:["String"]}},{description:"<p>&quot;Subject:&quot; line</p>",name:"subject",optional:!0,type:{names:["String"]}},{description:"<p>Mail body (in plain text and/or HTML)</p>",name:"text, html",optional:!0,type:{names:["String"]}},{description:"<p>Mail body in HTML specific for Apple Watch</p>",name:"watchHtml",optional:!0,type:{names:["String"]}},{description:"<p>iCalendar event attachment</p>",name:"icalEvent",optional:!0,type:{names:["String"]}},{description:"<p>Dictionary of custom headers - e.g. <code>{ &quot;header name&quot;: &quot;header value&quot; }</code>. To set an object under a header name, use <code>JSON.stringify</code> - e.g. <code>{ &quot;header name&quot;: JSON.stringify({ tracking: { level: 'full' } }) }</code>.</p>",name:"headers",optional:!0,type:{names:["Object"]}},{description:`<p>Array of attachment objects, as
340described in the <a href="https://nodemailer.com/message/attachments/">nodemailer documentation</a>.</p>`,name:"attachments",optional:!0,type:{names:["Array.<Object>"]}},{description:`<p>A <a href="https://nodemailer.com/extras/mailcomposer/#e-mail-message-fields">MailComposer</a>
341object representing the message to be sent.  Overrides all other options.
342You can create a <code>MailComposer</code> object via
343<code>new EmailInternals.NpmModules.mailcomposer.module</code>.</p>`,name:"mailComposer",optional:!0,type:{names:["MailComposer"]}},{description:"<p>An array that holds the public keys used to encrypt.</p>",name:"encryptionKeys",optional:!0,type:{names:["String"]}},{description:"<p>Enables you to allow or disallow email signing.</p>",name:"shouldSign",optional:!0,type:{names:["String"]}}],params:[{name:"options",type:{names:["Object"]}}],returns:[{type:{names:["Promise"]}}],scope:"static",summary:`<p>Send an email with asyncronous method. Capture  Throws an <code>Error</code> on failure to contact mail server
344or if mail server returns an error. All fields should match
345<a href="http://tools.ietf.org/html/rfc5322">RFC5322</a> specification.</p>
346<p>If the <code>MAIL_URL</code> environment variable is set, actually sends the email.
347Otherwise, prints the contents of the email to standard out.</p>
348<p>Note that this package is based on <strong>nodemailer</strong>, so make sure to refer to
349<a href="http://nodemailer.com/">the documentation</a>
350when using the <code>attachments</code> or <code>mailComposer</code> options.</p>`},"Email.sendAsync":{filepath:"email/email.js",kind:"function",lineno:234,locus:"Server",longname:"Email.sendAsync",memberof:"Email",module:"email",name:"sendAsync",options:[{description:"<p>&quot;From:&quot; address (required)</p>",name:"from",type:{names:["String"]}},{description:"<p>&quot;To:&quot;, &quot;Cc:&quot;, &quot;Bcc:&quot;, and &quot;Reply-To:&quot; addresses</p>",name:"to, cc, bcc, replyTo",type:{names:["String","Array.<String>"]}},{description:"<p>Message-ID this message is replying to</p>",name:"inReplyTo",optional:!0,type:{names:["String"]}},{description:"<p>Array (or space-separated string) of Message-IDs to refer to</p>",name:"references",optional:!0,type:{names:["String","Array.<String>"]}},{description:"<p>Message-ID for this message; otherwise, will be set to a random value</p>",name:"messageId",optional:!0,type:{names:["String"]}},{description:"<p>&quot;Subject:&quot; line</p>",name:"subject",optional:!0,type:{names:["String"]}},{description:"<p>Mail body (in plain text and/or HTML)</p>",name:"text, html",optional:!0,type:{names:["String"]}},{description:"<p>Mail body in HTML specific for Apple Watch</p>",name:"watchHtml",optional:!0,type:{names:["String"]}},{description:"<p>iCalendar event attachment</p>",name:"icalEvent",optional:!0,type:{names:["String"]}},{description:"<p>Dictionary of custom headers - e.g. <code>{ &quot;header name&quot;: &quot;header value&quot; }</code>. To set an object under a header name, use <code>JSON.stringify</code> - e.g. <code>{ &quot;header name&quot;: JSON.stringify({ tracking: { level: 'full' } }) }</code>.</p>",name:"headers",optional:!0,type:{names:["Object"]}},{description:`<p>Array of attachment objects, as
351described in the <a href="https://nodemailer.com/message/attachments/">nodemailer documentation</a>.</p>`,name:"attachments",optional:!0,type:{names:["Array.<Object>"]}},{description:`<p>A <a href="https://nodemailer.com/extras/mailcomposer/#e-mail-message-fields">MailComposer</a>
352object representing the message to be sent.  Overrides all other options.
353You can create a <code>MailComposer</code> object via
354<code>new EmailInternals.NpmModules.mailcomposer.module</code>.</p>`,name:"mailComposer",optional:!0,type:{names:["MailComposer"]}}],params:[{name:"options",type:{names:["Object"]}}],returns:[{type:{names:["Promise"]}}],scope:"static",summary:`<p>Send an email with asyncronous method. Capture  Throws an <code>Error</code> on failure to contact mail server
355or if mail server returns an error. All fields should match
356<a href="http://tools.ietf.org/html/rfc5322">RFC5322</a> specification.</p>
357<p>If the <code>MAIL_URL</code> environment variable is set, actually sends the email.
358Otherwise, prints the contents of the email to standard out.</p>
359<p>Note that this package is based on <strong>nodemailer</strong>, so make sure to refer to
360<a href="http://nodemailer.com/">the documentation</a>
361when using the <code>attachments</code> or <code>mailComposer</code>
361 options.</p>`},"HTTP.call":{deprecated:!0,filepath:"deprecated/http/httpcall_client.js",kind:"function",lineno:24,locus:"Anywhere",longname:"HTTP.call",memberof:"HTTP",module:"deprecated",name:"call",options:[{description:"<p>String to use as the HTTP request body.</p>",name:"content",type:{names:["String"]}},{description:"<p>JSON-able object to stringify and use as the HTTP request body. Overwrites <code>content</code>.</p>",name:"data",type:{names:["Object"]}},{description:"<p>Query string to go in the URL. Overwrites any query string in <code>url</code>.</p>",name:"query",type:{names:["String"]}},{description:"<p>Dictionary of request parameters to be encoded and placed in the URL (for GETs) or request body (for POSTs).  If <code>content</code> or <code>data</code> is specified, <code>params</code> will always be placed in the URL.</p>",name:"params",type:{names:["Object"]}},{description:"<p>HTTP basic authentication string of the form <code>&quot;username:password&quot;</code></p>",name:"auth",type:{names:["String"]}},{description:"<p>Dictionary of strings, headers to add to the HTTP request.</p>",name:"headers",type:{names:["Object"]}},{description:"<p>Maximum time in milliseconds to wait for the request before failing.  There is no timeout by default.</p>",name:"timeout",type:{names:["Number"]}},{description:"<p>If <code>true</code>, transparently follow HTTP redirects. Cannot be set to <code>false</code> on the client. Default <code>true</code>.</p>",name:"followRedirects",type:{names:["Boolean"]}},{description:"<p>On the client, this will be called before the request is sent to allow for more direct manipulation of the underlying XMLHttpRequest object, which will be passed as the first argument. If the callback returns <code>false</code>, the request will be not be sent.</p>",name:"beforeSend",type:{names:["function"]}}],params:[{description:'<p>The <a href="http://en.wikipedia.org/wiki/HTTP_method">HTTP method</a> to use, such as &quot;<code>GET</code>&quot;, &quot;<code>POST</code>&quot;, or &quot;<code>HEAD</code>&quot;.</p>',name:"method",type:{names:["String"]}},{description:"<p>The URL to retrieve.</p>",name:"url",type:{names:["String"]}},{name:"options",optional:!0,type:{names:["Object"]}},{description:"<p>Optional callback.  If passed, the method runs asynchronously, instead of synchronously, and calls asyncCallback.  On the client, this callback is required.</p>",name:"asyncCallback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Perform an outbound HTTP request.</p>"},"HTTP.del":{deprecated:!0,filepath:"deprecated/http/httpcall_common.js",kind:"function",lineno:90,locus:"Anywhere",longname:"HTTP.del",memberof:"HTTP",module:"deprecated",name:"del",options:[],params:[{description:"<p>The URL to which the request should be sent.</p>",name:"url",type:{names:["String"]}},{description:'<p>Options passed on to <a href="#http_call"><code>HTTP.call</code></a>.</p>',name:"callOptions",optional:!0,type:{names:["Object"]}},{description:"<p>Callback that is called when the request is completed. Required on the client.</p>",name:"asyncCallback",optional:!0,type:{names:["function"]}}],scope:"static",summary:'<p>Send an HTTP <code>DELETE</code> request. Equivalent to calling <a href="#http_call"><code>HTTP.call</code></a> with &quot;DELETE&quot; as the first argument. (Named <code>del</code> to avoid conflict with the Javascript keyword <code>delete</code>)</p>'},"HTTP.get":{deprecated:!0,filepath:"deprecated/http/httpcall_common.js",kind:"function",lineno:54,locus:"Anywhere",longname:"HTTP.get",memberof:"HTTP",module:"deprecated",name:"get",options:[],params:[{description:"<p>The URL to which the request should be sent.</p>",name:"url",type:{names:["String"]}},{description:'<p>Options passed on to <a href="#http_call"><code>HTTP.call</code></a>.</p>',name:"callOptions",optional:!0,type:{names:["Object"]}},{description:"<p>Callback that is called when the request is completed. Required on the client.</p>",name:"asyncCallback",optional:!0,type:{names:["function"]}}],scope:"static",summary:'<p>Send an HTTP <code>GET</code> request. Equivalent to calling <a href="#http_call"><code>
361HTTP.call</code></a> with &quot;GET&quot; as the first argument.</p>'},"HTTP.patch":{deprecated:!0,filepath:"deprecated/http/httpcall_common.js",kind:"function",lineno:102,locus:"Anywhere",longname:"HTTP.patch",memberof:"HTTP",module:"deprecated",name:"patch",options:[],params:[{description:"<p>The URL to which the request should be sent.</p>",name:"url",type:{names:["String"]}},{description:'<p>Options passed on to <a href="#http_call"><code>HTTP.call</code></a>.</p>',name:"callOptions",optional:!0,type:{names:["Object"]}},{description:"<p>Callback that is called when the request is completed. Required on the client.</p>",name:"asyncCallback",optional:!0,type:{names:["function"]}}],scope:"static",summary:'<p>Send an HTTP <code>PATCH</code> request. Equivalent to calling <a href="#http_call"><code>HTTP.call</code></a> with &quot;PATCH&quot; as the first argument.</p>'},"HTTP.post":{deprecated:!0,filepath:"deprecated/http/httpcall_common.js",kind:"function",lineno:66,locus:"Anywhere",longname:"HTTP.post",memberof:"HTTP",module:"deprecated",name:"post",options:[],params:[{description:"<p>The URL to which the request should be sent.</p>",name:"url",type:{names:["String"]}},{description:'<p>Options passed on to <a href="#http_call"><code>HTTP.call</code></a>.</p>',name:"callOptions",optional:!0,type:{names:["Object"]}},{description:"<p>Callback that is called when the request is completed. Required on the client.</p>",name:"asyncCallback",optional:!0,type:{names:["function"]}}],scope:"static",summary:'<p>Send an HTTP <code>POST</code> request. Equivalent to calling <a href="#http_call"><code>HTTP.call</code></a> with &quot;POST&quot; as the first argument.</p>'},"HTTP.put":{deprecated:!0,filepath:"deprecated/http/httpcall_common.js",kind:"function",lineno:78,locus:"Anywhere",longname:"HTTP.put",memberof:"HTTP",module:"deprecated",name:"put",options:[],params:[{description:"<p>The URL to which the request should be sent.</p>",name:"url",type:{names:["String"]}},{description:'<p>Options passed on to <a href="#http_call"><code>HTTP.call</code></a>.</p>',name:"callOptions",optional:!0,type:{names:["Object"]}},{description:"<p>Callback that is called when the request is completed. Required on the client.</p>",name:"asyncCallback",optional:!0,type:{names:["function"]}}],scope:"static",summary:'<p>Send an HTTP <code>PUT</code> request. Equivalent to calling <a href="#http_call"><code>HTTP.call</code></a> with &quot;PUT&quot; as the first argument.</p>'},"InputFile#addAsset":{kind:"function",longname:"InputFile#addAsset",memberof:"InputFile",name:"addAsset",options:[{description:"<p>The path at which to serve the asset.</p>",name:"path",type:{names:["String"]}},{description:`<p>The data that should be placed in the
362file.</p>`,name:"data",type:{names:["Buffer","String"]}},{description:`<p>Optionally, supply a hash for the output
363file.</p>`,name:"hash",optional:!0,type:{names:["String"]}}],params:[{name:"options",type:{names:["Object"]}},{description:`<p>Optional function that can be called
364to obtain any remaining options that may be
365expensive to compute, and thus should only be
366computed if/when we are sure this asset will be
367used by the application.</p>`,name:"lazyFinalizer",type:{names:["function"]}}],scope:"instance",summary:`<p>Add a file to serve as-is to the browser or to include on
368the browser, depending on the target. On the web, it will be served
369at the exact path requested. For server targets, it can be retrieved
370using <code>Assets.getText</code> or <code>Assets.getBinary</code>.</p>`},"InputFile#addHtml":{async:!0,kind:"function",longname:"InputFile#addHtml",memberof:"InputFile",name:"addHtml",options:[{description:`<p>Which section of the document should
371be appended to. Can only be &quot;head&quot; or &quot;body&quot;.</p>`,name:"section",type:{names:["String"]}},{description:"<p>The content to append.</p>",name:"data",type:{names:["String"]}}],params:[{name:"options",type:{names:["Object"]}},{description:`<p>Optional function that can be called
372to obtain any remaining options that may be
373expensive to compute, and thus should only be
374computed if/when we are sure this HTML will be used
375by the application.</p>`,name:"lazyFinalizer",type:{names:["function"]}}],scope:"instance",summary:`<p>Works in web targets only. Add markup to the <code>head</code> or <code>body</code>
376section of the document.</p>`},"InputFile#addJavaScript":{kind:"function",longname:"InputFile#addJavaScript",memberof:"InputFile",name:"addJavaScript",options:[{description:`<p>The path at which the JavaScript file
377should be inserted, may not be honored in case of path conflicts.</p>`,name:"path",type:{names:["String"]}},{description:"<p>The code to be added.</p>",name:"data",type:{names:["String"]}},{description:`<p>A stringified JSON
378sourcemap, in case the JavaScript file was generated from a
379different file.</p>`,name:"sourceMap",type:{names:["String","Object"]}}],params:[{name:"options",type:{names:["Object"]}},{description:`<p>Optional function that can be called
380to obtain any remaining options that may be
381expensive to compute, and thus should only be
382computed if/when we are sure this JavaScript will
383be used by the application.</p>`,name:"lazyFinalizer",type:{names:["function"]}}],scope:"instance",summary:`<p>Add JavaScript code. The code added will only see the
384namespaces imported by this package as runtime dependencies using
385<a href="#PackageAPI-use">'api.use'</a>. If the file being compiled was added
386with the bare flag, the resulting JavaScript won't be wrapped in a
387closure.</p>`},"InputFile#addStylesheet":{kind:"function",longname:"InputFile#addStylesheet",memberof:"InputFile",name:"addStylesheet",options:[{description:`<p>The requested path for the added CSS, may not
388be satisfied if there are path conflicts.</p>`,name:"path",type:{names:["String"]}},{description:`<p>The content of the stylesheet that should be
389added.</p>`,name:"data",type:{names:["String"]}},{description:`<p>A stringified JSON
390sourcemap, in case the stylesheet was generated from a different
391file.</p>`,name:"sourceMap",type:{names:["String","Object"]}}],params:[{name:"options",type:{names:["Object"]}},{description:`<p>Optional function that can be called
392to obtain any remaining options that may be
393expensive to compute, and thus should only be
394computed if/when we are sure this CSS will be used
395by the application.</p>`,name:"lazyFinalizer",type:{names:["function"]}}],scope:"instance",summary:`<p>Web targets only. Add a stylesheet to the document. Not available
396for linter build plugins.</p>`},"InputFile#error":{kind:"function",longname:"InputFile#error",memberof:"InputFile",name:"error",options:[{description:"<p>The error message to display.</p>",name:"message",type:{names:["String"]}},{description:"<p>The path to display in the error message.</p>",name:"sourcePath",optional:!0,type:{names:["String"]}},{description:"<p>The line number to display in the error message.</p>",name:"line",type:{names:["Integer"]}},{description:"<p>The function name to display in the error message.</p>",name:"func",type:{names:["String"]}}],params:[{name:"options",type:{names:["Object"]}}],scope:"instance",summary:`<p>Call this method to raise a compilation or linting error for the
397file.</p>`},"InputFile#getArch":{kind:"function",longname:"InputFile#getArch",memberof:"InputFile",name:"getArch",options:[],params:[],returns:[{type:{names:["String"]}}],scope:"instance",summary:`<p>Returns the architecture that is targeted while processing this
398file.</p>`},"InputFile#getBasename":{kind:"function",longname:"InputFile#getBasename",memberof:"InputFile",name:"getBasename",options:[],params:[],returns:[{type:{names:["String"]}}],scope:"instance",summary:"<p>Returns the filename of the file.</p>"},"InputFile#getContentsAsBuffer":{kind:"function",longname:"InputFile#getContentsAsBuffer",memberof:"InputFile",name:"getContentsAsBuffer",options:[],params:[],returns:[{type:{names:["Buffer"]}}],scope:"instance",summary:"<p>Returns the full contents of the file as a buffer.</p>"},"InputFile#getContentsAsString":{kind:"function",longname:"InputFile#getContentsAsString",memberof:"InputFile",name:"getContentsAsString",options:[],params:[],returns:[{type:{names:["String"]}}],scope:"instance",summary:"<p>Returns the full contents of the file as a string.</p>"},"InputFile#getDeclaredExports":{kind:"function",longname:"InputFile#getDeclaredExports",memberof:"InputFile",name:"getDeclaredExports",options:[],params:[],returns:[{type:{names:["Array.<String>"]}}],scope:"instance",summary:`<p>Returns a list of symbols declared as exports in this target. The
399result of <code>api.export('symbol')</code> calls in target's control file such as
400package.js.</p>`},"InputFile#getDirname":{kind:"function",longname:"InputFile#getDirname",memberof:"InputFile",name:"getDirname",options:[],params:[],returns:[{type:{names:["String"]}}],scope:"instance",summary:`<p>Returns the directory path relative to the package or app root.
401The returned path always uses forward slashes.</p>`},"InputFile#getDisplayPath":{kind:"function",longname:"InputFile#getDisplayPath",memberof:"InputFile",name:"getDisplayPath",options:[],params:[],returns:[{type:{names:["String"]}}],scope:"instance",summary:`<p>Returns a relative path that can be used to form error messages or
402other display properties. Can be used as an input to a source map.</p>`},"InputFile#getExtension":{kind:"function",longname:"InputFile#getExtension",memberof:"InputFile",name:"getExtension",options:[],params:[],returns:[{type:{names:["String"]}}],scope:"instance",summary:`<p>Returns the extension that matched the compiler plugin.
403The longest prefix is preferred.</p>`},"InputFile#getFileOptions":{kind:"function",longname:"InputFile#getFileOptions",memberof:"InputFile",name:"getFileOptions",options:[],params:[],returns:[{type:{names:["Object"]}}],scope:"instance",summary:`<p>Returns an object of file options such as those passed as the
404third argument to api.addFiles.</p>`},"InputFile#getPackageName":{kind:"function",longname:"InputFile#getPackageName",memberof:"InputFile",name:"getPackageName",options:[],params:[],returns:[{type:{names:["String"]}}],scope:"instance",summary:`<p>Returns the name of the package or <code>null</code> if the file is not in a
405package.</p>`},"InputFile#getPathInBundle":{kind:"function",longname:"InputFile#getPathInBundle",memberof:"InputFile",name:"getPathInBundle",options:[],params:[],returns:[{type:{names:["String"]}}],scope:"instance",summary:"<p>Returns the path of the compiled file in the bundle.</p>"},"InputFile#getPathInPackage":{kind:"function",longname:"InputFile#getPathInPackage",memberof:"InputFile",name:"getPathInPackage",options:[],params:[],returns:[{type:{names:["String"]}}],scope:"instance",summary:`<p>Returns the relative path of file to the package or app root
406directory. The returned path always uses forward slashes.</p>`},"InputFile#getSourceHash":{kind:"function",longname:"InputFile#getSourceHash",memberof:"InputFile",name:"getSourceHash",options:[],params:[],returns:[{type:{names:["String"]}}],scope:"instance",summary:`<p>Returns a hash string for the file that can be used to implement
407caching.</p>`},"InputFile#getSourceMap":{kind:"function",longname:"InputFile#getSourceMap",memberof:"InputFile",name:"getSourceMap",options:[],params:[],returns:[{type:{names:["String"]}}],scope:"instance",summary:"<p>Returns the source-map associated with the file.</p>"},IterationCallback:{filepath:"minimongo/cursor.js",kind:"typedef",lineno:123,longname:"IterationCallback",module:"minimongo",name:"IterationCallback",params:[{name:"doc",type:{names:["Object"]}},{name:"index",type:{names:["Number"]}}],scope:"global",type:{names:["function"]}},Match:{filepath:"check/match.js",kind:"namespace",lineno:63,longname:"Match",module:"check",name:"Match",scope:"global",summary:"<p>The namespace for all Match types and methods.</p>"},"Match.test":{filepath:"check/match.js",kind:"function",lineno:126,locus:"Anywhere",longname:"Match.test",memberof:"Match",module:"check",name:"test",options:[],params:[{description:"<p>The value to check</p>",name:"value",type:{names:["Any"]}},{description:"<p>The pattern to match <code>value</code> against</p>",name:"pattern",type:{names:["MatchPattern"]}}],scope:"static",summary:"<p>Returns true if the value matches the pattern.</p>"},"MessageProcessors#_livedata_connected":{async:!0,filepath:"ddp-client/common/message_processors.js",kind:"function",lineno:16,longname:"MessageProcessors#_livedata_connected",memberof:"MessageProcessors",module:"ddp-client",name:"_livedata_connected",options:[],params:[{description:"<p>The connection message</p>",name:"msg",type:{names:["Object"]}}],scope:"instance",summary:"<p>Process the connection message and set up the session</p>"},"MessageProcessors#_livedata_data":{async:!0,filepath:"ddp-client/common/message_processors.js",kind:"function",lineno:133,longname:"MessageProcessors#_livedata_data",memberof:"MessageProcessors",module:"ddp-client",name:"_livedata_data",options:[],params:[{description:"<p>The data message</p>",name:"msg",type:{names:["Object"]}}],scope:"instance",summary:"<p>Process various data messages from the server</p>"},"MessageProcessors#_livedata_error":{filepath:"ddp-client/common/message_processors.js",kind:"function",lineno:335,longname:"MessageProcessors#_livedata_error",memberof:"MessageProcessors",module:"ddp-client",name:"_livedata_error",options:[],params:[{description:"<p>The error message</p>",name:"msg",type:{names:["Object"]}}],scope:"instance",summary:"<p>Handle errors from the server</p>"},"MessageProcessors#_livedata_nosub":{async:!0,filepath:"ddp-client/common/message_processors.js",kind:"function",lineno:288,longname:"MessageProcessors#_livedata_nosub",memberof:"MessageProcessors",module:"ddp-client",name:"_livedata_nosub",options:[],params:[{description:"<p>The nosub message</p>",name:"msg",type:{names:["Object"]}}],scope:"instance",summary:"<p>Handle &quot;nosub&quot; messages arriving from the server</p>"},"MessageProcessors#_livedata_result":{async:!0,filepath:"ddp-client/common/message_processors.js",kind:"function",lineno:243,longname:"MessageProcessors#_livedata_result",memberof:"MessageProcessors",module:"ddp-client",name:"_livedata_result",options:[],params:[{description:"<p>The method result message</p>",name:"msg",type:{names:["Object"]}}],scope:"instance",summary:"<p>Handle method results arriving from the server</p>"},Meteor:{filepath:"meteor/client_environment.js",kind:"namespace",lineno:4,longname:"Meteor",module:"meteor",name:"Meteor",scope:"global",summary:"<p>The Meteor namespace</p>"},"Meteor.EnvironmentVariable":{filepath:"meteor/dynamics_nodejs.js",kind:"class",lineno:89,locus:"Anywhere",longname:"Meteor.EnvironmentVariable",memberof:"Meteor",module:"meteor",name:"EnvironmentVariable",options:[],params:[],scope:"static",summary:"<p>Constructor for EnvironmentVariable</p>"},"Meteor.EnvironmentVariable.get":{filepath:"meteor/dynamics_nodejs.js",kind:"function",lineno:16,locus:"Anywhere",longname:"Meteor.EnvironmentVariable.get",memberof:"Meteor.EnvironmentVariable",module:"meteor",name:"get",options:[],params:[],returns:[{description:"<p>The current value of the variable, or <code>undefined</code> if no</p>",type:{names:["any"]}}],scope:"static",summary:`<p>Getter for the current value of the variable, or <code>undefined</code> if
408called from outside a <code>withValue</code> callback.</p>`},"Meteor.EnvironmentVariable.withValue":{filepath:"meteor/dynamics_nodejs.js",kind:"function",lineno:36,longname:"Meteor.EnvironmentVariable.withValue",memberof:"Meteor.EnvironmentVariable",module:"meteor",name:"withValue",options:[],params:[{description:"<p>The value to set for the duration of the function call</p>",name:"value",type:{names:["any"]}},{description:"<p>The function to call with the new value of the</p>",name:"func",type:{names:["function"]}},{description:'<p>Optional additional properties for adding in <a href="https://nodejs.org/api/async_context.html#class-asynclocalstorage">asl</a></p>',name:"options",optional:!0,type:{names:["Object"]}}],returns:[{description:"<p>The return value of the function</p>",type:{names:["Promise.<any>"]}}],scope:"static",summary:"<p>takes a value and a function, calls the function with the value set for the duration of the call</p>"},"Meteor.EnvironmentVariableAsync":{filepath:"meteor/dynamics_nodejs.js",kind:"class",lineno:11,locus:"Anywhere",longname:"Meteor.EnvironmentVariableAsync",memberof:"Meteor",module:"meteor",name:"EnvironmentVariableAsync",options:[],params:[],scope:"static",summary:"<p>Constructor for EnvironmentVariable</p>"},"Meteor.Error":{filepath:"meteor/errors.js",kind:"class",lineno:55,locus:"Anywhere",longname:"Meteor.Error",memberof:"Meteor",module:"meteor",name:"Error",options:[],params:[{description:`<p>A string code uniquely identifying this kind of error.
409This string should be used by callers of the method to determine the
410appropriate action to take, instead of attempting to parse the reason
411or details fields.</p>
412<p>For legacy reasons, some built-in Meteor functions such as <code>check</code> throw
413errors with a number in this field.</p>`,name:"error",type:{names:["String"]}},{description:`<p>Optional.  A short human-readable summary of the
414error, like 'Not Found'.</p>`,name:"reason",optional:!0,type:{names:["String"]}},{description:`<p>Optional.  Additional information about the error,
415like a textual stack trace.</p>`,name:"details",optional:!0,type:{names:["String"]}}],scope:"static",summary:"<p>This class represents a symbolic error thrown by a method.</p>"},"Meteor.absoluteUrl":{filepath:"meteor/url_common.js",kind:"function",lineno:10,locus:"Anywhere",longname:"Meteor.absoluteUrl",memberof:"Meteor",module:"meteor",name:"absoluteUrl",options:[{description:"<p>Create an HTTPS URL.</p>",name:"secure",type:{names:["Boolean"]}},{description:"<p>Replace localhost with 127.0.0.1. Useful for services that don't recognize localhost as a domain name.</p>",name:"replaceLocalhost",type:{names:["Boolean"]}},{description:"<p>Override the default ROOT_URL from the server environment. For example: &quot;<code>http://foo.example.com</code>&quot;</p>",name:"rootUrl",type:{names:["String"]}}],params:[{description:"<p>A path to append to the root URL. Do not include a leading &quot;<code>/</code>&quot;.</p>",name:"path",optional:!0,type:{names:["String"]}},{name:"options",optional:!0,type:{names:["Object"]}}],scope:"static",summary:"<p>Generate an absolute URL pointing to the application. The server reads from the <code>ROOT_URL</code> environment variable to determine where it is running. This is taken care of automatically for apps deployed to Galaxy, but must be provided when using <code>meteor build</code>.</p>"},"Meteor.apply":{alias:"Meteor.apply",filepath:"ddp-client/common/livedata_connection.js",importfrompackage:"meteor",kind:"function",lineno:635,locus:"Anywhere",longname:"Meteor.apply",memberof:"Meteor",module:"meteor",name:"apply",options:[{description:"<p>(Client only) If true, don't send this method until all previous method calls have completed, and don't send any subsequent method calls until this one is completed.</p>",name:"wait",type:{names:["Boolean"]}},{description:"<p>(Client only) This callback is invoked with the error or result of the method (just like <code>asyncCallback</code>) as soon as the error or result is available. The local cache may not yet reflect the writes performed by the method.</p>",name:"onResultReceived",type:{names:["function"]}},{description:"<p>(Client only) if true, don't send this method again on reload, simply call the callback an error with the error code 'invocation-failed'.</p>",name:"noRetry",type:{names:["Boolean"]}},{description:"<p>(Client only) If true, exceptions thrown by method stubs will be thrown instead of logged, and the method will not be invoked on the server.</p>",name:"throwStubExceptions",type:{names:["Boolean"]}},{description:"<p>(Client only) If true then in cases where we would have otherwise discarded the stub's return value and returned undefined, instead we go ahead and return it. Specifically, this is any time other than when (a) we are already inside a stub or (b) we are in Node and n
415o callback was provided. Currently we require this flag to be explicitly passed to reduce the likelihood that stub return values will be confused with server return values; we may improve this in future.</p>",name:"returnStubValue",type:{names:["Boolean"]}}],params:[{description:"<p>Name of method to invoke</p>",name:"name",type:{names:["String"]}},{description:"<p>Method arguments</p>",name:"args",type:{names:["Array.<EJSONable>"]}},{name:"options",optional:!0,type:{names:["Object"]}},{description:'<p>Optional callback; same semantics as in <a href="#meteor_call"><code>Meteor.call</code></a>.</p>',name:"asyncCallback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Invoke a method passing an array of arguments.</p>"},"Meteor.applyAsync":{alias:"Meteor.applyAsync",filepath:"ddp-client/common/livedata_connection.js",importfrompackage:"meteor",kind:"function",lineno:678,locus:"Anywhere",longname:"Meteor.applyAsync",memberof:"Meteor",module:"meteor",name:"applyAsync",options:[{description:"<p>(Client only) If true, don't send this method until all previous method calls have completed, and don't send any subsequent method calls until this one is completed.</p>",name:"wait",type:{names:["Boolean"]}},{description:"<p>(Client only) This callback is invoked with the error or result of the method (just like <code>asyncCallback</code>) as soon as the error or result is available. The local cache may not yet reflect the writes performed by the method.</p>",name:"onResultReceived",type:{names:["function"]}},{description:"<p>(Client only) if true, don't send this method again on reload, simply call the callback an error with the error code 'invocation-failed'.</p>",name:"noRetry",type:{names:["Boolean"]}},{description:"<p>(Client only) If true, exceptions thrown by method stubs will be thrown instead of logged, and the method will not be invoked on the server.</p>",name:"throwStubExceptions",type:{names:["Boolean"]}},{description:"<p>(Client only) If true then in cases where we would have otherwise discarded the stub's return value and returned undefined, instead we go ahead and return it. Specifically, this is any time other than when (a) we are already inside a stub or (b) we are in Node and no callback was provided. Currently we require this flag to be explicitly passed to reduce the likelihood that stub return values will be confused with server return values; we may improve this in future.</p>",name:"returnStubValue",type:{names:["Boolean"]}},{description:"<p>(Client only) If true, the promise returned by applyAsync will resolve to the server's return value, rather than the stub's return value. This is useful when you want to ensure that the server's return value is used, even if the stub returns a promise. The same behavior as <code>callAsync</code>.</p>",name:"returnServerResultPromise",type:{names:["Boolean"]}}],params:[{description:"<p>Name of method to invoke</p>",name:"name",type:{names:["String"]}},{description:"<p>Method arguments</p>",name:"args",type:{names:["Array.<EJSONable>"]}},{name:"options",optional:!0,type:{names:["Object"]}}],scope:"static",summary:"<p>Invoke a method passing an array of arguments.</p>"},"Meteor.bindEnvironment":{filepath:"meteor/dynamics_nodejs.js",kind:"function",lineno:125,locus:"Anywhere",longname:"Meteor.bindEnvironment",memberof:"Meteor",module:"meteor",name:"bindEnvironment",options:[],params:[{description:"<p>Function that is wrapped</p>",name:"func",type:{names:["function"]}},{name:"onException",type:{names:["function"]}},{description:"<p>Optional <code>this</code> object against which the original function will be invoked</p>",name:"_this",type:{names:["Object"]}}],returns:[{description:"<p>The wrapped function</p>",type:{names:["function"]}}],scope:"static",summary:`<p>Stores the current Meteor environment variables, and wraps the
416function to run with the environment variables restored. On the server, the
417function is wrapped within Async Local Storage.</p>
418<p>This function has two reasons:</p>
419<ol>
420<li>Return the function to be executed on the MeteorJS context, having it assigned in Async Local Storage.</li>
421<li>Better error handling, the error message will be more clear.</li>
422</ol>`},"Meteor.call":{alias:"Meteor.call",filepath:"ddp-client/common/livedata_connection.js",importfrompackage:"meteor",kind:"function",lineno:588,locus:"Anywhere",longname:"Meteor.call",memberof:"Meteor",module:"meteor",name:"call",options:[],params:[{description:"<p>Name of method to invoke</p>",name:"name",type:{names:["String"]}},{description:"<p>Optional method arguments</p>",name:"arg1, arg2...",optional:!0,type:{names:["EJSONable"]}},{description:"<p>Optional callback, which is called asynchronously with the error or result after the method is complete. If not provided, the method runs synchronously if possible (see below).</p>",name:"asyncCallback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Invokes a method with a sync stub, passing any number of arguments.</p>"},"Meteor.callAsync":{alias:"Meteor.callAsync",filepath:"ddp-client/common/livedata_connection.js",importfrompackage:"meteor",kind:"function",lineno:608,locus:"Anywhere",longname:"Meteor.callAsync",memberof:"Meteor",module:"meteor",name:"callAsync",options:[],params:[{description:"<p>Name of method to invoke</p>",name:"name",type:{names:["String"]}},{description:"<p>Optional method arguments</p>",name:"arg1, arg2...",optional:!0,type:{names:["EJSONable"]}}],returns:[{type:{names:["Promise"]}}],scope:"static",summary:"<p>Invokes a method with an async stub, passing any number of arguments.</p>"},"Meteor.clearInterval":{filepath:"meteor/timers.js",kind:"function",lineno:58,locus:"Anywhere",longname:"Meteor.clearInterval",memberof:"Meteor",module:"meteor",name:"clearInterval",options:[],params:[{description:"<p>The handle returned by <code>Meteor.setInterval</code></p>",name:"id",type:{names:["Object"]}}],scope:"static",summary:"<p>Cancel a repeating function call scheduled by <code>Meteor.setInterval</code>.</p>"},"Meteor.clearTimeout":{filepath:"meteor/timers.js",kind:"function",lineno:68,locus:"Anywhere",longname:"Meteor.clearTimeout",memberof:"Meteor",module:"meteor",name:"clearTimeout",options:[],params:[{description:"<p>The handle returned by <code>Meteor.setTimeout</code></p>",name:"id",type:{names:["Object"]}}],scope:"static",summary:"<p>Cancel a function call scheduled by <code>Meteor.setTimeout</code>.</p>"},"Meteor.defer":{filepath:"meteor/timers.js",kind:"function",lineno:83,locus:"Anywhere",longname:"Meteor.defer",memberof:"Meteor",module:"meteor",name:"defer",options:[],params:[{description:"<p>The function to run</p>",name:"func",type:{names:["function"]}}],scope:"static",summary:"<p>Defer execution of a function to run asynchronously in the background (similar to <code>Meteor.setTimeout(func, 0)</code>.</p>"},"Meteor.deferDev":{filepath:"meteor/timers.js",kind:"function",lineno:123,locus:"Anywhere",longname:"Meteor.deferDev",memberof:"Meteor",module:"meteor",name:"deferDev",options:[],params:[{description:"<p>The function to run</p>",name:"func",type:{names:["function"]}},{description:"<p>The options object</p>",name:"options",type:{names:["Object"]}}],scope:"static",summary:"<p>Wrap a function to run in the background in development (similar to Meteor.isDevelopment ? Meteor.defer(fn) : Meteor.startup(fn)).</p>"},"Meteor.deferProd":{filepath:"meteor/timers.js",kind:"function",lineno:134,locus:"Anywhere",longname:"Meteor.deferProd",memberof:"Meteor",module:"meteor",name:"deferProd",options:[],params:[{description:"<p>The function to run</p>",name:"func",type:{names:["function"]}},{description:"<p>The options object</p>",name:"options",type:{names:["Object"]}}],scope:"static",summary:"<p>Wrap a function to run in the background in production (similar to Meteor.isProduction ? Meteor.defer(fn) : Meteor.startup(fn)).</p>"},"Meteor.deferrable":{filepath:"meteor/timers.js",kind:"function",lineno:95,locus:"Anywhere",longname:"Meteor.deferrable",memberof:"Meteor",module:"meteor",name:"deferrable",options:[{description:"<p>Condition to determine whether to defer the function, you can pass an array of environments ['development', 'production', 'test']</p>",name:"on",type:{names:["Array.<String>"]}}],params:[{description:"<p>The function to run</p>",name:"func",type:{names:["function"]}},{description:"<p>The options object</p>",name:"options",type:{names:["Object"]}}],scope:"static",summary:"<p>Wrap a function so that it only runs in background in specified environments..</p>"},"Meteor.disconnect":{alias:"Meteor.disconnect",filepath:"ddp-client/common/livedata_connection.js",importfrompackage:"meteor",kind:"function",lineno:1110,locus:"Client",longname:"Meteor.disconnect",memberof:"Meteor",module:"meteor",name:"disconnect",options:[],params:[],scope:"static",summary:"<p>Disconnect the client from the server.</p>"},"Meteor.fetch":{filepath:"meteor/fetch.js",kind:"function",lineno:12,locus:"Anywhere",longname:"Meteor.fetch",memberof:"Meteor",module:"meteor",name:"fetch",options:[],params:[{description:"<p>The URL to fetch or a Request object</p>",name:"url",type:{names:["string","Request"]}},{description:"<p>Standard fetch options</p>",name:"options",optional:!0,type:{names:["Object"]}}],returns:[{description:`<ul>
423<li>The fetch response</li>
424</ul>`,type:{names:["Promise.<Response>"]}}],scope:"static",summary:`<p>Wrapper around the standard <code>fetch</code> API. Packages can extend
425this function to add middleware-like behavior (e.g. authentication).
426On environments without a native <code>fetch</code> (e.g. the <code>web.browser.legacy</code>
427arch), the call rejects with a clear error unless the <code>fetch</code> package
428is installed to provide the polyfill.</p>`},"Meteor.gitCommitHash":{filepath:"meteor/client_environment.js",kind:"member",lineno:67,locus:"Anywhere",longname:"Meteor.gitCommitHash",memberof:"Meteor",module:"meteor",name:"gitCommitHash",scope:"static",summary:`<p>Hexadecimal Git commit hash, if the application is using Git
429for version control. Undefined otherwise.</p>`,type:{names:["String"]}},"Meteor.isAppTest":{filepath:"meteor/test_environment.js",kind:"member",lineno:32,locus:"Anywhere",longname:"Meteor.isAppTest",memberof:"Meteor",module:"meteor",name:"isAppTest",scope:"static",summary:"<p>Boolean variable.  True if running tests against your application i.e <code>meteor test --full-app</code>.</p>",type:{names:["Boolean"]}},"Meteor.isAsyncCall":{filepath:"ddp-server/livedata_server.js",importfrompackage:"meteor",kind:"function",lineno:1697,locus:"Anywhere",longname:"Meteor.isAsyncCall",memberof:"Meteor",module:"meteor",name:"isAsyncCall",options:[],params:[],returns:[{description:"<p>boolean</p>"}],scope:"static",summary:"<p>Tells if the method call came from a call or a callAsync.</p>"},"Meteor.isClient":{filepath:"meteor/client_environment.js",kind:"member",lineno:31,locus:"Anywhere",longname:"Meteor.isClient",memberof:"Meteor",module:"meteor",name:"isClient",scope:"static",summary:"<p>Boolean variable.  True if running in client environment.</p>",type:{names:["Boolean"]}},"Meteor.isCordova":{filepath:"meteor/cordova_environment.js",kind:"member",lineno:7,locus:"Anywhere",longname:"Meteor.isCordova",memberof:"Meteor",module:"meteor",name:"isCordova",scope:"static",summary:"<p>Boolean variable.  True if running in a Cordova mobile environment.</p>",type:{names:["Boolean"]}},"Meteor.isDevelopment":{filepath:"meteor/client_environment.js",kind:"member",lineno:23,locus:"Anywhere",longname:"Meteor.isDevelopment",memberof:"Meteor",module:"meteor",name:"isDevelopment",scope:"static",summary:"<p>Boolean variable.  True if running in development environment.</p>",type:{names:["Boolean"]}},"Meteor.isFibersDisabled":{filepath:"meteor/asl-helpers-client.js",kind:"member",lineno:9,locus:"Anywhere",longname:"Meteor.isFibersDisabled",memberof:"Meteor",module:"meteor",name:"isFibersDisabled",scope:"static",summary:`<p>Boolean variable. True when running in Meteor 3.0. Useful to packages
430in order to maintain compatibility with Meteor 2.x.</p>`,type:{names:["Boolean"]}},"Meteor.isModern":{filepath:"meteor/client_environment.js",kind:"member",lineno:56,locus:"Anywhere",longname:"Meteor.isModern",memberof:"Meteor",module:"meteor",name:"isModern",scope:"static",summary:`<p>Boolean variable. True if running in a &quot;modern&quot; JS
431environment, as determined by the <code>modern</code> package.</p>`,type:{names:["Boolean"]}},"Meteor.isPackageTest":{filepath:"meteor/test_environment.js",kind:"member",lineno:41,locus:"Anywhere",longname:"Meteor.isPackageTest",memberof:"Meteor",module:"meteor",name:"isPackageTest",scope:"static",summary:"<p>Boolean variable.  True if running tests against a Meteor package.</p>",type:{names:["Boolean"]}},"Meteor.isProduction":{filepath:"meteor/client_environment.js",kind:"member",lineno:15,locus:"Anywhere",longname:"Meteor.isProduction",memberof:"Meteor",module:"meteor",name:"isProduction",scope:"static",summary:"<p>Boolean variable.  True if running in production environment.</p>",type:{names:["Boolean"]}},"Meteor.isServer":{filepath:"meteor/client_environment.js",kind:"member",lineno:39,locus:"Anywhere",longname:"Meteor.isServer",memberof:"Meteor",module:"meteor",name:"isServer",scope:"static",summary:"<p>Boolean variable.  True if running in server environment.</p>",type:{names:["Boolean"]}},"Meteor.isTest":{filepath:"meteor/test_environment.js",kind:"member",lineno:23,locus:"Anywhere",longname:"Meteor.isTest",memberof:"Meteor",module:"meteor",name:"isTest",scope:"static",summary:`<p>Boolean variable. True when running unit tests (false if running
432tests in full app mode).</p>`,type:{names:["Boolean"]}},"Meteor.loggingIn":{filepath:"accounts-base/accounts_client.js",importfrompackage:"meteor",kind:"function",lineno:920,locus:"Client",longname:"Meteor.loggingIn",memberof:"Meteor",module:"meteor",name:"loggingIn",options:[],params:[],scope:"static",summary:`<p>True if a login method (such as <code>Meteor.loginWithPassword</code>,
433<code>Meteor.loginWithFacebook</code>, or <code>Accounts.createUser</code>) is currently in
434progress. A reactive data source.</p>`},"Meteor.loggingOut":{filepath:"accounts-base/accounts_client.js",importfrompackage:"meteor",kind:"function",lineno:928,locus:"Client",longname:"Meteor.loggingOut",memberof:"Meteor",module:"meteor",name:"loggingOut",options:[],params:[],scope:"static",summary:`<p>True if a logout method (such as <code>Meteor.logout</code>) is currently in
435progress. A reactive data source.</p>`},"Meteor.loginWith<ExternalService>":{filepath:"accounts-oauth/oauth_client.js",importfrompackage:"meteor",kind:"function",lineno:3,locus:"Client",longname:"Meteor.loginWith<ExternalService>",memberof:"Meteor",module:"meteor",name:"loginWith<ExternalService>",options:[{description:"<p>A list of permissions to request from the user.</p>",name:"requestPermissions",type:{names:["Array.<String>"]}},{description:"<p>If true, asks the user for permission to act on their behalf when offline. This stores an additional offline token in the <code>services</code> field of the user document. Currently only supported with Google.</p>",name:"requestOfflineToken",type:{names:["Boolean"]}},{description:'<p>
435Provide additional parameters to the authentication URI. Currently only supported with Google. See <a href="https://developers.google.com/identity/protocols/OpenIDConnect#authenticationuriparameters">Google Identity Platform documentation</a>.</p>',name:"loginUrlParameters",type:{names:["Object"]}},{description:"<p>An email address that the external service will use to pre-fill the login prompt. Currently only supported with Meteor developer accounts and Google accounts. If used with Google, the Google User ID can also be passed.</p>",name:"loginHint",type:{names:["String"]}},{description:"<p>Login style (&quot;popup&quot; or &quot;redirect&quot;, defaults to the login service configuration).  The &quot;popup&quot; style opens the login page in a separate popup window, which is generally preferred because the Meteor application doesn't need to be reloaded.  The &quot;redirect&quot; style redirects the Meteor application's window to the login page, and the login service provider redirects back to the Meteor application which is then reloaded.  The &quot;redirect&quot; style can be used in situations where a popup window can't be opened, such as in a mobile UIWebView.  The &quot;redirect&quot; style however relies on session storage which isn't available in Safari private mode, so the &quot;popup&quot; style will be forced if session storage can't be used.</p>",name:"loginStyle",type:{names:["String"]}},{description:"<p>If using &quot;redirect&quot; login style, the user will be returned to this URL after authorisation has been completed.</p>",name:"redirectUrl",type:{names:["String"]}},{description:"<p>If true, forces the user to approve the app's permissions, even if previously approved. Currently only supported with Google.</p>",name:"forceApprovalPrompt",type:{names:["Boolean"]}}],params:[{name:"options",optional:!0,type:{names:["Object"]}},{description:'<p>Optional callback. Called with no arguments on success, or with a single <code>Error</code> argument on failure. The callback cannot be called if you are using the &quot;redirect&quot; <code>loginStyle</code>, because the app will have reloaded in the meantime; try using <a href="#accounts_onlogin">client-side login hooks</a> instead.</p>',name:"callback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Log the user in using an external service.</p>"},"Meteor.loginWithPassword":{filepath:"accounts-password/password_client.js",importfrompackage:"meteor",kind:"function",lineno:56,locus:"Client",longname:"Meteor.loginWithPassword",memberof:"Meteor",module:"meteor",name:"loginWithPassword",options:[],params:[{description:`<p>Either a string interpreted as a username or an email; or an object with a
436single key: <code>email</code>, <code>username</code> or <code>id</code>. Username or email match in a case
437insensitive manner.</p>`,name:"selector",type:{names:["Object","String"]}},{description:"<p>The user's password.</p>",name:"password",type:{names:["String"]}},{description:`<p>Optional callback.
438Called with no arguments on success, or with a single <code>Error</code> argument
439on failure.</p>`,name:"callback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Log the user in with a password.</p>"},"Meteor.loginWithPasswordAnd2faCode":{filepath:"accounts-password/password_client.js",importfrompackage:"meteor",kind:"function",lineno:94,locus:"Client",longname:"Meteor.loginWithPasswordAnd2faCode",memberof:"Meteor",module:"meteor",name:"loginWithPasswordAnd2faCode",options:[],params:[{description:`<p>Either a string interpreted as a username or an email; or an object with a
440single key: <code>email</code>, <code>username</code> or <code>id</code>. Username or email match in a case
441insensitive manner.</p>`,name:"selector",type:{names:["Object","String"]}},{description:"<p>The user's password.</p>",name:"password",type:{names:["String"]}},{description:"<p>Token provide by the user's authenticator app.</p>",name:"token",type:{names:["String"]}},{description:`<p>Optional callback.
442Called with no arguments on success, or with a single <code>Error</code> argument
443on failure.</p>`,name:"callback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Log the user in with a password and token.</p>"},"Meteor.loginWithPasswordAsync":{filepath:"accounts-password/password_client.js",importfrompackage:"meteor",kind:"member",lineno:71,locus:"Client",longname:"Meteor.loginWithPasswordAsync",memberof:"Meteor",module:"meteor",name:"loginWithPasswordAsync",params:[{description:`<p>Either a string interpreted as a username or an email; or an object with a
444single key: <code>email</code>, <code>username</code> or <code>id</code>. Username or email match in a case
445insensitive manner.</p>`,name:"selector",type:{names:["Object","String"]}},{description:"<p>The user's password.</p>",name:"password",type:{names:["String"]}}],returns:[{description:"<p>Resolves with login details on success, rejects with error on failure.</p>",type:{names:["Promise.<Object>"]}}],scope:"static",summary:"<p>Log the user in with a password. Returns a Promise.</p>"},"Meteor.loginWithToken":{filepath:"accounts-base/accounts_client.js",importfrompackage:"meteor",kind:"function",lineno:987,locus:"Client",longname:"Meteor.loginWithToken",memberof:"Meteor",module:"meteor",name:"loginWithToken",options:[],params:[{description:`<p>Local storage token for use with login across
446multiple tabs in the same browser.</p>`,name:"token",type:{names:["String"]}},{description:`<p>Optional callback. Called with no arguments on
447success, or with a single <code>Error</code> argument on failure.</p>`,name:"callback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Login with a Meteor access token.</p>"},"Meteor.loginWithTokenAsync":{filepath:"accounts-base/accounts_client.js",importfrompackage:"meteor",kind:"function",lineno:998,locus:"Client",longname:"Meteor.loginWithTokenAsync",memberof:"Meteor",module:"meteor",name:"loginWithTokenAsync",options:[],params:[{description:`<p>Local storage token for use with login across
448multiple tabs in the same browser.</p>`,name:"token",type:{names:["String"]}}],returns:[{description:"<p>Resolves with login details on success, rejects with error on failure.</p>",type:{names:["Promise.<Object>"]}}],scope:"static",summary:"<p>Login with a Meteor access token. Returns a Promise.</p>"},"Meteor.logout":{filepath:"accounts-base/accounts_client.js",importfrompackage:"meteor",kind:"function",lineno:936,locus:"Client",longname:"Meteor.logout",memberof:"Meteor",module:"meteor",name:"logout",options:[],params:[{description:"<p>Optional callback. Called with no arguments on success, or with a single <code>Error</code> argument on failure.</p>",name:"callback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Log the user out.</p>"},"Meteor.logoutAllClients":{filepath:"accounts-base/accounts_client.js",importfrompackage:"meteor",kind:"function",lineno:952,locus:"Client",longname:"Meteor.logoutAllClients",memberof:"Meteor",module:"meteor",name:"logoutAllClients",options:[],params:[{description:"<p>Optional callback. Called with no arguments on success, or with a single <code>Error</code> argument on failure.</p>",name:"callback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Log out all clients logged in as the current user and logs the current user out as well.</p>"},"Meteor.logoutAllClientsAsync":{filepath:"accounts-base/accounts_client.js",importfrompackage:"meteor",kind:"function",lineno:960,locus:"Client",longname:"Meteor.logoutAllClientsAsync",memberof:"Meteor",module:"meteor",name:"logoutAllClientsAsync",options:[],params:[],returns:[{description:"<p>Resolves on success, rejects with error on failure.</p>",type:{names:["Promise.<void>"]}}],scope:"static",summary:"<p>Log out all clients logged in as the current user and logs the current user out as well. Returns a Promise.</p>"},"Meteor.logoutAsync":{filepath:"accounts-base/accounts_client.js",importfrompackage:"meteor",kind:"function",lineno:944,locus:"Client",longname:"Meteor.logoutAsync",memberof:"Meteor",module:"meteor",name:"logoutAsync",options:[],params:[],returns:[{description:"<p>Resolves on success, rejects with error on failure.</p>",type:{names:["Promise.<void>"]}}],scope:"static",summary:"<p>Log the user out. Returns a Promise.</p>"},"Meteor.logoutOtherClients":{filepath:"accounts-base/accounts_client.js",importfrompackage:"meteor",kind:"function",lineno:968,locus:"Client",longname:"Meteor.logoutOtherClients",memberof:"Meteor",module:"meteor",name:"logoutOtherClients",options:[],params:[{description:"<p>Optional callback. Called with no arguments on success, or with a single <code>Error</code> argument on failure.</p>",name:"callback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Log out other clients logged in as the current user, but does not log out the client that calls this function.</p>"},"Meteor.logoutOtherClientsAsync":{filepath:"accounts-base/accounts_client.js",importfrompackage:"meteor",kind:"function",lineno:976,locus:"Client",longname:"Meteor.logoutOtherClientsAsync",memberof:"Meteor",module:"meteor",name:"logoutOtherClientsAsync",options:[],params:[],returns:[{description:"<p>Resolves on success, rejects with error on failure.</p>",type:{names:["Promise.<void>"]}}],scope:"static",summary:"<p>Log out other clients logged in as the current user, but does not log out the client that calls this function. Returns a Promise.</p>"},"Meteor.methods":{filepath:"ddp-server/livedata_server.js",importfrompackage:"meteor",kind:"function",lineno:1708,locus:"Anywhere",longname:"Meteor.methods",memberof:"Meteor",module:"meteor",name:"methods",options:[],params:[{description:"<p>
448Dictionary whose keys are method names and values are functions.</p>",name:"methods",type:{names:["Object"]}}],scope:"static",summary:"<p>Defines functions that can be invoked over the network by clients.</p>"},"Meteor.onConnection":{filepath:"ddp-server/livedata_server.js",importfrompackage:"meteor",kind:"function",lineno:1429,locus:"Server",longname:"Meteor.onConnection",memberof:"Meteor",module:"meteor",name:"onConnection",options:[],params:[{description:"<p>The function to call when a new DDP connection is established.</p>",name:"callback",type:{names:["function"]}}],scope:"static",summary:"<p>Register a callback to be called when a new DDP connection is made to the server.</p>"},"Meteor.onMessage":{filepath:"ddp-server/livedata_server.js",importfrompackage:"meteor",kind:"function",lineno:1472,locus:"Server",longname:"Meteor.onMessage",memberof:"Meteor",module:"meteor",name:"onMessage",options:[],params:[{description:"<p>The function to call when a new DDP message is received.</p>",name:"callback",type:{names:["function"]}}],scope:"static",summary:"<p>Register a callback to be called when a new DDP message is received.</p>"},"Meteor.passwordlessLoginWithToken":{filepath:"accounts-passwordless/passwordless_client.js",importfrompackage:"meteor",kind:"function",lineno:70,locus:"Client",longname:"Meteor.passwordlessLoginWithToken",memberof:"Meteor",module:"meteor",name:"passwordlessLoginWithToken",options:[],params:[{description:"<p>Username, email or custom selector to identify the user.</p>",name:"selector",type:{names:["Object","String"]}},{description:"<p>one time token generated by the server</p>",name:"token",type:{names:["String"]}},{description:`<p>Optional callback.
449Called with no arguments on success, or with a single <code>Error</code> argument
450on failure.</p>`,name:"callback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Log the user in with a one time token.</p>"},"Meteor.passwordlessLoginWithTokenAnd2faCode":{filepath:"accounts-passwordless/passwordless_client.js",importfrompackage:"meteor",kind:"function",lineno:85,locus:"Client",longname:"Meteor.passwordlessLoginWithTokenAnd2faCode",memberof:"Meteor",module:"meteor",name:"passwordlessLoginWithTokenAnd2faCode",options:[],params:[{description:"<p>Username, email or custom selector to identify the user.</p>",name:"selector",type:{names:["Object","String"]}},{description:"<p>one time token generated by the server</p>",name:"token",type:{names:["String"]}},{description:"<p>generated by the user's authenticator app</p>",name:"code",type:{names:["String"]}},{description:`<p>Optional callback.
451Called with no arguments on success, or with a single <code>Error</code> argument
452on failure.</p>`,name:"callback",optional:!0,type:{names:["function"]}}],scope:"static",summary:"<p>Log the user in with a one time token.</p>"},"Meteor.promisify":{filepath:"meteor/helpers.js",kind:"function",lineno:82,locus:"Anywhere",longname:"Meteor.promisify",memberof:"Meteor",module:"meteor",name:"promisify",options:[],params:[{name:"fn",type:{names:["function"]}},{name:"context",optional:!0,type:{names:["Object"]}},{description:"<p>If the callback follows the errorFirst style, default to true</p>",name:"errorFirst",optional:!0,type:{names:["Boolean"]}}],returns:[{type:{names:["function"]}}],scope:"static",summary:`<p>Takes a function that has a callback argument as the last one and promissify it.
453One option would be to use node utils.promisify, but it won't work on the browser.</p>`},"Meteor.publish":{filepath:"ddp-server/livedata_server.js",importfrompackage:"meteor",kind:"function",lineno:1601,locus:"Server",longname:"Meteor.publish",memberof:"Meteor",module:"meteor",name:"publish",options:[],params:[{description:"<p>If String, name of the record set.  If Object, publications Dictionary of publish functions by name.  If <code>null</code>, the set has no name, and the record set is automatically sent to all connected clients.</p>",name:"name",type:{names:["String","Object"]}},{description:"<p>Function called on the server each time a client subscribes.  Inside the function, <code>this</code> is the publish handler object, described below.  If the client passed arguments to <code>subscribe</code>, the function is called with the same arguments.</p>",name:"func",type:{names:["function"]}}],scope:"static",summary:"<p>
453Publish a record set.</p>"},"Meteor.reconnect":{alias:"Meteor.reconnect",filepath:"ddp-client/common/livedata_connection.js",importfrompackage:"meteor",kind:"function",lineno:1099,locus:"Client",longname:"Meteor.reconnect",memberof:"Meteor",module:"meteor",name:"reconnect",options:[],params:[],scope:"static",summary:`<p>Force an immediate reconnection attempt if the client is not connected to the server.</p>
454<p>This method does nothing if the client is already connected.</p>`},"Meteor.release":{filepath:"meteor/helpers.js",kind:"member",lineno:8,locus:"Anywhere",longname:"Meteor.release",memberof:"Meteor",module:"meteor",name:"release",scope:"static",summary:'<p><code>Meteor.release</code> is a string containing the name of the <a href="#meteorupdate">release</a> with which the project was built (for example, <code>&quot;1.2.3&quot;</code>). It is <code>undefined</code> if the project was built using a git checkout of Meteor.</p>',type:{names:["String"]}},"Meteor.setInterval":{filepath:"meteor/timers.js",kind:"function",lineno:48,locus:"Anywhere",longname:"Meteor.setInterval",memberof:"Meteor",module:"meteor",name:"setInterval",options:[],params:[{description:"<p>The function to run</p>",name:"func",type:{names:["function"]}},{description:"<p>Number of milliseconds to wait between each function call.</p>",name:"delay",type:{names:["Number"]}}],scope:"static",summary:"<p>Call a function repeatedly, with a time delay between calls.</p>"},"Meteor.setTimeout":{filepath:"meteor/timers.js",kind:"function",lineno:37,locus:"Anywhere",longname:"Meteor.setTimeout",memberof:"Meteor",module:"meteor",name:"setTimeout",options:[],params:[{description:"<p>The function to run</p>",name:"func",type:{names:["function"]}},{description:"<p>Number of milliseconds to wait before calling function</p>",name:"delay",type:{names:["Number"]}}],scope:"static",summary:"<p>Call a function in the future after waiting for a specified delay.</p>"},"Meteor.settings":{filepath:"meteor/client_environment.js",kind:"member",lineno:76,locus:"Anywhere",longname:"Meteor.settings",memberof:"Meteor",module:"meteor",name:"settings",scope:"static",summary:"<p><code>Meteor.settings</code> contains deployment-specific configuration options. You can initialize settings by passing the <code>--settings</code> option (which takes the name of a file containing JSON data) to <code>meteor run</code> or <code>meteor deploy</code>. When running your server directly (e.g. from a bundle), you instead specify settings by putting the JSON directly into the <code>METEOR_SETTINGS</code> environment variable. If the settings object contains a key named <code>public</code>, then <code>Meteor.settings.public</code> will be available on the client as well as the server.  All other properties of <code>Meteor.settings</code> are only defined on the server.  You can rely on <code>Meteor.settings</code> and <code>Meteor.settings.public</code> being defined objects (not undefined) on both client and server even if there are no settings specified.  Changes to <code>Meteor.settings.public</code> at runtime will be picked up by new client connections.</p>",type:{names:["Object"]}},"Meteor.startup":{filepath:"meteor/startup_client.js",kind:"function",lineno:90,locus:"Anywhere",longname:"Meteor.startup",memberof:"Meteor",module:"meteor",name:"startup",options:[],params:[{description:"<p>A function to run on startup.</p>",name:"func",type:{names:["function"]}}],scope:"static",summary:"<p>Run code when a client or a server starts.</p>"},"Meteor.status":{alias:"Meteor.status",filepath:"ddp-client/common/livedata_connection.js",importfrompackage:"meteor",kind:"function",lineno:1086,locus:"Client",longname:"Meteor.status",memberof:"Meteor",module:"meteor",name:"status",options:[],params:[],scope:"static",summary:"<p>Get the current connection status. A reactive data source.</p>"},"Meteor.subscribe":{alias:"Meteor.subscribe",filepath:"ddp-client/common/livedata_connection.js",importfrompackage:"meteor",kind:"function",lineno:395,locus:"Client",longname:"Meteor.subscribe",memberof:"Meteor",module:"meteor",name:"subscribe",options:[],params:[{description:`<p>Name of the subscription.  Matches the name of the
455server's <code>publish()</code> call.</p>`,name:"name",type:{names:["String"]}},{description:`<p>Optional arguments passed to publisher
456function on server.</p>`,name:"arg1, arg2...",optional:!0,type:{names:["EJSONable"]}},{description:`<p>Optional. May include <code>onStop</code>
457and <code>onReady</code> callbacks. If there is an error, it is passed as an
458argument to <code>onStop</code>. If a function is passed instead of an object, it
459is interpreted as an <code>onReady</code> callback.</p>`,name:"callbacks",optional:!0,type:{names:["function","Object"]}}],scope:"static",summary:`<p>Subscribe to a record set.  Returns a handle that provides
460<code>stop()</code> and <code>ready()</code> methods.</p>`},"Meteor.user":{filepath:"accounts-base/accounts_common.js",importfrompackage:"meteor",kind:"function",lineno:443,locus:"Anywhere",longname:"Meteor.user",memberof:"Meteor",module:"meteor",name:"user",options:[{description:"<p>Dictionary of fields to return or exclude.</p>",name:"fields",type:{names:["MongoFieldSpecifier"]}}],params:[{name:"options",optional:!0,type:{names:["Object"]}}],scope:"static",summary:"<p>Get the current user record, or <code>null</code> if no user is logged in. On the client this can also be <code>undefined</code> while a user id is set but the user document is not yet in Minimongo. A reactive data source.</p>"},"Meteor.userAsync":{filepath:"accounts-base/accounts_common.js",importfrompackage:"meteor",kind:"function",lineno:452,locus:"Anywhere",longname:"Meteor.userAsync",memberof:"Meteor",module:"meteor",name:"userAsync",options:[{description:"<p>Dictionary of fields to return or exclude.</p>",name:"fields",type:{names:["MongoFieldSpecifier"]}}],params:[{name:"options",optional:!0,type:{names:["Object"]}}],scope:"static",summary:"<p>Get the current user record, or <code>null</code> if no user is logged in. May also be <code>undefined</code> when a user id is set but the user document cannot be found yet. A reactive data source.</p>"},"Meteor.userId":{filepath:"accounts-base/accounts_common.js",importfrompackage:"meteor",kind:"function",lineno:434,locus:"Anywhere",longname:"Meteor.userId",memberof:"Meteor",module:"meteor",name:"userId",options:[],params:[],scope:"static",summary:"<p>Get the current user id, or <code>null</code> if no user is logged in. A reactive data source.</p>"},"Meteor.users":{filepath:"accounts-base/server_main.js",importfrompackage:"meteor",kind:"member",lineno:24,locus:"Anywhere",longname:"Meteor.users",memberof:"Meteor",module:"meteor",name:"users",scope:"static",summary:'<p>A <a href="#collections">Mongo.Collection</a> containing user documents.</p>',type:{names:["Mongo.Collection"]}},"Meteor.wrapAsync":{filepath:"meteor/helpers.js",kind:"function",lineno:134,locus:"Anywhere",longname:"Meteor.wrapAsync",memberof:"Meteor",module:"meteor",name:"wrapAsync",options:[],params:[{description:"<p>A function that takes a callback as its final parameter</p>",name:"func",type:{names:["function"]}},{description:"<p>Optional <code>this</code> object against which the original function will be invoked</p>",name:"context",optional:!0,type:{names:["Object"]}}],scope:"static",summary:`<p>Wrap a function that takes a callback function as its final parameter.
461The signature of the callback of the wrapped function should be <code>function(error, result){}</code>.
462On the server, the wrapped function can be used either synchronously (without passing a callback) or asynchronously
463(when a callback is passed). On the client, a callback is always required; errors will be logged if there is no callback.
464If a callback is provided, the environment captured when the original function was called will be restored in the callback.
465The parameters of the wrapped function must not contain any optional parameters or be undefined, as the callback function is expected to be the final, non-undefined parameter.</p>`},"ModernBrowsers.calculateHashOfMinimumVersions":{filepath:"modern-browsers/modern.js",kind:"member",lineno:183,longname:"ModernBrowsers.calculateHashOfMinimumVersions",memberof:"ModernBrowsers",module:"modern-browsers",name:"calculateHashOfMinimumVersions",returns:[{type:{names:["string"]}}],scope:"static",summary:"<p>Creates a hash of the object of minimum browser versions.</p>"},"ModernBrowsers.getMinimumBrowserVersions":{filepath:"modern-browsers/modern.js",kind:"member",lineno:169,locus:"server",longname:"ModernBrowsers.getMinimumBrowserVersions",memberof:"ModernBrowsers",module:"modern-browsers",name:"getMinimumBrowserVersions",returns:[{type:{names:["object"]}}],scope:"static",summary:"<p>Returns an object that lists supported browser engines and their minimum versions to be considered modern for Meteor.</p>"},"ModernBrowsers.isModern":{filepath:"modern-browsers/modern.js",kind:"member",lineno:78,locus:"server",longname:"ModernBrowsers.isModern",memberof:"ModernBrowsers",module:"modern-browsers",name:"isModern",params:[{description:"<p>{ name: string, major: number, minor?: number, patch?: number }</p>",name:"browser",optional:!0,type:{names:["object"]}}],returns:[{type:{names:["boolean"]}}],scope:"static",summary:`<p>Given a { name, major, minor, patch } object like the one provided by
466webapp via request.browser, return true if that browser qualifies as
467&quot;modern&quot; according to all requested version constraints.</p>`},"ModernBrowsers.setMinimumBrowserVersions":{filepath:"modern-browsers/modern.js",kind:"member",lineno:115,locus:"server",longname:"ModernBrowsers.setMinimumBrowserVersions",memberof:"ModernBrowsers",module:"modern-browsers",name:"setMinimumBrowserVersions",params:[{description:`<p>Name of the browser engine and minimum version for at which it is considered modern. For example: {
468chrome: 49,
469edge: 12,
470ie: 12,
471firefox: 45,
472mobileSafari: 10,
473opera: 38,
474safari: 10,
475electron: [1, 6],
476}</p>`,name:"versions",type:{names:["object"]}},{description:"<p>Name of the capability that requires these minimums.</p>",name:"source",type:{names:["function"]}}],scope:"static",summary:`<p>Any package that depends on the modern-browsers package can call this
477function to communicate its expectations for the minimum browser
478versions that qualify as &quot;modern.&quot; The final decision between
479web.browser.legacy and web.browser builds will be based on the maximum of all
480requested minimum versions for each browser.</p>`},Mongo:{filepath:"mongo/collection/collection.js",kind:"namespace",lineno:20,longname:"Mongo",module:"mongo",name:"Mongo",scope:"global",summary:"<p>Namespace for MongoDB-related items</p>"},"Mongo.Collection":{filepath:"mongo/collection/collection.js",instancename:"collection",kind:"class",lineno:40,locus:"Anywhere",longname:"Mongo.Collection",memberof:"Mongo",module:"mongo",name:"Collection",options:[{description:'<p>The server connection that will manage this collection. Uses the default connection if not specified.  Pass the return value of calling <a href="#DDP-connect"><code>DDP.connect</code></a> to specify a different server. Pass <code>null</code> to specify no connection. Unmanaged (<code>name</code> is null) collections cannot specify a connection.</p>',name:"connection",type:{names:["Object"]}},{description:`<p>The method of generating the <code>_id</code> fields of new documents in this collection.  Possible values:</p>
481<ul>
482<li><strong><code>'STRING'</code></strong>: random strings</li>
483<li><strong><code>'MONGO'</code></strong>:  random <a href="#mongo_object_id"><code>Mongo.ObjectID</code></a> values</li>
484</ul>
485<p>The default id generation technique is <code>'STRING'</code>.</p>`,name:"idGeneration",type:{names:["String"]}},{description:"<p>An optional transformation function. Documents will be passed through this function before being returned from <code>fetch</code> or <code>findOneAsync</code>, and before being passed to callbacks of <code>observe</code>, <code>map</code>, <code>forEach</code>, <code>allow</code>, and <code>deny</code>. Transforms are <em>not</em> applied for the callbacks of <code>observeChanges</code> or to cursors returned from publish functions.</p>",name:"transform",type:{names:["function"]}},{description:"<p>Set to <code>false</code> to skip setting up the mutation methods that enable insert/update/remove from client code. Default <code>true</code>.</p>",name:"defineMutationMethods",type:{names:["Boolean"]}}],params:[{description:"<p>The name of the collection.  If null, creates an unmanaged (unsynchronized) local collection.</p>",name:"name",type:{names:["String"]}},{name:"options",optional:!0,type:{names:["Object"]}}],scope:"static",summary:"<p>Constructor for a Collection</p>"},"Mongo.Collection#allow":{filepath:"allow-deny/allow-deny.js",kind:"function",lineno:45,locus:"Server",longname:"Mongo.Collection#allow",memberof:"Mongo.Collection",module:"allow-deny",name:"allow",options:[{description:"<p>Functions that look at a proposed modification to the database and return true if it should be allowed.</p>",name:"insert, update, remove",type:{names:["function"]}},{description:"<p>Optional performance enhancement. Limits the fields that will be fetched from the database for inspection by your <code>update</code> and <code>remove</code> functions.</p>",name:"fetch",type:{names:["Array.<String>"]}},{description:'<p>Overrides <code>transform</code> on the  <a href="#collections"><code>Collection</code></a>.  Pass <code>null</code> to disable transformation.</p>',name:"transform",type:{names:["function"]}}],params:[{name:"options",type:{names:["Object"]}}],scope:"instance",summary:"<p>Allow users to write directly to this collection from client code, subject to limitations you define.</p>"},"Mongo.Collection#countDocuments":{filepath:"mongo/collection/methods_async.js",kind:"function",lineno:211,locus:"Anywhere",longname:"Mongo.Collection#countDocuments",memberof:"Mongo.Collection",module:"mongo",name:"countDocuments",options:[],params:[{description:"<p>A query describing the documents to count</p>",name:"selector",optional:!0,type:{names:["MongoSelector"]}},{description:'<p>All options are listed in <a href="https://mongodb.github.io/node-mongodb-native/4.11/interfaces/CountDocumentsOptions.html">MongoDB documentation</a>. Please note that not all of them are available on the client.</p>',name:"options",optional:!0,type:{names:["Object"]}}],returns:[{type:{names:["Promise.<number>"]}}],scope:"instance",summary:"<p>Gets the number of documents matching the filter. For a fast count of the total documents in a collection see <code>estimatedDocumentCount</code>.</p>"},"Mongo.Collection#createIndex":{filepath:"mongo/collection/methods_index.js",kind:"function",lineno:67,locus:"server",longname:"Mongo.Collection#createIndex",memberof:"Mongo.Collection",module:"mongo",name:"createIndex",options:[{description:"<p>Name of the index</p>",name:"name",type:{names:["String"]}},{description:'<p>Define that the index values must be unique, more at <a href="https://docs.mongodb.com/manual/core/index-unique/">MongoDB documentation</a></p>',name:"unique",type:{names:["Boolean"]}},{description:'<p>Define that the index is sparse, more at <a href="https://docs.mongodb.com/manual/core/index-sparse/">MongoDB documentation</a></p>',name:"sparse",type:{names:["Boolean"]}}],params:[{description:"<p>A document that contains the field and value pairs where the field is the index key and the value describes the type of index for that field. For an ascending index on a field, specify a value of <code>1</code>; for descending index, specify a value of <code>-1</code>. Use <code>text</code> for text indexes.</p>",name:"index",type:{names:["Object"]}},{description:'<p>All options are listed in <a href="https://docs.mongodb.com/manual/reference/method/db.collection.createIndex/#options">MongoDB documentation</a></p>',name:"options",optional:!0,type:{names:["Object"]}}],scope:"instance",summary:"<p>Asynchronously creates the specified index on the collection.</p>"},"Mongo.Collection#createIndexAsync":{filepath:"mongo/collection/methods_index.js",kind:"function",lineno:31,locus:"server",longname:"Mongo.Collection#createIndexAsync",memberof:"Mongo.Collection",module:"mongo",name:"createIndexAsync",options:[{description:"<p>Name of the index</p>",name:"name",type:{names:["String"]}},{description:'<p>Define that the index values must be unique, more at <a href="https://docs.mongodb.com/manual/core/index-unique/">MongoDB documentation</a></p>',name:"unique",type:{names:["Boolean"]}},{description:'<p>Define that the index is sparse, more at <a href="https://docs.mongodb.com/manual/core/index-sparse/">MongoDB documentation</a></p>',name:"sparse",type:{names:["Boolean"]}}],params:[{description:"<p>A document that contains the field and value pairs where the field is the index key and the value describes the type of index for that field. For an ascending index on a field, specify a value of <code>1</code>; for descending index, specify a value of <code>-1</code>. Use <code>text</code> for text indexes.</p>",name:"index",type:{names:["Object"]}},{description:'<p>All options are listed in <a href="https://docs.mongodb.com/manual/reference/method/db.collection.createIndex/#options">MongoDB documentation</a></p>',name:"options",optional:!0,type:{names:["Object"]}}],scope:"instance",summary:"<p>Asynchronously creates the specified index on the collection.</p>"},"Mongo.Collection#deny":{filepath:"allow-deny/allow-deny.js",kind:"function",lineno:60,locus:"Server",longname:"Mongo.Collection#deny",memberof:"Mongo.Collection",module:"allow-deny",name:"deny",options:[{description:'<p>Functions that look at a proposed modification to the database and return true if it should be denied, even if an <a href="#allow">allow</a> rule says otherwise.</p>',name:"insert, update, remove",type:{names:["function"]}},{description:"<p>Optional performance enhancement. Limits the fields that will be fetched from the database for inspection by your <code>update</code> and <code>remove</code> functions.</p>",name:"fetch",type:{names:["Array.<String>"]}},{description:'<p>Overrides <code>transform</code> on the  <a href="#collections"><code>Collection</code></a>.  Pass <code>null</code> to disable transformation.</p>',name:"transform",type:{names:["function"]}}],params:[{name:"options",type:{names:["Object"]}}],scope:"instance",summary:"<p>Override <code>allow</code> rules.</p>"},"Mongo.Collection#ensureIndexAsync":{deprecated:"in 3.0",filepath:"mongo/collection/methods_index.js",kind:"function",lineno:6,locus:"server",longname:"Mongo.Collection#ensureIndexAsync",memberof:"Mongo.Collection",module:"mongo",name:"ensureIndexAsync",options:[{description:"<p>Name of the index</p>",name:"name",type:{names:["String"]}},{description:'<p>Define that the index values must be unique, more at <a href="https://docs.mongodb.com/manual/core/index-unique/">MongoDB documentation</a></p>',name:"unique",type:{names:["Boolean"]}},{description:'<p>Define that the index is sparse, more at <a href="https://docs.mongodb.com/manual/core/index-sparse/">MongoDB documentation</a></p>',name:"sparse",type:{names:["Boolean"]}}],params:[{description:"<p>A document that contains the field and value pairs where the field is the index key and the value describes the type of index for that field. For an ascending index on a field, specify a value of <code>1</code>; for descending index, specify a value of <code>-1</code>. Use <code>text</code> for text indexes.</p>",name:"index",type:{names:["Object"]}},{description:'<p>All options are listed in <a href="https://docs.mongodb.com/manual/reference/method/db.collection.createIndex/#options">MongoDB documentation</a></p>',name:"options",optional:!0,type:{names:["Object"]}}],scope:"instance",summary:"<p>Asynchronously creates the specified index on the collection.</p>"},"Mongo.Collection#estimatedDocumentCount":{filepath:"mongo/collection/methods_async.js",kind:"function",lineno:225,locus:"Anywhere",longname:"Mongo.Collection#estimatedDocumentCount",memberof:"Mongo.Collection",module:"mongo",name:"estimatedDocumentCount",options:[],params:[{description:'<p>All options are listed in <a href="https://mongodb.github.io/node-mongodb-native/4.11/interfaces/EstimatedDocumentCountOptions.html">MongoDB documentation</a>. Please note that not all of them are available on the client.</p>',name:"options",optional:!0,type:{names:["Object"]}}],returns:[{type:{names:["Promise.<number>"]}}],scope:"instance",summary:"<p>Gets an estimate of the count of documents in a collection using collection metadata. For an exact count of the documents in a collection see <code>countDocuments</code>.</p>"},"Mongo.Collection#find":{filepath:"mongo/collection/methods_sync.js",kind:"function",lineno:2,locus:"Anywhere",longname:"Mongo.Collection#find",memberof:"Mongo.Collection",module:"mongo",name:"find",options:[{description:"<p>
485Sort order (default: natural order)</p>",name:"sort",type:{names:["MongoSortSpecifier"]}},{description:"<p>Number of results to skip at the beginning</p>",name:"skip",type:{names:["Number"]}},{description:"<p>Maximum number of results to return</p>",name:"limit",type:{names:["Number"]}},{description:"<p>Dictionary of fields to return or exclude.</p>",name:"fields",type:{names:["MongoFieldSpecifier"]}},{description:"<p>(Client only) Default <code>true</code>; pass <code>false</code> to disable reactivity</p>",name:"reactive",type:{names:["Boolean"]}},{description:'<p>Overrides <code>transform</code> on the  <a href="#collections"><code>Collection</code></a> for this cursor.  Pass <code>null</code> to disable transformation.</p>',name:"transform",type:{names:["function"]}},{description:"<p>(Server only) Pass true to disable oplog-tailing on this query. This affects the way server processes calls to <code>observe</code> on this query. Disabling the oplog can be useful when working with data that updates in large batches.</p>",name:"disableOplog",type:{names:["Boolean"]}},{description:"<p>(Server only) When oplog is disabled (through the use of <code>disableOplog</code> or when otherwise not available), the frequency (in milliseconds) of how often to poll this query when observing on the server. Defaults to 10000ms (10 seconds).</p>",name:"pollingIntervalMs",type:{names:["Number"]}},{description:"<p>(Server only) When oplog is disabled (through the use of <code>disableOplog</code> or when otherwise not available), the minimum time (in milliseconds) to allow between re-polling when observing on the server. Increasing this will save CPU and mongo load at the expense of slower updates to users. Decreasing this is not recommended. Defaults to 50ms.</p>",name:"pollingThrottleMs",type:{names:["Number"]}},{description:"<p>(Server only) If set, instructs MongoDB to set a time limit for this cursor's operations. If the operation reaches the specified time limit (in milliseconds) without the having been completed, an exception will be thrown. Useful to prevent an (accidental or malicious) unoptimized query from causing a full collection scan that would disrupt other database users, at the expense of needing to handle the resulting error.</p>",name:"maxTimeMs",type:{names:["Number"]}},{description:"<p>(Server only) Overrides MongoDB's default index selection and query optimization process. Specify an index to force its use, either by its name or index specification. You can also specify <code>{ $natural : 1 }</code> to force a forwards collection scan, or <code>{ $natural : -1 }</code> for a reverse collection scan. Setting this is only recommended for advanced users.</p>",name:"hint",type:{names:["String","Object"]}},{description:'<p>(Server only) Specifies a custom MongoDB <a href="https://docs.mongodb.com/manual/core/read-preference"><code>readPreference</code></a> for this particular cursor. Possible values are <code>primary</code>, <code>primaryPreferred</code>, <code>secondary</code>, <code>secondaryPreferred</code> and <code>nearest</code>.</p>',name:"readPreference",type:{names:["String"]}},{description:`<p>Specifies a <a href="https://docs.mongodb.com/manual/reference/collation/">collation</a> for string comparison. Supported on both client (Minimongo) and server. Client-supported options: <code>locale</code> (required, e.g. <code>'en'</code>), <code>strength</code> (<code>1</code> for base, <code>2</code> for case-insensitive, <code>3</code> for default), <code>caseLevel</code>, <code>numericOrdering</code> (<code>true</code> to sort <code>'2'</code> before <code>'10'</code>), <code>caseFirst</code> (<code>'upper'</code> or <code>'lower'</code>). Server-only options (ignored by Minimongo): <code>alternate</code>, <code>maxVariable</code>, <code>backwards</code>, <code>strength</code> 4–5. Compatible with oplog-tailing.</p>`,name:"collation",type:{names:["Object"]}}],params:[{description:"<p>A query describing the documents to find</p>",name:"selector",optional:!0,type:{names:["MongoSelector"]}},{name:"options",optional:!0,type:{names:["Object"]}}],returns:[{type:{names:["Mongo.Cursor"]}}],scope:"instance",summary:"<p>Find the documents in a collection that match the selector.</p>"},"Mongo.Collection#findOne":{filepath:"mongo/collection/methods_sync.js",kind:"function",lineno:35,locus:"Anywhere",longname:"Mongo.Collection#findOne",memberof:"Mongo.Collection",module:"mongo",name:"findOne",options:[{description:"<p>
485Sort order (default: natural order)</p>",name:"sort",type:{names:["MongoSortSpecifier"]}},{description:"<p>Number of results to skip at the beginning</p>",name:"skip",type:{names:["Number"]}},{description:"<p>Dictionary of fields to return or exclude.</p>",name:"fields",type:{names:["MongoFieldSpecifier"]}},{description:"<p>(Client only) Default true; pass false to disable reactivity</p>",name:"reactive",type:{names:["Boolean"]}},{description:'<p>Overrides <code>transform</code> on the <a href="#collections"><code>Collection</code></a> for this cursor.  Pass <code>null</code> to disable transformation.</p>',name:"transform",type:{names:["function"]}},{description:'<p>(Server only) Specifies a custom MongoDB <a href="https://docs.mongodb.com/manual/core/read-preference"><code>readPreference</code></a> for fetching the document. Possible values are <code>primary</code>, <code>primaryPreferred</code>, <code>secondary</code>, <code>secondaryPreferred</code> and <code>nearest</code>.</p>',name:"readPreference",type:{names:["String"]}},{description:'<p>Specifies a <a href="https://docs.mongodb.com/manual/reference/collation/">collation</a> for string comparison. See <a href="#find"><code>find</code></a> for details.</p>',name:"collation",type:{names:["Object"]}}],params:[{description:"<p>A query describing the documents to find</p>",name:"selector",optional:!0,type:{names:["MongoSelector"]}},{name:"options",optional:!0,type:{names:["Object"]}}],returns:[{type:{names:["Object"]}}],scope:"instance",summary:"<p>Finds the first document that matches the selector, as ordered by sort and skip options. Returns <code>undefined</code> if no matching document is found.</p>"},"Mongo.Collection#findOneAsync":{filepath:"mongo/collection/methods_async.js",kind:"function",lineno:2,locus:"Anywhere",longname:"Mongo.Collection#findOneAsync",memberof:"Mongo.Collection",module:"mongo",name:"findOneAsync",options:[{description:"<p>Sort order (default: natural order)</p>",name:"sort",type:{names:["MongoSortSpecifier"]}},{description:"<p>Number of results to skip at the beginning</p>",name:"skip",type:{names:["Number"]}},{description:"<p>Dictionary of fields to return or exclude.</p>",name:"fields",type:{names:["MongoFieldSpecifier"]}},{description:"<p>(Client only) Default true; pass false to disable reactivity</p>",name:"reactive",type:{names:["Boolean"]}},{description:'<p>Overrides <code>transform</code> on the <a href="#collections"><code>Collection</code></a> for this cursor.  Pass <code>null</code> to disable transformation.</p>',name:"transform",type:{names:["function"]}},{description:'<p>(Server only) Specifies a custom MongoDB <a href="https://docs.mongodb.com/manual/core/read-preference"><code>readPreference</code></a> for fetching the document. Possible values are <code>primary</code>, <code>primaryPreferred</code>, <code>secondary</code>, <code>secondaryPreferred</code> and <code>nearest</code>.</p>',name:"readPreference",type:{names:["String"]}},{description:'<p>Specifies a <a href="https://docs.mongodb.com/manual/reference/collation/">collation</a> for string comparison. See <a href="#find"><code>find</code></a> for details.</p>',name:"collation",type:{names:["Object"]}}],params:[{description:"<p>A query describing the documents to find</p>",name:"selector",optional:!0,type:{names:["MongoSelector"]}},{name:"options",optional:!0,type:{names:["Object"]}}],returns:[{type:{names:["Object"]}}],scope:"instance",summary:"<p>Finds the first document that matches the selector, as ordered by sort and skip options. Returns <code>undefined</code> if no matching document is found.</p>"},"Mongo.Collection#insert":{filepath:"mongo/collection/methods_sync.js",kind:"function",lineno:183,locus:"Anywhere",longname:"Mongo.Collection#insert",memberof:"Mongo.Collection",module:"mongo",name:"insert",options:[],params:[{description:"<p>The document to insert. May not yet have an _id attribute, in which case Meteor will generate one for you.</p>",name:"doc",type:{names:["Object"]}},{description:"<p>Optional.  If present, called with an error object as the first argument and, if no error, the _id as the second.</p>",name:"callback",optional:!0,type:{names:["function"]}}],scope:"instance",summary:"<p>Insert a document in the collection.  Returns its unique _id.</p>"},"Mongo.Collection#insertAsync":{filepath:"minimongo/constants.js",kind:"function",lineno:43,locus:"Anywhere",longname:"Mongo.Collection#insertAsync",memberof:"Mongo.Collection",module:"minimongo",name:"insertAsync",options:[],params:[{description:"<p>The document to insert. May not yet have an _id attribute, in which case Meteor will generate one for you.</p>",name:"doc",type:{names:["Object"]}}],returns:[{type:{names:["Promise"]}}],scope:"instance",summary:"<p>Insert a document in the collection.  Returns its unique _id.</p>"},"Mongo.Collection#rawCollection":{filepath:"mongo/collection/collection.js",kind:"function",lineno:309,locus:"Server",longname:"Mongo.Collection#rawCollection",memberof:"Mongo.Collection",module:"mongo",name:"rawCollection",options:[],params:[],scope:"instance",summary:'<p>Returns the <a href="http://mongodb.github.io/node-mongodb-native/3.0/api/Collection.html"><code>Collection</code></a>
485 object corresponding to this collection from the <a href="https://www.npmjs.com/package/mongodb">npm <code>mongodb</code> driver module</a> which is wrapped by <code>Mongo.Collection</code>.</p>'},"Mongo.Collection#rawDatabase":{filepath:"mongo/collection/collection.js",kind:"function",lineno:323,locus:"Server",longname:"Mongo.Collection#rawDatabase",memberof:"Mongo.Collection",module:"mongo",name:"rawDatabase",options:[],params:[],scope:"instance",summary:`<p>Returns the <a href="http://mongodb.github.io/node-mongodb-native/3.0/api/Db.html"><code>Db</code></a> object corresponding to this collection's database connection from the <a href="https://www.npmjs.com/package/mongodb">npm <code>mongodb</code> driver module</a> which is wrapped by <code>Mongo.Collection</code>.</p>`},"Mongo.Collection#remove":{filepath:"mongo/collection/methods_sync.js",kind:"function",lineno:271,locus:"Anywhere",longname:"Mongo.Collection#remove",memberof:"Mongo.Collection",module:"mongo",name:"remove",options:[],params:[{description:"<p>Specifies which documents to remove</p>",name:"selector",type:{names:["MongoSelector"]}},{description:"<p>Optional.  If present, called with an error object as the first argument and, if no error, the number of affected documents as the second.</p>",name:"callback",optional:!0,type:{names:["function"]}}],scope:"instance",summary:"<p>Remove documents from the collection</p>"},"Mongo.Collection#removeAsync":{filepath:"minimongo/constants.js",kind:"function",lineno:53,locus:"Anywhere",longname:"Mongo.Collection#removeAsync",memberof:"Mongo.Collection",module:"minimongo",name:"removeAsync",options:[],params:[{description:"<p>Specifies which documents to remove</p>",name:"selector",type:{names:["MongoSelector"]}}],returns:[{type:{names:["Promise"]}}],scope:"instance",summary:"<p>Remove documents from the collection</p>"},"Mongo.Collection#update":{filepath:"mongo/collection/methods_sync.js",kind:"function",lineno:196,locus:"Anywhere",longname:"Mongo.Collection#update",memberof:"Mongo.Collection",module:"mongo",name:"update",options:[{description:"<p>True to modify all matching documents; false to only modify one of the matching documents (the default).</p>",name:"multi",type:{names:["Boolean"]}},{description:"<p>True to insert a document if no matching documents are found.</p>",name:"upsert",type:{names:["Boolean"]}},{description:'<p>Optional. Used in combination with MongoDB <a href="https://docs.mongodb.com/manual/reference/operator/update/positional-filtered/">filtered positional operator</a> to specify which elements to modify in an array field.</p>',name:"arrayFilters",type:{names:["Array"]}}],params:[{description:"<p>Specifies which documents to modify</p>",name:"selector",type:{names:["MongoSelector"]}},{description:"<p>Specifies how to modify the documents</p>",name:"modifier",type:{names:["MongoModifier"]}},{name:"options",optional:!0,type:{names:["Object"]}},{description:"<p>Optional.  If present, called with an error object as the first argument and, if no error, the number of affected documents as the second.</p>",name:"callback",optional:!0,type:{names:["function"]}}],scope:"instance",summary:"<p>Asynchronously modifies one or more documents in the collection. Returns the number of matched documents.</p>"},"Mongo.Collection#updateAsync":{filepath:"minimongo/constants.js",kind:"function",lineno:63,locus:"Anywhere",longname:"Mongo.Collection#updateAsync",memberof:"Mongo.Collection",module:"minimongo",name:"updateAsync",options:[{description:"<p>True to modify all matching documents; false to only modify one of the matching documents (the default).</p>",name:"multi",type:{names:["Boolean"]}},{description:"<p>True to insert a document if no matching documents are found.</p>",name:"upsert",type:{names:["Boolean"]}},{description:'<p>Optional. Used in combination with MongoDB <a href="https://docs.mongodb.com/manual/reference/operator/update/positional-filtered/">filtered positional operator</a> to specify which elements to modify in an array field.</p>',name:"arrayFilters",type:{names:["Array"]}}],params:[{description:"<p>Specifies which documents to modify</p>",name:"selector",type:{names:["MongoSelector"]}},{description:"<p>Specifies how to modify the documents</p>",name:"modifier",type:{names:["MongoModifier"]}},{name:"options",optional:!0,type:{names:["Object"]}}],returns:[{type:{names:["Promise"]}}],scope:"instance",summary:"<p>Modify one or more documents in the collection. Returns the number of matched documents.</p>"},"Mongo.Collection#upsert":{filepath:"mongo/collection/methods_sync.js",kind:"function",lineno:293,locus:"Anywhere",longname:"Mongo.Collection#upsert",memberof:"Mongo.Collection",module:"mongo",name:"upsert",options:[{description:"<p>True to modify all matching documents; false to only modify one of the matching documents (the default).</p>",name:"multi",type:{names:["Boolean"]}}],params:[{description:"<p>Specifies which documents to modify</p>",name:"selector",type:{names:["MongoSelector"]}},{description:"<p>Specifies how to modify the documents</p>",name:"modifier",type:{names:["MongoModifier"]}},{name:"options",optional:!0,type:{names:["Object"]}},{description:"<p>Optional.  If present, called with an error object as the first argument and, if no error, the number of affected documents as the second.</p>",name:"callback",optional:!0,type:{names:["function"]}}],scope:"instance",summary:"<p>Asynchronously modifies one or more documents in the collection, or insert one if no matching documents were found. Returns an object with keys <code>numberAffected</code> (the number of documents modified)  and <code>insertedId</code> (the unique _id of the document that was inserted, if any).</p>"},"Mongo.Collection#upsertAsync":{filepath:"minimongo/constants.js",kind:"function",lineno:78,locus:"Anywhere",longname:"Mongo.Collection#upsertAsync",memberof:"Mongo.Collection",module:"minimongo",name:"upsertAsync",options:[{description:"<p>True to modify all matching documents; false to only modify one of the matching documents (the default).</p>",name:"multi",type:{names:["Boolean"]}}],params:[{description:"<p>Specifies which documents to modify</p>",name:"selector",type:{names:["MongoSelector"]}},{description:"<p>Specifies how to modify the documents</p>",name:"modifier",type:{names:["MongoModifier"]}},{name:"options",optional:!0,type:{names:["Object"]}}],returns:[{type:{names:["Promise"]}}],scope:"instance",summary:"<p>Modify one or more documents in the collection, or insert one if no matching documents were found. Returns an object with keys <code>numberAffected</code> (the number of documents modified)  and <code>insertedId</code> (the unique _id of the document that was inserted, if any).</p>"},"Mongo.Collection.addExtension":{filepath:"mongo/collection/collection.js",kind:"function",lineno:172,locus:"Anywhere",longname:"Mongo.Collection.addExtension",memberof:"Mongo.Collection",module:"mongo",name:"addExtension",options:[],params:[{description:"<p>Extension function called with (name, options) and 'this' bound to collection instance</p>",name:"extension",type:{names:["function"]}}],scope:"static",summary:"<p>Add a constructor extension function that runs when collections are created.</p>"},"Mongo.Collection.addPrototypeMethod":{filepath:"mongo/collection/collection.js",kind:"function",lineno:184,locus:"Anywhere",longname:"Mongo.Collection.addPrototypeMethod",memberof:"Mongo.Collection",module:"mongo",name:"addPrototypeMethod",o
485ptions:[],params:[{description:"<p>The name of the method to add</p>",name:"name",type:{names:["String"]}},{description:"<p>The method function, bound to the collection instance</p>",name:"method",type:{names:["function"]}}],scope:"static",summary:"<p>Add a prototype method to all collection instances.</p>"},"Mongo.Collection.addStaticMethod":{filepath:"mongo/collection/collection.js",kind:"function",lineno:196,locus:"Anywhere",longname:"Mongo.Collection.addStaticMethod",memberof:"Mongo.Collection",module:"mongo",name:"addStaticMethod",options:[],params:[{description:"<p>The name of the static method to add</p>",name:"name",type:{names:["String"]}},{description:"<p>The static method function</p>",name:"method",type:{names:["function"]}}],scope:"static",summary:"<p>Add a static method to the Mongo.Collection constructor.</p>"},"Mongo.Collection.clearExtensions":{filepath:"mongo/collection/collection.js",kind:"function",lineno:239,locus:"Anywhere",longname:"Mongo.Collection.clearExtensions",memberof:"Mongo.Collection",module:"mongo",name:"clearExtensions",options:[],params:[],scope:"static",summary:"<p>Clear all extensions, prototype methods, and static methods (useful for testing).</p>"},"Mongo.Collection.getExtensions":{filepath:"mongo/collection/collection.js",kind:"function",lineno:250,locus:"Anywhere",longname:"Mongo.Collection.getExtensions",memberof:"Mongo.Collection",module:"mongo",name:"getExtensions",options:[],params:[],returns:[{description:"<p>Array of registered extension functions</p>",type:{names:["Array.<function()>"]}}],scope:"static",summary:"<p>Get all registered constructor extensions (useful for debugging).</p>"},"Mongo.Collection.getPrototypeMethods":{filepath:"mongo/collection/collection.js",kind:"function",lineno:261,locus:"Anywhere",longname:"Mongo.Collection.getPrototypeMethods",memberof:"Mongo.Collection",module:"mongo",name:"getPrototypeMethods",options:[],params:[],returns:[{description:"<p>Map of method names to functions</p>",type:{names:["Map.<String, function()>"]}}],scope:"static",summary:"<p>Get all registered prototype methods (useful for debugging).</p>"},"Mongo.Collection.getStaticMethods":{filepath:"mongo/collection/collection.js",kind:"function",lineno:272,locus:"Anywhere",longname:"Mongo.Collection.getStaticMethods",memberof:"Mongo.Collection",module:"mongo",name:"getStaticMethods",options:[],params:[],returns:[{description:"<p>Map of method names to functions</p>",type:{names:["Map.<String, function()>"]}}],scope:"static",summary:"<p>Get all registered static methods (useful for debugging).</p>"},"Mongo.Collection.removeExtension":{filepath:"mongo/collection/collection.js",kind:"function",lineno:207,locus:"Anywhere",longname:"Mongo.Collection.removeExtension",memberof:"Mongo.Collection",module:"mongo",name:"removeExtension",options:[],params:[{description:"<p>The extension function to remove</p>",name:"extension",type:{names:["function"]}}],scope:"static",summary:"<p>Remove a constructor extension (useful for testing).</p>"},"Mongo.Collection.removePrototypeMethod":{filepath:"mongo/collection/collection.js",kind:"function",lineno:218,locus:"Anywhere",longname:"Mongo.Collection.removePrototypeMethod",memberof:"Mongo.Collection",module:"mongo",name:"removePrototypeMethod",options:[],params:[{description:"<p>The name of the method to remove</p>",name:"name",type:{names:["String"]}}],scope:"static",summary:"<p>Remove a prototype method from all collection instances.</p>"},"Mongo.Collection.removeStaticMethod":{filepath:"mongo/collection/collection.js",kind:"function",lineno:229,locus:"Anywhere",longname:"Mongo.Collection.removeStaticMethod",memberof:"Mongo.Collection",module:"mongo",name:"removeStaticMethod",options:[],params:[{description:"<p>The name of the static method to remove</p>",name:"name",type:{names:["String"]}}],scope:"static",summary:"<p>Remove a static method from the Mongo.Collection constructor.</p>"},"Mongo.CollectionExtensions":{filepath:"mongo/collection/collection.js",kind:"member",lineno:358,longname:"Mongo.CollectionExtensions",memberof:"Mongo",module:"mongo",name:"CollectionExtensions",scope:"static",summary:"<p>Collection Extensions API</p>"},"Mongo.Cursor":{filepath:"mongo/collection/collection.js",instancename:"cursor",kind:"class",lineno:376,longname:"Mongo.Cursor",memberof:"Mongo",module:"mongo",name:"Cursor",options:[],params:[],scope:"static",summary:"<p>To create a cursor, use find. To access the documents in a cursor, use forEach, map, or fetch.</p>"}
485,"Mongo.Cursor#count":{deprecated:"in 2.9",filepath:"minimongo/cursor.js",kind:"function",lineno:44,locus:"Anywhere",longname:"Mongo.Cursor#count",memberof:"Mongo.Cursor",module:"minimongo",name:"count",options:[],params:[],returns:[{type:{names:["Number"]}}],scope:"instance",summary:`<p>Returns the number of documents that match a query. This method is
486<a href="https://www.mongodb.com/docs/v4.4/reference/command/count/">deprecated since MongoDB 4.0</a>;
487see <code>Collection.countDocuments</code> and
488<code>Collection.estimatedDocumentCount</code> for a replacement.</p>`},"Mongo.Cursor#countAsync":{deprecated:"in 2.9",filepath:"minimongo/constants.js",kind:"function",lineno:94,locus:"Anywhere",longname:"Mongo.Cursor#countAsync",memberof:"Mongo.Cursor",module:"minimongo",name:"countAsync",options:[],params:[],returns:[{type:{names:["Promise"]}}],scope:"instance",summary:`<p>Returns the number of documents that match a query. This method is
489<a href="https://www.mongodb.com/docs/v4.4/reference/command/count/">deprecated since MongoDB 4.0</a>;
490see <code>Collection.countDocuments</code> and
491<code>Collection.estimatedDocumentCount</code> for a replacement.</p>`},"Mongo.Cursor#fetch":{filepath:"minimongo/cursor.js",kind:"function",lineno:67,locus:"Anywhere",longname:"Mongo.Cursor#fetch",memberof:"Mongo.Cursor",module:"minimongo",name:"fetch",options:[],params:[],returns:[{type:{names:["Array.<Object>"]}}],scope:"instance",summary:"<p>Return all matching documents as an Array.</p>"},"Mongo.Cursor#fetchAsync":{filepath:"minimongo/constants.js",kind:"function",lineno:107,locus:"Anywhere",longname:"Mongo.Cursor#fetchAsync",memberof:"Mongo.Cursor",module:"minimongo",name:"fetchAsync",options:[],params:[],returns:[{type:{names:["Promise"]}}],scope:"instance",summary:"<p>Return all matching documents as an Array.</p>"},"Mongo.Cursor#forEach":{filepath:"minimongo/cursor.js",kind:"function",lineno:128,locus:"Anywhere",longname:"Mongo.Cursor#forEach",memberof:"Mongo.Cursor",module:"minimongo",name:"forEach",options:[],params:[{description:`<p>Function to call. It will be called
492with three arguments: the document, a
4930-based index, and <em>cursor</em>
494itself.</p>`,name:"callback",type:{names:["IterationCallback"]}},{description:`<p>An object which will be the value of <code>this</code> inside
495<code>callback</code>.</p>`,name:"thisArg",optional:!0,type:{names:["Any"]}}],scope:"instance",summary:`<p>Call <code>callback</code> once for each matching document, sequentially and
496synchronously.</p>`},"Mongo.Cursor#forEachAsync":{filepath:"minimongo/cursor.js",kind:"function",lineno:150,locus:"Anywhere",longname:"Mongo.Cursor#forEachAsync",memberof:"Mongo.Cursor",module:"minimongo",name:"forEachAsync",options:[],params:[{description:`<p>Function to call. It will be called
497with three arguments: the document, a
4980-based index, and <em>cursor</em>
499itself.</p>`,name:"callback",type:{names:["IterationCallback"]}},{description:`<p>An object which will be the value of <code>this</code> inside
500<code>callback</code>.</p>`,name:"thisArg",optional:!0,type:{names:["Any"]}}],returns:[{type:{names:["Promise"]}}],scope:"instance",summary:`<p>Call <code>callback</code> once for each matching document, sequentially and
501synchronously.</p>`},"Mongo.Cursor#map":{filepath:"minimongo/cursor.js",kind:"function",lineno:177,locus:"Anywhere",longname:"Mongo.Cursor#map",memberof:"Mongo.Cursor",module:"minimongo",name:"map",options:[],params:[{description:`<p>Function to call. It will be called
502with three arguments: the document, a
5030-based index, and <em>cursor</em>
504itself.</p>`,name:"callback",type:{names:["IterationCallback"]}},{description:`<p>An object which will be the value of <code>this</code> inside
505<code>callback</code>.</p>`,name:"thisArg",optional:!0,type:{names:["Any"]}}],scope:"instance",summary:"<p>Map callback over all matching documents. Returns an Array.</p>"},"Mongo.Cursor#mapAsync":{filepath:"minimongo/cursor.js",kind:"function",lineno:200,locus:"Anywhere",longname:"Mongo.Cursor#mapAsync",memberof:"Mongo.Cursor",module:"minimongo",name:"mapAsync",options:[],params:[{description:`<p>Function to call. It will be called
506with three arguments: the document, a
5070-based index, and <em>cursor</em>
508itself.</p>`,name:"callback",type:{names:["IterationCallback"]}},{description:`<p>An object which will be the value of <code>this</code> inside
509<code>callback</code>.</p>`,name:"thisArg",optional:!0,type:{names:["Any"]}}],returns:[{type:{names:["Promise.<Array>"]}}],scope:"instance",summary:"<p>Map callback over all matching documents. Returns a Promise<Array>.</p>"},"Mongo.Cursor#observe":{filepath:"minimongo/cursor.js",kind:"function",lineno:253,locus:"Anywhere",longname:"Mongo.Cursor#observe",memberof:"Mongo.Cursor",module:"minimongo",name:"observe",options:[],params:[{description:`<p>Functions to call to deliver the result set as it
510changes</p>`,name:"callbacks",type:{names:["Object"]}}],scope:"instance",summary:"<p>Watch a query.  Receive callbacks as the result set changes.</p>"},"Mongo.Cursor#observeAsync":{filepath:"minimongo/cursor.js",kind:"function",lineno:263,locus:"Anywhere",longname:"Mongo.Cursor#observeAsync",memberof:"Mongo.Cursor",module:"minimongo",name:"observeAsync",options:[],params:[],scope:"instance",summary:"<p>Watch a query.  Receive callbacks as the result set changes.</p>"},"Mongo.Cursor#observeChanges":{filepath:"minimongo/cursor.js",kind:"function",lineno:27
5107,locus:"Anywhere",longname:"Mongo.Cursor#observeChanges",memberof:"Mongo.Cursor",module:"minimongo",name:"observeChanges",options:[],params:[{description:`<p>Functions to call to deliver the result set as it
511changes</p>`,name:"callbacks",type:{names:["Object"]}}],scope:"instance",summary:`<p>Watch a query. Receive callbacks as the result set changes. Only
512the differences between the old and new documents are passed to
513the callbacks.</p>`},"Mongo.Cursor#observeChangesAsync":{filepath:"minimongo/cursor.js",kind:"function",lineno:434,locus:"Anywhere",longname:"Mongo.Cursor#observeChangesAsync",memberof:"Mongo.Cursor",module:"minimongo",name:"observeChangesAsync",options:[],params:[{description:`<p>Functions to call to deliver the result set as it
514changes</p>`,name:"callbacks",type:{names:["Object"]}}],scope:"instance",summary:`<p>Watch a query. Receive callbacks as the result set changes. Only
515the differences between the old and new documents are passed to
516the callbacks.</p>`},"Mongo.ObjectID":{filepath:"mongo/collection/collection.js",kind:"class",lineno:369,locus:"Anywhere",longname:"Mongo.ObjectID",memberof:"Mongo",module:"mongo",name:"ObjectID",options:[],params:[{description:"<p>Optional.  The 24-character hexadecimal contents of the ObjectID to create</p>",name:"hexString",optional:!0,type:{names:["String"]}}],scope:"static",summary:"<p>Create a Mongo-style <code>ObjectID</code>.  If you don't specify a <code>hexString</code>, the <code>ObjectID</code> will be generated randomly (not using MongoDB's ID construction rules).</p>"},"Mongo._collections":{access:"protected",filepath:"mongo/collection/collection.js",kind:"member",lineno:351,longname:"Mongo._collections",memberof:"Mongo",module:"mongo",name:"_collections",scope:"static",summary:"<p>A record of all defined Mongo.Collection instances, indexed by collection name.</p>",type:{names:["Map.<string, Mongo.Collection>"]}},"Mongo.getCollection":{filepath:"mongo/collection/collection.js",kind:"function",lineno:341,locus:"Anywhere",longname:"Mongo.getCollection",memberof:"Mongo",module:"mongo",name:"getCollection",options:[],params:[{description:"<p>Name of your collection as it was defined with <code>new Mongo.Collection()</code>.</p>",name:"name",type:{names:["string"]}}],returns:[{type:{names:["Mongo.Collection","undefined"]}}],scope:"static",summary:`<p>Retrieve a Meteor collection instance by name. Only collections defined with <a href="#collections"><code>new Mongo.Collection(...)</code></a> are available with this method. For plain MongoDB collections, you'll want to look at <a href="#Mongo-Collection-rawDatabase"><code>rawDatabase()</code></a>.</p>`},Npm:{kind:"namespace",longname:"Npm",name:"Npm",scope:"global",summary:"<p>The Npm object in package.js and package source files.</p>"},"Npm.require":{kind:"member",locus:"Server",longname:"Npm.require",memberof:"Npm",name:"require",params:[{description:"<p>The name of the package to require.</p>",name:"name",type:{names:["String"]}}],scope:"static",summary:`<p>Require a package that was specified using
517<code>Npm.depends()</code>.</p>`},Package:{kind:"namespace",locus:"package.js",longname:"Package",name:"Package",scope:"global",summary:"<p>The Package object in package.js</p>"},PackageAPI:{instancename:"api",kind:"class",longname:"PackageAPI",name:"PackageAPI",options:[],params:[],scope:"global",showinstancename:"true",summary:"<p>Type of the API object passed into the <code>Package.onUse</code> function.</p>"},"PackageAPI#addAssets":{kind:"function",locus:"package.js",longname:"PackageAPI#addAssets",memberof:"PackageAPI",name:"addAssets",options:[],params:[{description:"<p>Paths to the asset files.</p>",name:"filenames",type:{names:["String","Array.<String>"]}},{description:`<p>Specify where this asset should be
518available (e.g., 'server', 'client', 'web.browser', 'web.cordova'). You can
519specify multiple architectures by passing in an array, for example
520<code>['web.cordova', 'os.linux']</code>.</p>`,name:"architecture",type:{names:["String","Array.<String>"]}}],scope:"instance",summary:`<p>Specify asset files for your package. They can be accessed via
521the <a href="#assets">Assets API</a> from the server, or at the URL
522<code>
522/packages/username_package-name/file-name</code> from the client, depending on the
523architecture passed.</p>`},"PackageAPI#addFiles":{kind:"function",locus:"package.js",longname:"PackageAPI#addFiles",memberof:"PackageAPI",name:"addFiles",options:[{description:`<p>If this file is JavaScript code or will
524be compiled into JavaScript code by a build plugin, don't wrap the
525resulting file in a closure. Has the same effect as putting a file into the
526<code>client/compatibility</code> directory in an app.</p>`,name:"bare",optional:!0,type:{names:["Boolean"]}}],params:[{description:"<p>Paths to the source files.</p>",name:"filenames",type:{names:["String","Array.<String>"]}},{description:`<p>If you only want to use the file
527on the server (or the client), you can pass this argument
528(e.g., 'server', 'legacy', 'client', 'web.browser', 'web.cordova') to specify
529what architecture the file is used with. You can call api.addFiles(files, &quot;legacy&quot;)
530in your package.js configuration file to add extra files to the legacy bundle,
531or api.addFiles(files, &quot;client&quot;) to add files to all client bundles,
532or api.addFiles(files, &quot;web.browser&quot;) to add files only to the modern bundle.
533You can specify multiple
534architectures by passing in an array, for example
535<code>['web.cordova', 'os.linux']</code>. By default, the file will be loaded on both
536server and client.</p>`,name:"architecture",optional:!0,type:{names:["String","Array.<String>"]}},{description:`<p>Options that will be passed to build
537plugins.</p>`,name:"options",optional:!0,type:{names:["Object"]}}],scope:"instance",summary:"<p>Specify source code files for your package.</p>"},"PackageAPI#export":{kind:"function",locus:"package.js",longname:"PackageAPI#export",memberof:"PackageAPI",name:"export",options:[],params:[{description:`<p>Name of the object to export, or
538an array of object names.</p>`,name:"exportedObjects",type:{names:["String","Array.<String>"]}},{description:`<p>If you only want to export the
539object on the server (or the client), you can pass in the second argument
540(e.g., 'server', 'client', 'web.browser', 'web.cordova') to specify what
541architecture the export is used with. You can specify multiple
542architectures by passing in an array, for example <code>['web.cordova', 'os.linux']</code>.</p>`,name:"architecture",optional:!0,type:{names:["String","Array.<String>"]}},{name:"exportOptions",optional:!0,type:{names:["Object"]}},{description:`<p>If true, this symbol will only be
543exported when running tests for this package.</p>`,name:"exportOptions.testOnly",type:{names:["Boolean"]}}],scope:"instance",summary:`<p>Export package-level variables in your package. The specified
544variables (declared without <code>var</code> in the source code) will be available
545to packages that use your package. If your package sets the <code>debugOnly</code>,
546<code>prodOnly</code> or <code>testOnly</code> options to <code>true</code> when it calls
547<code>Package.describe()</code>, then packages that use your package will need to use
548<code>Package[&quot;package-name&quot;].ExportedVariableName</code> to access the value of an
549exported variable.</p>`},"PackageAPI#imply":{kind:"function",locus:"package.js",longname:"PackageAPI#imply",memberof:"PackageAPI",name:"imply",options:[],params:[{description:`<p>Name of a package, or array of
550package names, with an optional @version component for each.</p>`,name:"packageNames",type:{names:["String","Array.<String>"]}},{description:`<p>If you only use the package on
551the server (or the client), you can pass in the second argument (e.g.,
552<code>'server'</code>, <code>'client'</code>, <code>'web.browser'</code>, <code>'web.cordova'</code>) to specify what
553architecture the package is used with. You can specify multiple
554architectures by passing in an array, for example <code>['web.cordova', 'os.linux']</code>.</p>`,name:"architecture",optional:!0,type:{names:["String","Array.<String>"]}}],scope:"instance",summary:`<p>Give users of this package access to another package (by passing
555in the string <code>packagename</code>) or a collection of packages (by passing in
556an array of strings [<code>packagename1</code>, <code>packagename2</code>]</p>`},"PackageAPI#use":{kind:"function",locus:"package.js",longname:"PackageAPI#use",memberof:"PackageAPI",name:"use",options:[{description:`<p>Establish a weak dependency on a
557package. If package A has a weak dependency on package B, it means
558that including A in an app does not force B to be included too — but,
559if B is included or by another package, then B will load before A.
560You can use this to make packages that optionally integrate with or
561enhance other packages if those packages are present.
562When you weakly depend on a package you don't see its exports.
563You can detect if the possibly-present weakly-depended-on package
564is there by seeing if <code>Package.foo</code> exists, and get its exports
565from the same place.</p>`,name:"weak",type:{names:["Boolean"]}},{description:`<p>It's okay to load this dependency
566after your package. (In general, dependencies specified by <code>api.use</code>
567are loaded before your package.) You can use this option to break
568circular dependencies.</p>`,name:"unordered",type:{names:["Boolean"]}}],params:[{description:`<p>Packages being depended on.
569Package names may be suffixed with an @version tag.</p>
570<p>In general, you must specify a package's version (e.g.,
571<code>'[email protected]'</code> to use version 1.0.0 or a higher
572compatible version (ex: 1.0.1, 1.5.0, etc.)  of the
573<code>accounts</code> package). If you are sourcing core
574packages from a Meteor release with <code>versionsFrom</code>, you may leave
575off version names for core packages. You may also specify constraints,
576such as <code>my:forms@=1.0.0</code> (this package demands <code>my:forms</code> at <code>1.0.0</code> exactly),
577or <code>my:[email protected] || =2.0.1</code> (<code>my:forms</code> at <code>1.x.y</code>, or exactly <code>2.0.1</code>).</p>`,name:"packageNames",type:{names:["String","Array.<String>"]}},{description:`<p>If you only use the package on the
578server (or the client), you can pass in the second argument (e.g.,
579<code>'server'</code>, <code>'client'</code>, <code>'web.browser'</code>, <code>'web.cordova'</code>) to specify
580what architecture the package is used with. You can specify multiple
581architectures by passing in an array, for example <code>['web.cordova', 'os.linux']</code>.</p>`,name:"architecture",optional:!0,type:{names:["String","Array.<String>"]}},{name:"options",optional:!0,type:{names:["Object"]}}],scope:"instance",summary:"<p>Depend on package <code>packagename</code>.</p>"},"PackageAPI#versionsFrom":{kind:"function",locus:"package.js",longname:"PackageAPI#versionsFrom",memberof:"PackageAPI",name:"versionsFrom",options:[],params:[{description:`<p>Specification of a release:
582track@version. Just 'version' (e.g. <code>&quot;0.9.0&quot;</code>) is sufficient if using the
583default release track <code>METEOR</code>. Can be an array of specifications.</p>`,name:"meteorRelease",type:{names:["String","Array.<String>"]}}],scope:"instance",summary:`<p>Use versions of core packages from a release. Unless provided,
584all packages will default to the versions released along with
585<code>meteorRelease</code>. This will save you from having to figure out the exact
586versions of the core packages you want to use. For example, if the newest
587release of meteor is <code>[email protected]</code> and it includes <code>[email protected]</code>, you
588can write <code>api.versionsFrom('[email protected]')</code> in your package, and when you
589later write <code>api.use('jquery')</code>, it will be equivalent to
590<code>api.use('[email protected]')</code>. You may specify an array of multiple releases,
591in which case the default value for constraints will be the &quot;or&quot; of the
592versions from each release: <code>api.versionsFrom(['[email protected]', '[email protected]'])</code> may cause <code>api.use('jquery')</code> to be interpreted as
593<code>api.use('[email protected] || 2.0.0')</code>.</p>`},PackageCordova:{instancename:"Cordova",kind:"class",locus:"package.js",longname:"PackageCordova",memberof:"PackageCordova",name:"PackageCordova",options:[],params:[],scope:"global",showinstancename:"true",summary:"<p>Class of the 'Cordova' object visible in package.js</p>"},"PackageCordova#depends":{kind:"function",locus:"package.js",longname:"PackageCordova#depends",memberof:"PackageCordova",name:"depends",options:[],params:[{description:`<p>An object where the keys are plugin
594names and the values are version numbers or GitHub tarball URLs
595in string form.
596Example:</p>
597<pre class="prettyprint source lang-js"><code>Cordova.depends({
598  &quot;org.apache.cordova.camera&quot;: &quot;0.3.0&quot;
599});
600</code></pre>
601<p>Alternatively, with a GitHub URL:</p>
602<pre class="prettyprint source lang-js"><code>Cordova.depends({
603  &quot;org.apache.cordova.camera&quot;:
604    &quot;https://github.com/apache/cordova-plugin-camera/tarball/d84b875c449d68937520a1b352e09f6d39044fbf&quot;
605});
606</code></pre>`,name:"dependencies",type:{names:["Object"]}}],scope:"instance",summary:`<p>Specify which <a href="http://cordova.apache.org/">Cordova / PhoneGap</a>
607plugins your Meteor package depends on.</p>
608<p>Plugins are installed from
609<a href="http://plugins.cordova.io/">plugins.cordova.io</a>, so the plugins and
610versions specified must exist there. Alternatively, the version
611can be replaced with a GitHub tarball URL as described in the
612<a href="https://guide.meteor.com/cordova.html#cordova-plugins">Cordova</a>
613page of the Meteor wiki on GitHub.</p>`},PackageNamespace:{instancename:"Package",kind:"class",locus:"package.js",longname:"PackageNamespace",memberof:"PackageNamespace",name:"PackageNamespace",options:[],params:[],scope:"global",showinstancename:"true",summary:"<p>Class of the 'Package' object visible in package.js</p>"},"PackageNamespace#describe":{kind:"function",locus:"package.js",longname:"PackageNamespace#describe",memberof:"PackageNamespace",name:"describe",options:[{description:`<p>A concise 1-2 sentence description of
614the package, required for publication.</p>`,name:"summary",type:{names:["String"]}},{description:`<p>The (extended)
615<a href="http://www.semver.org">semver</a> version for your package. Additionally,
616Meteor allows a wrap number: a positive integer that follows the
617version number. If you are porting another package that uses semver
618versioning, you may want to use the original version, postfixed with
619<code>_wrapnumber</code>. For example, <code>1.2.3_1</code> or <code>2.4.5-rc1_4</code>. Wrap numbers
620sort after the original numbers: <code>1.2.3</code> &lt; <code>1.2.3_1</code> &lt; <code>1.2.3_2</code> &lt;
621<code>1.2.4-rc.0</code>. If no version is specified, this field defaults to
622<code>0.0.0</code>. If you want to publish your package to the package server, you
623must specify a version.</p>`,name:"version",type:{names:["String"]}},{description:`<p>Optional name override. By default, the
624package name comes from the name of its directory.</p>`,name:"name",type:{names:["String"]}},{description:"<p>Optional Git URL to the source repository.</p>",name:"git",type:{names:["String"]}},{description:`<p>Optional Filepath to
625documentation. Set to 'README.md' by default. Set this to null to submit
626no documentation.</p>`,name:"documentation",type:{names:["String"]}},{description:`<p>A package with this flag set to true
627will ONLY be bundled as part of <code>meteor run</code>, and completely excluded
628from production builds with <code>meteor build</code>.</p>`,name:"devOnly",type:{names:["Boolean"]}},{description:`<p>A package with this flag set to true
629will not be bundled into production builds. This is useful for packages
630meant to be used in development only.</p>`,name:"debugOnly",type:{names:["Boolean"]}},{description:`<p>A package with this flag set to true
631will ONLY be bundled into production builds.</p>`,name:"prodOnly",type:{names:["Boolean"]}},{description:`<p>A package with this flag set to true
632will ONLY be bundled as part of <code>meteor test</code>.</p>`,name:"testOnly",type:{names:["Boolean"]}},{description:`<p>A flag that will mark the
633package as deprecated. Provide string to override the default message.</p>`,name:"deprecated",type:{names:["Boolean","String"]}}],params:[{name:"options",type:{names:["Object"]}}],scope:"instance",summary:"<p>
633Provide basic package information.</p>"},"PackageNamespace#onTest":{kind:"function",locus:"package.js",longname:"PackageNamespace#onTest",memberof:"PackageNamespace",name:"onTest",options:[],params:[{description:"<p>A function that takes in the package control 'api' object, which keeps track of dependencies and exports.</p>",name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>Define dependencies and expose package methods for unit tests.</p>"},"PackageNamespace#onUse":{kind:"function",locus:"package.js",longname:"PackageNamespace#onUse",memberof:"PackageNamespace",name:"onUse",options:[],params:[{description:"<p>A function that takes in the package control <code>api</code> object, which keeps track of dependencies and exports.</p>",name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>Define package dependencies and expose package methods.</p>"},"PackageNamespace#registerBuildPlugin":{kind:"function",locus:"package.js",longname:"PackageNamespace#registerBuildPlugin",memberof:"PackageNamespace",name:"registerBuildPlugin",options:[{description:`<p>A cosmetic name, must be unique in the
634package.</p>`,name:"name",type:{names:["String"]}},{description:`<p>Meteor packages that this
635plugin uses, independent of the packages specified in
636<a href="#pack_onUse">api.onUse</a>.</p>`,name:"use",type:{names:["String","Array.<String>"]}},{description:`<p>The source files that make up the
637build plugin, independent from <a href="#pack_addFiles">api.addFiles</a>.</p>`,name:"sources",type:{names:["Array.<String>"]}},{description:`<p>An object where the keys
638are NPM package names, and the values are the version numbers of
639required NPM packages, just like in <a href="#Npm-depends">Npm.depends</a>.</p>`,name:"npmDependencies",type:{names:["Object"]}}],params:[{name:"options",optional:!0,type:{names:["Object"]}}],scope:"instance",summary:`<p>Define a build plugin. A build plugin extends the build
640process for apps and packages that use this package. For example,
641the <code>coffeescript</code> package uses a build plugin to compile CoffeeScript
642source files into JavaScript.</p>`},PackageNpm:{instancename:"Npm",kind:"class",locus:"package.js",longname:"PackageNpm",memberof:"PackageNpm",name:"PackageNpm",options:[],params:[],scope:"global",showinstancename:"true",summary:"<p>Class of the 'Npm' object visible in package.js</p>"},"PackageNpm#depends":{kind:"function",locus:"package.js",longname:"PackageNpm#depends",memberof:"PackageNpm",name:"depends",options:[],params:[{description:`<p>An object where the keys are package
643names and the values are one of:</p>
644<ol>
645<li>Version numbers in string form</li>
646<li>http(s) URLs of npm packages</li>
647<li>Git URLs in the format described <a href="https://docs.npmjs.com/files/package.json#git-urls-as-dependencies">here</a></li>
648</ol>
649<p>Https URL example:</p>
650<pre class="prettyprint source lang-js"><code>Npm.depends({
651  moment: &quot;2.8.3&quot;,
652  async: &quot;https://github.com/caolan/async/archive/71fa2638973dafd8761fa5457c472a312cc820fe.tar.gz&quot;
653});
654</code></pre>
655<p>Git URL example:</p>
656<pre class="prettyprint source lang-js"><code>Npm.depends({
657  moment: &quot;2.8.3&quot;,
658  async: &quot;git+https://github.com/caolan/async#master&quot;
659});
660</code></pre>`,name:"dependencies",type:{names:["Object"]}}],scope:"instance",summary:`<p>Specify which <a href="https://www.npmjs.org/">NPM</a> packages
661your Meteor package depends on.</p>`},"PackageNpm#devDepends":{kind:"function",locus:"package.js",longname:"PackageNpm#devDepends",memberof:"PackageNpm",name:"devDepends",options:[],params:[{description:`<p>An object where the keys are package
662names and the values are version numbers in string form.</p>
663<p>These dependencies will only be included during development and testing,
664but will be excluded when using &quot;meteor build&quot; or &quot;meteor deploy&quot; commands,
665reducing the size of the production bundle.</p>
666<pre class="prettyprint source lang-js"><code>Npm.devDepends({
667  &quot;jest&quot;: &quot;29.5.0&quot;,
668  &quot;eslint&quot;: &quot;8.36.0&quot;
669});
670</code></pre>`,name:"dependencies",type:{names:["Object"]}}],scope:"instance",summary:`<p>Specify which <a href="https://www.npmjs.org/">NPM</a> packages
671your Meteor package depends on for development only.</p>`},Plugin:{kind:"namespace",longname:"Plugin",name:"Plugin",scope:"global",summary:"<p>The namespace that is exposed inside build plugin files.</p>"},"Plugin.registerCompiler":{kind:"function",locus:"Build Plugin",longname:"Plugin.registerCompiler",memberof:"Plugin",name:"registerCompiler",options:[{description:`<p>The file extensions that this
672plugin should handle, without the first dot.
673Examples: <code>[&quot;coffee&quot;, &quot;coffee.md&quot;]</code>.</p>`,name:"extensions",type:{names:["Array.<String>"]}},{description:`<p>The list of filenames
674that this plugin should handle. Examples: <code>[&quot;config.json&quot;]</code>.</p>`,name:"filenames",type:{names:["Array.<String>"]}}],params:[{name:"options",type:{names:["Object"]}},{description:`<p>A function that returns an instance
675of a compiler class.</p>
676<p>More detailed documentation for build plugins is available <a href="https://docs.meteor.com/api/packagejs.html#build-plugin-api">on the GitHub Wiki</a>.</p>`,name:"factory",type:{names:["function"]}}],scope:"static",summary:`<p>Inside a build plugin source file specified in
677<a href="#Package-registerBuildPlugin">Package.registerBuildPlugin</a>,
678add a compiler that will handle files with certain extensions or
679filenames.</p>`},"Plugin.registerLinter":{kind:"function",locus:"Build Plugin",longname:"Plugin.registerLinter",memberof:"Plugin",name:"registerLinter",options:[{description:`<p>The file extensions that this
680plugin should handle, without the first dot.
681Examples: <code>[&quot;js&quot;, &quot;es6&quot;, &quot;jsx&quot;]</code>.</p>`,name:"extensions",type:{names:["Array.<String>"]}}],params:[{name:"options",type:{names:["Object"]}},{description:`<p>A function that returns an instance
682of a linter class.</p>
683<p>More detailed documentation for build plugins is available <a href="https://docs.meteor.com/api/packagejs.html#build-plugin-api">on the GitHub Wiki</a>.</p>`,name:"factory",type:{names:["function"]}}],scope:"static",summary:`<p>Inside a build plugin source file specified in
684<a href="#Package-registerBuildPlugin">Package.registerBuildPlugin</a>,
685add a linter that will handle files with certain extensions or
686filenames.</p>`},"Plugin.registerMinifier":{kind:"function",locus:"Build Plugin",longname:"Plugin.registerMinifier",memberof:"Plugin",name:"registerMinifier",options:[{description:`<p>The file extensions that this
687plugin should handle, without the first dot. Can only be &quot;js&quot; or &quot;css&quot;.
688Examples: <code>[&quot;js&quot;, &quot;css&quot;]</code>.</p>`,name:"extensions",type:{names:["Array.<String>"]}},{description:`<p>The list of filenames
689that this plugin should handle. Examples: <code>[&quot;config.json&quot;]</code>.</p>`,name:"filenames",type:{names:["Array.<String>"]}}],params:[{name:"options",type:{names:["Object"]}},{description:`<p>A function that returns an instance
690of a minifier class.</p>
691<p>More detailed documentation for build plugins is available <a href="https://docs.meteor.com/api/packagejs.html#build-plugin-api">on the GitHub Wiki</a>.</p>`,name:"factory",type:{names:["function"]}}],scope:"static",summary:`<p>Inside a build plugin source file specified in
692<a href="#Package-registerBuildPlugin">Package.registerBuildPlugin</a>,
693add a linter that will handle files with certain extensions or
694filenames.</p>`},"Plugin.registerSourceHandler":{deprecated:`since 1.2
695XXX COMPAT WITH 1.1`,kind:"function",locus:"Build Plugin",longname:"Plugin.registerSourceHandler",memberof:"Plugin",name:"registerSourceHandler",options:[],params:[{description:`<p>The file extension that this plugin
696should handle, without the first dot.
697Examples: <code>&quot;coffee&quot;</code>, <code>&quot;coffee.md&quot;</code>.</p>`,name:"fileExtension",type:{names:["String"]}},{description:`<p>A function that takes one argument,
698a CompileStep object.</p>
699<p>Documentation for CompileStep is available <a href="https://github.com/meteor/meteor/wiki/CompileStep-API-for-Build-Plugin-Source-Handlers">on the GitHub Wiki</a>.</p>`,name:"handler",type:{names:["function"]}}],scope:"static",summary:`<p>Inside a build plugin source file specified in
700<a href="#Package-registerBuildPlugin">Package.registerBuildPlugin</a>,
701add a handler to compile files with a certain file extension.</p>`},"Random.choice":{filepath:"random/AbstractRandomGenerator.js",kind:"member",lineno:88,locus:"Anywhere",longname:"Random.choice",memberof:"Random",module:"random",name:"choice",params:[{description:"<p>Array or string to choose from</p>",name:"arrayOrString",type:{names:["Array","String"]}}],scope:"static",summary:"<p>Return a random element of the given array or string.</p>"},"Random.fraction":{filepath:"random/NodeRandomGenerator.js",kind:"member",lineno:5,locus:"Anywhere",longname:"Random.fraction",memberof:"Random",module:"random",name:"fraction",scope:"static",summary:"<p>Return a number between 0 and 1, like <code>Math.random</code>.</p>"},"Random.hexString":{filepath:"random/NodeRandomGenerator.js",kind:"member",lineno:15,locus:"Anywhere",longname:"Random.hexString",memberof:"Random",module:"random",name:"hexString",params:[{description:"<p>Length of the string</p>",name:"n",type:{names:["Number"]}}],scope:"static",summary:"<p>Return a random string of <code>n</code> hexadecimal digits.</p>"},"Random.id":{filepath:"random/AbstractRandomGenerator.js",kind:"member",lineno:51,locus:"Anywhere",longname:"Random.id",memberof:"Random",module:"random",name:"id",params:[{description:`<p>Optional length of the identifier in characters
702(defaults to 17)</p>`,name:"n",optional:!0,type:{names:["Number"]}}],scope:"static",summary:`<p>Return a unique identifier, such as <code>&quot;Jjwjg6gouWLXhMGKW&quot;</code>, that is
703likely to be unique in the whole world.</p>`},"Random.secret":{filepath:"random/AbstractRandomGenerator.js",kind:"member",lineno:69,locus:"Anywhere",longname:"Random.secret",memberof:"Random",module:"random",name:"secret",params:[{description:`<p>Optional length of the secret string (defaults to 43
704characters, or 256 bits of entropy)</p>`,name:"n",optional:!0,type:{names:["Number"]}}],scope:"static",summary:`<p>Return a random string of printable characters with 6 bits of
705entropy per character. Use <code>Random.secret</code> for security-critical secrets
706that are intended for machine, rather than human, consumption.</p>`},ReactiveDict:{filepath:"reactive-dict/reactive-dict.js",instancename:"ReactiveDict",kind:"class",lineno:32,locus:"Client",longname:"ReactiveDict",memberof:"ReactiveDict",module:"reactive-dict",name:"ReactiveDict",options:[],params:[{description:"<p>Optional.  When a name is passed, preserves contents across Hot Code Pushes</p>",name:"name",optional:!0,type:{names:["String"]}},{description:"<p>Optional.  The default values for the dictionary</p>",name:"initialValue",optional:!0,type:{names:["Object"]}}],scope:"global",summary:"<p>Constructor for a ReactiveDict, which represents a reactive dictionary of key/value pairs.</p>"},"ReactiveDict#all":{filepath:"reactive-dict/reactive-dict.js",kind:"function",lineno:229,locus:"Client",longname:"ReactiveDict#all",memberof:"ReactiveDict",module:"reactive-dict",name:"all",options:[],params:[],scope:"instance",summary:`<p>Get all key-value pairs as a plain object. If inside a <a href="#reactivity">reactive
707computation</a>, invalidate the computation the next time the
708value associated with any key is changed by
709<a href="#ReactiveDict-set"><code>ReactiveDict.set</code></a>.
710This returns a clone of each value, so if it's an object or an array,
711mutating the returned value has no effect on the value stored in the
712ReactiveDict.</p>`},"ReactiveDict#clear":{filepath:"reactive-dict/reactive-dict.js",kind:"function",lineno:245,locus:"Client",longname:"ReactiveDict#clear",memberof:"ReactiveDict",module:"reactive-dict",name:"clear",options:[],params:[],scope:"instance",summary:`<p>remove all key-value pairs from the ReactiveDict. Notify any
713listeners that the value has changed (eg: redraw templates, and rerun any
714<a href="#tracker_autorun"><code>Tracker.autorun</code></a> computations, that called
715<a href="#ReactiveDict_get"><code>ReactiveDict.get</code></a> on this <code>key</code>.)</p>`},"ReactiveDict#delete":{filepath:"reactive-dict/reactive-dict.js",kind:"function",lineno:268,locus:"Client",longname:"ReactiveDict#delete",memberof:"ReactiveDict",module:"reactive-dict",name:"delete",options:[],params:[{description:"<p>The key to delete, eg, <code>selectedItem</code></p>",name:"key",type:{names:["String"]}}],scope:"instance",summary:`<p>remove a key-value pair from the ReactiveDict. Notify any listeners
716that the value has changed (eg: redraw templates, and rerun any
717<a href="#tracker_autorun"><code>Tracker.autorun</code></a> computations, that called
718<a href="#ReactiveDict_get"><code>ReactiveDict.get</code></a> on this <code>key</code>.)</p>`},"ReactiveDict#destroy":{filepath:"reactive-dict/reactive-dict.js",kind:"function",lineno:293,locus:"Client",longname:"ReactiveDict#destroy",memberof:"ReactiveDict",module:"reactive-dict",name:"destroy",options:[],params:[],scope:"instance",summary:`<p>Clear all values from the reactiveDict and prevent it from being
719migrated on a Hot Code Pushes. Notify any listeners
720that the value has changed (eg: redraw templates, and rerun any
721<a href="#tracker_autorun"><code>Tracker.autorun</code></a> computations, that called
722<a href="#ReactiveDict_get"><code>ReactiveDict.get</code></a> on this <code>key</code>.)</p>`},"ReactiveDict#equals":{filepath:"reactive-dict/reactive-dict.js",kind:"function",lineno:167,locus:"Client",longname:"ReactiveDict#equals",memberof:"ReactiveDict",module:"reactive-dict",name:"equals",options:[],params:[{description:"<p>The name of the session variable to test</p>",name:"key",type:{names:["String"]}},{description:`<p>The value to
723test against</p>`,name:"value",type:{names:["String","Number","Boolean","null","undefined"]}}],scope:"instance",summary:`<p>Test if the stored entry for a key is equal to a value. If inside a
724<a href="#reactivity">reactive computation</a>, invalidate the computation the next
725time the variable changes to or from the value.</p>`},"ReactiveDict#get":{filepath:"reactive-dict/reactive-dict.js",kind:"function",lineno:152,locus:"Client",longname:"ReactiveDict#get",memberof:"ReactiveDict",module:"reactive-dict",name:"get",options:[],params:[{description:"<p>The key of the element to return</p>",name:"key",type:{names:["String"]}}],scope:"instance",summary:`<p>Get the value assiciated with a key. If inside a <a href="#reactivity">reactive
726computation</a>, invalidate the computation the next time the
727value associated with this key is changed by
728<a href="#ReactiveDict-set"><code>ReactiveDict.set</code></a>.
729This returns a clone of the value, so if it's an object or an array,
730mutating the returned value has no effect on the value stored in the
731ReactiveDict.</p>`},"ReactiveDict#set":{filepath:"reactive-dict/reactive-dict.js",kind:"function",lineno:84,locus:"Client",longname:"ReactiveDict#set",memberof:"ReactiveDict",module:"reactive-dict",name:"set",options:[],params:[{description:"<p>
731The key to set, eg, <code>selectedItem</code></p>",name:"key",type:{names:["String"]}},{description:"<p>The new value for <code>key</code></p>",name:"value",type:{names:["EJSONable","undefined"]}}],scope:"instance",summary:`<p>Set a value for a key in the ReactiveDict. Notify any listeners
732that the value has changed (eg: redraw templates, and rerun any
733<a href="#tracker_autorun"><code>Tracker.autorun</code></a> computations, that called
734<a href="#ReactiveDict_get"><code>ReactiveDict.get</code></a> on this <code>key</code>.)</p>`},"ReactiveDict#setDefault":{filepath:"reactive-dict/reactive-dict.js",kind:"function",lineno:126,locus:"Client",longname:"ReactiveDict#setDefault",memberof:"ReactiveDict",module:"reactive-dict",name:"setDefault",options:[],params:[{description:"<p>The key to set, eg, <code>selectedItem</code></p>",name:"key",type:{names:["String"]}},{description:"<p>The new value for <code>key</code></p>",name:"value",type:{names:["EJSONable","undefined"]}}],scope:"instance",summary:`<p>Set a value for a key if it hasn't been set before.
735Otherwise works exactly the same as <a href="#ReactiveDict-set"><code>ReactiveDict.set</code></a>.</p>`},ReactiveVar:{filepath:"reactive-var/reactive-var.js",instancename:"reactiveVar",kind:"class",lineno:37,locus:"Client",longname:"ReactiveVar",module:"reactive-var",name:"ReactiveVar",options:[],params:[{description:"<p>The initial value to set.  <code>equalsFunc</code> is ignored when setting the initial value.</p>",name:"initialValue",type:{names:["Any"]}},{description:"<p>Optional.  A function of two arguments, called on the old value and the new value whenever the ReactiveVar is set.  If it returns true, no set is performed.  If omitted, the default <code>equalsFunc</code> returns true if its arguments are <code>===</code> and are of type number, boolean, string, undefined, or null.</p>",name:"equalsFunc",optional:!0,type:{names:["function"]}}],scope:"global",summary:"<p>Constructor for a ReactiveVar, which represents a single reactive variable.</p>"},"ReactiveVar#get":{filepath:"reactive-var/reactive-var.js",kind:"function",lineno:62,locus:"Client",longname:"ReactiveVar#get",memberof:"ReactiveVar",module:"reactive-var",name:"get",options:[],params:[],scope:"instance",summary:"<p>Returns the current value of the ReactiveVar, establishing a reactive dependency.</p>"},"ReactiveVar#set":{filepath:"reactive-var/reactive-var.js",kind:"function",lineno:74,locus:"Client",longname:"ReactiveVar#set",memberof:"ReactiveVar",module:"reactive-var",name:"set",options:[],params:[{name:"newValue",type:{names:["Any"]}}],scope:"instance",summary:"<p>Sets the current value of the ReactiveVar, invalidating the Computations that called <code>get</code> if <code>newValue</code> is different from the old value.</p>"},Roles:{filepath:"roles/roles_common_async.js",kind:"namespace",lineno:62,longname:"Roles",module:"roles",name:"Roles",scope:"global",summary:"<p>The namespace for all Roles types and methods.</p>"},"Roles.addRolesToParentAsync":{filepath:"roles/roles_common_async.js",kind:"function",lineno:263,locus:"Anywhere",longname:"Roles.addRolesToParentAsync",memberof:"Roles",module:"roles",name:"addRolesToParentAsync",options:[],params:[{description:"<p>Name(s) of role(s).</p>",name:"rolesNames",type:{names:["Array","String"]}},{description:"<p>Name of parent role.</p>",name:"parentName",type:{names:["String"]}}],returns:[{type:{names:["Promise"]}}],scope:"static",summary:"<p>Add role parent to roles.</p>"},"Roles.addUsersToRolesAsync":{filepath:"roles/roles_common_async.js",kind:"function",lineno:438,locus:"Anywhere",longname:"Roles.addUsersToRolesAsync",memberof:"Roles",module:"roles",name:"addUsersToRolesAsync",options:[],params:[{description:"<p>User ID(s) or object(s) with an <code>_id</code> field.</p>",name:"users",type:{names:["Array","String"]}},{description:"<p>Name(s) of roles to add users to. Roles have to exist.</p>",name:"roles",type:{names:["Array","String"]}},{description:`<p>Options:</p>
736<ul>
737<li><code>scope</code>: name of the scope, or <code>null</code> for the global role</li>
738<li><code>ifExists</code>: if <code>true</code>, do not throw an exception if the role does not exist</li>
739</ul>`,name:"options",optional:!0,type:{names:["Object","String"]}}],returns:[{type:{names:["Promise"]}}],scope:"static",summary:`<p>Add users to roles.
740Adds roles to existing roles for each user.</p>`},"Roles.createRoleAsync":{filepath:"roles/roles_common_async.js",kind:"function",lineno:85,locus:"Anywhere",longname:"Roles.createRoleAsync",memberof:"Roles",module:"roles",name:"createRoleAsync",options:[],params:[{description:"<p>Name of role.</p>",name:"roleName",type:{names:["String"]}},{description:`<p>Options:</p>
741<ul>
742<li><code>unlessExists</code>: if <code>true</code>, exception will not be thrown in the role already exists</li>
743</ul>`,name:"options",optional:!0,type:{names:["Object"]}}],returns:[{description:"<p>ID of the new role or null</p>",type:{names:["Promise.<String>"]}}],scope:"static",summary:"<p>Create a new role.</p>"},"Roles.deleteRoleAsync":{filepath:"roles/roles_common_async.js",kind:"function",lineno:128,locus:"Anywhere",longname:"Roles.deleteRoleAsync",memberof:"Roles",module:"roles",name:"deleteRoleAsync",options:[],params:[{description:"<p>Name of role.</p>",name:"roleName",type:{names:["String"]}}],returns:[{type:{names:["Promise"]}}],scope:"static",summary:`<p>Delete an existing role.
744If the role is set for any user, it is automatically unset.</p>`},"Roles.getAllRoles":{filepath:"roles/roles_common_async.js",kind:"function",lineno:1036,locus:"Anywhere",longname:"Roles.getAllRoles",memberof:"Roles",module:"roles",name:"getAllRoles",options:[],params:[{description:"<p>Options which are passed directly through to <code>Meteor.roles.find(query, options)</code>.</p>",name:"queryOptions",optional:!0,type:{names:["Object"]}}],returns:[{description:"<p>Cursor of existing roles.</p>",type:{names:["Cursor"]}}],scope:"static",summary:"<p>Retrieve cursor of all existing roles.</p>"},"Roles.getRolesForUserAsync":{filepath:"roles/roles_common_async.js",kind:"function",lineno:840,locus:"Anywhere",longname:"Roles.getRolesForUserAsync",memberof:"Roles",module:"roles",name:"getRolesForUserAsync",options:[],params:[{description:"<p>User ID or an actual user object.</p>",name:"user",type:{names:["String","Object"]}},{description:`<p>Options:</p>
745<ul>
746<li><code>scope</code>: name of scope to provide roles for; if not specified, global roles are returned</li>
747<li><code>anyScope</code>: if set, role can be in any scope (<code>scope</code> and <code>onlyAssigned</code> options are ignored)</li>
748<li><code>onlyScoped</code>: if set, only roles in the specified scope are returned</li>
749<li><code>onlyAssigned</code>: return only assigned roles and not automatically inferred (like subroles)</li>
750<li><code>fullObjects</code>: return full roles objects (<code>true</code>) or just names (<code>false</code>) (<code>onlyAssigned</code> option is ignored) (default <code>false</code>)
751If you have a use-case for this option, please file a feature-request. You shouldn't need to use it as it's
752result strongly dependent on the internal data structure of this plugin.</li>
753</ul>
754<p>Alternatively, it can be a scope name string.</p>`,name:"options",optional:!0,type:{names:["Object","String"]}}],returns:[{description:"<p>Array of user's roles, unsorted.</p>",type:{names:["Promise.<Array>"]}}],scope:"static",summary:"<p>Retrieve user's roles.</p>"},"Roles.getScopesForUserAsync":{filepath:"roles/roles_common_async.js",kind:"function",lineno:915,locus:"Anywhere",longname:"Roles.getScopesForUserAsync",memberof:"Roles",module:"roles",name:"getScopesForUserAsync",options:[],params:[{description:"<p>User ID or an actual user object.</p>",name:"user",type:{names:["String","Object"]}},{description:"<p>Name of roles to restrict scopes to.</p>",name:"roles",optional:!0,type:{names:["Array","String"]}}],returns:[{description:"<p>Array of user's scopes, unsorted.</p>",type:{names:["Promise.<Array>"]}}],scope:"static",summary:"<p>Retrieve users scopes, if any.</p>"},"Roles.getUserAssignmentsForRole":{filepath:"roles/roles_common_async.js",kind:"function",lineno:1103,locus:"Anywhere",longname:"Roles.getUserAssignmentsForRole",memberof:"Roles",module:"roles",name:"getUserAssignmentsForRole",options:[],params:[{description:"<p>Name of role or an array of roles.</p>",name:"roles",type:{names:["Array","String"]}},{description:`<p>Options:</p>
755<ul>
756<li><code>scope</code>: name of the scope to restrict roles to</li>
757<li><code>anyScope</code>: if set, role can be in any scope</li>
758<li><code>queryOptions</code>: options which are passed directly through to <code>RoleAssignmentCollection.find(query, options)</code></li>
759</ul>`,name:"options",optional:!0,type:{names:["Object","String"]}}],returns:[{description:"<p>Cursor of user assignments for roles.</p>",type:{names:["Cursor"]}}],scope:"static",summary:"<p>Retrieve all assignments of a user which are for the target role.</p>"},"Roles.getUserIdsInRoleAsync":{filepath:"roles/roles_common_async.js",kind:"function",lineno:1070,locus:"Anywhere",longname:"Roles.getUserIdsInRoleAsync",memberof:"Roles",module:"roles",name:"getUserIdsInRoleAsync",options:[],params:[{description:`<p>Name of role or an array of roles. If array, users
760returned will have at least one of the roles
761specified but need not have <em>all</em> roles.
762Roles do not have to exist.</p>`,name:"roles",type:{names:["Array","String"]}},{description:`<p>Options:</p>
763<ul>
764<li><code>scope</code>: name of the scope to restrict roles to; user's global
765roles will also be checked</li>
766<li><code>anyScope</code>: if set, role can be in any scope (<code>scope</code> option is ignored)</li>
767</ul>`,name:"options",optional:!0,type:{names:["Object","String"]}}],returns:[{description:"<p>Array of user IDs in roles.</p>",type:{names:["Promise.<Array>"]}}],scope:"static",summary:"<p>
767Retrieve all userIds who are in target role.</p>"},"Roles.getUsersInRoleAsync":{filepath:"roles/roles_common_async.js",kind:"function",lineno:1054,locus:"Anywhere",longname:"Roles.getUsersInRoleAsync",memberof:"Roles",module:"roles",name:"getUsersInRoleAsync",options:[],params:[{description:"<p>Name of role or an array of roles.</p>",name:"roles",type:{names:["Array","String"]}},{description:`<p>Options:</p>
768<ul>
769<li><code>scope</code>: name of the scope to restrict roles to</li>
770<li><code>anyScope</code>: if set, role can be in any scope</li>
771<li><code>onlyScoped</code>: if set, only roles in the specified scope are returned</li>
772<li><code>queryOptions</code>: options which are passed directly through to <code>Meteor.users.find(query, options)</code></li>
773</ul>`,name:"options",optional:!0,type:{names:["Object","String"]}}],returns:[{description:"<p>Cursor of users in roles.</p>",type:{names:["Promise.<Cursor>"]}}],scope:"static",summary:"<p>Retrieve a cursor of all users who are in the target role.</p>"},"Roles.isParentOfAsync":{filepath:"roles/roles_common_async.js",kind:"function",lineno:998,locus:"Anywhere",longname:"Roles.isParentOfAsync",memberof:"Roles",module:"roles",name:"isParentOfAsync",options:[],params:[{description:"<p>The role you want to research.</p>",name:"parentRoleName",type:{names:["String"]}},{description:"<p>The role you expect to be among the children of parentRoleName.</p>",name:"childRoleName",type:{names:["String"]}}],returns:[{description:"<p>True if parent role is ancestor of child role</p>",type:{names:["Promise.<Boolean>"]}}],scope:"static",summary:"<p>Find out if a role is an ancestor of another role.</p>"},"Roles.removeRolesFromParentAsync":{filepath:"roles/roles_common_async.js",kind:"function",lineno:346,locus:"Anywhere",longname:"Roles.removeRolesFromParentAsync",memberof:"Roles",module:"roles",name:"removeRolesFromParentAsync",options:[],params:[{description:"<p>Name(s) of role(s).</p>",name:"rolesNames",type:{names:["Array","String"]}},{description:"<p>Name of parent role.</p>",name:"parentName",type:{names:["String"]}}],returns:[{type:{names:["Promise"]}}],scope:"static",summary:`<p>Remove role parent from roles.
774Other parents are kept (role can have multiple parents). For users which have the
775parent role set, removed subrole is removed automatically.</p>`},"Roles.removeScopeAsync":{filepath:"roles/roles_common_async.js",kind:"function",lineno:984,locus:"Anywhere",longname:"Roles.removeScopeAsync",memberof:"Roles",module:"roles",name:"removeScopeAsync",options:[],params:[{description:"<p>The name of a scope.</p>",name:"name",type:{names:["String"]}}],returns:[{type:{names:["Promise"]}}],scope:"static",summary:"<p>Remove a scope and all its role assignments.</p>"},"Roles.removeUsersFromRolesAsync":{filepath:"roles/roles_common_async.js",kind:"function",lineno:700,locus:"Anywhere",longname:"Roles.removeUsersFromRolesAsync",memberof:"Roles",module:"roles",name:"removeUsersFromRolesAsync",options:[],params:[{description:"<p>User ID(s) or object(s) with an <code>_id</code> field.</p>",name:"users",type:{names:["Array","String"]}},{description:"<p>Name(s) of roles to remove users from. Roles have to exist.</p>",name:"roles",type:{names:["Array","String"]}},{description:`<p>Options:</p>
776<ul>
777<li><code>scope</code>: name of the scope, or <code>null</code> for the global role</li>
778<li><code>anyScope</code>: if set, role can be in any scope (<code>scope</code> option is ignored)</li>
779</ul>`,name:"options",optional:!0,type:{names:["Object","String"]}}],returns:[{type:{names:["Promise"]}}],scope:"static",summary:"<p>Remove users from assigned roles.</p>"},"Roles.renameRoleAsync":{filepath:"roles/roles_common_async.js",kind:"function",lineno:192,locus:"Anywhere",longname:"Roles.renameRoleAsync",memberof:"Roles",module:"roles",name:"renameRoleAsync",options:[],params:[{description:"<p>Old name of a role.</p>",name:"oldName",type:{names:["String"]}},{description:"<p>New name of a role.</p>",name:"newName",type:{names:["String"]}}],returns:[{type:{names:["Promise"]}}],scope:"static",summary:"<p>Rename an existing role.</p>"},"Roles.renameScopeAsync":{filepath:"roles/roles_common_async.js",kind:"function",lineno:954,locus:"Anywhere",longname:"Roles.renameScopeAsync",memberof:"Roles",module:"roles",name:"renameScopeAsync",options:[],params:[{description:"<p>Old name of a scope.</p>",name:"oldName",type:{names:["String"]}},{description:"<p>New name of a scope.</p>",name:"newName",type:{names:["String"]}}],returns:[{type:{names:["Promise"]}}],scope:"static",summary:"<p>Rename a scope.</p>"},"Roles.setUserRolesAsync":{filepath:"roles/roles_common_async.js",kind:"function",lineno:485,locus:"Anywhere",longname:"Roles.setUserRolesAsync",memberof:"Roles",module:"roles",name:"setUserRolesAsync",options:[],params:[{description:"<p>User ID(s) or object(s) with an <code>_id</code> field.</p>",name:"users",type:{names:["Array","String"]}},{description:"<p>Name(s) of roles to add users to. Roles have to exist.</p>",name:"roles",type:{names:["Array","String"]}},{description:`<p>Options:</p>
780<ul>
781<li><code>scope</code>: name of the scope, or <code>null</code> for the global role</li>
782<li><code>anyScope</code>: if <code>true</code>, remove all roles the user has, of any scope, if <code>false</code>, only the one in the same scope</li>
783<li><code>ifExists</code>: if <code>true</code>, do not throw an exception if the role does not exist</li>
784</ul>`,name:"options",optional:!0,type:{names:["Object","String"]}}],returns:[{type:{names:["Promise"]}}],scope:"static",summary:`<p>Set users' roles.
785Replaces all existing roles with a new set of roles.</p>`},"Roles.userIsInRoleAsync":{filepath:"roles/roles_common_async.js",kind:"function",lineno:775,locus:"Anywhere",longname:"Roles.userIsInRoleAsync",memberof:"Roles",module:"roles",name:"userIsInRoleAsync",options:[],params:[{description:"<p>User ID or an actual user object.</p>",name:"user",type:{names:["String","Object"]}},{description:`<p>Name of role or an array of roles to check against. If array,
786will return <code>true</code> if user is in <em>any</em> role.
787Roles do not have to exist.</p>`,name:"roles",type:{names:["Array","String"]}},{description:`<p>Options:</p>
788<ul>
789<li><code>scope</code>: name of the scope; if supplied, limits check to just that scope
790the user's global roles will always be checked whether scope is specified or not</li>
791<li><code>anyScope</code>: if set, role can be in any scope (<code>scope</code> option is ignored)</li>
792</ul>
793<p>Alternatively, it can be a scope name string.</p>`,name:"options",optional:!0,type:{names:["Object","String"]}}],returns:[{description:"<p><code>true</code> if user is in <em>any</em> of the target roles</p>",type:{names:["Promise.<Boolean>"]}}],scope:"static",summary:"<p>Check if user has specified roles.</p>"},"Server~self.options.disconnectGracePeriod":{filepath:"ddp-server/livedata_server.js",kind:"member",lineno:1335,locus:"Server",longname:"Server~self.options.disconnectGracePeriod",memberof:"Server~self.options",module:"ddp-server",n
793ame:"disconnectGracePeriod",scope:"static",summary:`<p>How long we should maintain a session for after a non-graceful disconnect before killing it
794sessions that reconnect within this time will be resumed with minimal performance impact.</p>`,type:{names:["Number"]}},"Server~self.options.maxMessageQueueLength":{filepath:"ddp-server/livedata_server.js",kind:"member",lineno:1328,locus:"Server",longname:"Server~self.options.maxMessageQueueLength",memberof:"Server~self.options",module:"ddp-server",name:"maxMessageQueueLength",scope:"static",summary:"<p>How many messages should we queue during a non-graceful disconnect before we destroy the session, to help prevent memory leaks.</p>",type:{names:["Number"]}},"Session.equals":{filepath:"session/session.js",kind:"function",lineno:43,locus:"Client",longname:"Session.equals",memberof:"Session",module:"session",name:"equals",options:[],params:[{description:"<p>The name of the session variable to test</p>",name:"key",type:{names:["String"]}},{description:`<p>The value to
795test against</p>`,name:"value",type:{names:["String","Number","Boolean","null","undefined"]}}],scope:"static",summary:`<p>Test if a session variable is equal to a value. If inside a
796<a href="#reactivity">reactive computation</a>, invalidate the computation the next
797time the variable changes to or from the value.</p>`},"Session.get":{filepath:"session/session.js",kind:"function",lineno:30,locus:"Client",longname:"Session.get",memberof:"Session",module:"session",name:"get",options:[],params:[{description:"<p>The name of the session variable to return</p>",name:"key",type:{names:["String"]}}],scope:"static",summary:`<p>Get the value of a session variable. If inside a <a href="#reactivity">reactive
798computation</a>, invalidate the computation the next time the
799value of the variable is changed by <a href="#session_set"><code>Session.set</code></a>. This
800returns a clone of the session value, so if it's an object or an array,
801mutating the returned value has no effect on the value stored in the
802session.</p>`},"Session.set":{filepath:"session/session.js",kind:"function",lineno:8,locus:"Client",longname:"Session.set",memberof:"Session",module:"session",name:"set",options:[],params:[{description:"<p>The key to set, eg, <code>selectedItem</code></p>",name:"key",type:{names:["String"]}},{description:"<p>The new value for <code>key</code></p>",name:"value",type:{names:["EJSONable","undefined"]}}],scope:"static",summary:`<p>Set a variable in the session. Notify any listeners that the value
803has changed (eg: redraw templates, and rerun any
804<a href="#tracker_autorun"><code>Tracker.autorun</code></a> computations, that called
805<a href="#session_get"><code>Session.get</code></a> on this <code>key</code>.)</p>`},"Session.setDefault":{filepath:"session/session.js",kind:"function",lineno:20,locus:"Client",longname:"Session.setDefault",memberof:"Session",module:"session",name:"setDefault",options:[],params:[{description:"<p>The key to set, eg, <code>selectedItem</code></p>",name:"key",type:{names:["String"]}},{description:"<p>The new value for <code>key</code></p>",name:"value",type:{names:["EJSONable","undefined"]}}],scope:"static",summary:`<p>Set a variable in the session if it hasn't been set before.
806Otherwise works exactly the same as <a href="#session_set"><code>Session.set</code></a>.</p>`},Subscription:{filepath:"ddp-server/livedata_server.js",instancename:"this",kind:"class",lineno:896,longname:"Subscription",module:"ddp-server",name:"Subscription",options:[],params:[],scope:"global",showinstancename:"true",summary:"<p>The server's side of a subscription</p>"},"Subscription#added":{filepath:"ddp-server/livedata_server.js",kind:"function",lineno:1223,locus:"Server",longname:"Subscription#added",memberof:"Subscription",module:"ddp-server",name:"added",options:[],params:[{description:"<p>The name of the collection that contains the new document.</p>",name:"collection",type:{names:["String"]}},{description:"<p>The new document's ID.</p>",name:"id",type:{names:["String"]}},{description:"<p>The fields in the new document.  If <code>_id</code> is present it is ignored.</p>",name:"fields",type:{names:["Object"]}}],scope:"instance",summary:"<p>Call inside the publish function.  Informs the subscriber that a document has been added to the record set.</p>"},"Subscription#changed":{filepath:"ddp-server/livedata_server.js",kind:"function",lineno:1249,locus:"Server",longname:"Subscription#changed",memberof:"Subscription",module:"ddp-server",n
806ame:"changed",options:[],params:[{description:"<p>The name of the collection that contains the changed document.</p>",name:"collection",type:{names:["String"]}},{description:"<p>The changed document's ID.</p>",name:"id",type:{names:["String"]}},{description:"<p>The fields in the document that have changed, together with their new values.  If a field is not present in <code>fields</code> it was left unchanged; if it is present in <code>fields</code> and has a value of <code>undefined</code> it was removed from the document.  If <code>_id</code> is present it is ignored.</p>",name:"fields",type:{names:["Object"]}}],scope:"instance",summary:"<p>Call inside the publish function.  Informs the subscriber that a document in the record set has been modified.</p>"},"Subscription#connection":{filepath:"ddp-server/livedata_server.js",kind:"member",lineno:907,locus:"Server",longname:"Subscription#connection",memberof:"Subscription",module:"ddp-server",name:"connection",scope:"instance",summary:'<p>Access inside the publish function. The incoming <a href="#meteor_onconnection">connection</a> for this subscription.</p>'},"Subscription#error":{filepath:"ddp-server/livedata_server.js",kind:"function",lineno:1166,locus:"Server",longname:"Subscription#error",memberof:"Subscription",module:"ddp-server",name:"error",options:[],params:[{description:"<p>The error to pass to the client.</p>",name:"error",type:{names:["Error"]}}],scope:"instance",summary:`<p>Call inside the publish function.  Stops this client's subscription, triggering a call on the client to the <code>onStop</code> callback passed to <a href="#meteor_subscribe"><code>Meteor.subscribe</code></a>, if any. If <code>error</code> is not a <a href="#meteor_error"><code>Meteor.Error</code></a>, it will be <a href="#meteor_error">sanitized</a>.</p>`},"Subscription#onStop":{filepath:"ddp-server/livedata_server.js",kind:"function",lineno:1198,locus:"Server",longname:"Subscription#onStop",memberof:"Subscription",module:"ddp-server",name:"onStop",options:[],params:[{description:"<p>The callback function</p>",name:"func",type:{names:["function"]}}],scope:"instance",summary:"<p>Call inside the publish function.  Registers a callback function to run when the subscription is stopped.</p>"},"Subscription#ready":{filepath:"ddp-server/livedata_server.js",kind:"function",lineno:1290,locus:"Server",longname:"Subscription#ready",memberof:"Subscription",module:"ddp-server",name:"ready",options:[],params:[],scope:"instance",summary:'<p>Call inside the publish function.  Informs the subscriber that an initial, complete snapshot of the record set has been sent.  This will trigger a call on the client to the <code>onReady</code> callback passed to  <a href="#meteor_subscribe"><code>Meteor.subscribe</code></a>, if any.</p>'},"Subscription#removed":{filepath:"ddp-server/livedata_server.js",kind:"function",lineno:1264,locus:"Server",longname:"Subscription#removed",memberof:"Subscription",module:"ddp-server",name:"removed",options:[],params:[{description:"<p>The name of the collection that the document has been removed from.</p>",name:"collection",type:{names:["String"]}},{description:"<p>The ID of the document that has been removed.</p>",name:"id",type:{names:["String"]}}],scope:"instance",summary:"<p>Call inside the publish function.  Informs the subscriber that a document has been removed from the record set.</p>"},"Subscription#stop":{filepath:"ddp-server/livedata_server.js",kind:"function",lineno:1184,locus:"Server",longname:"Subscription#stop",memberof:"Subscription",module:"ddp-server",name:"stop",options:[],params:[],scope:"instance",summary:"<p>Call inside the publish function.  Stops this client's subscription and invokes the client's <code>onStop</code> callback with no error.</p>"},"Subscription#userId":{filepath:"ddp-server/livedata_server.js",kind:"member",lineno:949,locus:"Server",longname:"Subscription#userId",memberof:"Subscription",module:"ddp-server",name:"userId",scope:"instance",summary:"<p>Access inside the publish function. The id of the logged-in user, or <code>null</code> if no user is logged in.</p>"},Tracker:{filepath:"tracker/tracker.js",kind:"namespace",lineno:5,longname:"Tracker",module:"tracker",name:"Tracker",scope:"global",summary:"<p>The namespace for Tracker-related methods.</p>"},"Tracker.Computation":{filepath:"tracker/tracker.js",instancename:"computation",kind:"class",lineno:147,longname:"Tracker.Computation",memberof:"Tracker",module:"tracker",name:"Computation",options:[],params:[],scope:"static",summary:`<p>A Computation object represents code that is repeatedly rerun
807in response to
808reactive data changes. Computations don't have return values; they just
809perform actions, such as rerendering a template on the screen. Computations
810are created using Tracker.autorun. Use stop to prevent further rerunning of a
811computation.</p>`},"Tracker.Computation#firstRun":{filepath:"tracker/tracker.js",kind:"member",lineno:179,locus:"Client",longname:"Tracker.Computation#firstRun",memberof:"Tracker.Computation",module:"tracker",name:"firstRun",scope:"instance",summary:"<p>True during the initial run of the computation at the time <code>Tracker.autorun</code> is called, and false on subsequent reruns and at other times.</p>",type:{names:["Boolean"]}},"Tracker.Computation#firstRunPromise":{filepath:"tracker/tracker.js",kind:"member",lineno:199,locus:"Client",longname:"Tracker.Computation#firstRunPromise",memberof:"Tracker.Computation",module:"tracker",name:"firstRunPromise",returns:[{type:{names:["Promise.<unknown>"]}}],scope:"instance",summary:"<p>Forces autorun blocks to be executed in synchronous-looking order by storing the value autorun promise thus making it awaitable.</p>"},"Tracker.Computation#flush":{filepath:"tracker/tracker.js",kind:"function",lineno:372,locus:"Client",longname:"Tracker.Computation#flush",memberof:"Tracker.Computation",module:"tracker",name:"flush",options:[],params:[],scope:"instance",summary:`<p>Process the reactive updates for this computation immediately
812and ensure that the computation is rerun. The computation is rerun only
813if it is invalidated.</p>`},"Tracker.Computation#invalidate":{filepath:"tracker/tracker.js",kind:"function",lineno:280,locus:"Client",longname:"Tracker.Computation#invalidate",memberof:"Tracker.Computation",module:"tracker",name:"invalidate",options:[],params:[],scope:"instance",summary:"<p>Invalidates this computation so that it will be rerun.</p>"},"Tracker.Computation#invalidated":{filepath:"tracker/tracker.js",kind:"member",lineno:167,locus:"Client",longname:"Tracker.Computation#invalidated",memberof:"Tracker.Computation",module:"tracker",name:"invalidated",scope:"instance",summary:"<p>True if this computation has been invalidated (and not yet rerun), or if it has been stopped.</p>",type:{names:["Boolean"]}},"Tracker.Computation#onInvalidate":{filepath:"tracker/tracker.js",kind:"function",lineno:243,locus:"Client",longname:"Tracker.Computation#onInvalidate",memberof:"Tracker.Computation",module:"tracker",name:"onInvalidate",options:[],params:[{description:"<p>Function to be called on invalidation. Receives one argument, the computation that was invali
813dated.</p>",name:"callback",type:{names:["function"]}}],scope:"instance",summary:"<p>Registers <code>callback</code> to run when this computation is next invalidated, or runs it immediately if the computation is already invalidated.  The callback is run exactly once and not upon future invalidations unless <code>onInvalidate</code> is called again after the computation becomes valid again.</p>"},"Tracker.Computation#onStop":{filepath:"tracker/tracker.js",kind:"function",lineno:261,locus:"Client",longname:"Tracker.Computation#onStop",memberof:"Tracker.Computation",module:"tracker",name:"onStop",options:[],params:[{description:"<p>Function to be called on stop. Receives one argument, the computation that was stopped.</p>",name:"callback",type:{names:["function"]}}],scope:"instance",summary:"<p>Registers <code>callback</code> to run when this computation is stopped, or runs it immediately if the computation is already stopped.  The callback is run after any <code>onInvalidate</code> callbacks.</p>"},"Tracker.Computation#run":{filepath:"tracker/tracker.js",kind:"function",lineno:384,locus:"Client",longname:"Tracker.Computation#run",memberof:"Tracker.Computation",module:"tracker",name:"run",options:[],params:[],scope:"instance",summary:`<p>Causes the function inside this computation to run and
814synchronously process all reactive updtes.</p>`},"Tracker.Computation#stop":{filepath:"tracker/tracker.js",kind:"function",lineno:308,locus:"Client",longname:"Tracker.Computation#stop",memberof:"Tracker.Computation",module:"tracker",name:"stop",options:[],params:[],scope:"instance",summary:"<p>Prevents this computation from rerunning.</p>"},"Tracker.Computation#stopped":{filepath:"tracker/tracker.js",kind:"member",lineno:156,locus:"Client",longname:"Tracker.Computation#stopped",memberof:"Tracker.Computation",module:"tracker",name:"stopped",scope:"instance",summary:"<p>True if this computation has been stopped.</p>"},"Tracker.ComputationFunction":{filepath:"tracker/tracker.js",kind:"typedef",lineno:580,longname:"Tracker.ComputationFunction",memberof:"Tracker",module:"tracker",name:"ComputationFunction",params:[{type:{names:["Tracker.Computation"]}}],scope:"static",type:{names:["function"]}},"Tracker.Dependency":{filepath:"tracker/tracker.js",instancename:"dependency",kind:"class",lineno:402,longname:"Tracker.Dependency",memberof:"Tracker",module:"tracker",name:"Dependency",options:[],params:[],scope:"static",summary:`<p>A Dependency represents an atomic unit of reactive data that a
815computation might depend on. Reactive data sources such as Session or
816Minimongo internally create different Dependency objects for different
817pieces of data, each of which may be depended on by multiple computations.
818When the data changes, the computations are invalidated.</p>`},"Tracker.Dependency#changed":{filepath:"tracker/tracker.js",kind:"function",lineno:448,locus:"Client",longname:"Tracker.Dependency#changed",memberof:"Tracker.Dependency",module:"tracker",name:"changed",options:[],params:[],scope:"instance",summary:"<p>Invalidate all dependent computations immediately and remove them as dependents.</p>"},"Tracker.Dependency#depend":{filepath:"tracker/tracker.js",kind:"function",lineno:424,locus:"Client",longname:"Tracker.Dependency#depend",memberof:"Tracker.Dependency",module:"tracker",name:"depend",options:[],params:[{description:"<p>An optional computation declared to depend on <code>dependency</code> instead of the current computation.</p>",name:"fromComputation",optional:!0,type:{names:["Tracker.Computation"]}}],returns:[{type:{names:["Boolean"]}}],scope:"instance",summary:`<p>Declares that the current computation (or <code>fromComputation</code> if given) depends on <code>dependency</code>.  The computation will be invalidated the next time <code>dependency</code> changes.</p>
819<p>If there is no current computation and <code>depend()</code> is called with no arguments, it does nothing and returns false.</p>
820<p>Returns true if the computation is a new dependent of <code>dependency</code> rather than an existing one.</p>`},"Tracker.Dependency#hasDependents":{filepath:"tracker/tracker.js",kind:"function",lineno:460,locus:"Client",longname:"Tracker.Dependency#hasDependents",memberof:"Tracker.Dependency",module:"tracker",name:"hasDependents",options:[],params:[],returns:[{type:{names:["Boolean"]}}],scope:"instance",summary:"<p>True if this Dependency has one or more dependent Computations, which would be invalidated if this Dependency were to change.</p>"},"Tracker.active":{filepath:"tracker/tracker.js",kind:"member",lineno:24,locus:"Client",longname:"Tracker.active",memberof:"Tracker",module:"tracker",name:"active",scope:"static",summary:"<p>True if there is a current computation, meaning that dependencies on reactive data sources will be tracked and potentially cause the current computation to be rerun.</p>",type:{names:["Boolean"]}},"Tracker.afterFlush":{filepath:"tracker/tracker.js",kind:"function",lineno:668,locus:"Client",longname:"Tracker.afterFlush",memberof:"Tracker",module:"tracker",name:"afterFlush",options:[],params:[{description:"<p>A function to call at flush time.</p>",name:"callback",type:{names:["function"]}}],scope:"static",summary:"<p>Schedules a function to be called during the next flush, or later in the current flush if one is in progress, after all invalidated computations have been rerun.  The function will be run once and not on subsequent flushes unless <code>afterFlush</code> is called again.</p>"},"Tracker.autorun":{filepath:"tracker/tracker.js",kind:"function",lineno:597,locus:"Client",longname:"Tracker.autorun",memberof:"Tracker",module:"tracker",name:"autorun",options:[{description:`<p>Optional. The function to run when an error
821happens in the Computation. The only argument it receives is the Error
822thrown. Defaults to the error being logged to the console.</p>`,name:"onError",type:{names:["function"]}}],params:[{description:`<p>The function to run. It receives
823one argument: the Computation object that will be returned.</p>`,name:"runFunc",type:{names:["Tracker.ComputationFunction"]}},{name:"options",optional:!0,type:{names:["Object"]}}],returns:[{type:{names:["Tracker.Computation"]}}],scope:"static",summary:`<p>Run a function now and rerun it later whenever its dependencies
824change. Returns a Computation object that can be used to stop or observe the
825rerunning.</p>`},"Tracker.currentComputation":{filepath:"tracker/tracker.js",kind:"member",lineno:33,locus:"Client",longname:"Tracker.currentComputation",memberof:"Tracker",module:"tracker",name:"currentComputation",scope:"static",summary:`<p>The current computation, or <code>null</code> if there isn't one.  The current computation is the <a href="#tracker_computation"><code>Tracker.Computation</code></a> object created by the innermost active call to <code>Tracker.autorun</code>, and it's the computation that gains dependencies when reactive data sources are accessed.</p>`,type:{names:["Tracker.Computation"]}},"Tracker.flush":{filepath:"tracker/tracker.js",kind:"function",lineno:473,locus:"Client",longname:"Tracker.flush",memberof:"Tracker",module:"tracker",name:"flush",options:[],params:[],scope:"static",summary:"<p>Process all reactive updates immediately and ensure that all invalidated computations are rerun.</p>"},"Tracker.inFlush":{filepath:"tracker/tracker.js",kind:"function",lineno:483,locus:"Client",longname:"Tracker.inFlush",memberof:"Tracker",module:"tracker",name:"inFlush",options:[],params:[],returns:[{type:{names:["Boolean"]}}],scope:"static",summary:"<p>True if we are computing a computation now, either first time or recompute.  This matches Tracker.active unless we are inside Tracker.nonreactive, which nullfies currentComputation even though an enclosing computation may still be running.</p>"},"Tracker.nonreactive":{filepath:"tracker/tracker.js",kind:"function",lineno:624,locus:"Client",longname:"Tracker.nonreactive",memberof:"Tracker",module:"tracker",name:"nonreactive",options:[],params:[{description:"<p>A function to call immediately.</p>",name:"func",type:{names:["function"]}}],scope:"static",summary:"<p>Run a function without tracking dependencies.</p>"},"Tracker.onInvalidate":{filepath:"tracker/tracker.js",kind:"function",lineno:654,locus:"Client",longname:"Tracker.onInvalidate",memberof:"Tracker",module:"tracker",name:"onInvalidate",options:[],params:[{description:"<p>A callback function that will be invoked as <code>func(c)</code>, where <code>c</code> is the computation on which the callback is registered.</p>",name:"callback",type:{names:["function"]}}],scope:"static",summary:'<p>Registers a new <a href="#computation_oninvalidate"><code>onInvalidate</code></a> callback on the current computation (which must exist), to be called immediately when the current computation is invali
825dated or stopped.</p>'},"Tracker.withComputation":{filepath:"tracker/tracker.js",kind:"function",lineno:633,longname:"Tracker.withComputation",memberof:"Tracker",module:"tracker",name:"withComputation",options:[],params:[{description:"<p>Computation that tracked</p>",name:"computation"},{description:"<p>async function that needs to be called and be reactive</p>",name:"func"}],scope:"static",summary:"<p>Helper function to make the tracker work with promises.</p>"},"WebApp.addHtmlAttributeHook":{filepath:"webapp/webapp_server.js",kind:"function",lineno:240,locus:"Server",longname:"WebApp.addHtmlAttributeHook",memberof:"WebApp",module:"webapp",name:"addHtmlAttributeHook",options:[],params:[{description:`<p>A callback that receives information about the request
826for app HTML and returns an object of HTML attribute names and values, or
827<code>null</code> to add no attributes for that request.</p>`,name:"hook",type:{names:["function"]}}],scope:"static",summary:`<p>Registers a callback that runs whenever Meteor generates app HTML.
828Attributes returned by all registered callbacks are merged onto the
829<code>&lt;html&gt;</code> element. If callbacks return the same attribute, the callback
830registered last takes precedence.</p>`},"WebApp.addRuntimeConfigHook":{filepath:"webapp/webapp_server.js",kind:"function",lineno:453,locus:"Server",longname:"WebApp.addRuntimeConfigHook",memberof:"WebApp",module:"webapp",name:"addRuntimeConfigHook",options:[],params:[{description:"<p>See <code>addRuntimeConfigHookCallback</code> description.</p>",name:"callback",type:{names:["addRuntimeConfigHookCallback"]}}],returns:[{description:`<p>{{ stop: function, callback: function }}
831Call the returned <code>stop()</code> to stop getting callbacks.
832The passed in <code>callback</code> is returned also.</p>`,type:{names:["Object"]}}],scope:"static",summary:`<p>Hook that calls back when the meteor runtime configuration,
833<code>__meteor_runtime_config__</code> is being sent to any client.</p>
834<p><strong>returns</strong>: <small><em>Object</em></small> <code>{ stop: function, callback: function }</code></p>
835<ul>
836<li><code>stop</code> <small><em>Function</em></small> Call <code>stop()</code> to stop getting callbacks.</li>
837<li><code>callback</code> <small><em>Function</em></small> The passed in <code>callback</code>.</li>
838</ul>`},"WebApp.addUpdatedNotifyHook":{filepath:"webapp/webapp_server.js",kind:"function",lineno:609,locus:"Server",longname:"WebApp.addUpdatedNotifyHook",memberof:"WebApp",module:"webapp",name:"addUpdatedNotifyHook",options:[],params:[{description:`<p>The <code>handler</code> is called on every change to an <code>arch</code> runtime configuration.
839See <code>addUpdatedNotifyHookCallback</code>.</p>`,name:"handler",type:{names:["addUpdatedNotifyHookCallback"]}}],returns:[{description:"<p>{{ stop: function, callback: function }}</p>",type:{names:["Object"]}}],scope:"static",summary:`<p>Hook that runs when the meteor runtime configuration
840is updated.  Typically the configuration only changes during development mode.</p>`},"WebApp.decodeRuntimeConfig":{filepath:"webapp/webapp_server.js",kind:"function",lineno:384,locus:"Server",longname:"WebApp.decodeRuntimeConfig",memberof:"WebApp",module:"webapp",name:"decodeRuntimeConfig",options:[],params:[{name:"rtimeConfigStr
840ing",type:{names:["String"]}}],returns:[{type:{names:["Object"]}}],scope:"static",summary:`<p>Takes an encoded runtime string and returns
841a runtime configuration object.</p>`},"WebApp.encodeRuntimeConfig":{filepath:"webapp/webapp_server.js",kind:"function",lineno:373,locus:"Server",longname:"WebApp.encodeRuntimeConfig",memberof:"WebApp",module:"webapp",name:"encodeRuntimeConfig",options:[],params:[{name:"rtimeConfig",type:{names:["Object"]}}],returns:[{type:{names:["String"]}}],scope:"static",summary:`<p>Takes a runtime configuration object and
842returns an encoded runtime string.</p>`},"WebApp.handlers":{filepath:"webapp/webapp_server.js",kind:"function",lineno:1268,locus:"Server",longname:"WebApp.handlers",memberof:"WebApp",module:"webapp",name:"handlers",options:[],params:[{description:`<p>This handler will only be called on paths that match
843this string. The match has to border on a <code>/</code> or a <code>.</code>.</p>
844<p>For example, <code>/hello</code> will match <code>/hello/world</code> and
845<code>/hello.world</code>, but not <code>/hello_world</code>.</p>`,name:"path",optional:!0,type:{names:["String"]}},{description:`<p>A handler function that will be called on HTTP requests.
846See <code>expressHandlersCallback</code></p>`,name:"handler",type:{names:["expressHandlersCallback"]}}],scope:"static",summary:"<p>Register a handler for all HTTP requests.</p>"},"addRuntimeConfigHookCallback(options)":{isprototype:"true",kind:"member",locus:"Server",longname:"addRuntimeConfigHookCallback(options)",name:"addRuntimeConfigHookCallback",params:[{name:"options",type:{names:["Object"]}},{description:`<p>The architecture of the client
847requesting a new runtime configuration. This can be one of
848<code>web.browser</code>, <code>web.browser.legacy</code> or <code>web.cordova</code>.</p>`,name:"options.arch",type:{names:["String"]}},{description:`<p>A NodeJs <a href="https://nodejs.org/api/http.html#http_class_http_incomingmessage">IncomingMessage</a>
849https://nodejs.org/api/http.html#http_class_http_incomingmessage
850<code>Object</code> that can be used to get information about the incoming request.</p>`,name:"options.request",type:{names:["Object"]}},{description:`<p>The current configuration object
851encoded as a string for inclusion in the root html.</p>`,name:"options.encodedCurrentConfig",type:{names:["String"]}},{description:`<p><code>true</code> if the config for this architecture
852has been updated since last called, otherwise <code>false</code>. This flag can be used
853to cache the decoding/encoding for each architecture.</p>`,name:"options.updated",type:{names:["Boolean"]}}],scope:"global",summary:`<p>Callback for <code>addRuntimeConfigHook</code>.</p>
854<p>If the handler returns a <em>falsy</em> value the hook will not
855modify the runtime configuration.</p>
856<p>If the handler returns a <em>String</em> the hook will substitute
857the string for the encoded configuration string.</p>
858<p><strong>Warning:</strong> the hook does not check the return value at all it is
859the responsibility of the caller to get the formatting correct using
860the helper functions.</p>
861<p><code>addRuntimeConfigHookCallback</code> takes only one <code>Object</code> argument
862with the following fields:</p>`,variation:"options"},"addUpdatedNotifyHookCallback(options)":{isprototype:"true",kind:"member",locus:"Server",longname:"addUpdatedNotifyHookCallback(options)",name:"addUpdatedNotifyHookCallback",params:[{name:"options",type:{names:["Object"]}},{description:`<p>The architecture that is being updated.
863This can be one of <code>web.browser</code>, <code>web.browser.legacy</code> or <code>web.cordova</code>.</p>`,name:"options.arch",type:{names:["String"]}},{description:`<p>The new updated manifest object for
864this <code>arch</code>.</p>`,name:"options.manifest",type:{names:["Object"]}},{description:`<p>The new updated configuration
865object for this <code>arch</code>.</p>`,name:"options.runtimeConfig",type:{names:["Object"]}}],scope:"global",summary:"<p>callback handler for <code>addupdatedNotifyHook</code></p>",variation:"options"},check:{filepath:"check/match.js",kind:"function",lineno:38,locus:"Anywhere",longname:"check",module:"check",name:"check",options:[{defaultvalue:!1,description:"<p>If true, throw all errors</p>",name:"throwAllErrors",optional:!0,type:{names:["Boolean"]}}],params:[{description:"<p>The value to check</p>",name:"value",type:{names:["Any"]}},{description:"<p>The pattern to match <code>value</code> against</p>",name:"pattern",type:{names:["MatchPattern"]}},{defaultvalue:"{}",description:"<p>Additional options for check</p>",name:"options",optional:!0,type:{names:["Object"]}}],scope:"global",summary:`<p>Check that a value matches a <a href="#matchpatterns">pattern</a>.
866If the value does not match the pattern, throw a <code>Match.Error</code>.
867By default, it will throw immediately at the first error encountered. Pass in { throwAllErrors: true } to throw all errors.</p>
868<p>Particularly useful to assert that arguments to a function have the right
869types and structure.</p>`},createAuthFetch:{filepath:"accounts-express/fetch_server.js",kind:"function",lineno:25,locus:"Server",longname:"createAuthFetch",module:"accounts-express",name:"createAuthFetch",options:[],params:[{description:"<p>The base Meteor.fetch to wrap</p>",name:"originalFetch",type:{names:["function"]}}],returns:[{description:"<p>Enhanced fetch function with auth support</p>",type:{names:["function"]}}],scope:"global",summary:`<p>Wraps Meteor.fetch with opt-in authentication. Auth is off by
870default; pass <code>auth: true</code> to attach the login token from the current
871endpoint invocation context (same-origin only), or <code>token: '...'</code> to
872supply an explicit token. Passing <code>token</code> is itself an opt-in: it
873implies <code>auth: true</code> unless <code>auth: false</code> is also set. For an
874auth-on-by-default ergonomic, import <code>fetch</code> from <code>meteor/accounts-express</code>.</p>`},createAuthMiddleware:{filepath:"accounts-express/server_main.js",kind:"function",lineno:18,locus:"Server",longname:"createAuthMiddleware",module:"accounts-express",name:"createAuthMiddleware",options:[{defaultvalue:!1,description:`<p>Whether authentication is
875required (returns 401 for unauthenticated) or optional (sets userId
876to null).</p>`,name:"required",optional:!0,type:{names:["boolean"]}}],params:[{name:"options",optional:!0,type:{names:["Object"]}}],returns:[{description:"<p>Express middleware function</p>",type:{names:["function"]}}],scope:"global",summary:`<p>Create Express middleware that authenticates requests using
877Meteor login tokens. Tokens can be provided via the Authorization
878Bearer header or the meteor_login_token cookie.</p>`},currentUser:{filepath:"accounts-base/accounts_client.js",ishelper:"true",kind:"member",lineno:1010,longname:"currentUser",module:"accounts-base",name:"currentUser",scope:"global",summary:'<p>Calls <a href="#meteor_user">Meteor.user()</a>. Use <code>{{#if currentUser}}</code> to check whether the user is logged in.</p>'},"expressHandlersCallback(req, res, next)":{isprototype:"true",kind:"member",locus:"Server",longname:"expressHandlersCallback(req, res, next)",memberof:"expressHandlersCallback(req, res",name:" next)",params:[{description:`<p>a Node.js
879<a href="https://nodejs.org/api/http.html#class-httpincomingmessage">IncomingMessage</a>
880object with some extra properties. This argument can be used
881to get information about the incoming request.</p>`,name:"req",type:{names:["Object"]}},{description:`<p>a Node.js
882<a href="https://nodejs.org/api/http.html#class-httpserverresponse">ServerResponse</a>
883object. Use this to write data that should be sent in response to the
884request, and call <code>res.end()</code> when you are done.</p>`,name:"res",type:{names:["Object"]}},{description:`<p>Calling this function will pass on the handling of
885this request to the next relevant handler.</p>`,name:"next",type:{names:["function"]}}],scope:"global",summary:"<p>callback handler for <code>WebApp.expressHandlers</code></p>"},fetch:{filepath:"accounts-express/fetch_authed.js",kind:"function",lineno:12,locus:"Anywhere",longname:"fetch",module:"accounts-express",name:"fetch",options:[],params:[{name:"url",type:{names:["string","Request"]}},{name:"options",optional:!0,type:{names:["Object"]}}],returns:[{type:{names:["Promise.<Response>"]}}],scope:"global",summary:`<p>Auth-on-by-default fetch. Thin wrapper around Meteor.fetch that
886sets <code>auth: true</code> unless overridden. Pass <code>auth: false</code> to opt out, or
887<code>token: '...'</code> (server only) to use an explicit token.</p>`},getPublicationStrategy:{alias:"getPublicationStrategy",filepath:"ddp-server/livedata_server.js",importfrompackage:"meteor",kind:"function",lineno:1460,locus:"Server",longname:"getPublicationStrategy",memberof:"Meteor.server",module:"meteor",name:"getPublicationStrategy",options:[],params:[{name:"collectionName",type:{names:["String"]}}],returns:[{type:{names:["Object"]}}],summary:"<p>Gets the publication strategy for the requested collection. You call this method from <code>Meteor.server</code>, like <code>Meteor.server.getPublicationStrategy()</code></p>"},handleFetch:{filepath:"accounts-express/server_main.js",kind:"function",lineno:43,locus:"Server",longname:"handleFetch",module:"accounts-express",name:"handleFetch",options:[],params:[{name:"url",type:{names:["string","Request"]}},{name:"options",optional:!0,type:{names:["Object"]}},{description:"<p>The underlying fetch implementation</p>",name:"rawFetch",type:{names:["function"]}}],returns:[{description:"<p>Response if handled, null to fall through</p>",type:{names:["Promise.<Response>","null"]}}],scope:"global",summary:`<p>Handle fetch calls from the meteor/fetch package when auth
888options are present. Falls back to rawFetch when no auth is needed.
889The auth path intentionally dispatches through Meteor.fetch (which
890has its own bound rawFetch) and ignores the passed rawFetch.</p>`},loggingIn:{filepath:"accounts-base/accounts_client.js",ishelper:"true",kind:"member",lineno:1023,longname:"loggingIn",module:"accounts-base",name:"loggingIn",scope:"global",summary:'<p>Calls <a href="#meteor_loggingin">Meteor.loggingIn()</a>.</p>'},loggingInOrOut:{filepath:"accounts-base/accounts_client.js",ishelper:"true",kind:"member",lineno:1039,longname:"loggingInOrOut",module:"accounts-base",name:"loggingInOrOut",scope:"global",summary:'<p>Calls <a href="#meteor_loggingin">Meteor.loggingIn()</a> or <a href="#meteor_loggingout">Meteor.loggingOut()</a>.</p>'},loggingOut:{filepath:"accounts-base/accounts_client.js",ishelper:"true",kind:"member",lineno:1031,longname:"loggingOut",module:"accounts-base",name:"loggingOut",scope:"global",summary:'<p>Calls <a href="#meteor_loggingout">Meteor.loggingOut()</a>.</p>'},main:{filepath:"webapp/webapp_server.js",kind:"member",lineno:1488,locus:"Server",longname:"main",module:"webapp",name:"main",scope:"global",summary:`<p>Starts the HTTP server.
891If <code>UNIX_SOCKET_PATH</code> is present Meteor's HTTP server will use that socket file for inter-process communication, instead of TCP.
892If you choose to not include webapp package in your application this method still must be defined for your Meteor application to work.</p>`},"module.hot":{filepath:"hot-module-replacement/hot-api.js",kind:"member",lineno:3,longname:"module.hot",memberof:"module",module:"hot-module-replacement",name:"hot",scope:"static",summary:"<p>The Hot API used to configure HMR</p>"},"module.hot#accept":{filepath:"hot-module-replacement/hot-api.js",kind:"member",lineno:24,locus:"Client",longname:"module.hot#accept",memberof:"module.hot",module:"hot-module-replacement",name:"accept",scope:"instance",summary:`<p>Accept updates to this module. Also applies to its dependencies,
893as long as the other modules that import the dependencies also accept
894updates.</p>`},"module.hot#data":{filepath:"hot-module-replacement/hot-api.js",kind:"member",lineno:86,locus:"Client",longname:"module.hot#data",memberof:"module.hot",module:"hot-module-replacement",name:"data",scope:"instance",summary:`<p>Defaults to null. When the module is replaced,
895this is set to the object passed to dispose handlers.</p>`},"module.hot#decline":{filepath:"hot-module-replacement/hot-api.js",kind:"member",lineno:44,locus:"Client",longname:"module.hot#decline",memberof:"module.hot",module:"hot-module-replacement",name:"decline",scope:"instance",summary:`<p>Disable updating this module or its dependencies with HMR.
896Hot code push will be used instead. Can not be overridden by calling
897module.hot.accept later.</p>`},"module.hot#dispose":{filepath:"hot-module-replacement/hot-api.js",kind:"member",lineno:60,locus:"Client",longname:"module.hot#dispose",memberof:"module.hot",module:"hot-module-replacement",name:"dispose",params:[{description:"<p>Called before replacing the old module.</p>",name:"callback",type:{names:["module.hot.DisposeFunction"]}}],scope:"instance",summary:"<p>Add a call back to clean up the module before replacing it</p>"},"module.hot#onRequire":{filepath:"hot-module-replacement/hot-api.js",kind:"member",lineno:71,locus:"Client",longname:"module.hot#onRequire",memberof:"module.hot",module:"hot-module-replacement",name:"onRequire",params:[{description:`<p>Can have before and after methods, called before a module is required,
898and after it finished being evaluated</p>`,name:"callbacks",type:{names:["Object"]}}],scope:"instance",summary:"<p>Add callbacks to run before and after a module is required</p>"},setPublicationStrategy:{alias:"setPublicationStrategy",filepath:"ddp-server/livedata_server.js",importfrompackage:"meteor",kind:"function",lineno:1443,locus:"Server",longname:"setPublicationStrategy",memberof:"Meteor.server",module:"meteor",name:"setPublicationStrategy",options:[],params:[{name:"collectionName",type:{names:["String"]}},{name:"strategy",type:{names:["Object"]}}],summary:"<p>Set publication strategy for the given collection. Publications strategies are available from <code>DDPServer.publicationStrategies</code>. You call this method from <code>Meteor.server</code>, like <code>Meteor.server.setPublicationStrategy()</code></p>"}},Wi=["id"],Gi=["href","aria-label"],zi=["innerHTML"],Yi=g({__name:"ApiBox",props:{name:{type:String,required:!0},hasCustomExample:{type:Boolean,default:!1},instanceName:{type:String,default:"this"},from:{type:String,default:""},isDefaultImport:{type:Boolean,default:!1}},setup(a){var S,b,_;const e=a;function n(w){if(!Le[w]){const{page:E}=ye();throw new Error(`
899                jsdoc key: "${w}" not found.
900                Refer to data/data.js for available keys.
901                Error come from ${E.value.filePath}
902                `)}return Le[w]}const o=n(e.name);e.from&&(o.module=e.from);const t=o.longname.replace(".","-").replace("#","-"),l=((b=(S=o.type)==null?void 0:S.names)==null?void 0:b.at(0))==="Boolean";let i=o.kind==="function"||((_=o==null?void 0:o.params)==null?void 0:_.length)>0;const p=o.kind==="class"?(i=!1,!0):!1,d=o.scope==="instance",v=w=>d?w.replace(/.*#/,`${e.instanceName}.`):o.ishelper?`{{ ${w} }}`:w;if(i)for(const w of o.params)w.type||(w.type={names:[w.name]});const y={lineNumber:o.lineno,filePath:o.filepath};return(w,E)=>(s(),m("div",null,[r("h2",{id:c(t)},[r("a",{class:"header-anchor",href:"#"+c(t),"aria-label":'Permalink to "'+c(o).longname+'"'},"​",8,Gi),R(" "+M(v(c(o).longname))+" ",1),c(o).locus&&c(o).locus!=="Anywhere"?(s(),A(Ei,{key:0,locus:c(o).locus},null,8,["locus"])):f("",!0)],8,Wi),E[0]||(E[0]=r("h4",null," Summary: ",-1)),r("div",{innerHTML:c(o).summary},null,8,zi),u(w.$slots,"default",{},void 0,!0),c(i)||c(p)?(s(),A(Ji,{key:0,params:c(o).params,options:c(o).options,from:y},null,8,["params","options"])):f("",!0),a.hasCustomExample?f("",!0):(s(),m(O,{key:1},[l?(s(),A(ai,{key:0,memberof:c(o).memberof,from:c(o).module,"is-default-import":a.isDefaultImport,longname:c(o).longname},null,8,["memberof","from","is-default-import","longname"])):f("",!0),c(i)?(s(),A(Pi,{key:1,from:c(o).module,"is-default-import":a.isDefaultImport,longname:c(o).longname,params:c(o).params,fnName:c(o).name,memberof:d?a.instanceName:c(o).memberof,scope:c(o).scope,returns:c(o).returns},null,8,["from","is-default-import","longname","params","fnName","memberof","scope","returns"])):f("",!0),c(p)?(s(),A(yi,{key:2,params:c(o).params,from:c(o).module,"is-default-import":a.isDefaultImport,longname:c(o).longname},null,8,["params","from","is-default-import","longname"])):f("",!0)],64))]))}}),Xi=C(Yi,[["__scopeId","data-v-cea510a3"]]),Ki=["Accounts","Accounts","Accounts.addEmailAsync","Accounts.buildEmailUrl","Accounts.changePassword","Accounts.createUser","Accounts.createUserAsync","Accounts.createUserVerifyingEmail","Accounts.disableUser2fa","Accounts.emailTemplates","Accounts.emailTemplates","Accounts.enableUser2fa","Accounts.findUserByEmail","Accounts.findUserByUsern
902ame","Accounts.forgotPassword","Accounts.generate2faActivationQrCode","Accounts.generateResetToken","Accounts.generateVerificationToken","Accounts.has2faEnabled","Accounts.onEmailVerificationLink","Accounts.onEnrollmentLink","Accounts.onResetPasswordLink","Accounts.removeEmail","Accounts.replaceEmailAsync","Accounts.requestLoginTokenForUser","Accounts.resetPassword","Accounts.sendEnrollmentEmail","Accounts.sendLoginTokenEmail","Accounts.sendResetPasswordEmail","Accounts.sendVerificationEmail","Accounts.setPasswordAsync","Accounts.setUsername","Accounts.ui","Accounts.ui.config","Accounts.urls","Accounts.verifyEmail","AccountsClient","AccountsClient#_registerLinkCallback","AccountsClient#applyLoginFunction","AccountsClient#callLoginFunction","AccountsClient#config","AccountsClient#loggingIn","AccountsClient#loggingOut","AccountsClient#logout","AccountsClient#logoutAllClients","AccountsClient#logoutOtherClients","AccountsClient#onLogin","AccountsClient#onLoginFailure","AccountsClient#onLogout","AccountsClient#registerClientLoginFunction","AccountsClient#user","AccountsClient#userAsync","AccountsClient#userId","AccountsCommon","AccountsCommon#config","AccountsCommon#onLogin","AccountsCommon#onLoginFailure","AccountsCommon#onLogout","AccountsCommon#user","AccountsCommon#userAsync","AccountsCommon#userId","AccountsServer","AccountsServer#addDefaultRateLimit","AccountsServer#beforeExternalLogin","AccountsServer#config","AccountsServer#generateOptionsForEmail","AccountsServer#onCreateLoginToken","AccountsServer#onCreateUser","AccountsServer#onExternalLogin","AccountsServer#onLogin","AccountsServer#onLoginFailure","AccountsServer#onLogout","AccountsServer#registerLoginHandler","AccountsServer#removeDefaultRateLimit","AccountsServer#setAdditionalFindUserOnExternalLogin","AccountsServer#user","AccountsServer#userAsync","AccountsServer#userId","AccountsServer#validateLoginAttempt","AccountsServer#validateNewUser","App","App.accessRule","App.addResourceFile","App.appendToConfig","App.configurePlugin","App.icons","App.info","App.launchScreens","App.setPreference","App.settings","Assets","Assets.absoluteFilePath","Assets.getBinaryAsync","Assets.getTextAsync","CompileStep","CompileStep#addAsset","CompileStep#addHtml","CompileStep#addJavaScript","CompileStep#addStylesheet","CompileStep#arch","CompileStep#declaredExports","CompileStep#error","CompileStep#fileOptions","CompileStep#fullInputPath","CompileStep#inputPath","CompileStep#inputSize","CompileStep#packageName","CompileStep#pathForSourceMap","CompileStep#read","CompileStep#rootOutputPath","Cordova","DDP","DDP.connect","DDP.onReconnect","DDPCommon","DDPCommon.MethodInvocation","DDPCommon.MethodInvocation#connection","DDPCommon.MethodInvocation#isSimulation","DDPCommon.MethodInvocation#name","DDPCommon.MethodInvocation#setUserId","DDPCommon.MethodInvocation#unblock","DDPCommon.MethodInvocation#userId","DDPRateLimiter.addRule","DDPRateLimiter.removeRule","DDPRateLimiter.setErrorMessage","DDPRateLimiter.setErrorMessageOnRule","DocumentProcessors#_process_added","DocumentProcessors#_process_changed","DocumentProcessors#_process_ready","DocumentProcessors#_process_removed","DocumentProcessors#_process_updated","EJSON","EJSON.CustomType","EJSON.CustomType#clone","EJSON.CustomType#equals","EJSON.CustomType#toJSONValue","EJSON.CustomType#typeName","EJSON.addType","EJSON.clone","EJSON.equals","EJSON.fromJSONValue","EJSON.isBinary","EJSON.newBinary","EJSON.parse","EJSON.stringify","EJSON.toJSONValue","Email.customTransport","Email.hookSend","Email.send","Email.sendAsync","HTTP.call","HTTP.del","HTTP.get","HTTP.patch","HTTP.post","HTTP.put","InputFile#addAsset","InputFile#addHtml","InputFile#addJavaScript","InputFile#addStylesheet","InputFile#error","InputFile#getArch","InputFile#getBasename","InputFile#getContentsAsBuffer","InputFile#getContentsAsString","InputFile#getDeclaredExports","InputFile#getDirname","InputFile#getDisplayPath","InputFile#getExtension","InputFile#getFileOptions","InputFile#getPackageName","InputFile#getPathInBundle","InputFile#getPathInPackage","InputFile#getSourceHash","InputFile#getSourceMap","IterationCallback","Match","Match.test","MessageProcessors#_livedata_connected","MessageProcessors#_livedata_data","MessageProcessors#_livedata_error","MessageProcessors#_livedata_nosub","MessageProcessors#_livedata_result","Meteor","Meteor.EnvironmentVariable","Meteor.EnvironmentVariable.get","Meteor.EnvironmentVariable.withValue","Meteor.EnvironmentVariableAsync","Meteor.Error","Meteor.absoluteUrl","Meteor.apply","Meteor.applyAsync","Meteor.bindEnvironment","Meteor.call","Meteor.callAsync","Meteor.clearInterval","Meteor.clearTimeout","Meteor.defer","Meteor.deferDev","Meteor.deferProd","Meteor.deferrable","Meteor.disconnect","Meteor.fetch","Meteor.gitCommitHash","Meteor.isAppTest","Meteor.isAsyncCall","Meteor.isAsyncCall","Meteor.isClient","Meteor.isCordova","Meteor.isCordova","Meteor.isDevelopment","Meteor.isFibersDisabled","Meteor.isModern","Meteor.isPackageTest","Meteor.isProduction","Meteor.isServer","Meteor.isTest","Meteor.loggingIn","Meteor.loggingOut","Meteor.loginWith<ExternalService>","Meteor.loginWithPassword","Meteor.loginWithPasswordAnd2faCode","Meteor.loginWithPasswordAsync","Meteor.loginWithToken","Meteor.loginWithTokenAsync","Meteor.logout","Meteor.logoutAllClients","Meteor.logoutAllClientsAsync","Meteor.logoutAsync","Meteor.logoutOtherClients","Meteor.logoutOtherClientsAsync","Meteor.methods","Meteor.onConnection","Meteor.onMessage","Meteor.passwordlessLoginWithToken","Meteor.passwordlessLoginWithTokenAnd2faCode","Meteor.promisify","Meteor.publish","Meteor.re
902connect","Meteor.release","Meteor.setInterval","Meteor.setTimeout","Meteor.settings","Meteor.startup","Meteor.status","Meteor.subscribe","Meteor.user","Meteor.userAsync","Meteor.userId","Meteor.users","Meteor.users","Meteor.wrapAsync","ModernBrowsers.calculateHashOfMinimumVersions","ModernBrowsers.getMinimumBrowserVersions","ModernBrowsers.isModern","ModernBrowsers.setMinimumBrowserVersions","Mongo","Mongo.Collection","Mongo.Collection#allow","Mongo.Collection#countDocuments","Mongo.Collection#createIndex","Mongo.Collection#createIndexAsync","Mongo.Collection#createIndexAsync","Mongo.Collection#deny","Mongo.Collection#ensureIndexAsync","Mongo.Collection#estimatedDocumentCount","Mongo.Collection#find","Mongo.Collection#findOne","Mongo.Collection#findOneAsync","Mongo.Collection#findOneAsync","Mongo.Collection#insert","Mongo.Collection#insert","Mongo.Collection#insertAsync","Mongo.Collection#rawCollection","Mongo.Collection#rawDatabase","Mongo.Collection#remove","Mongo.Collection#remove","Mongo.Collection#removeAsync","Mongo.Collection#update","Mongo.Collection#update","Mongo.Collection#updateAsync","Mongo.Collection#upsert","Mongo.Collection#upsert","Mongo.Collection#upsertAsync","Mongo.Collection.addExtension","Mongo.Collection.addPrototypeMethod","Mongo.Collection.addStaticMethod","Mongo.Collection.clearExtensions","Mongo.Collection.getExtensions","Mongo.Collection.getPrototypeMethods","Mongo.Collection.getStaticMethods","Mongo.Collection.removeExtension","Mongo.Collection.removePrototypeMethod","Mongo.Collection.removeStaticMethod","Mongo.CollectionExtensions","Mongo.Cursor","Mongo.Cursor#count","Mongo.Cursor#countAsync","Mongo.Cursor#fetch","Mongo.Cursor#fetchAsync","Mongo.Cursor#forEach","Mongo.Cursor#forEachAsync","Mongo.Cursor#forEachAsync","Mongo.Cursor#map","Mongo.Cursor#mapAsync","Mongo.Cursor#mapAsync","Mongo.Cursor#observe","Mongo.Cursor#observeAsync","Mongo.Cursor#observeChanges","Mongo.Cursor#observeChangesAsync","Mongo.ObjectID","Mongo._collections","Mongo.getCollection","Npm","Npm.require","Package","PackageAPI","PackageAPI#addAssets","PackageAPI#addFiles","PackageAPI#export","PackageAPI#imply","PackageAPI#use","PackageAPI#versionsFrom","PackageCordova","PackageCordova#depends","PackageNamespace","PackageNamespace#describe","PackageNamespace#onTest","PackageNamespace#onUse","PackageNamespace#registerBuildPlugin","PackageNpm","PackageNpm#depends","PackageNpm#devDepends","Plugin","Plugin.registerCompiler","Plugin.registerLinter","Plugin.registerMinifier","Plugin.registerSourceHandler","Random.choice","Random.fraction","Random.fraction","Random.fraction","Random.fraction","Random.hexString","Random.hexString","Random.id","Random.secret","ReactiveDict","ReactiveDict#all","ReactiveDict#clear","ReactiveDict#delete","ReactiveDict#destroy","ReactiveDict#equals","ReactiveDict#get","ReactiveDict#set","ReactiveDict#setDefault","ReactiveVar","ReactiveVar#get","ReactiveVar#set","Roles","Roles.addRolesToParentAsync","Roles.addUsersToRolesAsync","Roles.createRoleAsync","Roles.deleteRoleAsync","Roles.getAllRoles","Roles.getRolesForUserAsync","Roles.getScopesForUserAsync","Roles.getUserAssignmentsForRole","Roles.getUserIdsInRoleAsync","Roles.getUsersInRoleAsync","Roles.isParentOfAsync","Roles.removeRolesFromParentAsync","Roles.removeScopeAsync","Roles.removeUsersFromRolesAsync","Roles.renameRoleAsync","Roles.renameScopeAsync","Roles.setUserRolesAsync","Roles.userIsInRoleAsync","Server~self.options.disconnectGracePeriod","Server~self.options.maxMessageQueueLength","Session.equals","Session.get","Session.set","Session.setDefault","Subscription","Subscription#added","Subscription#changed","Subscription#connection","Subscription#error","Subscription#onStop","Subscription#ready","Subscription#removed","Subscription#stop","Subscription#userId","Tracker","Tracker.Computation","Tracker.Computation#firstRun","Tracker.Computation#firstRunPromise","Tracker.Computation#flush","Tracker.Computation#invalidate","Tracker.Computation#invalidated","Tracker.Computation#onInvalidate","Tracker.Computation#onStop","Tracker.Computation#run","Tracker.Computation#stop","Tracker.Computation#stopped","Tracker.ComputationFunction","Tracker.Dependency","Tracker.Dependency#changed","Tracker.Dependency#depend","Tracker.Dependency#hasDependents","Tracker.active","Tracker.afterFlush","Tracker.autorun","Tracker.currentComputation","Tracker.flush","Tracker.inFlush","Tracker.nonreactive","Tracker.onInvalidate","Tracker.withComputation","WebApp.addHtmlAttributeHook","WebApp.addRuntimeConfigHook","WebApp.addUpdatedNotifyHook","WebApp.decodeRuntimeConfig","WebApp.encodeRuntimeConfig","WebApp.handlers","addRuntimeConfigHookCallback(options)","addUpdatedNotifyHookCallback(options)","check","createAuthFetch","createAuthFetch","createAuthMiddleware","currentUser","expressHandlersCallback(req, res, next)","fetch","getPublicationStrategy","handleFetch","handleFetch","loggingIn","loggingInOrOut","loggingOut","main","module.hot","module.hot#accept","module.hot#data","module.hot#decline","module.hot#dispose","module.hot#onRequire","setPublicationStrategy"],Qi=a=>
902[...new Set(a)],Zi=a=>{const e=[];for(const n of a)n.includes("#")||n.includes(".")||e.push(n);return e},er=a=>{let e=a[0];const n={};for(const o of a){if(n[e]||(n[e]={[e]:[]}),o.includes(e)){n[e][o]=[];continue}e=o}return n};function nr(a){const e=Zi(a),n=er(e);Object.assign(n,{module:{module:[]},Session:{Session:[]},Random:{Random:[]},Email:{Email:[]},DDPRateLimiter:{DDPRateLimiter:[]}});for(const p of Object.keys(n)){const d=n[p];for(const v of Object.keys(d)){const y=a.filter(S=>S.includes(v+".")||S.includes(v+"#"));n[p][v]=Qi(y)}}const t=n.App.App.filter(p=>p.includes("WebApp")),l=n.App.App.filter(p=>!p.includes("WebApp"));n.App.App=l,n.WebApp={WebApp:t};const i=["addRuntimeConfigHookCallback(options)","addUpdatedNotifyHookCallback(options)","currentUser","expressHandlersCallback(req, res, next)","getPublicationStrategy","loggingIn","main","loggingOut","IterationCallback","CompileStep","Cordova","Plugin"];for(const p of Object.keys(n))i.includes(p)&&delete n[p];return n.DDP.shouldGoTo="/api/meteor",n.check.shouldGoTo="/api/check",n.Mongo.shouldGoTo="/api/collections",n.Npm.shouldGoTo="/api/package",n.Subscription.shouldGoTo="/api/meteor",n.module.shouldGoTo="/packages/hot-module-replacement",n.Random.shouldGoTo="/packages/random",n.WebApp.shouldGoTo="/packages/webapp",n}function or(a,e){if(a==="")return e;const n={};for(const o in e){const t={};for(const l in e[o]){const i=e[o][l];if(!Array.isArray(i)){t[l]=i;continue}const p=i.filter(d=>d.toLowerCase().includes(a.toLowerCase()));p.length>0&&(t[l]=p)}Object.keys(t).length>0&&(n[o]=t)}return n}const tr={style:{"text-transform":"capitalize"}},ar=["href"],sr={key:0},ir=["href"],rr={__name:"ApiMap",setup(a){const e=nr(Ki),n=P(e),o=P("");Q(()=>{n.value=or(o.value,e)});const t=(l,i)=>l!=null&&l.shouldGoTo?`${l.shouldGoTo}`:i;return(l,i)=>(s(),m("main",null,[i[1]||(i[1]=r("label",{for:"search"},"Search",-1)),i[2]||(i[2]=r("br",null,null,-1)),K(r("input",{class:"search",type:"text","onUpdate:modelValue":i[0]||(i[0]=p=>o.value=p)},null,512),[[fn,o.value]]),(s(!0),m(O,null,x(n.value,(p,d,v)=>(s(),m("div",{key:v},[r("h2",tr,[r("a",{href:t(p,d),style:{"text-decoration":"none"}},M(d),9,ar)]),(s(!0),m(O,null,x(p,(y,S)=>(s(),m("div",{key:S},[S!=="shouldGoTo"?(s(),m("div",sr,[(s(!0),m(O,null,x(y,b=>(s(),m("h5",{key:b},[r("a",{href:t(p,d)+"#"+b.replace("#","-").replace(".","-")},M(b),9,ir)]))),128))])):f("",!0)]))),128))]))),128))]))}},cr=C(rr,[["__scopeId","data-v-20e58f0d"]]),lr={key:0,class:"contributors-grid"},pr=["href"],mr=["src","alt"],dr={class:"contributor-info"},ur={class:"contributor-name"},hr={key:0,class:"contributor-commits"},fr={key:1,class:"contributors-empty"},gr=g({__name:"Contributors",props:{contributors:{},showContributions:{type:Boolean,default:!0}},setup(a){function e(n){return n.includes("?")?`${n}&s=80`:`${n}?s=80`}return(n,o)=>n.contributors.length?(s(),m("div",lr,[(s(!0),m(O,null,x(n.contributors,t=>(s(),m("a",{key:t.login,href:t.html_url,target:"_blank",rel:"noopener noreferrer",class:"contributor-card"},[r("img",{src:e(t.avatar_url),alt:t.login,class:"contributor-avatar",loading:"lazy",width:"64",height:"64"},null,8,mr),r("div",dr,[r("span",ur,M(t.login),1),n.showContributions?(s(),m("span",hr,M(t.contributions.toLocaleString())+" "+M(t.contributions===1?"commit":"commits"),1)):f("",!0)])],8,pr))),128))])):(s(),m("p",fr,o[0]||(o[0]=[R(" Could not load contributors. Check the "),r("a",{href:"https://github.com/meteor/meteor/graphs/contributors",target:"_blank",rel:"noopener noreferrer"}," GitHub contributors page ",-1),R(". ")])))}}),yr=C(gr,[["__scopeId","data-v-cb80e269"]]),br={class:"custom-404-container"},vr={class:"custom-404-message"},kr=["href"],wr={__name:"NotFound",setup(a){const e=Se(),n=P("");return B(()=>{n.value=`https://v2-docs.meteor.com${e.route.path}`}),(o,t)=>(s(),m("div",br,[t[2]||(t[2]=r("h1",{class:"custom-404-title"},"404",-1)),t[3]||(t[3]=r("p",{class:"custom-404-subtitle"},"Page Not Found",-1)),t[4]||(t[4]=r("hr",{class:"custom-404-divider"},null,-1)),r("p",vr,[t[0]||(t[0]=R(" It looks like you're trying to access a page that doesn't exist. If you were looking for something from the older version of our documentation, you might find it here: ")),r("a",{href:n.value,target:"_blank",class:"custom-404-link"},M(n.value),9,kr),t[1]||(t[1]=R(". "))]),t[5]||(t[5]=r("a",{href:"/",class:"custom-404-button"},"Take me home",-1))]))}},Ar=C(wr,[["__scopeId","data-v-f366631a"]]),Sr={class:"warning custom-block"}
902,Cr=["href"],_r=g({__name:"GoToLatest",setup(a){const e=Se();let n=P(`https://docs.meteor.com${e.route.path}`);return typeof window<"u"&&q(()=>e.route.path,o=>n.value=`https://docs.meteor.com${o}`,{immediate:!0}),(o,t)=>(s(),m(O,null,[r("div",Sr,[t[2]||(t[2]=r("p",{class:"custom-block-title"},"Warning",-1)),r("p",null,[t[0]||(t[0]=R("You are viewing an old version of the Meteor documentation. Click ")),r("a",{href:c(n)},"here",8,Cr),t[1]||(t[1]=R(" to go to the latest version."))])]),t[3]||(t[3]=r("br",null,null,-1))],64))}}),Mr="meteor-call",Tr="DDP-connect",Pr="history",Ne={meteor_call:Mr,ddp_connect:Tr,changelog:Pr},jr=a=>{const e=a.split("/").pop().split(".")[0];return Ne[e]?{path:a.replace(e,Ne[e]),shouldRedirect:!0}:a.includes("_")?{path:a.replace("_","-"),shouldRedirect:!0}:{path:a,shouldRedirect:!1}},Or=g({__name:"Layout",setup(a){const{isDark:e}=ye(),n=Se(),o=typeof window<"u";if(o){const{path:i,shouldRedirect:p}=jr(window.location.href);p&&n.go(i)}const t=()=>o&&"startViewTransition"in document&&window.matchMedia("(prefers-reduced-motion: no-preference)").matches;Ae("toggle-appearance",async({clientX:i,clientY:p})=>{if(!t()){e.value=!e.value;return}const d=[`circle(0px at ${i}px ${p}px)`,`circle(${Math.hypot(Math.max(i,innerWidth-i),Math.max(p,innerHeight-p))}px at ${i}px ${p}px)`];await document.startViewTransition(async()=>{e.value=!e.value,await we()}).ready,document.documentElement.animate({clipPath:e.value?d.reverse():d},{duration:300,easing:"ease-in",pseudoElement:`::view-transition-${e.value?"old":"new"}(root)`})});const l=P(!0);return B(()=>{l.value=o&&window.location.href.startsWith("https://docs.meteor.com/")}),(i,p)=>(s(),A(c(Ge).Layout,null,gn({"not-found":h(()=>[k(Ar)]),_:2},[l.value?void 0:{name:"doc-before",fn:h(()=>[k(_r)]),key:"0"}]),1024))}}),Rr={extends:Ge,enhanceApp({app:a}){a.component("ApiBox",Xi),a.component("ApiMap",cr),a.component("Contributors",yr)},Layout:Or};export{Rr as R,j as u};

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.