@csessh/sochumenh
v0.3.0
Published
Vietnamese Pythagorean numerology (Thần Số Học) engine — pure, zero-dependency TypeScript library.
Readme
@csessh/sochumenh
Vietnamese Pythagorean numerology ("Thần Số Học") engine — pure, zero-runtime-dependency TypeScript library.
Install
npm install @csessh/sochumenhUsage
import { calculateReport } from '@csessh/sochumenh';
const report = calculateReport('Nguyen Van A', '15-03-1990');
console.log(report.indexes.length); // 20
console.log(report.karmicDebt); // array of numbers from {13,14,16,19}
console.log(report.indexes[0]);
// { id: "1", name: "lifePath", title_vn: "Đường đời", value: <number>, ... }DOB format: DD-MM-YYYY. Invalid input returns the metadata catalog with no values populated and karmicDebt: [].
Example output
calculateReport('Nguyen Van A', '15-03-1990') returns (Vietnamese description strings elided for brevity):
{
"indexes": [
{ "id": "1", "name": "lifePath", "title_vn": "Đường đời", "title_en": "Life Path", "type": "MAIN", "value": 1 },
{ "id": "2", "name": "birthDay", "title_vn": "Năng lực tự nhiên", "title_en": "Birth Day", "type": "MAIN", "value": 6 },
{ "id": "3", "name": "attitude", "title_vn": "Thái độ", "title_en": "Attitude", "type": "MAIN", "value": 9 },
{ "id": "4", "name": "expression", "title_vn": "Sứ mệnh", "title_en": "Expression", "type": "MAIN", "value": 7 },
{ "id": "5", "name": "soulUrge", "title_vn": "Linh hồn", "title_en": "Soul Urge", "type": "MAIN", "value": 1 },
{ "id": "6", "name": "personality", "title_vn": "Nhân cách", "title_en": "Personality", "type": "MAIN", "value": 33 },
{ "id": "7", "name": "karmicDebtNumber", "title_vn": "Nợ Nghiệp", "title_en": "Karmic Debt", "type": "SECONDARY", "value": "19" },
{ "id": "8", "name": "expressionChallenge", "title_vn": "Thử thách Sứ mệnh", "title_en": "Expression Challenge", "type": "SECONDARY", "value": 2 },
{ "id": "9", "name": "soulChallenge", "title_vn": "Thử thách Linh hồn", "title_en": "Soul Urge Challenge", "type": "SECONDARY", "value": 2 },
{ "id": "10", "name": "personalityChallenge", "title_vn": "Thử thách Nhân cách", "title_en": "Personality Challenge", "type": "SECONDARY", "value": 0 },
{ "id": "11", "name": "maturity", "title_vn": "Trưởng thành", "title_en": "Maturity", "type": "SECONDARY", "value": 8 },
{ "id": "12", "name": "maturityCapacity", "title_vn": "Năng lực Trưởng thành", "title_en": "Maturity capacity", "type": "SECONDARY", "value": 6 },
{ "id": "13", "name": "thinkingCapacity", "title_vn": "Năng Lực Tư duy", "title_en": "Thinking capacity", "type": "SECONDARY", "value": 2 },
{ "id": "14", "name": "adversityResilience", "title_vn": "Năng Lực Vượt Khó", "title_en": "Ability to overcome difficulties", "type": "SECONDARY", "value": 1 },
{ "id": "15", "name": "missingNumber", "title_vn": "Số thiếu", "title_en": "Missing Number", "type": "SECONDARY", "value": "2,6,8,9" },
{ "id": "16", "name": "accessibilityCapacity", "title_vn": "Năng Lực Tiếp cận", "title_en": "Accessibility capacity", "type": "OTHER", "value": 1 },
{ "id": "17", "name": "accessibilityAttitude", "title_vn": "Thái độ Tiếp cận", "title_en": "Accessibility Attitude", "type": "OTHER", "value": 0 },
{ "id": "18", "name": "accessibilityMotivation","title_vn": "Động lực tiếp cận", "title_en": "Accessibility motivation","type": "OTHER", "value": 1 },
{ "id": "19", "name": "hiddenPassion", "title_vn": "Đam mê tiềm ẩn", "title_en": "Hidden Passion", "type": "SECONDARY", "value": 5 },
{ "id": "20", "name": "balance", "title_vn": "Cân bằng", "title_en": "Balance", "type": "SECONDARY", "value": 1 }
],
"karmicDebt": [19]
}Granular API
You can also call individual calculators directly. They return { value, karmicDebtHits }:
import { lifePath, expression, missingNumber, hiddenPassion, balance, parseDob } from '@csessh/sochumenh';
const dob = parseDob('15-03-1990');
if (dob) console.log(lifePath(dob).value);
console.log(expression('NGUYEN VAN A').value);
console.log(missingNumber('NGUYEN VAN A')); // "2,6,8,9" — comma-joined digits 1-9 not present in the name
console.log(hiddenPassion('NGUYEN VAN A').value); // most-frequent Pythagorean digit; ties → smallest digit
console.log(balance('NGUYEN THI HONG').value); // reduced sum of the initials' Pythagorean valuesExports
calculateReport(name, dob)— one-call report (recommended entry point).- Main:
lifePath, birthDay, attitude, expression, soulUrge, personality. - Additional:
expressionChallenge, soulChallenge, personalityChallenge, adversityResilience, thinkingCapacity, maturity, maturityCapacity, missingNumber, hiddenPassion, balance. - Other:
accessibilityCapacity, accessibilityMotivation, accessibilityAttitude. - Validators:
validateName, getName, parseDob. - Vietnamese data:
indexMetadataVi, interpretationsVi. - Types:
Report, NumerologyIndex, DateOfBirth, IndexType.
License
MIT.
