#!/usr/bin/env bun /** * Name Change Analyzer * * Compare how your numerology numbers change with different name variations. * Perfect for testing nicknames, stage names, married names, or professional brands. * * Usage: * bun name-change.ts --birthdate "5/13/1982" --current "John Smith" --alternative "John Smith" * bun name-change.ts -b "5/13/1982" -c "Jane Smith" -a "Jane Doe" -a "J Smith" */ import { calculateCoreNumbers, calculateAdditionalNumbers } from './core-calculator'; import { expression, soulUrge } from './meanings'; import { personalityMeanings } from './additional-meanings'; // Parse command line arguments const args = process.argv.slice(2); let birthdate = ''; let currentName = ''; let alternativeNames: string[] = []; for (let i = 0; i < args.length; i++) { if ((args[i] === '--birthdate' || args[i] === '-b') && args[i + 1]) { birthdate = args[i + 1]; i++; } else if ((args[i] === '--current' || args[i] === '-c') && args[i + 1]) { currentName = args[i + 1]; i++; } else if ((args[i] === '--alternative' || args[i] === '-a') && args[i + 1]) { alternativeNames.push(args[i + 1]); i++; } else if (args[i] === '--help' || args[i] === '-h') { console.log(` Name Change Analyzer Compare how your numerology changes with different name variations. Test nicknames, stage names, married names, or professional brands. USAGE: bun name-change.ts --birthdate "mm/dd/yyyy" --current "Current Name" --alternative "Alt Name" [OPTIONS] OPTIONS: -b, --birthdate DATE Your birthdate (mm/dd/yyyy) [required] -c, --current NAME Your current/legal name [required] -a, --alternative NAME Alternative name to compare [can use multiple times] -h, --help Show this help message EXAMPLES: # Compare two name variations bun name-change.ts -b "5/13/1982" -c "John Smith" -a "John Smith" # Compare multiple alternatives bun name-change.ts -b "11/22/1990" -c "Jane Smith" -a "Jane Doe" -a "J Smith" # Test stage name vs real name bun name-change.ts -b "3/14/1985" -c "Robert Johnson" -a "Rob J" -a "RJ" WHAT IT SHOWS: - Expression Number changes (your talents/abilities) - Soul Urge changes (your inner desires) - Personality Number changes (how others see you) - Maturity Number shifts - Hidden Passion changes - Karmic Lessons differences - Energy shift analysis - Recommendations for which contexts to use each name NOTE: Life Path and Birthday don't change (they're from your birthdate). Only name-based numbers are compared. `); process.exit(0); } } if (!birthdate || !currentName || alternativeNames.length === 0) { console.error('Error: --birthdate, --current, and at least one --alternative are required'); console.error('Try: bun name-change.ts --help'); process.exit(1); } interface NameAnalysis { name: string; expression: number; soulUrge: number; personality: number; maturity: number; hiddenPassion: number | null; karmicLessons: number[]; balance: number; } function analyzeName(name: string, birthdate: string): NameAnalysis { const coreNumbers = calculateCoreNumbers(name, birthdate); const additionalNumbers = calculateAdditionalNumbers(name, coreNumbers); return { name, expression: coreNumbers.expression, soulUrge: coreNumbers.soulUrge, personality: additionalNumbers.personality, maturity: additionalNumbers.maturity, hiddenPassion: additionalNumbers.hiddenPassion, karmicLessons: additionalNumbers.karmicLessons, balance: additionalNumbers.balance }; } function getNumberDifference(num1: number, num2: number): string { const diff = num2 - num1; if (diff === 0) return ''; if (diff > 0) return `⬆️ +${diff}`; return `⬇️ ${diff}`; } function getEnergyShift(fromNum: number, toNum: number, type: 'expression' | 'soulUrge'): string[] { if (fromNum === toNum) return ['No change in energy']; const shifts: string[] = []; // Energy level descriptors const energyLevels: Record = { 1: 'Independent/Leadership', 2: 'Cooperative/Diplomatic', 3: 'Creative/Expressive', 4: 'Stable/Practical', 5: 'Dynamic/Freedom-seeking', 6: 'Nurturing/Responsible', 7: 'Analytical/Spiritual', 8: 'Powerful/Material Success', 9: 'Humanitarian/Universal', 11: 'Inspirational/Intuitive', 22: 'Master Builder/Visionary', 33: 'Master Teacher/Healer' }; shifts.push(`${energyLevels[fromNum]} → ${energyLevels[toNum]}`); // Specific shift interpretations if (toNum === 8 && fromNum !== 8) { shifts.push('• Stronger business/leadership energy'); shifts.push('• Better for professional success and authority'); } if (toNum === 3 && fromNum !== 3) { shifts.push('• More creative and expressive energy'); shifts.push('• Better for communication and social presence'); } if (toNum === 7 && fromNum !== 7) { shifts.push('• More introspective and analytical'); shifts.push('• Better for deep work and spiritual pursuits'); } if (toNum === 1 && fromNum !== 1) { shifts.push('• Stronger independent/pioneering energy'); shifts.push('• Better for solo ventures and leadership'); } if ([11, 22, 33].includes(toNum) && ![11, 22, 33].includes(fromNum)) { shifts.push('• ✨ Activates master number energy!'); shifts.push('• Higher spiritual potential and responsibility'); } return shifts; } // Analyze all names console.log(`\n═══════════════════════════════════════════════════════════════`); console.log(`📝 NAME CHANGE ANALYSIS`); console.log(`═══════════════════════════════════════════════════════════════\n`); console.log(`Birthdate: ${birthdate}`); console.log(`Life Path: ${calculateCoreNumbers(currentName, birthdate).lifePath} (unchanging)\n`); const currentAnalysis = analyzeName(currentName, birthdate); console.log(`═══════════════════════════════════════════════════════════════`); console.log(`CURRENT NAME: ${currentName}`); console.log(`───────────────────────────────────────────────────────────────`); console.log(`Expression: ${currentAnalysis.expression} (${expression[currentAnalysis.expression].keywords.slice(0, 3).join(', ')})`); console.log(`Soul Urge: ${currentAnalysis.soulUrge} (${soulUrge[currentAnalysis.soulUrge].keywords.slice(0, 3).join(', ')})`); console.log(`Personality: ${currentAnalysis.personality} (${personalityMeanings[currentAnalysis.personality].keywords.slice(0, 3).join(', ')})`); console.log(`Maturity: ${currentAnalysis.maturity}`); console.log(`Hidden Passion: ${currentAnalysis.hiddenPassion || 'None'}`); console.log(`Karmic Lessons: ${currentAnalysis.karmicLessons.length > 0 ? currentAnalysis.karmicLessons.join(', ') : 'None'}`); console.log(`Balance: ${currentAnalysis.balance}\n`); // Compare each alternative alternativeNames.forEach((altName, index) => { const altAnalysis = analyzeName(altName, birthdate); console.log(`═══════════════════════════════════════════════════════════════`); console.log(`ALTERNATIVE ${index + 1}: ${altName}`); console.log(`───────────────────────────────────────────────────────────────`); console.log(`Expression: ${altAnalysis.expression} (${expression[altAnalysis.expression].keywords.slice(0, 3).join(', ')}) ${getNumberDifference(currentAnalysis.expression, altAnalysis.expression)}`); console.log(`Soul Urge: ${altAnalysis.soulUrge} (${soulUrge[altAnalysis.soulUrge].keywords.slice(0, 3).join(', ')}) ${getNumberDifference(currentAnalysis.soulUrge, altAnalysis.soulUrge)}`); console.log(`Personality: ${altAnalysis.personality} (${personalityMeanings[altAnalysis.personality].keywords.slice(0, 3).join(', ')}) ${getNumberDifference(currentAnalysis.personality, altAnalysis.personality)}`); console.log(`Maturity: ${altAnalysis.maturity} ${getNumberDifference(currentAnalysis.maturity, altAnalysis.maturity)}`); console.log(`Hidden Passion: ${altAnalysis.hiddenPassion || 'None'}`); console.log(`Karmic Lessons: ${altAnalysis.karmicLessons.length > 0 ? altAnalysis.karmicLessons.join(', ') : 'None'}`); console.log(`Balance: ${altAnalysis.balance} ${getNumberDifference(currentAnalysis.balance, altAnalysis.balance)}\n`); // Key differences console.log(`📊 KEY DIFFERENCES:`); if (altAnalysis.expression !== currentAnalysis.expression) { const shifts = getEnergyShift(currentAnalysis.expression, altAnalysis.expression, 'expression'); console.log(`\n🎯 Expression shift (talents/abilities):`); shifts.forEach(s => console.log(` ${s}`)); } if (altAnalysis.soulUrge !== currentAnalysis.soulUrge) { const shifts = getEnergyShift(currentAnalysis.soulUrge, altAnalysis.soulUrge, 'soulUrge'); console.log(`\n💫 Soul Urge shift (inner desires):`); shifts.forEach(s => console.log(` ${s}`)); } if (altAnalysis.personality !== currentAnalysis.personality) { console.log(`\n👤 Personality shift (how others see you):`); console.log(` From: ${personalityMeanings[currentAnalysis.personality].description}`); console.log(` To: ${personalityMeanings[altAnalysis.personality].description}`); } // Karmic Lessons comparison const gainedLessons = altAnalysis.karmicLessons.filter(l => !currentAnalysis.karmicLessons.includes(l)); const resolvedLessons = currentAnalysis.karmicLessons.filter(l => !altAnalysis.karmicLessons.includes(l)); if (resolvedLessons.length > 0) { console.log(`\n✅ Karmic Lessons resolved: ${resolvedLessons.join(', ')}`); } if (gainedLessons.length > 0) { console.log(`\n⚠️ New Karmic Lessons: ${gainedLessons.join(', ')}`); } // Recommendations console.log(`\n💡 RECOMMENDATIONS:`); const expressionHigher = altAnalysis.expression > currentAnalysis.expression; const soulUrgeHigher = altAnalysis.soulUrge > currentAnalysis.soulUrge; const hasMaturity8 = altAnalysis.maturity === 8; const hasMasterNumber = [11, 22, 33].includes(altAnalysis.expression) || [11, 22, 33].includes(altAnalysis.soulUrge); if (altAnalysis.expression === 8 || altAnalysis.expression === 1) { console.log(` → Use "${altName}" for: Business, leadership, professional contexts`); } if (altAnalysis.expression === 3 || altAnalysis.expression === 5) { console.log(` → Use "${altName}" for: Creative work, social media, public speaking`); } if (altAnalysis.expression === 7) { console.log(` → Use "${altName}" for: Writing, research, spiritual work`); } if (altAnalysis.expression === 6) { console.log(` → Use "${altName}" for: Teaching, counseling, service work`); } if (hasMasterNumber) { console.log(` → "${altName}" activates master number potential - use for your highest calling`); } if (resolvedLessons.length > 0 && gainedLessons.length === 0) { console.log(` → "${altName}" resolves karmic lessons - energetically cleaner`); } if (altAnalysis.expression === currentAnalysis.expression && altAnalysis.soulUrge === currentAnalysis.soulUrge && altAnalysis.personality === currentAnalysis.personality) { console.log(` → No significant energy difference - use whichever feels right`); } console.log(''); }); // Overall summary console.log(`═══════════════════════════════════════════════════════════════`); console.log(`📋 SUMMARY`); console.log(`═══════════════════════════════════════════════════════════════\n`); console.log(`Compared "${currentName}" with ${alternativeNames.length} alternative(s).\n`); console.log(`Remember:`); console.log(`• Legal name for official documents`); console.log(`• Professional name for career/public presence`); console.log(`• Personal nicknames for close relationships`); console.log(`• Different contexts can use different name energies\n`); console.log(`✨ Your core Life Path never changes - names only affect your expression\n`);