1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4
4<script> 5 (function () { 6 var proto = XMLHttpRequest.prototype; 7 var open = proto.open, setRequestHeader = proto.setRequestHeader, send = proto.send; 8 var TOKEN_KEY = 'base44_access_token'; 9 var storedTokenHeader = function () { 10 try { return 'Bearer ' + localStorage.getItem(TOKEN_KEY); } catch (e) { return null; } 11 }; 12 var forgetStoredToken = function () { 13 try { localStorage.removeItem(TOKEN_KEY); localStorage.removeItem('token'); } catch (e) {} 14 }; 15 16 proto.open = function (method, url) { 17 this.__b44IsAuthCheck = /\/entities\/User\/me(\?|$)/.test(url); 18 return open.apply(this, arguments); 19 }; 20 21 proto.setRequestHeader = function (name, value) { 22 if (this.__b44IsAuthCheck && name.toLowerCase() === 'authorization' && value === storedTokenHeader()) { 23 this.__b44SentToken = value; 24 } 25 return setRequestHeader.call(this, name, value); 26 }; 27 28 proto.send = function () { 29 this.addEventListener('loadend', function () { 30 var rejectedTokenStillStored = this.status === 401 && this.__b44SentToken === storedTokenHeader(); 31 if (rejectedTokenStillStored) forgetStoredToken(); 32 }); 33 return send.apply(this, arguments); 34 }; 35})(); 36 </script>
36 37 <meta charset="utf-8"/> 38 <meta content="width=device-width, initial-scale=1.0" name="viewport"/> 39 <meta content="telephone=no" name="format-detection"/> 40 <meta content="light" name="color-scheme"/> 41 <title> 42 Marketplace | Tree of Light 43 </title> 44 <meta content="Marketplace on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with." name="description"/> 45 <meta content="Tree of Light, Indigenous nonprofit, ancestral medicine, Indigenous education, environmental stewardship, SpiritQuests, IndigiCore, Earth technologies, Indigenous upliftment, 501(c)(3)" name="keywords"/> 46 <meta content="Tree of Light" name="author"/> 47 <meta content="Tree of Light" name="application-name"/> 48 <meta content="index, follow" name="robots"/> 49 <meta content="#1A2421" name="theme-color"/> 50 <!-- Icons & PWA --> 51 <link href="https://media.base44.com/images/public/6a7f4945fd1b9b727772a8be/da7f1e647_tol-logo.png" rel="icon" type="image/png"/> 52 <link href="https://media.base44.com/images/public/6a7f4945fd1b9b727772a8be/da7f1e647_tol-logo.png" rel="apple-touch-icon"/> 53 <link href="/manifest.json" rel="manifest"/> 54 <!-- Open Graph --> 55 <meta content="Tree of Light" property="og:site_name"/> 56 <meta content="Marketplace | Tree of Light" property="og:title"/> 57 <meta content="Marketplace on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with." property="og:description"/> 58 <meta content="website" property="og:type"/> 59 <meta content="https://treeoflight.earth/store" property="og:url"/> 60 <meta content="en_US" property="og:locale"/> 61 <meta content="https://media.base44.com/images/public/6a7f4945fd1b9b727772a8be/ec80a9cb7_logo.png/v1/fill/w_1200,h_630/ec80a9cb7_logo.png" property="og:image"/> 62 <meta content="Tree of Light community gathering" property="og:image:alt"/> 63 <meta content="1200" property="og:image:width"/> 64 <meta content="630" property="og:image:height"/> 65 <!-- Twitter --> 66 <meta content="summary_large_image" name="twitter:card"/> 67 <meta content="Marketplace | Tree of Light" name="twitter:title"/> 68 <meta content="Marketplace on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with." name="twitter:description"/> 69 <meta content="https://media.base44.com/images/public/6a7f4945fd1b9b727772a8be/ec80a9cb7_logo.png/v1/fill/w_1200,h_630/ec80a9cb7_logo.png" name="twitter:image"/> 70 <meta content="Tree of Light community gathering" name="twitter:image:alt"/> 71 <!-- Fonts --> 72 <link href="https://fonts.googleapis.com" rel="preconnect"/> 73 <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/> 74 <link href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,[email protected],300;9..144,400;9..144,500&
74family=DM+Sans:wght@400;500;600&display=swap" rel="stylesheet"/> 75 <!-- Structured data (static baseline; per-page blocks injected by Seo.jsx) --> 76
76<script id="tol-org-jsonld" type="application/ld+json"> 77 { 78 "@context": "https://schema.org", 79 "@type": "NGO", 80 "name": "Tree of Light", 81 "alternateName": "Tree Of Light Wellness And Healing", 82 "url": "https://treeoflight.earth", 83 "logo": "https://media.base44.com/images/public/6a7f4945fd1b9b727772a8be/da7f1e647_tol-logo.png", 84 "image": "https://media.base44.com/images/public/6a7f4945fd1b9b727772a8be/da7f1e647_tol-logo.png", 85 "description": "Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with the ancient wisdom of the past - connecting, educating, and facilitating wholeness in our communities.", 86 "slogan": "Education ⢠Environment ⢠Indigenous Upliftment", 87 "email": "[email protected]", 88 "taxID": "84-2331840", 89 "address": { 90 "@type": "PostalAddress", 91 "streetAddress": "646 Kelsey Ave", 92 "addressLocality": "Idaho Falls", 93 "addressRegion": "ID", 94 "postalCode": "83401", 95 "addressCountry": "US" 96 }, 97 "sameAs": [ 98 "https://instragram.com/treeoflight.nac", 99 "https://www.facebook.com/Tree-Of-Light-Wellness-Living-Being-419706168529623", 100 "https://youtu.be/u2c_-WHIh2o", 101 "https://givebutter.com/treeoflight", 102 "https://opencollective.com/treeoflight" 103 ] 104 } 105 </script>
105 106
106<script id="tol-website-jsonld" type="application/ld+json"> 107 { 108 "@context": "https://schema.org", 109 "@type": "WebSite", 110 "name": "Tree of Light", 111 "alternateName": "Tree Of Light Wellness And Healing", 112 "url": "https://treeoflight.earth", 113 "inLanguage": "en", 114 "publisher": { "@type": "NGO", "name": "Tree of Light", "url": "https://treeoflight.earth" } 115 } 116 </script>
116 117
117<script crossorigin="" src="/assets/index-SNJgj4qU.js" type="module"> 118 </script>
118 119 <link crossorigin="" href="/assets/index-irO37yHR.css" rel="stylesheet"/> 120
120<script type="module"> 121 if (window.self === window.top) { 122 let lastPath = ""; 123 function getPageNameFromPath(path) { 124 const segments = path.split("/").filter(Boolean); 125 return segments[0] || null; 126 } 127 function trackPageView() { 128 const path = window.location.pathname; 129 if (path === lastPath) return; 130 lastPath = path; 131 const pageName = getPageNameFromPath(path) || "home"; 132 const appId = "6a7f4945fd1b9b727772a8be"; 133 if (!appId) return; 134 fetch(`/api/app-logs/${appId}/log-user-in-app/${pageName}`, { 135 method: "POST", 136 }).catch(() => {}); 137 } 138 const originalPushState = history.pushState.bind(history); 139 history.pushState = function (...args) { 140 originalPushState(...args); 141 trackPageView(); 142 }; 143 const originalReplaceState = history.replaceState.bind(history); 144 history.replaceState = function (...args) { 145 originalReplaceState(...args); 146 trackPageView(); 147 }; 148 window.addEventListener("popstate", trackPageView); 149 trackPageView(); 150} 151 </script>
151 152 <meta content="https://treeoflight.earth/store" name="twitter:url"/> 153
153<script> 154 (function () { 155 var titles = {"/": "Tree of Light", "/about": "About | Tree of Light", "/mission": "Mission | Tree of Light", "/mission/education": "Education | Tree of Light", "/events": "Events | Tree of Light", "/mission/spiritquests": "Spirit Quests | Tree of Light", "/mission/indigicore": "Indigi Core | Tree of Light", "/mission/indigicore/model": "Indigi Core Model | Tree of Light", "/mission/indigicore/volunteer": "Volunteer | Tree of Light", "/mission/indigicore/fund": "Indigi Core Fund | Tree of Light", "/mission/ancestral-medicine-revival": "Ancestral Medicine Revival | Tree of Light", "/store": "Marketplace | Tree of Light", "/contact": "Contact | Tree of Light", "/donate": "Donate | Tree of Light", "/donate/guide": "Fundraising Guide | Tree of Light", "/cookie-policy": "Cookie Policy | Tree of Light", "/privacy-policy": "Privacy Policy | Tree of Light", "/terms-of-use": "Terms Of Use | Tree of Light", "/peace": "Great Law Of Peace | Tree of Light", "/convergence-2026": "Convergence2026 | Tree of Light", "/home": "Tree of Light"}; 156 // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind 157 // (old Safari fails to PARSE a lookbehind, taking the whole script down). 158 var dashed = function (s) { 159 return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2"); 160 }; 161 var decode = function (s) { 162 // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a 163 // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title. 164 try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; } 165 }; 166 var segments = function (path) { return path.split("/").filter(Boolean).map(decode); }; 167 var norm = function (path) { 168 var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); }); 169 return parts.length ? "/" + parts.join("/") : "/"; 170 }; 171 var lastPath = location.pathname, written = document.title, on = true; 172 var sync = function () { 173 // Path only: a hash/query change is the same page, and the SDK strips its own auth 174 // params with replaceState -- neither must clobber a server-rendered title in place. 175 if (!on || location.pathname === lastPath) return; 176 lastPath = location.pathname; 177 if (document.title !== written) { on = false; return; } 178 // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the 179 // map cannot carry, and writing a placeholder there is destructive, not merely vague: the 180 // prerender worker runs no setUserAgent, so its capture browser reads as human and executes 181 // this script, and coordinator.js's settle wait explicitly tolerates a full navigation -- 182 // a redirect landing on an unmapped path would bake the placeholder into the stored 183 // snapshot. Leaving the title alone degrades to today's behavior instead. 184 // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up 185 // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the 186 // dashes there, and the client cannot tell the two apart. The map emits every reachable 187 // shape per segment instead (_client_url_variants). 188 var title = titles[norm(location.pathname)]; 189 if (title === undefined) return; 190 document.title = title; 191 // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so 192 // keeping the assigned string would make the next sync() read our own write as the app's. 193 written = document.title; 194 }; 195 var wrap = function (fn) { 196 // The history entry is already pushed by the time sync() runs, so a throw here would 197 // surface inside the host app's router and break navigation. This is injected into apps 198 // we cannot test, so it swallows rather than trusting the trace. 199 return function () { 200 var r = fn.apply(this, arguments); 201 try { sync(); } catch (e) {} 202 return r; 203 }; 204 }; 205 history.pushState = wrap(history.pushState); 206 history.replaceState = wrap(history.replaceState); 207 window.addEventListener("popstate", sync); 208})(); 209 </script>
209 210 <meta content="yes" name="mobile-web-app-capable"/> 211 <meta content="black" name="apple-mobile-web-app-status-bar-style"/> 212 <meta content="Tree of Light" name="apple-mobile-web-app-title"/> 213 <link href="https://treeoflight.earth/store" rel="canonical"/> 214
214<script data-seo-source="builder" type="application/ld+json"> 215 {"name": "Tree of Light", "@context": "https://schema.org", "@type": "WebSite", "url": "https://treeoflight.earth"} 216 </script>
216 217
217<script data-seo-source="builder" type="application/ld+json"> 218 {"name": "Tree of Light", "logo": "https://media.base44.com/images/public/6a7f4945fd1b9b727772a8be/f297443d7_logo.png", "@context": "https://schema.org", "@type": "Organization", "url": "https://treeoflight.earth"} 219 </script>
219 220
220<script data-seo-source="builder" type="application/ld+json"> 221 {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://treeoflight.earth/"}, {"@type": "ListItem", "position": 2, "name": "Marketplace", "item": "https://treeoflight.earth/store"}]} 222 </script>
222 223 </head> 224 <body> 225 <div id="root"> 226 <div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;"> 227 <main> 228 <header> 229 <h1> 230 Marketplace | Tree of Light 231 </h1> 232 <p> 233 Marketplace on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 234 </p> 235 </header> 236 <nav aria-label="Pages"> 237 <h2> 238 Pages 239 </h2> 240 <ul> 241 <li> 242 <a href="/"> 243 Home 244 </a> 245 </li> 246 <li> 247 <a href="/about"> 248 About 249 </a> 250 â About on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 251 </li> 252 <li> 253 <a href="/mission"> 254 Mission 255 </a> 256 â Mission on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 257 </li> 258 <li> 259 <a href="/mission/education"> 260 Education 261 </a> 262 â Education on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 263 </li> 264 <li> 265 <a href="/events"> 266 Events 267 </a> 268 â Events on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 269 </li> 270 <li> 271 <a href="/mission/spiritquests"> 272 Spirit Quests 273 </a> 274 â Spirit Quests on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 275 </li> 276 <li> 277 <a href="/mission/indigicore"> 278 Indigi Core 279 </a> 280 â Indigi Core on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 281 </li> 282 <li> 283 <a href="/mission/indigicore/model"> 284 Indigi Core Model 285 </a> 286 â Indigi Core Model on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 287 </li> 288 <li> 289 <a href="/mission/indigicore/volunteer"> 290 Volunteer 291 </a> 292 â Volunteer on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 293 </li> 294 <li> 295 <a href="/mission/indigicore/fund"> 296 Indigi Core Fund 297 </a> 298 â Indigi Core Fund on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 299 </li> 300 <li> 301 <a href="/mission/ancestral-medicine-revival"> 302 Ancestral Medicine Revival 303 </a> 304 â Ancestral Medicine Revival on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 305 </li> 306 <li> 307 <a href="/store"> 308 Marketplace 309 </a> 310 â Marketplace on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 311 </li> 312 <li> 313 <a href="/contact"> 314 Contact 315 </a> 316 â Contact on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 317 </li> 318 <li> 319 <a href="/donate"> 320 Donate 321 </a> 322 â Donate on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 323 </li> 324 <li> 325 <a href="/donate/guide"> 326 Fundraising Guide 327 </a> 328 â Fundraising Guide on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 329 </li> 330 <li> 331 <a href="/cookie-policy"> 332 Cookie Policy 333 </a> 334 â Cookie Policy on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 335 </li> 336 <li> 337 <a href="/privacy-policy"> 338 Privacy Policy 339 </a> 340 â Privacy Policy on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 341 </li> 342 <li> 343 <a href="/terms-of-use"> 344 Terms Of Use 345 </a> 346 â Terms Of Use on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 347 </li> 348 <li> 349 <a href="/peace"> 350 Great Law Of Peace 351 </a> 352 â Great Law Of Peace on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 353 </li> 354 <li> 355 <a href="/convergence-2026"> 356 Convergence2026 357 </a> 358 â Convergence2026 on Tree of Light. Tree of Light is an Indigenous-led nonprofit bridging Earth technologies with. 359 </li> 360 </ul> 361 </nav> 362 </main> 363 </div> 364 </div> 365 </body> 366</html>
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.