
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
Ephrem is a light-weight API wrapper for API.Bible, built using NodeJS and Typescript. Ephrem validates bible references and fetches scripture text corresponding to the references.
Ephrem is a lightweight NodeJS and TypeScript API wrapper for API.Bible that validates Bible references and retrieves the corresponding scripture text.
Ephrem is a powerful, lightweight NodeJS package designed to provide seamless access to the Bible’s rich and diverse content from multiple translations and languages, leveraging the API.Bible service. Whether you are a developer creating Bible-based applications, a scholar seeking quick access to scripture, or a layperson wanting to deepen your understanding of the Word, Ephrem allows you to easily fetch Bible passages using standard references. It supports both modern and ancient translations, making it an invaluable resource for all.
This package is uniquely equipped to handle citations in left-to-right (LTR) and right-to-left (RTL) scripts, making it essential for users across various linguistic backgrounds, including English, Arabic, Malayalam, and more. Additionally, Ephrem allows you to customize Bible abbreviations, ensuring your application or study tool can adapt to local preferences and regional variations in Bible translation names.
Ephrem will remain non-commercial and open-source, dedicated to glorifying God and providing accessible scripture for everyone.
Ephrem accommodates citations in various languages, recognizing both left-to-right (LTR) and right-to-left (RTL) scripts. This ensures that users around the world can access scripture in their native languages and scripts without losing accuracy or clarity. Examples include:
The package offers flexibility in specifying custom Bible abbreviations, allowing users to override default abbreviations with those more familiar to their region or language.
For example, if the official abbreviation of a Bible is in English characters, you can define a local-language abbreviation that suits your needs.
Ephrem supports the options from API.Bible to control the format and content of the retrieved scripture text. These options give you control over how much information is displayed, whether you want a plain text version of scripture or a more detailed format that includes chapter and verse numbers, notes, and titles.
Ephrem can easily be integrated with frameworks like MDX and React to display and share scripture on web applications. This allows developers to create interactive Bible study tools, responsive applications, and engaging content that can enhance spiritual learning.
To install Ephrem, run the following command:
npm i ephrem
Before using Ephrem, you’ll need to configure it by fetching Bible and book data for the languages you need from API.Bible. The package requires the API.Bible API key to be set as an environment variable.
Follow the steps below based on your platform to set the environment variable.
API_BIBLE_API_KEY and the Variable value to your API.Bible key.Alternatively, if you are using PowerShell, you can set it temporarily with:
$env:API_BIBLE_API_KEY = "your-api-bible-key"
export API_BIBLE_API_KEY="your-api-bible-key"
~/.bashrc or ~/.bash_profile.~/.zshrc.Once the environment variable is set, run the setup-ephrem command to fetch and store Bible data for the languages you need:
setup-ephrem -l eng,mal,arb
-l or --languages must be used to specify a comma-separated list of language IDs (ISO-639-3; lower case).
Default is eng.
The above-mentioned command will set up Ephrem for English, Malayalam, and Arabic languages.
The API key is securely picked up from the API_BIBLE_API_KEY environment variable.
This setup will download the necessary Bible data and store it for efficient future use.
To retrieve a Bible passage with additional details about the Bible and the Book referenced, use the
getPassageWithDetails function.
The second parameter allows you to pass in custom PassageOptions (such as contentType: text), giving you control
over the format of the retrieved passage.
import { getPassageWithDetails } from "ephrem";
getPassageWithDetails("John 3:16 (KJV)", {
contentType: "text",
includeTitles: false,
})
.then((details) => {
console.log(`- - ${details.passage.reference} - -`);
console.log(details.passage.content);
})
.catch((err) => console.error(`Error fetching passage: ${err.message}`));
- - John 3:16 - -
[16] ¶ For God so loved the world, that he gave his only begotten Son, that whosoever believeth in him should not perish, but have everlasting life.
import { getPassageWithDetails } from "ephrem";
getPassageWithDetails("Tobit 13:6 (engLXXup)", {
contentType: "text",
includeTitles: false,
})
.then((details) => {
console.log(`- - ${details.passage.reference} - -`);
console.log(details.passage.content);
})
.catch((err) => console.error(`Error fetching passage: ${err.message}`));
- - Tobit 13:6 - -
[6] If ye turn to him with your whole heart, and with your whole mind, and deal uprightly before him, then will he turn unto you, and will not hide his face from you. Therefore see what he will do with you, and confess him with your whole mouth, and praise the Lord of might, and extol the everlasting King. In the land of my captivity do I praise him, and declare his might and majesty to a sinful nation. O ye sinners, turn and do justice before him: who can tell if he will accept you, and have mercy on you?
import { getPassageWithDetails } from "ephrem";
getPassageWithDetails("Genesis 1:1-2 (MAL10RO)", {
contentType: "text",
includeTitles: false,
})
.then((details) => {
console.log(`- - ${details.passage.reference} - -`);
console.log(details.passage.content);
})
.catch((err) => console.error(`Error fetching passage: ${err.message}`));
- - ഉല്പത്തി 1:1-2 - -
[1] ആദിയിൽ ദൈവം ആകാശവും ഭൂമിയും സൃഷ്ടിച്ചു. [2] ഭൂമി പാഴായും ശൂന്യമായും ഇരുന്നു; ആഴത്തിന്മീതെ ഇരുൾ ഉണ്ടായിരുന്നു. ദൈവത്തിന്റെ ആത്മാവു വെള്ളത്തിൻ മീതെ പരിവർത്തിച്ചുകൊണ്ടിരുന്നു.
If you want to provide custom labels or abbreviations for Bible translations, you can use the
getBibleAbbreviationsFilepath function to retrieve the path to the Bible abbreviations file:
import { getBibleAbbreviationsFilepath } from "ephrem";
console.log(`Bible Abbreviations Filepath: ${getBibleAbbreviationsFilepath()}`);
This allows you to customize how users refer to different Bible versions, ensuring a more localized and user-friendly experience.
We welcome contributions from developers, theologians, and anyone interested in improving access to the scriptures. Please feel free to submit pull requests or report issues.
Ephrem is licensed under the MIT License, which is widely regarded as one of the most user-friendly open-source licenses. Here’s why:
Josh Goldberg ✨ 🔧 | Stevin Wilson 💻 🖋 📖 🤔 🚇 🚧 📆 🔧 |
💙 This package was templated with
create-typescript-app.
FAQs
Ephrem is a light-weight API wrapper for API.Bible, built using NodeJS and Typescript. Ephrem validates bible references and fetches scripture text corresponding to the references.
We found that ephrem demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.