gitextract_js3nbrx3/ ├── .gitattributes ├── .github/ │ ├── PULL_REQUEST_TEMPLATE.md │ ├── dependabot.yml │ └── workflows/ │ ├── build.yml │ └── dependabot-automerge.yml ├── .gitignore ├── .husky/ │ └── pre-commit ├── .prettierignore ├── .prettierrc ├── CHANGELOG.md ├── LICENSE ├── PROD_CHECKLIST.md ├── README.md ├── SECURITY.md ├── app.js ├── config/ │ ├── flash.js │ ├── morgan.js │ ├── nodemailer.js │ ├── passport.js │ └── token-revocation.js ├── controllers/ │ ├── ai-agent.js │ ├── ai.js │ ├── api.js │ ├── contact.js │ ├── home.js │ ├── user.js │ └── webauthn.js ├── eslint.config.mjs ├── models/ │ ├── Session.js │ └── User.js ├── package.json ├── patches/ │ ├── passport+0.7.0.patch │ ├── passport-oauth1+1.3.0.patch │ └── passport-oauth2+1.8.0.patch ├── public/ │ ├── css/ │ │ └── main.scss │ ├── js/ │ │ ├── lib/ │ │ │ └── .gitkeep │ │ └── main.js │ ├── privacy-policy.html │ └── terms-of-use.html ├── test/ │ ├── TESTING.md │ ├── app-links.test.js │ ├── app.test.js │ ├── auth.opt.test.js │ ├── contact.test.js │ ├── docs-links.test.js │ ├── e2e/ │ │ ├── chart.e2e.test.js │ │ ├── foursquare.e2e.test.js │ │ ├── giphy.e2e.test.js │ │ ├── google-maps.e2e.test.js │ │ ├── here-maps.e2e.test.js │ │ ├── llm-classifier.e2e.test.js │ │ ├── lob.e2e.test.js │ │ ├── nyt.e2e.test.js │ │ ├── openai-moderation.e2e.test.js │ │ ├── rag.e2e.test.js │ │ ├── trakt.e2e.test.js │ │ └── twilio.e2e.test.js │ ├── e2e-nokey/ │ │ ├── github-api.e2e.test.js │ │ ├── lastfm.e2e.test.js │ │ ├── pubchem.e2e.test.js │ │ ├── scraping.e2e.test.js │ │ ├── upload.e2e.test.js │ │ └── wikipedia.e2e.test.js │ ├── fixtures/ │ │ ├── GET_https%3A%2F%2Fapi.giphy.com%2Fv1%2Fgifs%2Fsearch%3Fq%3DHappy%26limit%3D20%26offset%3D0%26rating%3Dg%26lang%3Den.json │ │ ├── GET_https%3A%2F%2Fapi.giphy.com%2Fv1%2Fgifs%2Fsearch%3Fq%3Dfunny%2Bcat%26limit%3D20%26offset%3D0%26rating%3Dg%26lang%3Den.json │ │ ├── GET_https%3A%2F%2Fapi.github.com%2Frepos%2Fsahat%2Fhackathon-starter%2Fstargazers%3Fper_page%3D10.json │ │ ├── GET_https%3A%2F%2Fapi.github.com%2Frepos%2Fsahat%2Fhackathon-starter.json │ │ ├── GET_https%3A%2F%2Fapi.nytimes.com%2Fsvc%2Fbooks%2Fv3%2Flists%2Fcurrent%2Fyoung-adult-hardcover.json.json │ │ ├── GET_https%3A%2F%2Fapi.trakt.tv%2Fmovies%2Fmercy-2026%3Fextended%3Dfull%252Cimages.json │ │ ├── GET_https%3A%2F%2Fapi.trakt.tv%2Fmovies%2Ftrending%3Flimit%3D6%26extended%3Dimages.json │ │ ├── GET_https%3A%2F%2Fen.wikipedia.org%2Fw%2Fapi.php%3Faction%3Dparse%26format%3Djson%26origin%3D_%26page%3DNode.js%26prop%3Dsections.json │ │ ├── GET_https%3A%2F%2Fen.wikipedia.org%2Fw%2Fapi.php%3Faction%3Dquery%26format%3Djson%26origin%3D_%26list%3Dsearch%26srsearch%3Djavascript%26srlimit%3D10.json │ │ ├── GET_https%3A%2F%2Fen.wikipedia.org%2Fw%2Fapi.php%3Faction%3Dquery%26format%3Djson%26origin%3D_%26prop%3Dextracts%26explaintext%3D1%26titles%3DNode.js%26exintro%3D1.json │ │ ├── GET_https%3A%2F%2Fen.wikipedia.org%2Fw%2Fapi.php%3Faction%3Dquery%26format%3Djson%26origin%3D_%26prop%3Dpageimages%257Cpageterms%26titles%3DNode.js%26pithumbsize%3D400.json │ │ ├── GET_https%3A%2F%2Fplaces-api.foursquare.com%2Fplaces%2F427ea800f964a520b1211fe3.json │ │ ├── GET_https%3A%2F%2Fplaces-api.foursquare.com%2Fplaces%2Fsearch%3Fll%3D47.609657%252C-122.342148%26limit%3D10.json │ │ ├── GET_https%3A%2F%2Fpubchem.ncbi.nlm.nih.gov%2Frest%2Fpug%2Fcompound%2Fcid%2F2244%2FJSON.json │ │ ├── GET_https%3A%2F%2Fpubchem.ncbi.nlm.nih.gov%2Frest%2Fpug%2Fcompound%2Fcid%2F2244%2Fsynonyms%2FJSON.json │ │ ├── GET_https%3A%2F%2Fpubchem.ncbi.nlm.nih.gov%2Frest%2Fpug_view%2Fdata%2Fcompound%2F2244%2FJSON%3Fheading%3DSafety%2Band%2BHazards.json │ │ ├── GET_https%3A%2F%2Fpubchem.ncbi.nlm.nih.gov%2Frest%2Fpug_view%2Fdata%2Fcompound%2F2244%2FJSON%3Fheading%3DUse%2Band%2BManufacturing.json │ │ ├── GET_https%3A%2F%2Fwww.alphavantage.co%2Fquery%3Ffunction%3DTIME_SERIES_DAILY%26symbol%3DMSFT%26outputsize%3Dcompact.json │ │ ├── POST_https%3A%2F%2Fapi.openai.com%2Fv1%2Fmoderations_624f7df3dc5f.json │ │ ├── POST_https%3A%2F%2Fapi.openai.com%2Fv1%2Fmoderations_c6b4d54f3bd4.json │ │ └── fixture_manifest.json │ ├── flash.test.js │ ├── models.test.js │ ├── morgan.test.js │ ├── nodemailer.test.js │ ├── passport.test.js │ ├── playwright.config.js │ ├── token-revocation.test.js │ ├── tools/ │ │ ├── fixture-helpers.js │ │ ├── playwright-start-and-log.js │ │ ├── server-axios-fixtures.js │ │ ├── server-fetch-fixtures.js │ │ ├── simple-link-image-check.js │ │ └── start-with-memory-db.js │ └── webauthn.test.js └── views/ ├── account/ │ ├── forgot.pug │ ├── login.pug │ ├── profile.pug │ ├── reset.pug │ ├── signup.pug │ ├── totp-setup.pug │ ├── two-factor.pug │ ├── webauthn-login.pug │ └── webauthn-register.pug ├── ai/ │ ├── ai-agent.pug │ ├── index.pug │ ├── llm-camera.pug │ ├── llm-classifier.pug │ ├── openai-moderation.pug │ └── rag.pug ├── api/ │ ├── chart.pug │ ├── facebook.pug │ ├── foursquare.pug │ ├── giphy.pug │ ├── github.pug │ ├── google-drive.pug │ ├── google-maps.pug │ ├── google-sheets.pug │ ├── here-maps.pug │ ├── index.pug │ ├── lastfm.pug │ ├── lob.pug │ ├── nyt.pug │ ├── paypal.pug │ ├── pubchem.pug │ ├── quickbooks.pug │ ├── scraping.pug │ ├── steam.pug │ ├── stripe.pug │ ├── trakt.pug │ ├── tumblr.pug │ ├── twilio.pug │ ├── twitch.pug │ ├── upload.pug │ └── wikipedia.pug ├── contact.pug ├── home.pug ├── layout.pug └── partials/ ├── flash.pug ├── footer.pug └── header.pug