{"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":[]}