PageSourceSearch

https://e4eazy.app/login

html e4eazy.app collected 2026-10-02 00:04:29 UTC 13,975 bytes, 310 lines download raw bytes

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  <link href="https://media.base44.com/images/public/6a28bf33faa97ed07603f30d/0b7148067_image.jpeg" rel="icon" type="image/jpeg"/>
39  <link href="https://media.base44.com/images/public/6a28bf33faa97ed07603f30d/0b7148067_image.jpeg" rel="apple-touch-icon"/>
40  <meta content="width=device-width, initial-scale=1.0, viewport-fit=cover, maximum-scale=1.0, user-scalable=no" name="viewport"/>
41  <link href="/manifest.json" rel="manifest"/>
42  <meta content="#3b1db4" name="theme-color"/>
43  <meta content="yes" name="mobile-web-app-capable"/>
44  <meta content="yes" name="apple-mobile-web-app-capable"/>
45  <meta content="black-translucent" name="apple-mobile-web-app-status-bar-style"/>
46  <meta content="E4Eazy" name="apple-mobile-web-app-title"/>
47  <meta content="E4Eazy" name="application-name"/>
48  <title>
49   Login | E4EaZy
50  </title>
51  <meta content="Login on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone." name="description"/>
52  <meta content="SaloneNest LLC" name="author"/>
53  <!-- Security headers via meta -->
54  <meta content="nosniff" http-equiv="X-Content-Type-Options"/>
55  <meta content="DENY" http-equiv="X-Frame-Options"/>
56  <meta content="strict-origin-when-cross-origin" http-equiv="Referrer-Policy"/>
57  <meta content="geolocation=(self), camera=(self), microphone=()" http-equiv="Permissions-Policy"/>
58  <!-- Prevent caching of sensitive pages -->
59  <meta content="no-store, no-cache, must-revalidate" http-equiv="Cache-Control"/>
60  
60<script crossorigin="" src="/assets/index-DGUvLlBc.js" type="module">
61  </script>
61
62  <link crossorigin="" href="/assets/index-DKU8dIAI.css" rel="stylesheet"/>
63  
63<script type="module">
64   if (window.self === window.top) {
65  let lastPath = "";
66  function getPageNameFromPath(path) {
67    const segments = path.split("/").filter(Boolean);
68    return segments[0] || null;
69  }
70  function trackPageView() {
71    const path = window.location.pathname;
72    if (path === lastPath) return;
73    lastPath = path;
74    const pageName = getPageNameFromPath(path) || "home";
75    const appId = "6a28bf33faa97ed07603f30d";
76    if (!appId) return;
77    fetch(`/api/app-logs/${appId}/log-user-in-app/${pageName}`, {
78      method: "POST",
79    }).catch(() => {});
80  }
81  const originalPushState = history.pushState.bind(history);
82  history.pushState = function (...args) {
83    originalPushState(...args);
84    trackPageView();
85  };
86  const originalReplaceState = history.replaceState.bind(history);
87  history.replaceState = function (...args) {
88    originalReplaceState(...args);
89    trackPageView();
90  };
91  window.addEventListener("popstate", trackPageView);
92  trackPageView();
93}
94  </script>
94
95  <meta content="Login | E4EaZy" property="og:title"/>
96  <meta content="Login on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone." property="og:description"/>
97  <meta content="https://media.base44.com/images/public/6a28bf33faa97ed07603f30d/fb9047e7c_E4EazyRideLogo.JPG/v1/fill/w_1200,h_630/fb9047e7c_E4EazyRideLogo.JPG" property="og:image"/>
98  <meta content="https://e4eazy.app/login" property="og:url"/>
99  <meta content="website" property="og:type"/>
100  <meta content="E4EaZy" property="og:site_name"/>
101  <meta content="Login | E4EaZy" name="twitter:title"/>
102  <meta content="Login on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone." name="twitter:description"/>
103  <meta content="https://media.base44.com/images/public/6a28bf33faa97ed07603f30d/fb9047e7c_E4EazyRideLogo.JPG/v1/fill/w_1200,h_630/fb9047e7c_E4EazyRideLogo.JPG" name="twitter:image"/>
104  <meta content="summary_large_image" name="twitter:card"/>
105  <meta content="https://e4eazy.app/login" name="twitter:url"/>
106  
106<script>
107   (function () {
108  var titles = {"/login": "Login | E4EaZy", "/register": "Register | E4EaZy", "/forgot-password": "Forgot Password | E4EaZy", "/reset-password": "Reset Password | E4EaZy", "/": "E4EaZy", "/home": "Home | E4EaZy", "/passenger": "Passenger / Passenger Home | E4EaZy", "/driver": "Driver / Driver Home | E4EaZy", "/onboarding": "Onboarding | E4EaZy", "/privacy": "Privacy Policy | E4EaZy", "/contact": "Contact Us | E4EaZy", "/safety-standards": "Safety Standards | E4EaZy", "/policies": "Policies | E4EaZy", "/diaspora": "Diaspora Schedule | E4EaZy", "/faq": "FAQ | E4EaZy", "/shared-trip": "Shared Trip | E4EaZy", "/paypal-return": "Pay Pal Return | E4EaZy", "/stripe-return": "Stripe Return | E4EaZy", "/delete-account": "Delete Account | E4EaZy", "/admin": "Admin / Admin Console | E4EaZy", "/roleselect": "E4EaZy", "/role-select": "E4EaZy"};
109  // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind
110  // (old Safari fails to PARSE a lookbehind, taking the whole script down).
111  var dashed = function (s) {
112    return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2");
113  };
114  var decode = function (s) {
115    // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a
116    // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title.
117    try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; }
118  };
119  var segments = function (path) { return path.split("/").filter(Boolean).map(decode); };
120  var norm = function (path) {
121    var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); });
122    return parts.length ? "/" + parts.join("/") : "/";
123  };
124  var lastPath = location.pathname, written = document.title, on = true;
125  var sync = function () {
126    // Path only: a hash/query change is the same page, and the SDK strips its own auth
127    // params with replaceState -- neither must clobber a server-rendered title in place.
128    if (!on || location.pathname === lastPath) return;
129    lastPath = location.pathname;
130    if (document.title !== written) { on = false; return; }
131    // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the
132    // map cannot carry, and writing a placeholder there is destructive, not merely vague: the
133    // prerender worker runs no setUserAgent, so its capture browser reads as human and executes
134    // this script, and coordinator.js's settle wait explicitly tolerates a full navigation --
135    // a redirect landing on an unmapped path would bake the placeholder into the stored
136    // snapshot. Leaving the title alone degrades to today's behavior instead.
137    // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up
138    // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the
139    // dashes there, and the client cannot tell the two apart. The map emits every reachable
140    // shape per segment instead (_client_url_variants).
141    var title = titles[norm(location.pathname)];
142    if (title === undefined) return;
143    document.title = title;
144    // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so
145    // keeping the assigned string would make the next sync() read our own write as the app's.
146    written = document.title;
147  };
148  var wrap = function (fn) {
149    // The history entry is already pushed by the time sync() runs, so a throw here would
150    // surface inside the host app's router and break navigation. This is injected into apps
151    // we cannot test, so it swallows rather than trusting the trace.
152    return function () {
153      var r = fn.apply(this, arguments);
154      try { sync(); } catch (e) {}
155      return r;
156    };
157  };
158  history.pushState = wrap(history.pushState);
159  history.replaceState = wrap(history.replaceState);
160  window.addEventListener("popstate", sync);
161})();
162  </script>
162
163  <link href="https://e4eazy.app/login" rel="canonical"/>
164  
164<script data-seo-source="builder" type="application/ld+json">
165   {"name": "E4EaZy", "@context": "https://schema.org", "@type": "WebSite", "url": "https://e4eazy.app"}
166  </script>
166
167  
167<script data-seo-source="builder" type="application/ld+json">
168   {"name": "E4EaZy", "logo": "https://media.base44.com/images/public/6a28bf33faa97ed07603f30d/e2983da67_E4Eazy.JPG", "@context": "https://schema.org", "@type": "Organization", "url": "https://e4eazy.app"}
169  </script>
169
170  
170<script data-seo-source="builder" type="application/ld+json">
171   {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://e4eazy.app/"}, {"@type": "ListItem", "position": 2, "name": "Login | E4EaZy", "item": "https://e4eazy.app/login"}]}
172  </script>
172
173 </head>
174 <body>
175  <div id="root">
176   <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;">
177    <main>
178     <header>
179      <h1>
180       Login | E4EaZy
181      </h1>
182      <p>
183       Login on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
184      </p>
185     </header>
186     <nav aria-label="Pages">
187      <h2>
188       Pages
189      </h2>
190      <ul>
191       <li>
192        <a href="/">
193         Role Select
194        </a>
195       </li>
196       <li>
197        <a href="/login">
198         Login
199        </a>
200        — Login on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
201       </li>
202       <li>
203        <a href="/register">
204         Register
205        </a>
206        — Register on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
207       </li>
208       <li>
209        <a href="/forgot-password">
210         Forgot Password
211        </a>
212        — Forgot Password on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
213       </li>
214       <li>
215        <a href="/reset-password">
216         Reset Password
217        </a>
218        — Reset Password on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
219       </li>
220       <li>
221        <a href="/home">
222         Home
223        </a>
224        — Home on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
225       </li>
226       <li>
227        <a href="/passenger">
228         Passenger Home
229        </a>
230        — Passenger / Passenger Home on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
231       </li>
232       <li>
233        <a href="/driver">
234         Driver Home
235        </a>
236        — Driver / Driver Home on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
237       </li>
238       <li>
239        <a href="/privacy">
240         Privacy Policy
241        </a>
242        — Privacy Policy on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
243       </li>
244       <li>
245        <a href="/contact">
246         Contact Us
247        </a>
248        — Contact Us on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
249       </li>
250       <li>
251        <a href="/safety-standards">
252         Safety Standards
253        </a>
254        — Safety Standards on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
255       </li>
256       <li>
257        <a href="/policies">
258         Policies
259        </a>
260        — Policies on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
261       </li>
262       <li>
263        <a href="/diaspora">
264         Diaspora Schedule
265        </a>
266        — Diaspora Schedule on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
267       </li>
268       <li>
269        <a href="/faq">
270         FAQ
271        </a>
272        — FAQ on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
273       </li>
274       <li>
275        <a href="/shared-trip">
276         Shared Trip
277        </a>
278        — Shared Trip on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
279       </li>
280       <li>
281        <a href="/paypal-return">
282         Pay Pal Return
283        </a>
284        — Pay Pal Return on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
285       </li>
286       <li>
287        <a href="/stripe-return">
288         Stripe Return
289        </a>
290        — Stripe Return on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
291       </li>
292       <li>
293        <a href="/delete-account">
294         Delete Account
295        </a>
296        — Delete Account on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
297       </li>
298       <li>
299        <a href="/admin">
300         Admin Console
301        </a>
302        — Admin / Admin Console on E4EaZy. E4Eazy: Connecting Passengers and Drivers Seamlessly in Sierra Leone.
303       </li>
304      </ul>
305     </nav>
306    </main>
307   </div>
308  </div>
309 </body>
310</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.