Files
personality/src/data/astrology.ts
T

156 lines
7.1 KiB
TypeScript

/**
* Natal chart placement data.
* @file
* @copyright Naomi Carrigan
* @license Naomi's Public License
* @author Naomi Carrigan
*/
/* eslint-disable stylistic/max-len -- Meaning strings are intentionally long */
type PlacementGroup = "personal" | "social" | "generational" | "points";
interface Placement {
description: string;
group: PlacementGroup;
house: number | null;
meaning: string | null;
name: string;
sign: string | null;
}
const groupLabels: Record<PlacementGroup, string> = {
generational: "Generational Planets",
personal: "Personal Planets",
points: "Points & Angles",
social: "Social Planets",
};
const placements: Array<Placement> = [
{
description: "Core identity, ego, and life force.",
group: "personal",
house: 12,
meaning: "My emotional depth and nurturing nature run deeper than most people see - the 12th house keeps my core self private and inward. I feel most like myself in solitude or intimate settings, and my Cancer warmth tends to emerge quietly rather than being put on display.",
name: "Sun",
sign: "Cancer",
},
{
description: "Emotions, instincts, and subconscious.",
group: "personal",
house: 3,
meaning: "I process emotions through communication - talking, writing, and connecting with others helps me find my emotional footing. I crave fairness and balance in my relationships and find peace through honest conversation. Words are how I feel safe.",
name: "Moon",
sign: "Libra",
},
{
description: "Communication, thinking, and learning style.",
group: "personal",
house: 1,
meaning: "My communication style is bold, expressive, and unmistakably me - it's front and centre in how I present myself to the world. I speak with confidence and passion, and storytelling comes naturally. My voice is one of the first things people notice about me.",
name: "Mercury",
sign: "Leo",
},
{
description: "Love, beauty, values, and attraction.",
group: "personal",
house: 1,
meaning: "I show love through care, attention to detail, and acts of service - and I need to feel genuinely useful to feel loved in return. I'm discerning about who I open up to, but when I do, I give everything. Being told I'm doing well matters more to me than grand gestures.",
name: "Venus",
sign: "Virgo",
},
{
description: "Drive, ambition, and how you take action.",
group: "personal",
house: 1,
meaning: "I pursue goals with precision and methodical energy - I don't just charge ahead, I plan and refine. My drive is a core part of how I show up in the world, and I hold myself to exacting standards. I take action when I believe it's right, not just when it's easy.",
name: "Mars",
sign: "Virgo",
},
{
description: "Growth, expansion, luck, and philosophy.",
group: "social",
house: 1,
meaning: "My growth and good fortune come through authentic self-expression and generous leadership. I expand by being unapologetically myself and bringing others along with me. My warmth and presence create opportunities - people are naturally drawn into my orbit.",
name: "Jupiter",
sign: "Leo",
},
{
description: "Discipline, responsibility, and long-term lessons.",
group: "social",
house: 6,
meaning: "My life lessons are woven through my work and health - Saturn here asks me to build discipline and new structures around both. I'm learning to balance innovation with sustainability, and to take my health as seriously as I take my responsibilities to others.",
name: "Saturn",
sign: "Aquarius",
},
{
description: "Rebellion, innovation, and sudden change.",
group: "generational",
house: 5,
meaning: "My generation is rewriting what achievement and success look like - and in my 5th house, that energy shows up in how I create and express myself. My approach to play, creativity, and romance tends to break from convention in ways that feel natural to me even when they surprise others.",
name: "Uranus",
sign: "Capricorn",
},
{
description: "Dreams, intuition, and spiritual connection.",
group: "generational",
house: 5,
meaning: "I bring a spiritual and idealistic lens to my creative work and self-expression - there's meaning woven into the things I build and the communities I tend. Neptune here blends my Wiccan spirituality with my creativity, giving my work an almost devotional quality.",
name: "Neptune",
sign: "Capricorn",
},
{
description: "Transformation, power, and deep change.",
group: "generational",
house: 4,
meaning: "My foundations have been deeply transformed - this placement often marks a painful reshaping of family and home. I've had to rebuild my sense of belonging on my own terms, and through that process I've developed a bedrock strength that very few people truly understand.",
name: "Pluto",
sign: "Scorpio",
},
{
description: "Outward personality and first impressions.",
group: "points",
house: null,
meaning: "My first impression is warm, magnetic, and quietly commanding - people notice me. Leo Rising means I project confidence and generosity even when I don't feel it, which creates an interesting tension with my more private Cancer Sun. I appear bold to the world whilst holding my deepest self close.",
name: "Rising (Ascendant)",
sign: "Leo",
},
{
description: "Karmic direction and soul's purpose.",
group: "points",
house: 6,
meaning: "My soul's growth path this lifetime runs through disciplined, meaningful work and taking responsibility for my own wellbeing. I'm growing toward building something lasting - structures, communities, systems that endure. My health and daily routines are part of that journey too.",
name: "North Node",
sign: "Capricorn",
},
{
description: "Public image and career path.",
group: "points",
house: null,
meaning: "My professional legacy is built on permanence, quality, and lasting value - I'm here to create things that endure. Taurus MC brings a reputation for reliability and for work that genuinely matters to people's lives. 'Permanence in a Transient World' isn't just a tagline; it's written in my chart.",
name: "Midheaven (MC)",
sign: "Taurus",
},
];
const groups: Array<PlacementGroup> = [
"personal",
"social",
"generational",
"points",
];
/**
* Filters placements by group.
* @param group - The group to filter by.
* @returns The placements in the given group.
*/
const placementsByGroup = (group: PlacementGroup): Array<Placement> => {
return placements.filter((placement) => {
return placement.group === group;
});
};
export type { PlacementGroup, Placement };
export { groupLabels, groups, placements, placementsByGroup };