kaabalah
Version:
The de-facto library for any esoteric calculations and tooling
1 lines • 13.8 kB
Source Map (JSON)
{"version":3,"sources":["../../src/kaabalah/index.ts"],"sourcesContent":["/**\n * Kaabalah-related functions\n */\n\nconst hebrewLetterMapping = new Map([\n [\n \"A\",\n {\n letter: \"A\",\n hebrewName: \"Aleph\",\n hebrewCharacter: \"א\",\n numericValue: 1,\n majorArcana: 1\n }\n ],\n [\n \"B\",\n {\n letter: \"B\",\n hebrewName: \"Beth\",\n hebrewCharacter: \"ב\",\n numericValue: 2,\n majorArcana: 2\n }\n ],\n [\n \"G\",\n {\n letter: \"G\",\n hebrewName: \"Gimel\",\n hebrewCharacter: \"ג\",\n numericValue: 3,\n majorArcana: 3\n }\n ],\n [\n \"D\",\n {\n letter: \"D\",\n hebrewName: \"Daleth\",\n hebrewCharacter: \"ד\",\n numericValue: 4,\n majorArcana: 4\n }\n ],\n [\n \"E\",\n {\n letter: \"E\",\n hebrewName: \"He\",\n hebrewCharacter: \"ה\",\n numericValue: 5,\n majorArcana: 5\n }\n ],\n [\n \"V\",\n {\n letter: \"V\",\n hebrewName: \"Vav\",\n hebrewCharacter: \"ו\",\n numericValue: 6,\n majorArcana: 6\n }\n ],\n [\n \"U\",\n {\n letter: \"U\",\n hebrewName: \"Vav\",\n hebrewCharacter: \"ו\",\n numericValue: 6,\n majorArcana: 6\n }\n ],\n [\n \"W\",\n {\n letter: \"W\",\n hebrewName: \"Vav\",\n hebrewCharacter: \"ו\",\n numericValue: 6,\n majorArcana: 6\n }\n ],\n [\n \"Z\",\n {\n letter: \"Z\",\n hebrewName: \"Zayin\",\n hebrewCharacter: \"ז\",\n numericValue: 7,\n majorArcana: 7\n }\n ],\n [\n \"H\",\n {\n letter: \"H\",\n hebrewName: \"Cheth\",\n hebrewCharacter: \"ח\",\n numericValue: 8,\n majorArcana: 8\n }\n ],\n [\n \"T\",\n {\n letter: \"T\",\n hebrewName: \"Teth\",\n hebrewCharacter: \"ט\",\n numericValue: 9,\n majorArcana: 9\n }\n ],\n [\n \"TH\",\n {\n letter: \"Th\",\n hebrewName: \"Tav\",\n hebrewCharacter: \"ת\",\n numericValue: 400,\n majorArcana: 22\n }\n ],\n [\n \"TZ\",\n {\n letter: \"Tz\",\n hebrewName: \"Tzaddi\",\n hebrewCharacter: \"צ\",\n numericValue: 90,\n numericValueWhenEnding: 900,\n majorArcana: 18\n }\n ],\n [\n \"I\",\n {\n letter: \"I\",\n hebrewName: \"Yod\",\n hebrewCharacter: \"י\",\n numericValue: 10,\n majorArcana: 10\n }\n ],\n [\n \"J\",\n {\n letter: \"J\",\n hebrewName: \"Yod\",\n hebrewCharacter: \"י\",\n numericValue: 10,\n majorArcana: 10\n }\n ],\n [\n \"Y\",\n {\n letter: \"Y\",\n hebrewName: \"Yod\",\n hebrewCharacter: \"י\",\n numericValue: 10,\n majorArcana: 10\n }\n ],\n [\n \"C\",\n {\n letter: \"C\",\n hebrewName: \"Kaph\",\n hebrewCharacter: \"כ\",\n numericValue: 20,\n numericValueWhenEnding: 500,\n majorArcana: 11\n }\n ],\n [\n \"L\",\n {\n letter: \"L\",\n hebrewName: \"Lamed\",\n hebrewCharacter: \"ל\",\n numericValue: 30,\n majorArcana: 12\n }\n ],\n [\n \"M\",\n {\n letter: \"M\",\n hebrewName: \"Mem\",\n hebrewCharacter: \"מ\",\n numericValue: 40,\n numericValueWhenEnding: 600,\n majorArcana: 13\n }\n ],\n [\n \"N\",\n {\n letter: \"N\",\n hebrewName: \"Nun\",\n hebrewCharacter: \"נ\",\n numericValue: 50,\n numericValueWhenEnding: 700,\n majorArcana: 14\n }\n ],\n [\n \"S\",\n {\n letter: \"S\",\n hebrewName: \"Samekh\",\n hebrewCharacter: \"ס\",\n numericValue: 60,\n majorArcana: 15\n }\n ],\n [\n \"SH\",\n {\n letter: \"Sh\",\n hebrewName: \"Shin\",\n hebrewCharacter: \"ש\",\n numericValue: 300,\n majorArcana: 21\n }\n ],\n [\n \"\\u00C7\",\n {\n letter: \"\\u00C7\",\n hebrewName: \"Samekh\",\n hebrewCharacter: \"ס\",\n numericValue: 60,\n majorArcana: 15\n }\n ],\n [\n \"O\",\n {\n letter: \"O\",\n hebrewName: \"Ayin\",\n hebrewCharacter: \"ע\",\n numericValue: 6,\n numericValueWhenStarting: 70,\n majorArcana: 16\n }\n ],\n [\n \"P\",\n {\n letter: \"P\",\n hebrewName: \"Pe\",\n hebrewCharacter: \"פ\",\n numericValue: 80,\n numericValueWhenEnding: 800,\n majorArcana: 17\n }\n ],\n [\n \"PH\",\n {\n letter: \"Ph\",\n hebrewName: \"Pe\",\n hebrewCharacter: \"פ\",\n numericValue: 80,\n majorArcana: 17\n }\n ],\n [\n \"K\",\n {\n letter: \"K\",\n hebrewName: \"Qoph\",\n hebrewCharacter: \"ק\",\n numericValue: 100,\n majorArcana: 19\n }\n ],\n [\n \"KH\",\n {\n letter: \"Kh\",\n hebrewName: \"Qoph\",\n hebrewCharacter: \"ק\",\n numericValue: 100,\n majorArcana: 19\n }\n ],\n [\n \"Q\",\n {\n letter: \"Q\",\n hebrewName: \"Qoph\",\n hebrewCharacter: \"ק\",\n numericValue: 100,\n majorArcana: 19\n }\n ],\n [\n \"R\",\n {\n letter: \"R\",\n hebrewName: \"Resh\",\n hebrewCharacter: \"ר\",\n numericValue: 200,\n majorArcana: 20\n }\n ],\n [\n \"X\",\n {\n letter: \"X\",\n hebrewName: \"Shin\",\n hebrewCharacter: \"ש\",\n numericValue: 300,\n majorArcana: 21\n }\n ]\n])\n\nconst reduceToSingleDigitWithSteps = (num: number) => {\n const steps = [num]\n let currentNum = num\n\n while (currentNum > 9) {\n currentNum = String(currentNum)\n .split(\"\")\n .reduce((acc, digit) => acc + parseInt(digit), 0)\n steps.push(currentNum)\n }\n\n return {\n steps,\n finalValue: currentNum\n }\n}\n\nconst isVowel = (letter: string) => {\n return [\"A\", \"E\", \"I\", \"O\", \"U\", \"Y\"].includes(letter)\n}\n\nexport const calculateGematria = (word: string) => {\n const letters = word.toUpperCase().split(\"\")\n let vowelsSum = 0\n let consonantsSum = 0\n\n for (let i = 0; i < letters.length; i++) {\n const letter = letters[i]\n const nextLetter = letters[i + 1] || \"\"\n const isStarting = i === 0\n const isEnding = i > 0 && i === letters.length - 1\n\n if ([\"P\", \"T\", \"K\", \"S\"].includes(letter) && nextLetter) {\n const combinedLetter = (letter + nextLetter).toUpperCase()\n\n if (hebrewLetterMapping.has(combinedLetter)) {\n const value = hebrewLetterMapping.get(combinedLetter)!.numericValue\n consonantsSum += value\n i++\n continue\n }\n }\n\n const mapping = hebrewLetterMapping.get(letter)\n\n if (mapping) {\n let value = mapping.numericValue\n if (isStarting && mapping.numericValueWhenStarting !== undefined) {\n value = mapping.numericValueWhenStarting\n } else if (isEnding && mapping.numericValueWhenEnding !== undefined) {\n value = mapping.numericValueWhenEnding\n }\n if (isVowel(letter)) {\n vowelsSum += value\n } else {\n consonantsSum += value\n }\n }\n }\n\n const vowelsReduction = reduceToSingleDigitWithSteps(vowelsSum)\n const consonantsReduction = reduceToSingleDigitWithSteps(consonantsSum)\n const synthesisReduction = reduceToSingleDigitWithSteps(\n vowelsReduction.finalValue + consonantsReduction.finalValue\n )\n\n return {\n vowels: {\n originalSum: vowelsSum,\n reductionSteps: vowelsReduction.steps,\n finalValue: vowelsReduction.finalValue\n },\n consonants: {\n originalSum: consonantsSum,\n reductionSteps: consonantsReduction.steps,\n finalValue: consonantsReduction.finalValue\n },\n synthesis: {\n originalSum: vowelsReduction.finalValue + consonantsReduction.finalValue,\n reductionSteps: synthesisReduction.steps,\n finalValue: synthesisReduction.finalValue\n }\n }\n}"],"mappings":"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","names":[]}