npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

athena-x-ai-headless-proxyless

v3.2.32

Published

Athena X-AI Front-End No Proxy

Downloads

309

Readme

About The Project

The general idea is to build a custom script to implement Athena Search without too much issues on all possible platforms and frameworks.

Main features:

  • Autocomplete and First Click
  • Search,Category and Visual Similarity Search Page
  • Infinite Scroll and Pagination
  • Filters , Sorters and Number of shown results on search page, and on Autocomplete
  • Configuration for all built in functionalities

For more information about the project requirements check the original documentation.

The script is not entirely independent and in order to use it, websites will need some slight changes.

Built With

Third-party libraries:


We are trying not to use a lot of third-party libraries, but there are some libraries installed in order to get a cleaner smaller, and well-organized code. However, we should keep this list short.

Getting Started

Follow the next sections to learn how to install and use the script.

Requirements

  1. Node.js version 20.10.0
  2. Docker - Not required if using auth version 1
  3. Docker Compose - Not required if using auth version 1

Installation

  1. Download the package from our npm repository
  2. Copy the project from node_modules to your project
  3. Rename .env.example to .env
  4. Populate all .env variables with your from Athena Dashboard
  5. Run docker compose up -d --build
  6. Remove existing files inside example folder *.athena-x-ai.js files
  7. Run npm install && npm run build
  8. Place newly generated *.athena-x-ai.js files inside example directory
  9. Extract files inside example folder to desired place inside your project
  10. Enjoy searching with us.

Usage/Examples

All available configurations for AthenaXAi are:  

//Placement of the price range
priceRangePlacement: 'before',

//Price Range Unit of Price
priceRangeUnit: '$',

//On how many decimals we want to round
decimals: '',

//What we want decimal point to be
decimalPoint: '',

//What we want separator to be
separator: '',

//Voice Search Language
voiceSearchLang: 'en-US',

//Voice Search Status
voiceSearchStatus: true,

//Visual Similarity Search Status
visualSimilaritySearchStatus: true,

// Pager status
pagerStatus: false,

//Check if Infinite Scroll is Activated on Dashboard
InfiniteScrollStatus: true,

//Camera Capture Status
cameraCaptureStatus: false,

//Layout Type
layoutType: 'athena-l3', //You can change between 'athena-l3', 'athena-list', 'athena-grid'

//Bottom Observed Element
bottomObservedElement: null,

//Check on how many elements search on filters appear
filterSearchAppearOnElements: 10,

//Filter Search Enable
filterSearchEnable: true,

//Form URL
formUrl: '/athena.html'

Contributing

  1. Always create a feature branch from the master
  2. We should always wait for a review before merging into the master
  3. Keep the PR clean without console.log

Documentation

  • Main folder that holds all the javascript code is src/
  • Subdirectories include:

A) autocomplete B) category C) global D) search


A) Autocomplete folder contains all the logic that is needed to instantiate our autocomplete section. It also includes number of subfolders that are:

  1. ajax - Where all ajax request are made.
  2. features - Where we build our new features in separate files.
  3. helper - Where all helper global autocomplete functions are placed.
  4. renderer - Where all elements are rendered.

B) Category folder contains all the logic that is needed to instantiate our category section. It also includes number of subfolders that are.


C) Global folder contains all the logic that is needed to instantiate our global functions. It also includes number of subfolders that are:

  1. analytics - Where all analytics functions are stored.
  2. cropper - Where cropper logic is stored.
  3. heic-converter - Where converter logic is stored.
  4. helpers - Where all global helpers are stored.
  5. indexed-db - Where indexed-db logic is stored.
  6. om-range-slider - Where slider logic is stored.
  7. packages - Where all packages are stored.

D) Search folder contains all the logic that is needed to instantiate our Search functions. It also includes number of subfolders that are:

  1. ajax - Where all ajax request are made.
  2. helper - Where all helper global search functions are placed.
  3. infinite-scroll - Where infinite-scroll logic is placed.
  4. renderer - Where all elements are rendered.