{"version":3,"sources":["../src/numerology/data.ts","../src/numerology/index.ts"],"names":["HeptadCycles","NumerologyValues","DayOfBirth","ChallengeNumbers"],"mappings":";;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAK,eAAL,kBAAKA,kBAAL;AACL,EAAAA,4BAAA,WAAQ,KAAR;AACA,EAAAA,4BAAA,YAAS,KAAT;AACA,EAAAA,4BAAA,WAAQ,KAAR;AACA,EAAAA,4BAAA,YAAS,KAAT;AACA,EAAAA,4BAAA,WAAQ,KAAR;AACA,EAAAA,4BAAA,WAAQ,KAAR;AACA,EAAAA,4BAAA,aAAU,KAAV;AAPU,SAAAA;AAAA,GAAA;AAyIL,IAAM,iBAAqD;AAAA,EAChE,CAAC,aAAkB,GAAG;AAAA,IACpB,OAAO;AAAA,IACP,kBACE;AAAA,IACF,qBACE;AAAA,IACF,qBACE;AAAA,EACJ;AAAA,EACA,CAAC,cAAmB,GAAG;AAAA,IACrB,OAAO;AAAA,IACP,kBACE;AAAA,IACF,qBACE;AAAA,IACF,qBACE;AAAA,EACJ;AAAA,EACA,CAAC,aAAkB,GAAG;AAAA,IACpB,OAAO;AAAA,IACP,kBACE;AAAA,IACF,qBACE;AAAA,IACF,qBACE;AAAA,EACJ;AAAA,EACA,CAAC,cAAmB,GAAG;AAAA,IACrB,OAAO;AAAA,IACP,kBACE;AAAA,IACF,qBACE;AAAA,IACF,qBACE;AAAA,EACJ;AAAA,EACA,CAAC,aAAkB,GAAG;AAAA,IACpB,OAAO;AAAA,IACP,kBACE;AAAA,IACF,qBACE;AAAA,IACF,qBACE;AAAA,EACJ;AAAA,EACA,CAAC,aAAkB,GAAG;AAAA,IACpB,OAAO;AAAA,IACP,kBACE;AAAA,IACF,qBACE;AAAA,IACF,qBACE;AAAA,EACJ;AAAA,EACA,CAAC,eAAoB,GAAG;AAAA,IACtB,OAAO;AAAA,IACP,kBACE;AAAA,IACF,qBACE;AAAA,IACF,qBACE;AAAA,EACJ;AACF;AAEO,IAAK,mBAAL,kBAAKC,sBAAL;AACL,EAAAA,oCAAA,SAAM,KAAN;AACA,EAAAA,oCAAA,SAAM,KAAN;AACA,EAAAA,oCAAA,WAAQ,KAAR;AACA,EAAAA,oCAAA,UAAO,KAAP;AACA,EAAAA,oCAAA,UAAO,KAAP;AACA,EAAAA,oCAAA,SAAM,KAAN;AACA,EAAAA,oCAAA,WAAQ,KAAR;AACA,EAAAA,oCAAA,WAAQ,KAAR;AACA,EAAAA,oCAAA,UAAO,KAAP;AACA,EAAAA,oCAAA,YAAS,MAAT;AACA,EAAAA,oCAAA,eAAY,MAAZ;AACA,EAAAA,oCAAA,iBAAc,MAAd;AACA,EAAAA,oCAAA,eAAY,MAAZ;AAbU,SAAAA;AAAA,GAAA;AAiBL,IAAM,sBAA0D;AAAA,EACrE,CAAC,WAAoB,GAAG,CAAC,cAAc,WAAW,YAAY;AAAA,EAC9D,CAAC,WAAoB,GAAG,CAAC,eAAe,eAAe,WAAW;AAAA,EAClE,CAAC,aAAsB,GAAG,CAAC,cAAc,cAAc,KAAK;AAAA,EAC5D,CAAC,YAAqB,GAAG,CAAC,aAAa,aAAa,aAAa;AAAA,EACjE,CAAC,YAAqB,GAAG,CAAC,WAAW,gBAAgB,WAAW;AAAA,EAChE,CAAC,WAAoB,GAAG,CAAC,WAAW,kBAAkB,SAAS;AAAA,EAC/D,CAAC,aAAsB,GAAG,CAAC,aAAa,iBAAiB,QAAQ;AAAA,EACjE,CAAC,aAAsB,GAAG,CAAC,SAAS,YAAY,kBAAkB;AAAA,EAClE,CAAC,YAAqB,GAAG,CAAC,cAAc,oBAAoB,iBAAiB;AAAA,EAC7E,CAAC,eAAuB,GAAG,CAAC,aAAa,gBAAgB,qBAAqB;AAAA,EAC9E,CAAC,kBAA0B,GAAG,CAAC,UAAU,kBAAkB,eAAe;AAAA,EAC1E,CAAC,oBAA4B,GAAG,CAAC,sBAAsB,kBAAkB,iBAAiB;AAAA,EAC1F,CAAC,kBAA0B,GAAG,CAAC,oBAAoB,wBAAwB,iBAAiB;AAC9F;AAEO,IAAK,aAAL,kBAAKC,gBAAL;AACL,EAAAA,wBAAA,WAAQ,KAAR;AACA,EAAAA,wBAAA,YAAS,KAAT;AACA,EAAAA,wBAAA,WAAQ,KAAR;AACA,EAAAA,wBAAA,YAAS,KAAT;AACA,EAAAA,wBAAA,WAAQ,KAAR;AACA,EAAAA,wBAAA,WAAQ,KAAR;AACA,EAAAA,wBAAA,aAAU,KAAV;AACA,EAAAA,wBAAA,YAAS,KAAT;AACA,EAAAA,wBAAA,WAAQ,KAAR;AACA,EAAAA,wBAAA,WAAQ,MAAR;AACA,EAAAA,wBAAA,cAAW,MAAX;AACA,EAAAA,wBAAA,aAAU,MAAV;AACA,EAAAA,wBAAA,gBAAa,MAAb;AACA,EAAAA,wBAAA,gBAAa,MAAb;AACA,EAAAA,wBAAA,eAAY,MAAZ;AACA,EAAAA,wBAAA,eAAY,MAAZ;AACA,EAAAA,wBAAA,iBAAc,MAAd;AACA,EAAAA,wBAAA,gBAAa,MAAb;AACA,EAAAA,wBAAA,gBAAa,MAAb;AACA,EAAAA,wBAAA,eAAY,MAAZ;AACA,EAAAA,wBAAA,iBAAc,MAAd;AACA,EAAAA,wBAAA,kBAAe,MAAf;AACA,EAAAA,wBAAA,iBAAc,MAAd;AACA,EAAAA,wBAAA,kBAAe,MAAf;AACA,EAAAA,wBAAA,iBAAc,MAAd;AACA,EAAAA,wBAAA,iBAAc,MAAd;AACA,EAAAA,wBAAA,mBAAgB,MAAhB;AACA,EAAAA,wBAAA,kBAAe,MAAf;AACA,EAAAA,wBAAA,iBAAc,MAAd;AACA,EAAAA,wBAAA,eAAY,MAAZ;AACA,EAAAA,wBAAA,iBAAc,MAAd;AA/BU,SAAAA;AAAA,GAAA;AAsCL,IAAM,uBAA8D;AAAA,EACzE,CAAC,aAAgB,GAAG;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,cAAiB,GAAG;AAAA,IACnB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,aAAgB,GAAG;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,cAAiB,GAAG;AAAA,IACnB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,aAAgB,GAAG;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,aAAgB,GAAG;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,eAAkB,GAAG;AAAA,IACpB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,cAAiB,GAAG;AAAA,IACnB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,aAAgB,GAAG;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,cAAgB,GAAG;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,iBAAmB,GAAG;AAAA,IACrB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,gBAAkB,GAAG;AAAA,IACpB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,mBAAqB,GAAG;AAAA,IACvB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,mBAAqB,GAAG;AAAA,IACvB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,kBAAoB,GAAG;AAAA,IACtB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,kBAAoB,GAAG;AAAA,IACtB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,oBAAsB,GAAG;AAAA,IACxB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,mBAAqB,GAAG;AAAA,IACvB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,mBAAqB,GAAG;AAAA,IACvB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,kBAAoB,GAAG;AAAA,IACtB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,oBAAsB,GAAG;AAAA,IACxB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,qBAAuB,GAAG;AAAA,IACzB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,oBAAsB,GAAG;AAAA,IACxB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,qBAAuB,GAAG;AAAA,IACzB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,oBAAsB,GAAG;AAAA,IACxB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,oBAAsB,GAAG;AAAA,IACxB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,sBAAwB,GAAG;AAAA,IAC1B,aAAa;AAAA,EACf;AAAA,EACA,CAAC,qBAAuB,GAAG;AAAA,IACzB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,oBAAsB,GAAG;AAAA,IACxB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,kBAAoB,GAAG;AAAA,IACtB,aAAa;AAAA,EACf;AAAA,EACA,CAAC,oBAAsB,GAAG;AAAA,IACxB,aAAa;AAAA,EACf;AACF;AASO,IAAM,mBAA8D;AAAA,EACzE,CAAC,WAAoB,GAAG;AAAA,IACtB,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB,CAAC,gBAAgB,cAAc,gCAAgC;AAAA,IAC/E,gBAAgB,CAAC,aAAa,cAAc,cAAc,kBAAkB;AAAA,EAC9E;AAAA,EACA,CAAC,WAAoB,GAAG;AAAA,IACtB,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB,CAAC,iBAAiB,iBAAiB,eAAe,aAAa;AAAA,IAC/E,gBAAgB,CAAC,YAAY,YAAY,aAAa,sBAAsB;AAAA,EAC9E;AAAA,EACA,CAAC,aAAsB,GAAG;AAAA,IACxB,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB,CAAC,mBAAmB,cAAc,wBAAwB;AAAA,IAC1E,gBAAgB,CAAC,mDAAmD,gBAAgB,oBAAoB;AAAA,EAC1G;AAAA,EACA,CAAC,YAAqB,GAAG;AAAA,IACvB,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB,CAAC,aAAa,cAAc,wBAAwB,cAAc;AAAA,IAClF,gBAAgB,CAAC,YAAY,cAAc,aAAa,YAAY;AAAA,EACtE;AAAA,EACA,CAAC,YAAqB,GAAG;AAAA,IACvB,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB,CAAC,WAAW,gBAAgB,aAAa,YAAY;AAAA,IACrE,gBAAgB,CAAC,iBAAiB,oBAAoB,aAAa,UAAU;AAAA,EAC/E;AAAA,EACA,CAAC,WAAoB,GAAG;AAAA,IACtB,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB,CAAC,gBAAgB,qBAAqB,cAAc,YAAY;AAAA,IAChF,gBAAgB,CAAC,uBAAuB,aAAa,YAAY,YAAY;AAAA,EAC/E;AAAA,EACA,CAAC,aAAsB,GAAG;AAAA,IACxB,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB,CAAC,gBAAgB,iBAAiB,SAAS,gBAAgB,OAAO;AAAA,IAClF,gBAAgB,CAAC,aAAa,YAAY,aAAa,YAAY;AAAA,EACrE;AAAA,EACA,CAAC,aAAsB,GAAG;AAAA,IACxB,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB,CAAC,oBAAoB,oBAAoB,eAAe,UAAU;AAAA,IAClF,gBAAgB,CAAC,SAAS,YAAY,6BAA6B,aAAa;AAAA,EAClF;AAAA,EACA,CAAC,YAAqB,GAAG;AAAA,IACvB,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB,CAAC,oBAAoB,oBAAoB,uBAAuB;AAAA,IAChF,gBAAgB,CAAC,WAAW,mBAAmB,SAAS,eAAe;AAAA,EACzE;AAAA,EACA,CAAC,eAAuB,GAAG;AAAA,IACzB,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB,CAAC,uBAAuB,uBAAuB,wBAAwB,YAAY;AAAA,IACnG,gBAAgB,CAAC,aAAa,sDAAsD;AAAA,EACtF;AAAA,EACA,CAAC,kBAA0B,GAAG;AAAA,IAC5B,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB,CAAC,cAAc,wBAAwB,4BAA4B;AAAA,IACnF,gBAAgB,CAAC,WAAW,SAAS,mBAAmB;AAAA,EAC1D;AAAA,EACA,CAAC,oBAA4B,GAAG;AAAA,IAC9B,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB,CAAC,sBAAsB,yBAAyB,0BAA0B;AAAA,IAC1F,gBAAgB,CAAC,kBAAkB,wBAAwB,gBAAgB;AAAA,EAC7E;AAAA,EACA,CAAC,kBAA0B,GAAG;AAAA,IAC5B,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB,CAAC,wBAAwB,2BAA2B,wBAAwB;AAAA,IAC5F,gBAAgB,CAAC,2BAA2B,0BAA0B,gCAAgC;AAAA,EACxG;AACF;AAEO,IAAK,mBAAL,kBAAKC,sBAAL;AACL,EAAAA,oCAAA,UAAO,KAAP;AACA,EAAAA,oCAAA,SAAM,KAAN;AACA,EAAAA,oCAAA,SAAM,KAAN;AACA,EAAAA,oCAAA,WAAQ,KAAR;AACA,EAAAA,oCAAA,UAAO,KAAP;AACA,EAAAA,oCAAA,UAAO,KAAP;AACA,EAAAA,oCAAA,SAAM,KAAN;AACA,EAAAA,oCAAA,WAAQ,KAAR;AACA,EAAAA,oCAAA,WAAQ,KAAR;AATU,SAAAA;AAAA,GAAA;AAYL,IAAM,oBAAsD;AAAA,EACjE,CAAC,YAAqB,GAAG;AAAA,EACzB,CAAC,WAAoB,GAAG;AAAA,EACxB,CAAC,WAAoB,GAAG;AAAA,EACxB,CAAC,aAAsB,GAAG;AAAA,EAC1B,CAAC,YAAqB,GAAG;AAAA,EACzB,CAAC,YAAqB,GAAG;AAAA,EACzB,CAAC,WAAoB,GAAG;AAAA,EACxB,CAAC,aAAsB,GAAG;AAAA,EAC1B,CAAC,aAAsB,GAAG;AAC5B;AAEO,IAAM,2BAAgF;AAAA,EAC3F,CAAC,YAAqB,GAAG;AAAA,EACzB,CAAC,WAAoB,GAAG;AAAA,EACxB,CAAC,WAAoB,GAAG;AAAA,EACxB,CAAC,aAAsB,GAAG;AAAA,EAC1B,CAAC,YAAqB,GAAG;AAAA,EACzB,CAAC,YAAqB,GAAG;AAAA,EACzB,CAAC,WAAoB,GAAG;AAAA,EACxB,CAAC,aAAsB,GAAG;AAAA,EAC1B,CAAC,aAAsB,GAAG;AAAA,EAC1B,CAAC,YAAqB,GAAG;AAAA,EACzB,CAAC,eAAuB,GAAG;AAAA,EAC3B,CAAC,kBAA0B,GAAG;AAAA,EAC9B,CAAC,oBAA4B,GAAG;AAAA,EAChC,CAAC,kBAA0B,GAAG;AAChC;AAEO,IAAM,0BAA8D;AAAA,EACzE,CAAC,WAAoB,GAAG,CAAC,kBAAkB,UAAU,eAAe,iBAAiB;AAAA,EACrF,CAAC,WAAoB,GAAG,CAAC,WAAW,eAAe,aAAa,WAAW;AAAA,EAC3E,CAAC,aAAsB,GAAG,CAAC,cAAc,WAAW,iBAAiB,iBAAiB;AAAA,EACtF,CAAC,YAAqB,GAAG,CAAC,oBAAoB,QAAQ,SAAS,qBAAqB;AAAA,EACpF,CAAC,YAAqB,GAAG,CAAC,UAAU,WAAW,8BAA8B,QAAQ;AAAA,EACrF,CAAC,WAAoB,GAAG,CAAC,UAAU,UAAU,cAAc,+BAA+B;AAAA,EAC1F,CAAC,aAAsB,GAAG,CAAC,iBAAiB,eAAe,iBAAiB;AAAA,EAC5E,CAAC,aAAsB,GAAG,CAAC,YAAY,SAAS,kBAAkB,OAAO;AAAA,EACzE,CAAC,YAAqB,GAAG,CAAC,eAAe,WAAW,SAAS;AAAA,EAC7D,CAAC,eAAuB,GAAG,CAAC,aAAa,eAAe,UAAU;AAAA,EAClE,CAAC,kBAA0B,GAAG,CAAC,eAAe,iBAAiB;AAAA,EAC/D,CAAC,oBAA4B,GAAG,CAAC,aAAa,uBAAuB;AAAA,EACrE,CAAC,kBAA0B,GAAG,CAAC,wCAAwC,YAAY;AACrF;AAEO,IAAM,6BAA+D;AAAA,EAC1E,CAAC,WAAoB,GAAG;AAAA,EACxB,CAAC,WAAoB,GAAG;AAAA,EACxB,CAAC,aAAsB,GAAG;AAAA,EAC1B,CAAC,YAAqB,GAAG;AAAA,EACzB,CAAC,YAAqB,GAAG;AAAA,EACzB,CAAC,WAAoB,GAAG;AAAA,EACxB,CAAC,aAAsB,GAAG;AAAA,EAC1B,CAAC,aAAsB,GAAG;AAAA,EAC1B,CAAC,YAAqB,GAAG;AAAA,EACzB,CAAC,eAAuB,GAAG;AAAA,EAC3B,CAAC,kBAA0B,GAAG;AAAA,EAC9B,CAAC,oBAA4B,GAAG;AAAA,EAChC,CAAC,kBAA0B,GAAG;AAChC;;;ACzgBA,SAAS,UAAU,MAA0D;AAC3E,MAAI,CAAC,MAAM;AACT,UAAM,IAAI,MAAM,kBAAkB;AAAA,EACpC;AAEA,MAAI,EAAE,gBAAgB,OAAO;AAC3B,UAAM,IAAI,MAAM,4BAA4B;AAAA,EAC9C;AAEA,QAAM,gBAAgB,KAAK,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC;AAErD,MAAI,cAAc,WAAW,IAAI;AAC/B,UAAM,IAAI,MAAM,qDAAqD;AAAA,EACvE;AAEA,QAAM,QAAQ,cAAc,MAAM,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAE7D,QAAM,aAAa,MAAM,CAAC,EAAE,WAAW;AAEvC,MAAI,YAAY;AACd,WAAO,EAAE,KAAK,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,EAAE;AAAA,EAC1D,OAAO;AACL,WAAO,EAAE,KAAK,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,EAAE;AAAA,EAC1D;AACF;AAEA,SAAS,0BAA0B;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AACF,GAIiE;AAC/D,SAAO;AAAA,IACL,KAAK,IAAI,SAAS,GAAG,GAAG;AAAA,IACxB,OAAO,MAAM,SAAS,GAAG,GAAG;AAAA,IAC5B,OAAO,KAAK,MAAM,GAAG,CAAC;AAAA,IACtB,OAAO,KAAK,MAAM,CAAC;AAAA,EACrB;AACF;AAEA,SAAS,SAAS,GAAmB;AACnC,MAAI,IAAI;AAER,aAAW,MAAM,OAAO,KAAK,IAAI,CAAC,CAAC,GAAG;AACpC,SAAK,GAAG,WAAW,CAAC,IAAI;AAAA,EAC1B;AAEA,SAAO;AACT;AAEO,IAAM,iBAAiB,CAAC,IAAI,IAAI,IAAI,EAAE;AAEtC,SAAS,eAAe,GAAoB;AACjD,SAAO,eAAe,SAAS,CAAC;AAClC;AAEO,SAAS,eACd,GACA,UAAyC,EAAE,iBAAiB,MAAM,GAC1D;AAER,MAAI,MAAM,GAAG;AACX,WAAO;AAAA,EACT;AAEA,MAAI,UAAU;AACd,SAAO,UAAU,GAAG;AAClB,QAAI,SAAS,mBAAmB,eAAe,OAAO,GAAG;AACvD;AAAA,IACF;AAEA,cAAU,SAAS,OAAO;AAAA,EAC5B;AAGA,SAAO;AACT;AAEO,SAAS,wBACd,GACA,UAAyC,EAAE,iBAAiB,MAAM,GACrB;AAC7C,QAAM,QAAQ,CAAC,CAAC;AAEhB,MAAI,MAAM,GAAG;AACX,WAAO;AAAA,MACL,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,EACF;AAEA,MAAI,UAAU;AAEd,SAAO,UAAU,GAAG;AAClB,QAAI,SAAS,mBAAmB,eAAe,OAAO,GAAG;AACvD;AAAA,IACF;AAEA,cAAU,SAAS,OAAO;AAC1B,UAAM,KAAK,OAAO;AAAA,EACpB;AAEA,SAAO;AAAA,IACL,cAAc;AAAA,IACd,gBAAgB;AAAA,EAClB;AACF;AAEA,SAAS,YAAY,OAAuB;AAC1C,QAAM,IAAI,CAAC,GAAG,KAAK,EAAE;AAAA,IACnB,CAAC,KAAK,SAAS,OAAO,KAAK,WAAW,CAAC,IAAI;AAAA,IAC3C;AAAA,EACF;AAEA,MAAI,MAAM,GAAG;AACX,WAAO;AAAA,EACT;AAEA,SAAO,eAAe,CAAC;AACzB;AAMO,SAAS,6BACd,WACiD;AACjD,QAAM,EAAE,KAAK,OAAO,OAAO,MAAM,IAAI;AAAA,IACnC,UAAU,SAAS;AAAA,EACrB;AAEA,QAAM,aAAa,YAAY,GAAG;AAClC,QAAM,eAAe,YAAY,KAAK;AACtC,QAAM,eAAe,YAAY,KAAK;AACtC,QAAM,eAAe,YAAY,KAAK;AAEtC,QAAM,oBAAoB,SAAS,GAAG,UAAU,GAAG,YAAY,IAAI,EAAE;AACrE,QAAM,gBAAgB,SAAS,GAAG,YAAY,GAAG,YAAY,IAAI,EAAE;AAEnE,QAAM,2BAA2B,eAAe,iBAAiB;AACjE,QAAM,uBAAuB,eAAe,aAAa;AAEzD,QAAM,iBAAiB;AAAA,IACrB,GAAG,wBAAwB,GAAG,oBAAoB;AAAA,IAClD;AAAA,EACF;AAEA,QAAM,WAAW,wBAAwB,gBAAgB,EAAE,iBAAiB,KAAK,CAAC;AAClF,QAAM,mBAAmB,eAAe,SAAS,YAAY;AAE7D,QAAM,2BAA2B;AAAA,IAC/B,SAAS,GAAG,iBAAiB,GAAG,aAAa,IAAI,EAAE;AAAA,IACnD;AAAA,EACF;AAEA,MAAI,mBAAmB,SAAS,cAAc;AAC5C,6BAAyB,KAAK,SAAS,YAAY;AAAA,EACrD;AAEA,QAAM,kBAAkB,eAAe,SAAS,YAAY;AAC5D,MAAI,kBAAkB;AACpB,6BAAyB,KAAK,eAAe;AAAA,EAC/C;AAEA,SAAO;AAAA,IACL,OAAO,EAAE,KAAK,OAAO,OAAO,MAAM;AAAA,IAClC,cAAc,EAAE,YAAY,cAAc,cAAc,aAAa;AAAA,IACrE,WAAW;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAKO,SAAS,yCACd,WAC6D;AAC7D,QAAM,EAAE,KAAK,OAAO,KAAK,IAAI,UAAU,SAAS;AAEhD,QAAM,SAAS;AAAA,IACb,SAAS,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI,IAAI,EAAE;AAAA,IACpC,EAAE,iBAAiB,KAAK;AAAA,EAC1B;AAEA,SAAO;AAAA,IACL,WAAW,wBAAwB,SAAS,KAAK,EAAE,GAAG,EAAE,iBAAiB,KAAK,CAAC;AAAA,IAC/E,aAAa,wBAAwB,SAAS,OAAO,EAAE,GAAG,EAAE,iBAAiB,KAAK,CAAC;AAAA,IACnF,YAAY,wBAAwB,SAAS,MAAM,EAAE,GAAG,EAAE,iBAAiB,KAAK,CAAC;AAAA,IACjF,UAAU;AAAA,EACZ;AACF;AAEO,SAAS,gBAAgB,WAAqD;AACnF,QAAM,EAAE,KAAK,OAAO,OAAO,MAAM,IAAI;AAAA,IACnC,UAAU,SAAS;AAAA,EACrB;AAEA,QAAM,YAAY,wBAAwB,SAAS,KAAK,EAAE,GAAG;AAAA,IAC3D,iBAAiB;AAAA,EACnB,CAAC;AACD,QAAM,cAAc,wBAAwB,SAAS,OAAO,EAAE,GAAG;AAAA,IAC/D,iBAAiB;AAAA,EACnB,CAAC;AACD,QAAM,aAAa,wBAAwB,SAAS,QAAQ,OAAO,EAAE,GAAG;AAAA,IACtE,iBAAiB;AAAA,EACnB,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAAS,oBAAoB,WAAmD;AACrF,QAAM,EAAE,KAAK,OAAO,KAAK,IAAI,UAAU,SAAS;AAEhD,QAAM,aAAa,eAAe,SAAS,KAAK,EAAE,CAAC;AACnD,QAAM,eAAe,eAAe,SAAS,OAAO,EAAE,CAAC;AACvD,QAAM,cAAc,eAAe,SAAS,MAAM,EAAE,CAAC;AAErD,QAAM,gBAAgB,KAAK,IAAI,eAAe,UAAU;AACxD,QAAM,gBAAgB,KAAK,IAAI,aAAa,WAAW;AACvD,QAAM,gBAAgB,KAAK,IAAI,gBAAgB,aAAa;AAE5D,SAAO;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAGA,SAAS,QAAQ,MAAY,MAAoB;AAC/C,QAAM,SAAS,IAAI,KAAK,IAAI;AAC5B,SAAO,QAAQ,OAAO,QAAQ,IAAI,IAAI;AACtC,SAAO;AACT;AAGA,SAAS,uBAAuB,WAAiB,OAAmB;AAClE,QAAM,aAAa,UAAU,SAAS;AACtC,QAAM,WAAW,UAAU,QAAQ;AACnC,MAAI,cAAc,IAAI,KAAK,MAAM,YAAY,GAAG,YAAY,QAAQ;AACpE,MAAI,cAAc,OAAO;AACvB,kBAAc,IAAI,KAAK,MAAM,YAAY,IAAI,GAAG,YAAY,QAAQ;AAAA,EACtE;AACA,SAAO;AACT;AAEA,SAAS,oBAAoB,QAAoD;AAC/E,MAAI,SAAS,KAAK,SAAS,GAAG;AAC5B,UAAM,IAAI,MAAM,gCAAgC;AAAA,EAClD;AAEA,SAAO;AACT;AAGO,SAAS,gBAAgB,WAAiB,OAA8C;AAC7F,QAAM,kBAAkB,uBAAuB,WAAW,KAAK;AAC/D,QAAM,cAAc;AAGpB,QAAM,eAAe,YAAY;AACjC,MAAI,qBAAqB;AACzB,MAAI,kBAAkB;AACtB,QAAM,YAA0D,CAAC;AACjE,QAAM,eAAgE,CAAC;AACvE,MAAI,CAAC,cAAc;AACjB,UAAM,YAAY,UAAU,YAAY;AACxC,UAAM,cAAc,MAAM,YAAY;AACtC,UAAM,aAAa,cAAc;AACjC,sBAAmB,KAAK,MAAM,aAAa,CAAC,IAAI,IAAK;AACrD,aAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAE1B,YAAM,aAAa,IAAI;AAAA,QACrB,YAAY,IAAI;AAAA,QAChB,UAAU,SAAS;AAAA,QACnB,UAAU,QAAQ;AAAA,MACpB;AAEA,YAAM,QAAQ,IAAI;AAClB,YAAM,iBAAiB,UAAU;AAEjC,UAAI,gBAAgB;AAIlB,cAAM,kBAAkB;AACxB,cAAM,qBAAqB,kBAAkB;AAC7C,6BAAqB,qBAAqB;AAE1C,iBAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAE1B,gBAAM,oBAAoB,YAAY,KAAK,MAAM,aAAa,CAAC,IAAI;AACnE,gBAAM,mBAAmB,IAAI;AAAA,YAC3B,oBAAoB;AAAA,YACpB,UAAU,SAAS;AAAA,YACnB,UAAU,QAAQ;AAAA,UACpB;AACA,gBAAM,cAAc,IAAI;AAExB,gBAAM,uBAAuB,gBAAgB;AAE7C,uBAAa,KAAK;AAAA,YAChB,QAAQ;AAAA,YACR,aAA4B,eAAe,oBAAoB,WAAW,CAAC;AAAA,YAC3E,UAAU;AAAA,YACV,YAAY;AAAA,UACd,CAAC;AAAA,QACH;AAAA,MACF;AAEA,gBAAU,KAAK;AAAA,QACb,QAAQ;AAAA,QACR,aAA4B,eAAe,oBAAoB,KAAK,CAAC;AAAA,QACrE,UAAU;AAAA,QACV;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAGA,QAAM,gBAAkE,CAAC;AACzE,WAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,UAAM,aAAa,QAAQ,iBAAiB,IAAI,WAAW;AAE3D,kBAAc,KAAK;AAAA,MACjB,QAAQ,IAAI;AAAA,MACZ,aAA4B,eAAe,oBAAoB,IAAI,CAAC,CAAC;AAAA,MACrE,UAAU;AAAA,MACV;AAAA,IACF,CAAC;AAAA,EACH;AAGA,MAAI,sBAA8E;AAClF,MAAI,qBAAqB;AACzB,WAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,UAAM,aAAa,QAAQ,iBAAiB,IAAI,WAAW;AAC3D,UAAM,iBACJ,IAAI,IACA,QAAQ,kBAAkB,IAAI,KAAK,WAAW,IAC9C,QAAQ,iBAAiB,GAAG;AAClC,QAAI,SAAS,cAAc,QAAQ,gBAAgB;AACjD,4BAAsB,IAAI;AAC1B,2BACE,KAAK;AAAA,SACF,MAAM,QAAQ,IAAI,WAAW,QAAQ,MAAM,MAAO,KAAK,KAAK;AAAA,MAC/D,IAAI;AACN,oBAAc,CAAC,EAAE,WAAW;AAC5B;AAAA,IACF;AAAA,EACF;AAEA,QAAM,YACJ,KAAK;AAAA,KACF,MAAM,QAAQ,IAAI,gBAAgB,QAAQ,MAAM,MAAO,KAAK,KAAK;AAAA,EACpE,IAAI;AAEN,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,aAAa,WAAiB,QAAc,oBAAI,KAAK,GAAW;AACvE,SAAO,MAAM,YAAY,IAAI,UAAU,YAAY;AACrD;AAEO,SAAS,wBACd,WACA,OACsC;AACtC,QAAM,aAAa,aAAa,WAAW,KAAK;AAEhD,QAAM,SAAS,wBAAwB,UAAU;AACjD,QAAM,SAAS,wBAAwB,OAAO,eAAe,CAAC;AAC9D,QAAM,SAAS;AAAA,IACb,OAAO,eAAe,OAAO,eAAe,CAAC;AAAA,EAC/C;AACA,QAAM,SAAS;AAAA,IACb,OAAO,eAAe,CAAC,IAAI,OAAO,eAAe,CAAC;AAAA,EACpD;AACA,QAAM,SAAS;AAAA,IACb,OAAO,eAAe,CAAC,IAAI,OAAO,eAAe,CAAC;AAAA,EACpD;AACA,QAAM,SAAS;AAAA,IACb,OAAO,eAAe,CAAC,IAAI,OAAO,eAAe,CAAC;AAAA,EACpD;AACA,QAAM,SAAS;AAAA,IACb,OAAO,eAAe,CAAC,IAAI,OAAO,eAAe,CAAC;AAAA,EACpD;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,oBAAoB,WAAgE;AAC3F,QAAM,SAAS,kBAAkB,SAAS,EAAE;AAE5C,SAAO;AAAA,IACL,cAAc,OAAO;AAAA,IACrB,gBAAgB,OAAO;AAAA,EACzB;AACF;AAKA,SAAS,UAAU,OAAuB;AACxC,QAAM,iBAAkB,QAAQ,KAAK,KAAM,MAAM;AAEjD,SAAO,eAAe;AACxB;AAKA,SAAS,oBAAoB,WAAiB,OAAqB;AACjE,QAAM,oBAAoB,IAAI;AAAA,IAC5B,MAAM,YAAY;AAAA,IAClB,UAAU,SAAS;AAAA,IACnB,UAAU,QAAQ;AAAA,EACpB;AAEA,SAAO,SAAS,oBACZ,MAAM,YAAY,IAClB,MAAM,YAAY,IAAI;AAC5B;AAEO,SAAS,sBACd,WACA,QAAc,oBAAI,KAAK,GACsB;AAC7C,QAAM,EAAE,KAAK,MAAM,IAAI,UAAU,SAAS;AAC1C,QAAM,YAAY,oBAAoB,WAAW,KAAK;AAEtD,SAAO;AAAA,IACL,SAAS,KAAK,EAAE,IAAI,SAAS,OAAO,EAAE,IAAI;AAAA,IAC1C,EAAE,iBAAiB,KAAK;AAAA,EAC1B;AACF;AAEO,SAAS,yBACd,WACA,WACA,UACA,YACA,YACoH;AACpH,QAAM,EAAE,MAAM,IAAI,UAAU,SAAS;AACrC,QAAM,aAAa,SAAS,OAAO,EAAE;AAErC,QAAM,UAA8H;AAAA,IAClI;AAAA,MACE,YAAY,UAAU,aAAa,CAAC;AAAA,MACpC,UAAU,UAAU,aAAa,CAAC;AAAA,MAClC,OAAO,wBAAwB,YAAY,YAAY;AAAA,QACrD,iBAAiB;AAAA,MACnB,CAAC;AAAA,IACH;AAAA,IACA;AAAA,MACE,YAAY,UAAU,aAAa,CAAC;AAAA,MACpC,UAAU,UAAU,aAAa,CAAC;AAAA,MAClC,OAAO,wBAAwB,YAAY,UAAU;AAAA,QACnD,iBAAiB;AAAA,MACnB,CAAC;AAAA,IACH;AAAA,IACA;AAAA,MACE,YAAY,UAAU,aAAa,CAAC;AAAA,MACpC,UAAU,UAAU,aAAa,EAAE;AAAA,MACnC,OAAO,wBAAwB,YAAY,YAAY;AAAA,QACrD,iBAAiB;AAAA,MACnB,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,qBAAqB,WAAiB,OAAqB;AAClE,QAAM,WAAW,oBAAoB,WAAW,KAAK;AACrD,QAAM,OAAO,IAAI,KAAK,UAAU,UAAU,SAAS,GAAG,UAAU,QAAQ,CAAC;AAEzE,MAAI,KACD,MAAM,YAAY,IAAI,KAAK,YAAY,KAAK,MAC5C,MAAM,SAAS,IAAI,KAAK,SAAS;AAGpC,MAAI,MAAM,QAAQ,IAAI,UAAU,QAAQ,GAAG;AACzC,SAAK;AAAA,EACP;AAEA,MAAI,IAAI;AAAG,QAAI;AACf,MAAI,IAAI;AAAI,QAAI;AAEhB,SAAO;AACT;AAEO,SAAS,wBACd,WACA,cACA,OAIA;AACA,QAAM,EAAE,MAAM,IAAI,UAAU,SAAS;AACrC,QAAM,qBAAqB,SAAS,OAAO,EAAE;AAE7C,QAAM,iBAAwD,CAAC;AAC/D,WAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,UAAM,IAAI,UAAU,qBAAqB,CAAC;AAC1C,UAAM,QAAQ,wBAAwB,aAAa,eAAe,GAAG;AAAA,MACnE,iBAAiB;AAAA,IACnB,CAAC;AACD,mBAAe,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;AAAA,EACzC;AAEA,QAAM,4BAA4B,qBAAqB,WAAW,KAAK;AAEvE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAAS,wBACd,WACA,QAAc,oBAAI,KAAK,GACvB,WACsC;AACtC,QAAM,YAAY,oBAAoB,WAAW,KAAK;AAEtD,QAAM,eAAe,sBAAsB,WAAW,KAAK;AAE3D,QAAM,aAAa;AAAA,IACjB;AAAA,IACA,IAAI,KAAK,WAAW,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC;AAAA,EACvD;AACA,QAAM,EAAE,SAAS,IAAI,6BAA6B,SAAS;AAC3D,QAAM,aAAa,oBAAoB,SAAS;AAEhD,QAAM,kBAAkB;AAAA,IACtB;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,WAAW;AAAA,IACX;AAAA,EACF;AAEA,QAAM,EAAE,gBAAgB,2BAA2B,qBAAqB,IACtE,wBAAwB,WAAW,cAAc,KAAK;AAGxD,QAAM,wBAAwB,KAAK;AAAA,IACjC,KAAK,IAAI,sBAAsB,EAAE,IAAI;AAAA,EACvC;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,wBAAwB;AAAA,EAC1B;AACF","sourcesContent":["export enum HeptadCycles {\n  First = 1,\n  Second = 2,\n  Third = 3,\n  Fourth = 4,\n  Fifth = 5,\n  Sixth = 6,\n  Seventh = 7,\n}\n\nexport type CycleMeaning = {\n  title: string;\n  shortDescription: string;\n  personalDescription: string;\n  businessDescription: string;\n}\n\nexport type Cycle = {\n  number: number;\n  description: CycleMeaning;\n  isActive?: boolean;\n  cycleStart?: Date;\n}\n\nexport type CycleInfo = {\n  yearlyCycles: Cycle[];\n  ageCycles: Cycle[];\n  monthlyCycles: Cycle[];\n  currentYearlyCycle: number | null;\n  currentAgeCycle: number | null;\n  currentMonthlyCycle: number | null;\n  daysInMonthlyCycle: number;\n  totalDays: number;\n}\n\nexport type KaabalisticLifePathResult = {\n  parts: {\n    day: string;\n    month: string;\n    year1: string;\n    year2: string;\n  };\n  reducedParts: {\n    reducedDay: number;\n    reducedMonth: number;\n    reducedYear1: number;\n    reducedYear2: number;\n  };\n  syntheses: {\n    dayMonthSynthesis: number;\n    yearSynthesis: number;\n    reducedDayMonthSynthesis: number;\n    reducedYearSynthesis: number;\n    finalSynthesis: number;\n  };\n  lifePath: ReducedValueWithSteps;\n  /**\n   * Last three syntheses\n   */\n  personalMythologyNumbers: number[];\n};\n\nexport type StraightAcrossReductionLifePathResult = {\n  dayEnergy: ReducedValueWithSteps;\n  monthEnergy: ReducedValueWithSteps;\n  yearEnergy: ReducedValueWithSteps;\n  lifePath: ReducedValueWithSteps;\n};\n\nexport type DateEnergies = {\n  dayEnergy: ReducedValueWithSteps;\n  monthEnergy: ReducedValueWithSteps;\n  yearEnergy: ReducedValueWithSteps;\n};\n\nexport type Challenges = {\n  day: number;\n  month: number;\n  year: number;\n  mainChallenge: number;\n  subChallenge1: number;\n  subChallenge2: number;\n};\n\nexport type ReducedValueWithSteps = {\n  reducedValue: number;\n  reductionSteps: number[];\n};\n\nexport type FibonacciCycle = {\n  currentAge: number;\n  cycle1: ReducedValueWithSteps;\n  cycle2: ReducedValueWithSteps;\n  cycle3: ReducedValueWithSteps;\n  cycle4: ReducedValueWithSteps;\n  cycle5: ReducedValueWithSteps;\n  cycle6: ReducedValueWithSteps;\n  cycle7: ReducedValueWithSteps;\n};\n\nexport type PersonalPeriod = {\n  startMonth: number;\n  endMonth: number;\n  value: ReducedValueWithSteps;\n};\n\nexport type PersonalMonth = {\n  month: number;\n  value: ReducedValueWithSteps;\n};\n\nexport type PersonalCycles = {\n  personalYear: ReducedValueWithSteps;\n  personalPeriods: [PersonalPeriod, PersonalPeriod, PersonalPeriod];\n  personalMonths: [\n    PersonalMonth,\n    PersonalMonth,\n    PersonalMonth,\n    PersonalMonth,\n    PersonalMonth,\n    PersonalMonth,\n    PersonalMonth,\n    PersonalMonth,\n    PersonalMonth,\n    PersonalMonth,\n    PersonalMonth,\n    PersonalMonth,\n    PersonalMonth\n  ];\n  currentPersonalPeriod: number;\n  currentPersonalMonth: number;\n  currentAge: number;\n  lifePath: ReducedValueWithSteps;\n  soulNumber?: ReducedValueWithSteps;\n  yearUsedOnCalculations: number;\n};\n\nexport const CYCLE_MEANINGS: Record<HeptadCycles, CycleMeaning> = {\n  [HeptadCycles.First]: {\n    title: \"Learning\",\n    shortDescription:\n      \"A period for assertive action and learning through direct experience.\",\n    personalDescription:\n      \"This period emphasizes assertive action and learning through direct experience. Utilize personal influence to seek favors, loans, or recognition from influential individuals such as government officials or community leaders. Ideal for enhancing personal reputation and prestige, keeping in mind that all actions carry consequences.\",\n    businessDescription:\n      \"Ideal for promotional activities aimed at building goodwill, public recognition, and securing endorsements from prominent individuals. Prioritize the company's image and reputation over immediate profits.\",\n  },\n  [HeptadCycles.Second]: {\n    title: \"Hard Work\",\n    shortDescription:\n      \"A time for diligent effort and adaptability to temporary changes.\",\n    personalDescription:\n      \"A period where diligent effort and adaptability are crucial. Suitable for temporary changes such as moving homes, short trips, or career shifts. Avoid long-term commitments or significant investments unless carefully formalized.\",\n    businessDescription:\n      \"Ideal for short-term experiments, temporary staffing adjustments, and forming beneficial business connections. Steer clear of verbal agreements or long-term commitments unless formally documented. Flexibility leads to progress.\",\n  },\n  [HeptadCycles.Third]: {\n    title: \"Friendship\",\n    shortDescription:\n      \"A dynamic phase for ambitious projects and strengthening relationships.\",\n    personalDescription:\n      \"A dynamic and energetic phase ideal for initiating ambitious projects requiring persistence and physical strength. Effective communication strengthens relationships, but impulsiveness should be avoided to prevent conflicts.\",\n    businessDescription:\n      \"Ideal for expansion, energetic ventures, and assertive promotional activities. Excellent for debt collection but avoid legal conflicts. Maintain vigilance against accidents and disputes while leveraging strong communication.\",\n  },\n  [HeptadCycles.Fourth]: {\n    title: \"Opportunities\",\n    shortDescription:\n      \"An intellectually fertile time for creativity and quick decision-making.\",\n    personalDescription:\n      \"An intellectually fertile phase ideal for creative projects, innovation, and quick decision-making. Beware of deception, especially concerning documents or agreements. Foster mental growth and create valuable connections, but remain cautious.\",\n    businessDescription:\n      \"Perfect for launching impactful marketing campaigns and securing new agreements. Excellent for promotional activities and intellectual creativity, but carefully scrutinize documents to avoid fraud.\",\n  },\n  [HeptadCycles.Fifth]: {\n    title: \"Tears/Decision\",\n    shortDescription:\n      \"The most prosperous phase for financial resolution and spiritual advancement.\",\n    personalDescription:\n      \"The most prosperous phase of the year, suitable for resolving financial issues, starting long journeys, and advancing spiritually. Interact with influential figures, manage debts, and engage in expansive social activities. Keep ego and selfishness balanced for optimal outcomes.\",\n    businessDescription:\n      \"A prime time for investments, financial growth, global promotion, debt collection, and favorable legal outcomes. Emphasize fairness and generosity to enhance business success.\",\n  },\n  [HeptadCycles.Sixth]: {\n    title: \"Triple Blessing\",\n    shortDescription:\n      \"Perfect for pleasures, social activities, and creative pursuits.\",\n    personalDescription:\n      \"Ideal for enjoying pleasures, social activities, artistic endeavors, and short travels. Favorable for romantic interactions, relaxation, and creative pursuits. Organize personal life to balance enjoyment and refinement effectively.\",\n    businessDescription:\n      \"Excellent time for promoting luxury products, arts, entertainment, and speculative investments. Ideal for forming friendly business alliances and strategic partnerships.\",\n  },\n  [HeptadCycles.Seventh]: {\n    title: \"Rest\",\n    shortDescription:\n      \"A period of rest, introspection, and preparation for renewal.\",\n    personalDescription:\n      \"A critical period of rest, introspection, and cautious preparation for renewal. Avoid initiating new ventures and instead focus on completing pending matters, managing legal affairs carefully, and protecting existing resources. Balance and patience are essential.\",\n    businessDescription:\n      \"Period to conserve resources, avoid major expansions, and carefully manage internal restructuring. Postpone significant new ventures until the next cycle. Act diplomatically and cautiously to ensure stability.\",\n  },\n};\n\nexport enum NumerologyValues {\n  One = 1,\n  Two = 2,\n  Three = 3,\n  Four = 4,\n  Five = 5,\n  Six = 6,\n  Seven = 7,\n  Eight = 8,\n  Nine = 9,\n  Eleven = 11,\n  TwentyTwo = 22,\n  ThirtyThree = 33,\n  FortyFour = 44,\n}\n\n// todo: translate to english and improve keywords\nexport const NUMEROLOGY_KEYWORDS: Record<NumerologyValues, string[]> = {\n  [NumerologyValues.One]: [\"Initiative\", \"Courage\", \"Leadership\"],\n  [NumerologyValues.Two]: [\"Sensitivity\", \"Cooperation\", \"Diplomacy\"],\n  [NumerologyValues.Three]: [\"Creativity\", \"Expression\", \"Joy\"],\n  [NumerologyValues.Four]: [\"Stability\", \"Structure\", \"Reliability\"],\n  [NumerologyValues.Five]: [\"Freedom\", \"Adaptability\", \"Adventure\"],\n  [NumerologyValues.Six]: [\"Service\", \"Responsibility\", \"Harmony\"],\n  [NumerologyValues.Seven]: [\"Intuition\", \"Introspection\", \"Wisdom\"],\n  [NumerologyValues.Eight]: [\"Power\", \"Ambition\", \"Material Success\"],\n  [NumerologyValues.Nine]: [\"Compassion\", \"Universal Vision\", \"Humanitarianism\"],\n  [NumerologyValues.Eleven]: [\"Intuition\", \"Illumination\", \"Spiritual Messenger\"],\n  [NumerologyValues.TwentyTwo]: [\"Vision\", \"Master Builder\", \"Manifestation\"],\n  [NumerologyValues.ThirtyThree]: [\"Unconditional Love\", \"Master Teacher\", \"Healing Service\"],\n  [NumerologyValues.FortyFour]: [\"Material Mastery\", \"Strategic Leadership\", \"Legacy Building\"],\n}\n\nexport enum DayOfBirth {\n  First = 1,\n  Second = 2,\n  Third = 3,\n  Fourth = 4,\n  Fifth = 5,\n  Sixth = 6,\n  Seventh = 7,\n  Eighth = 8,\n  Ninth = 9,\n  Tenth = 10,\n  Eleventh = 11,\n  Twelfth = 12,\n  Thirteenth = 13,\n  Fourteenth = 14,\n  Fifteenth = 15,\n  Sixteenth = 16,\n  Seventeenth = 17,\n  Eighteenth = 18,\n  Nineteenth = 19,\n  Twentieth = 20,\n  TwentyFirst = 21,\n  TwentySecond = 22,\n  TwentyThird = 23,\n  TwentyFourth = 24,\n  TwentyFifth = 25,\n  TwentySixth = 26,\n  TwentySeventh = 27,\n  TwentyEighth = 28,\n  TwentyNinth = 29,\n  Thirtieth = 30,\n  ThirtyFirst = 31,\n};\n\nexport type DayOfBirthMeaning = {\n  description: string;\n}\n\nexport const DAY_OF_BIRTH_MEANING: Record<DayOfBirth, DayOfBirthMeaning> = {\n  [DayOfBirth.First]: {\n    description: \"Independence, creativity and initiative. Tendency to put others in charge of finishing what they start. Stubbornness and inventiveness. Leadership. Ability to do things on their own. Once decided, capable of going to any extreme to win. Enjoys a good challenge.\",\n  },\n  [DayOfBirth.Second]: {\n    description: \"Sensitivity, emotionality and adaptability. Does not need to be aggressive, as they are capable of conquering everything they need. Yearns for attention and affection, enjoying collecting friendships and objects. Must stay active and think positively to avoid depression. Finds pleasure through music.\",\n  },\n  [DayOfBirth.Third]: {\n    description: \"Talent, sociability and imagination. Places great value on friendships, therefore needs to be kind. Being restless and optimistic, makes life a game in which they are the main player. Possesses great personality.\",\n  },\n  [DayOfBirth.Fourth]: {\n    description: \"If they follow the rules, they profit. Practical, organized and loyal. Self-disciplined, stubbornly attached to their habits. Should not demand so much from themselves. Should reserve more time to enjoy nature and family.\",\n  },\n  [DayOfBirth.Fifth]: {\n    description: \"Enjoys new experiences and learns from them. Versatile, insightful and bold, detests moments of boredom. For their happiness it is essential to have freedom to travel, good company and unusual things or events.\",\n  },\n  [DayOfBirth.Sixth]: {\n    description: \"Great idealist, with professorial tendencies, inclined to impose their praiseworthy viewpoints on other people. Being the target of criticism makes them very irritated. Affectionate, adaptable to domestic life and responsible, feels the need for security and to put down roots. For their happiness they need intellectual harmony.\",\n  },\n  [DayOfBirth.Seventh]: {\n    description: \"Be guided by your intuition. Being the intellectual, analytical and sensitive type, should not accept any advice that goes against their principles and judgment. Should guarantee themselves a good education, specializing, and learning to enjoy their own company. Things will come to them if they can be patient and not take risks.\",\n  },\n  [DayOfBirth.Eighth]: {\n    description: \"Interests in managing finances, in progressing and accumulating material goods. An organizer who sets things in motion. Vision and imagination for business. Should be tolerant and fair with the less efficient and determined. Vocation for executive positions.\",\n  },\n  [DayOfBirth.Ninth]: {\n    description: \"Tolerant, apt for the arts and resolute, likes general things. Not interested in details, but rather in world problems. If well educated, could become a public figure. Capable of giving the shirt off their back to someone in difficulties, but appears to have no awareness of the needs of those around them.\",\n  },\n  [DayOfBirth.Tenth]: {\n    description: \"Being capable of managing several things at the same time, enjoys diversity. Their type is intellectual, possessive and not very domestic. Has aptitude for art and vocation for business. Enthusiasm and creativity when developing projects.\",\n  },\n  [DayOfBirth.Eleventh]: {\n    description: \"Despite being insecure and somewhat inhibited, is brilliant and inspired for thought and action. Those who possess this Master number have the gift of visionary intuition. Will only find pleasure through financial gains if they are serving the needs of others.\",\n  },\n  [DayOfBirth.Twelfth]: {\n    description: \"Ability to achieve promotions and can both lead and work in a team. Inclination for the arts, diplomacy and good verbal skills. Needs to stay active besides finishing everything they start.\",\n  },\n  [DayOfBirth.Thirteenth]: {\n    description: \"Certain feeling that their creativity is limited by attachment to order. This tends to bring a certain emotional conflict. Considered temperamental, tends to be misinterpreted very frequently. Feels happy building, buying and selling things.\",\n  },\n  [DayOfBirth.Fourteenth]: {\n    description: \"Needs variety in physical and intellectual activities. Active, insightful, emotional and likes to take risks. Perseverance is as important as the variety of life experiences they yearn for. Needs not to overdo it.\",\n  },\n  [DayOfBirth.Fifteenth]: {\n    description: \"Generous, expansive, domestic and protective. Enjoys music and feels they need to help others. Despite their stubbornness, manages to attract people and opportunities.\",\n  },\n  [DayOfBirth.Sixteenth]: {\n    description: \"Tendency to be constantly disappointed by yearning for affection and doing nothing to obtain it. Withdrawn, introspective, inventive and analytical. Their nervousness makes their life more difficult than it really is. You are a complicated person and family ties are very important.\",\n  },\n  [DayOfBirth.Seventeenth]: {\n    description: \"Hesitation between the desire to organize and to analyze. Can do both things. Should be their own boss and carefully choose their partners (if they need to have them). Seeks knowledge, has a knack for business and talent for any technical or scientific activity.\",\n  },\n  [DayOfBirth.Eighteenth]: {\n    description: \"Lives for love, not having been made to stay with just one person. Strong vibrations for writing, public speaking and theatrical arts. Can be organized and efficient, if they want to. Would feel happy if their attitudes were accepted without restrictions.\",\n  },\n  [DayOfBirth.Nineteenth]: {\n    description: \"May have an excess of responsibility, since it is composed of all numbers, from 1 to 9. Averse to conventions, worries about their public image. Should be a leader, preparing to adapt to the needs of others and fly high.\",\n  },\n  [DayOfBirth.Twentieth]: {\n    description: \"In a group gives stability to joint effort. Friendly, cooperative and sympathetic, is a natural diplomat. Needs protection, thus needs a strong partner. Someone they can count on at all times.\",\n  },\n  [DayOfBirth.TwentyFirst]: {\n    description: \"Talented, sociable and owner of a unique personality, places great importance on their love. Fertile imagination. Should use it positively, avoiding feelings of jealousy and controlling their tendency to distrust others.\",\n  },\n  [DayOfBirth.TwentySecond]: {\n    description: \"Their first impressions are highly reliable, trust them. Their personal ambition should be based on motivation for the common good. Using their integrity, should organize their activities. Has creativity and capacity for initiative. This is a Master number of unlimited potential. It is the vibration of the visionary with practical sense.\",\n  },\n  [DayOfBirth.TwentyThird]: {\n    description: \"Self-sufficiency, taste for social contacts and adaptability. Sensitivity and capacity for understanding that make them help others. Willingness to take on many responsibilities due to their superior faculties and practical mental character.\",\n  },\n  [DayOfBirth.TwentyFourth]: {\n    description: \"Without activity, wastes their energies making a storm in a teacup. Despite being quite individualistic, enjoys domestic life. Ability to learn through observation. Even when retired, needs to continue being active.\",\n  },\n  [DayOfBirth.TwentyFifth]: {\n    description: \"Appearance of an eternal dreamer, with their head in the clouds. Tendency to be misunderstood. Artistic talent, naturally intuitive and idealistic. Obstacles in their life: laziness, melancholy and dispersion of their energies. Needs to pay attention to day-to-day matters, avoiding being criticized for being so intellectual.\",\n  },\n  [DayOfBirth.TwentySixth]: {\n    description: \"Enjoys physical and domestic comfort. Generosity with third parties. Knows how to reconcile professional career, marriage, and artistic abilities with ease. Introspective, has a tendency to live in the past, failing to enjoy the present.\",\n  },\n  [DayOfBirth.TwentySeventh]: {\n    description: \"Natural leader, despite being somewhat erratic, is subtly convincing. Their strength lies in abstract thinking and philosophy. Gets resentful if they feel watched, or with the need to account for every movement. Quite cautious with their family relationships.\",\n  },\n  [DayOfBirth.TwentyEighth]: {\n    description: \"Unconventional, loves freedom and likes to do things their own way. Should not bend to accommodate the system. Tendency to create new trends. Careful not to be overly sensitive. Should combat the laziness that lies behind the habit of daydreaming. If they don't do this, their ambitions will be greatly harmed.\",\n  },\n  [DayOfBirth.TwentyNinth]: {\n    description: \"Intellectual, always ready for action, capable of great achievements. Has the ability to identify and solve the problems of the masses. Should have Master number 11 as their guiding vibration since 2 + 9 = 11. Radical in everything they do, experiences intense emotions.\",\n  },\n  [DayOfBirth.Thirtieth]: {\n    description: \"Endowed with hypnotic charm, enjoys the cheerful side of life, is a great optimist. Full of imagination, detests routine and has a knack for fashion and decoration. Very lucky! Knowing how to use their oratory skills well and with a little experience, will go far.\",\n  },\n  [DayOfBirth.ThirtyFirst]: {\n    description: \"If they can organize themselves and define a direction for their life, they will be successful in their high dreams. Talented for business, will feel comfortable in artistic and literary fields. The routine of domestic life is not very bearable but needs responsibility and companionship.\",\n  },\n};\n\nexport type LifePathMeaning = {\n  description: string;\n  goal: string;\n  positiveTraits: string[];\n  negativeTraits: string[];\n}\n\nexport const LIFEPATH_MEANING: Record<NumerologyValues, LifePathMeaning> = {\n  [NumerologyValues.One]: {\n    description: \"Must learn to be original, have more willpower, be more creative and innovative. Needs to have courage and use impulse to penetrate new fields of expression as a pioneer. Works better when alone despite being a good executive. Doesn't like limitations and can be stubborn and dominating. Organized and efficient, by nature not homely. Generally likes sports and athletics. Takes pleasure in victories. Sophisticated, not emotionally romantic, always appears prominently in social or commercial groups. If they learn the lessons, they will become intimately familiar with Divine Energy, the independent spark that probes, searches and moves all creation. Is creative on the physical plane because their pioneering spirit precedes everyone else's, expressing their unique individuality.\",\n    goal: \"The mission of path 1 is to undertake. It characterizes people with visionary spirit, who are ahead of their time and who, even alone, can achieve great revolutions and build great accomplishments.\",\n    positiveTraits: [\"independence\", \"leadership\", \"ease in opening their own path\"],\n    negativeTraits: [\"arrogance\", \"pretension\", \"imposition\", \"authoritarianism\"],\n  },\n  [NumerologyValues.Two]: {\n    description: \"If you support those in leadership, helping them find their life goals, staying behind the scenes, this will help you in business. Those who will benefit from your talents will help you make use of your abilities. Must have consideration for others, bringing people together around a common cause. Will find the lessons to be learned in this life in partnerships and groups. Persuasive. Various career options, with success practically assured.\",\n    goal: \"Path 2 has intuition as its mission. They are creative and intuitive spirits who have great ability for reflection and perception of the material and spiritual world. They develop their interior easily and possess great critical sense, in addition to constantly receiving information from the spiritual universe, managing to anticipate situations and make better decisions.\",\n    positiveTraits: [\"understanding\", \"collaboration\", \"sensitivity\", \"flexibility\"],\n    negativeTraits: [\"inaction\", \"laziness\", \"cowardice\", \"excessive dependence\"],\n  },\n  [NumerologyValues.Three]: {\n    description: \"Superiority in intellectual, artistic or creative occupations. Need for expression, manifestation and to see the result of their work. Needs to have ambition and pride, reaching a position of authority. Needs to be careful not to be dispersive, should specialize. Averse to restriction, cannot limit themselves to routine. To achieve good results needs to work alone. Partnerships are not recommended. Should always follow their inspiration and intuition using their creative talents.\",\n    goal: \"The great mission of path 3 is communication. They are communicative and extroverted spirits who may have facility for leadership, teaching and sharing information and knowledge. They are usually great teachers, thinkers, religious leaders or writers. Or even any other profession built around communication.\",\n    positiveTraits: [\"communicability\", \"creativity\", \"ease in making friends\"],\n    negativeTraits: [\"uncontrolled and frivolous use of communication\", \"childishness\", \"lack of commitment\"],\n  },\n  [NumerologyValues.Four]: {\n    description: \"Needs a solid foundation to base their life on, based on a well-organized system of conduct and morals, should become a diligent worker and achieve success with honesty. Should not take risks in financial areas. Always wanting things for yesterday, will need to strive with patience and perseverance. Must learn to see reality by striving to reason in a healthy and practical way.\",\n    goal: \"The mission of this path, the 4, is leadership. People on this path have a great inclination to occupy leadership roles, both professionally and in family or even in social relationships. It's possible they have a tendency to care too much for others, sometimes suffering the impact when the negative faces of leadership appear.\",\n    positiveTraits: [\"willpower\", \"discipline\", \"disposition for work\", \"organization\"],\n    negativeTraits: [\"blockage\", \"repression\", \"prejudice\", \"limitation\"],\n  },\n  [NumerologyValues.Five]: {\n    description: \"Needs freedom to produce. Facility to learn through travel and experiences. Needs to avoid monotony in their life. Is in this life to learn and experience the value of freedom, but should not become too attached. Innate talents for oratory and dealing with the public.\",\n    goal: \"Path 5 brings the mission of religion. They are spirits who, not necessarily, have a religion, but who need spiritual construction to find comfort and give meaning to their existence.\",\n    positiveTraits: [\"freedom\", \"adaptability\", \"joviality\", \"good humor\"],\n    negativeTraits: [\"inconsequence\", \"irresponsibility\", \"frivolity\", \"hedonism\"],\n  },\n  [NumerologyValues.Six]: {\n    description: \"Learning about the sense of responsibility towards family and community. Has a wide range of professional options ahead. Needs to acquire a refined sense of balance to be able to equalize injustices. Artistic abilities and judicial talents. In order to relieve the burden of those who are naturally attracted to you, must develop compassion and understanding.\",\n    goal: \"Path 6 has family as its main mission. They create and need very strong loving bonds and generate great spiritual return when they constitute family and build a harmonious home. Any external problem can be neutralized by the strong vibration of unconditional family love and has inclination to find meaning in the concepts of marriage, fatherhood or motherhood.\",\n    positiveTraits: [\"family bonds\", \"community balance\", \"compassion\", \"solicitude\"],\n    negativeTraits: [\"invasion of privacy\", \"hypocrisy\", \"jealousy\", \"indecision\"],\n  },\n  [NumerologyValues.Seven]: {\n    description: \"Needs to use and develop their mind. When speaking, their words should be wise. Will often need to rely on the strength of their spirit to solve difficult problems. Tendency towards mysterious and occult research. Must learn the value of solitude in order to get in touch with their HIGHER SELF and their deepest thoughts. Since their destiny is to use the mind.\",\n    goal: \"The 7th path has conquest as its mission. It is a strong and powerful mission, as it requires the spirit to hold the reins of destiny in their hands. Nothing comes easy for these people, as the ability to conquer and build is the aspect they must work on. With effort, dedication and patience, they can move mountains and materialize miracles.\",\n    positiveTraits: [\"intelligence\", \"introspection\", \"study\", \"common sense\", \"depth\"],\n    negativeTraits: [\"isolation\", \"coldness\", \"mordacity\", \"melancholy\"],\n  },\n  [NumerologyValues.Eight]: {\n    description: \"Number of power and ambition, of the executive, of the boss, who lives by brain and physical strength. Motivates people to be successful. Needs to lead by showing through examples how to profit in business. Needs to learn to deal with power, authority and money. To build a commercial empire (which is quite likely), needs to work towards this. Opportunities in the athletic and artistic fields.\",\n    goal: \"Brings the mission of justice and makes this the permanent and constant value for spirits who have it as their mission. Any type of situation involving justice (or even injustice) requires the life experience of those born under the influence of path 8. They are spirits who seek balance in general, and can be great lawyers or judges.\",\n    positiveTraits: [\"sense of justice\", \"material ability\", \"haughtiness\", \"ambition\"],\n    negativeTraits: [\"greed\", \"cupidity\", \"tendency to own the truth\", \"materialism\"],\n  },\n  [NumerologyValues.Nine]: {\n    description: \"Patience, kindness and understanding are attributes that need to be cultivated. You know that personal happiness is intimately linked with the capacity to give happiness to others. Material goods will come with some ease and despite adversities, the tendency is to always be successful. Areas linked to diplomacy will be favorable to you.\",\n    goal: \"Path 9 refers to the mission of patience. They are spirits who want to improve the world and usually have facility in exercising faith and patience in the face of the most complicated situations. They possess an almost unalterable balance and great resilience. However, when they face much restlessness and a pattern of experiences that harm serenity, they should use the strength of patience for spiritual evolution and conflict resolution.\",\n    positiveTraits: [\"democratic sense\", \"speed of thought\", \"openness to evolution\"],\n    negativeTraits: [\"anxiety\", \"lack of control\", \"haste\", \"impulsiveness\"],\n  },\n  [NumerologyValues.Eleven]: {\n    description: \"The key here is altruism and community. Must practice loving your neighbor as yourself. Must use their strong intuitions to achieve wisdom and inspiration. The patterns of 11 are very high and constant, therefore, it is one of the most difficult vibrations. Must learn to have patience and also to make quick decisions. Must seek balance between material and physical life, between the life of inspiration and the spiritual. May be successful in the field of sciences, new inventions, electronics. Possesses originality and creativity and can very well make use of inspired oratory. The number 11 is an esoteric master number, of spiritual importance. Gives courage, power and talent, with strong feelings for leadership. Will need to be careful that power doesn't go to their head. Fame and recognition are probable in their life, but should recognize that true mastery is service.\",\n    goal: \"The 11th path has intelligence as its mission, favoring the entire intellectual side and presenting situations that require clear ideas to be resolved. They are questioning spirits, regarding life and the paths they want to follow and only convince themselves of something when they can rationalize the subject by themselves.\",\n    positiveTraits: [\"far-reaching vision\", \"innate spirituality\", \"absence of prejudice\", \"pioneering\"],\n    negativeTraits: [\"obsession\", \"feeling of displacement (doesn't fit into any group)\"],\n  },\n  [NumerologyValues.TwentyTwo]: {\n    description: \"Need to express a basic desire for development, complete things in a full way and work with large groups or commercial organizations. Enjoying long trips, may do very well in import/export trade. This number promises success. Needs to be challenged in their power of achievement. Needs to learn to take care of large companies and corporations in addition to dealing efficiently and usefully with money, for the benefit of large groups of people.\",\n    goal: \"Path 21 brings realization as its mission. It brings good results for those who are born under this influence. They are spirits who can build, create and materialize things and situations with ease, using their inner energy to reach their goals. They possess a high level of appreciation and are determined spirits.\",\n    positiveTraits: [\"creativity\", \"development of ideas\", \"utilization of experiences\"],\n    negativeTraits: [\"anxiety\", \"haste\", \"excessive agility\"],\n  },\n  [NumerologyValues.ThirtyThree]: {\n    description: \"Needs to be firm and reliable, developing a strong desire to protect others. Taste for natural life, which leads them not to work in areas that are harmful to humanity. Tendency to need to sacrifice their own desires for the benefit of others' needs, in order to fulfill the vibration of their Life Lesson. The consciousness of this number almost surpasses that of humanity, being similar to that of Christ in expression.\",\n    goal: \"The mission of path 33 is to embody unconditional love and act as a master-healer and master-teacher, elevating people's consciousness through example, care, inspiration and practical teachings. It is not a path focused on personal gains, but on alleviating suffering, nurturing, forgiving and organizing life around service to the collective, manifesting in daily life the energy of compassion and healing.\",\n    positiveTraits: [\"unconditional love\", \"healing and welcoming\", \"master / spiritual guide\"],\n    negativeTraits: [\"self-sacrifice\", \"emotional exhaustion\", \"savior complex\"],\n  },\n  [NumerologyValues.FortyFour]: {\n    description: \"Represents strength and complete mastery of the mind over their life while on Earth. Asks for discipline in every sector of life, in order to collaborate for the promotion of the world's material advancement. Needs to train their mind to let superior forces act in it, keeping their body and environment in order, to be ready for any opportunity to achieve the same results for others. Must use their enormous evolutionary energy to help others put their lives in order. Needs to try to promote better ethics and justice in the business world. Will have to recognize reality, and then use what they learned to alleviate the physical burdens of other people. You can be the instrument and channel through which this change can happen. May serve as an example to others, demonstrating bravery, resourcefulness, courage and discipline.\",\n    goal: \"The mission of path 44 is to be a \\\"master builder\\\" on the material plane: erecting structures, companies, systems and solid projects that unite efficiency, prosperity and service to the collective. It is the vibration that combines organizing power, discipline and long-term vision to manifest on a large scale, with ethics and responsibility, integrating spiritual wisdom and concrete results in the world.\",\n    positiveTraits: [\"discipline and focus\", \"master material builder\", \"responsible leadership\"],\n    negativeTraits: [\"workaholic and rigidity\", \"obsession with results\", \"coldness and internal pressure\"],\n  },\n}\n\nexport enum ChallengeNumbers {\n  Zero = 0,\n  One = 1,\n  Two = 2,\n  Three = 3,\n  Four = 4,\n  Five = 5,\n  Six = 6,\n  Seven = 7,\n  Eight = 8,\n}\n\nexport const CHALLENGE_MEANING: Record<ChallengeNumbers, string> = {\n  [ChallengeNumbers.Zero]: \"Can be said to function as no challenge and all other challenges together. It is a difficult challenge, as it suffers the emotional reactions of all numbers, but the person knows what their problems are and must learn to face them, one at a time.\",\n  [ChallengeNumbers.One]: \"Swings between maximum independence and lack of initiative. Can act both with arrogance and with weakness. Difficulty making decisions. Must learn not to waver. There may be a very strong connection with the father. Exaggerated reactions.\",\n  [ChallengeNumbers.Two]: \"Tendency to get lost in minutiae or to ignore details. Must fight against the tendency toward excessive submission and being grumpy, complaining about everything and everyone, without justification. Oscillation between extreme sensitivity and a total refusal to be influenced by emotions. May not have received enough love from the mother or still have an excessively strong connection with her. Tendency to have problems with women. Should not always take things personally.\",\n  [ChallengeNumbers.Three]: \"Excessive attention to external appearance and indifference toward social interaction rules. Ability to speak at the wrong time. Waste of energy. Must develop perceptive capacity. Avoid talking too much or staying silent when it's time to speak. Should measure words more carefully.\",\n  [ChallengeNumbers.Four]: \"Can present either as a severe self-disciplinarian or with extreme lack of organization. Either does everything or does nothing. Always oscillates between extremes. Must develop perceptive capacity.\",\n  [ChallengeNumbers.Five]: \"Periods of exhaustion and boredom. Can either jump from experience to experience or cling to the security of a pre-established routine. Sex and material pleasures should not be so important in their life. Needs to be more responsible, leaving impulsiveness aside as it will only bring suffering. Must learn to restrain themselves.\",\n  [ChallengeNumbers.Six]: \"Desire to impose opinions on others and be enslaved by the people they love. Can either assume responsibilities that don't concern them or have no responsibility at all. Needs to learn not to meddle in what is not their business, in addition to knowing how to adapt to new situations. Must learn to accept and listen to others' opinions. Idealism that can transform into hypocrisy.\",\n  [ChallengeNumbers.Seven]: \"Oscillation between naive behavior and total lack of trust in others. Arrogance or lack of self-love. Lacking faith, they fear being rejected, loneliness, poverty and life's realities. Should not be afraid to share their thoughts and emotions.\",\n  [ChallengeNumbers.Eight]: \"Stinginess or dissipation. Can worry excessively about material life or show total carelessness. Has thirst for power, but lacks ambition. Needs to use common sense and play fair. Should not evaluate everything in terms of material value.\",\n}\n\nexport const CHALLENGE_HEALTH_MEANING: Record<ChallengeNumbers | NumerologyValues, string> = {\n  [ChallengeNumbers.Zero]: \"There is no illness associated with the number zero.\",\n  [ChallengeNumbers.One]: \"Prone to diseases in the head, headaches, sinusitis, allergies, injuries to the eyes, ears and head.\",\n  [ChallengeNumbers.Two]: \"Tendency to retain fluids in the body. Delicate nervous system and kidneys.\",\n  [ChallengeNumbers.Three]: \"May suffer from diseases that affect the throat, liver and glands.\",\n  [ChallengeNumbers.Four]: \"Prone to chronic diseases and problems with teeth, bones, intestines, digestion and circulation.\",\n  [ChallengeNumbers.Five]: \"Nervous or prone to accidents. May have problems with reproductive organs.\",\n  [ChallengeNumbers.Six]: \"May suffer from chronic diseases or have circulatory and spinal problems.\",\n  [ChallengeNumbers.Seven]: \"Propensity for congestion, infections and nervous problems.\",\n  [ChallengeNumbers.Eight]: \"May have excess weight, high blood pressure, undergo surgical interventions. Propensity for problems with digestion, pancreas, stomach and nerves.\",\n  [NumerologyValues.Nine]: \"Energy of deeply rooted attachment especially with diseases, can generate hypochondria.\",\n  [NumerologyValues.Eleven]: \"Can bring much dispersion or lack of care with health, has difficulties doing preventive exams.\",\n  [NumerologyValues.TwentyTwo]: \"Has tendencies to increase diseases and their impacts.\",\n  [NumerologyValues.ThirtyThree]: \"Finds difficulties seeking help when necessary due to the master's energy.\",\n  [NumerologyValues.FortyFour]: \"Has a tendency to be very efficient including in health treatments.\",\n}\n\nexport const PERSONAL_CYCLE_KEYWORDS: Record<NumerologyValues, string[]> = {\n  [NumerologyValues.One]: [\"new beginnings\", \"action\", \"originality\", \"decision making\"],\n  [NumerologyValues.Two]: [\"harmony\", \"cooperation\", \"mediation\", \"passivity\"],\n  [NumerologyValues.Three]: [\"dispersion\", \"freedom\", \"entertainment\", \"self expression\"],\n  [NumerologyValues.Four]: [\"practical nature\", \"work\", \"order\", \"foundation building\"],\n  [NumerologyValues.Five]: [\"change\", \"freedom\", \"new intellectual interests\", \"travel\"],\n  [NumerologyValues.Six]: [\"family\", \"health\", \"assistance\", \"attention to others' problems\"],\n  [NumerologyValues.Seven]: [\"self-analysis\", \"achievement\", \"health problems\"],\n  [NumerologyValues.Eight]: [\"business\", \"power\", \"responsibility\", \"money\"],\n  [NumerologyValues.Nine]: [\"self-denial\", \"endings\", \"service\"],\n  [NumerologyValues.Eleven]: [\"notoriety\", \"inspiration\", \"religion\"],\n  [NumerologyValues.TwentyTwo]: [\"materialism\", \"great endeavors\"],\n  [NumerologyValues.ThirtyThree]: [\"sacrifice\", \"compassion for others\"],\n  [NumerologyValues.FortyFour]: [\"helping solve others' daily problems\", \"counseling\"],\n}\n\nexport const PERSONAL_YEAR_DESCRIPTIONS: Record<NumerologyValues, string> = {\n  [NumerologyValues.One]: \"Put yourself into action. Use your initiative and set things in motion. The seeds planted now will have a greater chance of surviving throughout the entire cycle. Good time to start a new relationship, move to a new address, make a career change, and dedicate yourself to a new hobby. Develop your ideas, be positive, and don't hesitate to remain true to your decisions. Using your creative energy will allow you to achieve everything you desire.\",\n  [NumerologyValues.Two]: \"This is a year of many emotions. You may fall in love and fall out of love. The seeds you plant now will germinate this year. Water them well. Pay attention to details, but be careful not to overdo it. Accumulate knowledge, meet new people, and acquire things. Assimilate, be receptive. Cooperate, be kind even when you feel like giving a sharp response. Patience, tact, and diplomacy will bring you everything you desire.\",\n  [NumerologyValues.Three]: \"This is a year for you to have fun. Enjoy it! The seeds you planted in year 1 will bear fruit now. Expand your circle of friends, take good care of yourself, and make yourself noticed. Don't get involved in anything that could restrict your freedom. Develop the skills necessary to express your ideas and feelings. It will be worthwhile to speak in public or write. Social contacts will help you achieve everything you desire.\",\n  [NumerologyValues.Four]: \"This is the year to build the foundations of your future and work hard. The vibration of 4 is about routine and organization. Systematize, be practical, and keep your feet on the ground. Cultivate solid relationships. It's a good time to organize your home. And since the body is the soul's shelter, exercise and diet are also important. By focusing on organization, you will obtain everything you want, this year and the next.\",\n  [NumerologyValues.Five]: \"This is your year to renew yourself, travel, take on fewer responsibilities, and meet people. You will mature in a new way. Expect the unexpected. Let yourself be carried by your inner strength and the vibration of freedom. Be receptive to what is new. Free yourself from what is boring or limiting. Enjoy the pleasures of food, drink, and sex (without excess, of course). This is the year to reap the rewards for everything you accomplished in the previous year. The vibration of freedom will give you everything you desire.\",\n  [NumerologyValues.Six]: \"This year you will be more settled than in the previous year, and your responsibilities will also be greater. Your commitments will be firmer; it's a good time to think about marriage as the vibration of 6 favors lasting relationships. Love and you will be loved, protect and you will be protected. You will have to adapt to others, you will have to act with more awareness regarding anything or anyone important in your life. Reconciliation will help you achieve what you want.\",\n  [NumerologyValues.Seven]: \"Don't force decisions. Make only the unavoidable changes. If you start a romance now, you may be forced to share your new love with a third person. If the relationship doesn't change by the end of the year, it will most likely continue stable. It's a good year to write, study, and engage in deeper reflections. Rest, spend some hours alone every day, take vacations somewhere near water, and trust your intuition. You can achieve everything you want by letting things come to you: this year is for inner development; the following year for material gains.\",\n  [NumerologyValues.Eight]: \"This is the best year to improve your business and the state of your finances. Money comes, money goes. Focus your attention on finances and material values. Get that raise, that promotion, and the greater power that comes with it. Organize your time. This year you will make a sensation. What remained hidden in year 7 will manifest now. Take care of your health by getting an annual check-up. Using common sense, everything will work out satisfactorily.\",\n  [NumerologyValues.Nine]: \"This is your year to conclude things. Clean out the closets, finish your projects. Eliminate that blacklist of yours. What's done is done. Although changes that are coming in the next few years are already in the air, it's unlikely that anything you start this year will last very long. Either it will end before the year is over, or it will change again. The vibration of 9 will bring you nostalgia. You may have an exaggerated reaction and become temperamental. This year your family is the world. Keeping an open mind and broad perspective will help you achieve what you want.\",\n  [NumerologyValues.Eleven]: \"Material matters occupy a secondary position this year. You may be absorbed by your own idealism and end up discovering that you don't always have your feet on the ground. Refine your tastes, expand your consciousness, and share your talents. This is an especially creative year for writers and artists. For people working in commercial activities, this is the year of diplomacy and gratitude. For spiritually oriented people, this is a year of illumination. Following this visionary vibration will help you obtain what you long for.\",\n  [NumerologyValues.TwentyTwo]: \"This is your year to have an idea and make it concrete. Now you are a visionary who transforms an idea into reality. The highest master vibration is within you this year. Plan your activities, structure your dreams, serve others, and you will see that this will be a very successful year. Maintain balance and guard against radicalism and nervous tension. Working with this powerful practical vibration, you will achieve what you desire.\",\n  [NumerologyValues.ThirtyThree]: \"This is a year that intensifies themes of love, family, and emotional responsibility. The energy calls for compassion, healing, and service: people may seek you out for support, guidance, or comfort, and your sensitivity tends to become more acute. Use your creative and spiritual talents to uplift and help others, but without taking on the role of savior or martyr. Take care of your boundaries, practice self-care, and let unconditional love manifest through concrete gestures. Living this vibration of service with balance, you can have deeply meaningful experiences and transform important bonds in your life.\",\n  [NumerologyValues.FortyFour]: \"This is a year that enhances material achievements and the ability to build something great and lasting. The energy favors concrete accomplishments, professional expansion, and long-term structural projects, where your leadership and sense of responsibility become evident. Organization, discipline, and strategic vision will be essential to make the most of this cycle. Keep your feet on the ground, manage time and finances well, and don't sacrifice health or emotional life for success. Using this power ethically and in balance, you can consolidate very prosperous foundations and positively influence your surroundings.\",\n};","/**\n * Numerology calculations\n */\n\nimport { calculateGematria } from \"../gematria\";\nimport type * as NumerologyModuleTypes from \"./data\";\nimport * as NumerologyData from \"./data\";\n\nfunction parseDate(date: Date): { day: string; month: string; year: string } {\n  if (!date) {\n    throw new Error(\"Date is required\");\n  }\n\n  if (!(date instanceof Date)) {\n    throw new Error(\"Date must be a Date object\");\n  }\n\n  const formattedDate = date.toISOString().split(\"T\")[0];\n\n  if (formattedDate.length !== 10) {\n    throw new Error(\"Date must be in the format YYYY-MM-DD or DD-MM-YYYY\");\n  }\n\n  const parts = formattedDate.split(/[-/]/).map((p) => p.trim());\n\n  const isYYYYMMDD = parts[0].length === 4;\n\n  if (isYYYYMMDD) {\n    return { day: parts[2], month: parts[1], year: parts[0] };\n  } else {\n    return { day: parts[0], month: parts[1], year: parts[2] };\n  }\n}\n\nfunction mapDatePartsToBlocksOfTwo({\n  day,\n  month,\n  year,\n}: {\n  day: string;\n  month: string;\n  year: string;\n}): { day: string; month: string; year1: string; year2: string } {\n  return {\n    day: day.padStart(2, \"0\"),\n    month: month.padStart(2, \"0\"),\n    year1: year.slice(0, 2),\n    year2: year.slice(2),\n  };\n}\n\nfunction digitSum(n: number): number {\n  let s = 0;\n\n  for (const ch of String(Math.abs(n))) {\n    s += ch.charCodeAt(0) - 48;\n  }\n\n  return s;\n}\n\nexport const MASTER_NUMBERS = [11, 22, 33, 44];\n\nexport function isMasterNumber(n: number): boolean {\n  return MASTER_NUMBERS.includes(n);\n}\n\nexport function reduceToSingle(\n  n: number,\n  options: { preserveMasters?: boolean } = { preserveMasters: false }\n): number {\n  // standard digital root with 0 allowed; never preserve masters here\n  if (n === 0) {\n    return 0;\n  }\n\n  let reduced = n;\n  while (reduced > 9) {\n    if (options?.preserveMasters && isMasterNumber(reduced)) {\n      break;\n    }\n\n    reduced = digitSum(reduced);\n  }\n\n  // optional tweak for exact \"00\" cases will be applied by caller, not here\n  return reduced;\n}\n\nexport function reduceToSingleWithSteps(\n  n: number,\n  options: { preserveMasters?: boolean } = { preserveMasters: false }\n): NumerologyModuleTypes.ReducedValueWithSteps {\n  const steps = [n];\n\n  if (n === 0) {\n    return {\n      reducedValue: 0,\n      reductionSteps: steps,\n    };\n  }\n\n  let reduced = n;\n\n  while (reduced > 9) {\n    if (options?.preserveMasters && isMasterNumber(reduced)) {\n      break;\n    }\n\n    reduced = digitSum(reduced);\n    steps.push(reduced);\n  }\n\n  return {\n    reducedValue: reduced,\n    reductionSteps: steps,\n  };\n}\n\nfunction reduceBlock(block: string): number {\n  const n = [...block].reduce(\n    (acc, curr) => acc + (curr.charCodeAt(0) - 48),\n    0\n  );\n\n  if (n === 0) {\n    return 0;\n  }\n\n  return reduceToSingle(n);\n}\n\n/**\n * Calculate the Kaabalistic life path number based on a birth date.\n * Note: This method produces more master numbers and never produces life path 2s (or any life path that ends with 0 like 10, 20, 30, etc.)\n */\nexport function calculateKaabalisticLifePath(\n  birthDate: Date\n): NumerologyModuleTypes.KaabalisticLifePathResult {\n  const { day, month, year1, year2 } = mapDatePartsToBlocksOfTwo(\n    parseDate(birthDate)\n  );\n\n  const reducedDay = reduceBlock(day);\n  const reducedMonth = reduceBlock(month);\n  const reducedYear1 = reduceBlock(year1);\n  const reducedYear2 = reduceBlock(year2);\n\n  const dayMonthSynthesis = parseInt(`${reducedDay}${reducedMonth}`, 10);\n  const yearSynthesis = parseInt(`${reducedYear1}${reducedYear2}`, 10);\n\n  const reducedDayMonthSynthesis = reduceToSingle(dayMonthSynthesis);\n  const reducedYearSynthesis = reduceToSingle(yearSynthesis);\n\n  const finalSynthesis = parseInt(\n    `${reducedDayMonthSynthesis}${reducedYearSynthesis}`,\n    10\n  );\n\n  const lifePath = reduceToSingleWithSteps(finalSynthesis, { preserveMasters: true });\n  const isMasterLifePath = isMasterNumber(lifePath.reducedValue);\n\n  const personalMythologyNumbers = [\n    parseInt(`${dayMonthSynthesis}${yearSynthesis}`, 10),\n    finalSynthesis,\n  ];\n\n  if (finalSynthesis !== lifePath.reducedValue) {\n    personalMythologyNumbers.push(lifePath.reducedValue);\n  }\n\n  const reducedLifePath = reduceToSingle(lifePath.reducedValue);\n  if (isMasterLifePath) {\n    personalMythologyNumbers.push(reducedLifePath);\n  }\n\n  return {\n    parts: { day, month, year1, year2 },\n    reducedParts: { reducedDay, reducedMonth, reducedYear1, reducedYear2 },\n    syntheses: {\n      dayMonthSynthesis,\n      yearSynthesis,\n      reducedDayMonthSynthesis,\n      reducedYearSynthesis,\n      finalSynthesis,\n    },\n    lifePath,\n    personalMythologyNumbers,\n  };\n}\n\n/**\n * Calculate the traditional straight across reduction life path number based on a birth date.\n */\nexport function calculateStraightAcrossReductionLifePath(\n  birthDate: Date\n): NumerologyModuleTypes.StraightAcrossReductionLifePathResult {\n  const { day, month, year } = parseDate(birthDate);\n\n  const result = reduceToSingleWithSteps(\n    parseInt(`${day}${month}${year}`, 10),\n    { preserveMasters: true }\n  );\n\n  return {\n    dayEnergy: reduceToSingleWithSteps(parseInt(day, 10), { preserveMasters: true }),\n    monthEnergy: reduceToSingleWithSteps(parseInt(month, 10), { preserveMasters: true }),\n    yearEnergy: reduceToSingleWithSteps(parseInt(year, 10), { preserveMasters: true }),\n    lifePath: result,\n  };\n}\n\nexport function getDateEnergies(birthDate: Date): NumerologyModuleTypes.DateEnergies {\n  const { day, month, year1, year2 } = mapDatePartsToBlocksOfTwo(\n    parseDate(birthDate)\n  );\n\n  const dayEnergy = reduceToSingleWithSteps(parseInt(day, 10), {\n    preserveMasters: true,\n  });\n  const monthEnergy = reduceToSingleWithSteps(parseInt(month, 10), {\n    preserveMasters: true,\n  });\n  const yearEnergy = reduceToSingleWithSteps(parseInt(year1 + year2, 10), {\n    preserveMasters: true,\n  });\n\n  return {\n    dayEnergy,\n    monthEnergy,\n    yearEnergy,\n  };\n}\n\nexport function calculateChallenges(birthDate: Date): NumerologyModuleTypes.Challenges {\n  const { day, month, year } = parseDate(birthDate);\n\n  const reducedDay = reduceToSingle(parseInt(day, 10));\n  const reducedMonth = reduceToSingle(parseInt(month, 10));\n  const reducedYear = reduceToSingle(parseInt(year, 10));\n\n  const subChallenge1 = Math.abs(reducedMonth - reducedDay);\n  const subChallenge2 = Math.abs(reducedDay - reducedYear);\n  const mainChallenge = Math.abs(subChallenge1 - subChallenge2);\n\n  return {\n    day: reducedDay,\n    month: reducedMonth,\n    year: reducedYear,\n    mainChallenge,\n    subChallenge1,\n    subChallenge2,\n  };\n}\n\n// Add days to a date\nfunction addDays(date: Date, days: number): Date {\n  const result = new Date(date);\n  result.setDate(result.getDate() + days);\n  return result;\n}\n\n// Find the most recent anniversary of the start date\nfunction getMostRecentStartDate(startDate: Date, today: Date): Date {\n  const startMonth = startDate.getMonth();\n  const startDay = startDate.getDate();\n  let recentStart = new Date(today.getFullYear(), startMonth, startDay);\n  if (recentStart > today) {\n    recentStart = new Date(today.getFullYear() - 1, startMonth, startDay);\n  }\n  return recentStart;\n}\n\nfunction numberToHeptadCycle(number: number): NumerologyModuleTypes.HeptadCycles {\n  if (number < 1 || number > 7) {\n    throw new Error(\"Number must be between 1 and 7\");\n  }\n\n  return number as NumerologyModuleTypes.HeptadCycles;\n}\n\n// Calculate cycles (annual and monthly)\nexport function calculateCycles(startDate: Date, today: Date): NumerologyModuleTypes.CycleInfo {\n  const mostRecentStart = getMostRecentStartDate(startDate, today);\n  const cycleLength = 52; // Fixed cycle length for monthly cycles\n\n  // Skip annual cycle calculation if start date is in the future\n  const isFutureDate = startDate > today;\n  let currentYearlyCycle = null;\n  let currentAgeCycle = null;\n  const ageCycles: NumerologyModuleTypes.CycleInfo[\"ageCycles\"] = [];\n  const yearlyCycles: NumerologyModuleTypes.CycleInfo[\"yearlyCycles\"] = [];\n  if (!isFutureDate) {\n    const birthYear = startDate.getFullYear();\n    const currentYear = today.getFullYear();\n    const ageInYears = currentYear - birthYear;\n    currentAgeCycle = (Math.floor(ageInYears / 7) % 7) + 1;\n    for (let i = 0; i < 7; i++) {\n      // cycle start for year is which year it started\n      const cycleStart = new Date(\n        birthYear + i * 7,\n        startDate.getMonth(),\n        startDate.getDate()\n      );\n\n      const cycle = i + 1;\n      const isCurrentCycle = cycle === currentAgeCycle;\n\n      if (isCurrentCycle) {\n        // Calculate yearly cycles within the current age cycle\n        // The yearly cycle is based on the person's exact age in years\n        // For example, if someone is 6 years old, they're in the 1st age cycle (0-7 years) and the 6th yearly cycle\n        const yearsSinceBirth = ageInYears;\n        const yearWithinAgeCycle = yearsSinceBirth % 7; // 0-6 representing which year within the current age cycle\n        currentYearlyCycle = yearWithinAgeCycle + 1; // Convert to 1-7 range\n\n        for (let j = 0; j < 7; j++) {\n          // Calculate the start date for each yearly cycle within the current age cycle\n          const ageCycleStartYear = birthYear + Math.floor(ageInYears / 7) * 7; // Start year of current age cycle\n          const yearlyCycleStart = new Date(\n            ageCycleStartYear + j,\n            startDate.getMonth(),\n            startDate.getDate()\n          );\n          const yearlyCycle = j + 1;\n\n          const isCurrentYearlyCycle = yearlyCycle === currentYearlyCycle;\n\n          yearlyCycles.push({\n            number: yearlyCycle,\n            description: NumerologyData.CYCLE_MEANINGS[numberToHeptadCycle(yearlyCycle)],\n            isActive: isCurrentYearlyCycle,\n            cycleStart: yearlyCycleStart,\n          });\n        }\n      }\n\n      ageCycles.push({\n        number: cycle,\n        description: NumerologyData.CYCLE_MEANINGS[numberToHeptadCycle(cycle)],\n        isActive: isCurrentCycle,\n        cycleStart,\n      });\n    }\n  }\n\n  // Monthly cycles (relative to start date)\n  const monthlyCycles: NumerologyModuleTypes.CycleInfo[\"monthlyCycles\"] = [];\n  for (let i = 0; i < 7; i++) {\n    const cycleStart = addDays(mostRecentStart, i * cycleLength);\n\n    monthlyCycles.push({\n      number: i + 1,\n      description: NumerologyData.CYCLE_MEANINGS[numberToHeptadCycle(i + 1)],\n      isActive: false,\n      cycleStart: cycleStart,\n    });\n  }\n\n  // Find current monthly cycle\n  let currentMonthlyCycle: NumerologyModuleTypes.CycleInfo[\"currentMonthlyCycle\"] = null;\n  let daysInMonthlyCycle = 0;\n  for (let i = 0; i < 7; i++) {\n    const cycleStart = addDays(mostRecentStart, i * cycleLength);\n    const nextCycleStart =\n      i < 6\n        ? addDays(mostRecentStart, (i + 1) * cycleLength)\n        : addDays(mostRecentStart, 366);\n    if (today >= cycleStart && today < nextCycleStart) {\n      currentMonthlyCycle = i + 1;\n      daysInMonthlyCycle =\n        Math.floor(\n          (today.getTime() - cycleStart.getTime()) / (1000 * 60 * 60 * 24)\n        ) + 1;\n      monthlyCycles[i].isActive = true;\n      break;\n    }\n  }\n\n  const totalDays =\n    Math.floor(\n      (today.getTime() - mostRecentStart.getTime()) / (1000 * 60 * 60 * 24)\n    ) + 1;\n\n  return {\n    yearlyCycles,\n    ageCycles,\n    monthlyCycles,\n    currentYearlyCycle,\n    currentAgeCycle,\n    currentMonthlyCycle,\n    daysInMonthlyCycle,\n    totalDays,\n  };\n}\n\nfunction calculateAge(birthDate: Date, today: Date = new Date()): number {\n  return today.getFullYear() - birthDate.getFullYear();\n}\n\nexport function calculateFibonacciCycle(\n  birthDate: Date,\n  today: Date\n): NumerologyModuleTypes.FibonacciCycle {\n  const currentAge = calculateAge(birthDate, today);\n\n  const cycle1 = reduceToSingleWithSteps(currentAge);\n  const cycle2 = reduceToSingleWithSteps(cycle1.reducedValue + 2);\n  const cycle3 = reduceToSingleWithSteps(\n    cycle1.reducedValue + cycle2.reductionSteps[0]\n  );\n  const cycle4 = reduceToSingleWithSteps(\n    cycle2.reductionSteps[0] + cycle3.reductionSteps[0]\n  );\n  const cycle5 = reduceToSingleWithSteps(\n    cycle3.reductionSteps[0] + cycle4.reductionSteps[0]\n  );\n  const cycle6 = reduceToSingleWithSteps(\n    cycle4.reductionSteps[0] + cycle5.reductionSteps[0]\n  );\n  const cycle7 = reduceToSingleWithSteps(\n    cycle5.reductionSteps[0] + cycle6.reductionSteps[0]\n  );\n\n  return {\n    currentAge,\n    cycle1,\n    cycle2,\n    cycle3,\n    cycle4,\n    cycle5,\n    cycle6,\n    cycle7,\n  };\n}\n\nfunction calculateSoulNumber(firstName: string): NumerologyModuleTypes.ReducedValueWithSteps {\n  const vowels = calculateGematria(firstName).vowels;\n\n  return {\n    reducedValue: vowels.finalValue,\n    reductionSteps: vowels.reductionSteps,\n  };\n}\n\n/**\n * This function wraps the month number to a 1-12 range.\n */\nfunction wrapMonth(month: number): number {\n  const wrappedMonth = (((month - 1) % 12) + 12) % 12;\n\n  return wrappedMonth + 1;\n}\n\n/**\n * Returns the year of the most recent birthday relative to today.\n */\nfunction getLastBirthdayYear(birthDate: Date, today: Date): number {\n  const thisYearsBirthday = new Date(\n    today.getFullYear(),\n    birthDate.getMonth(),\n    birthDate.getDate()\n  );\n\n  return today >= thisYearsBirthday\n    ? today.getFullYear()\n    : today.getFullYear() - 1;\n}\n\nexport function calculatePersonalYear(\n  birthDate: Date,\n  today: Date = new Date()\n): NumerologyModuleTypes.ReducedValueWithSteps {\n  const { day, month } = parseDate(birthDate);\n  const yearToUse = getLastBirthdayYear(birthDate, today);\n\n  return reduceToSingleWithSteps(\n    parseInt(day, 10) + parseInt(month, 10) + yearToUse,\n    { preserveMasters: true }\n  );\n}\n\nexport function calculatePersonalPeriods(\n  birthDate: Date,\n  yearToUse: number,\n  lifePath: number,\n  soulNumber: number,\n  currentAge: number\n): [NumerologyModuleTypes.PersonalPeriod, NumerologyModuleTypes.PersonalPeriod, NumerologyModuleTypes.PersonalPeriod] {\n  const { month } = parseDate(birthDate);\n  const birthMonth = parseInt(month, 10);\n\n  const periods: [NumerologyModuleTypes.PersonalPeriod, NumerologyModuleTypes.PersonalPeriod, NumerologyModuleTypes.PersonalPeriod] = [\n    {\n      startMonth: wrapMonth(birthMonth + 0),\n      endMonth: wrapMonth(birthMonth + 3),\n      value: reduceToSingleWithSteps(yearToUse + currentAge, {\n        preserveMasters: true,\n      }),\n    },\n    {\n      startMonth: wrapMonth(birthMonth + 4),\n      endMonth: wrapMonth(birthMonth + 7),\n      value: reduceToSingleWithSteps(yearToUse + lifePath, {\n        preserveMasters: true,\n      }),\n    },\n    {\n      startMonth: wrapMonth(birthMonth + 8),\n      endMonth: wrapMonth(birthMonth + 11),\n      value: reduceToSingleWithSteps(yearToUse + soulNumber, {\n        preserveMasters: true,\n      }),\n    },\n  ];\n\n  return periods;\n}\n\nfunction diffInPersonalMonths(birthDate: Date, today: Date): number {\n  const lastYear = getLastBirthdayYear(birthDate, today);\n  const base = new Date(lastYear, birthDate.getMonth(), birthDate.getDate());\n\n  let k =\n    (today.getFullYear() - base.getFullYear()) * 12 +\n    (today.getMonth() - base.getMonth());\n\n  // Only advance to the next personal month on the birth *day* each month\n  if (today.getDate() < birthDate.getDate()) {\n    k -= 1;\n  }\n\n  if (k < 0) k = 0;\n  if (k > 12) k = 12;\n\n  return k;\n}\n\nexport function calculatePersonalMonths(\n  birthDate: Date,\n  personalYear: NumerologyModuleTypes.ReducedValueWithSteps,\n  today: Date\n): {\n  personalMonths: NumerologyModuleTypes.PersonalCycles[\"personalMonths\"];\n  currentPersonalMonthIndex: number;\n} {\n  const { month } = parseDate(birthDate);\n  const firstPersonalMonth = parseInt(month, 10);\n\n  const personalMonths: NumerologyModuleTypes.PersonalMonth[] = [];\n  for (let i = 0; i < 12; i++) {\n    const m = wrapMonth(firstPersonalMonth + i);\n    const value = reduceToSingleWithSteps(personalYear.reducedValue + m, {\n      preserveMasters: true,\n    });\n    personalMonths.push({ month: m, value });\n  }\n\n  const currentPersonalMonthIndex = diffInPersonalMonths(birthDate, today);\n\n  return {\n    personalMonths: personalMonths as NumerologyModuleTypes.PersonalCycles[\"personalMonths\"],\n    currentPersonalMonthIndex,\n  };\n}\n\nexport function calculatePersonalCycles(\n  birthDate: Date,\n  today: Date = new Date(),\n  firstName: string\n): NumerologyModuleTypes.PersonalCycles {\n  const yearToUse = getLastBirthdayYear(birthDate, today);\n\n  const personalYear = calculatePersonalYear(birthDate, today);\n\n  const currentAge = calculateAge(\n    birthDate,\n    new Date(yearToUse, today.getMonth(), today.getDate())\n  );\n  const { lifePath } = calculateKaabalisticLifePath(birthDate);\n  const soulNumber = calculateSoulNumber(firstName);\n\n  const personalPeriods = calculatePersonalPeriods(\n    birthDate,\n    yearToUse,\n    lifePath.reducedValue,\n    soulNumber.reducedValue,\n    currentAge\n  );\n\n  const { personalMonths, currentPersonalMonthIndex: currentPersonalMonth } =\n    calculatePersonalMonths(birthDate, personalYear, today);\n\n  // Derive the period from the month index (0–12). Clamp 12 to last period.\n  const currentPersonalPeriod = Math.floor(\n    Math.min(currentPersonalMonth, 11) / 4\n  );\n\n  return {\n    currentAge,\n    lifePath,\n    soulNumber,\n    personalYear,\n    personalPeriods,\n    personalMonths,\n    currentPersonalPeriod,\n    currentPersonalMonth,\n    yearUsedOnCalculations: yearToUse,\n  };\n}\n\nexport { NumerologyData };\nexport type { NumerologyModuleTypes };\n\n"]}