diff --git a/public/locales/v1/en/male_en.json b/public/locales/v1/en/male_en.json
index eb6c54c..e56bf47 100644
--- a/public/locales/v1/en/male_en.json
+++ b/public/locales/v1/en/male_en.json
@@ -683,6 +683,12 @@
"description": "By continuing you agree that if you don't cancel prior to the end of the -days trial, you will automatically be charged for the introductory period of 14 days thereafter the standard rate of every 14 days until you cancel in settings. Learn more about cancellation and refund policy in Subscription terms."
},
"/trial-choice": {
+ "text_variant_1": "AURA is the only accurate app with reliable astrological predictions, verified by professionals and guaranteed to provide accurate astrological forecasts.
AURA has already helped millions of people find happiness and discover the whole truth about their relationships.
An astrological forecast that will completely change your life is almost ready! Before we provide it to you, we would like to offer you the opportunity to choose the amount you consider reasonable to try AURA for days and which you think is fair for the changes that will happen to you:
- You will discover all the most intimate secrets that the stars have prepared for you and solve relationship issues within just one month; - You will once and for all put the finishing touches on unresolved issues and forget about problems that have been haunting you for years (if not decades); - You will save hundreds of dollars on fake and unprofessional astrological predictions and fortune tellers; - You will receive not only a personal astrological forecast but also personalized daily horoscopes, learn who and how is draining your energy, and get other personalized readings.
",
+ "text_variant_1_span": "A -day trial period costs us $5, but please choose the amount that suits you best:",
+ "text_variant_2": "AURA is the only app you can trust for accurate astrological insights, crafted and verified by seasoned professionals, ensuring you receive predictions that are both reliable and transformative.
AURA has already transformed the lives of millions, bringing clarity, joy, and a deeper understanding of their relationships.
Your life-changing astrological forecast is almost ready! But before we reveal the secrets that will change your life, we want to give you the freedom to choose how much you feel is fair to try AURA for days. This is your chance to decide what the transformation is worth to you:
- Uncover the deepest, most intimate secrets the stars have in store for you, and watch your relationship issues resolve in just one month; - Finally, put an end to those lingering issues that have been troubling you for years, maybe even decades; - Save hundreds of dollars by avoiding unreliable astrologers and fake fortune tellers; - Receive not just a personal astrological forecast but also personalized daily horoscopes, learn who's draining your energy, and get exclusive, tailored readings.
",
+ "text_variant_2_span": "While a -day trial costs us $5, we want you to choose the amount you believe is right for you:",
+ "text_variant_3": "Discover AURA—the only app that delivers truly accurate astrological forecasts, with predictions you can trust, all verified by top industry professionals. Your path to clarity and happiness starts here.
Millions have already found happiness and uncovered the truth about their relationships with AURA. Now, it’s your turn.
Your life-changing astrological forecast is almost ready! Before we share this powerful insight with you, we’re giving you the chance to set your own price to experience AURA for days. You decide what feels right for the life-changing revelations you’ll receive:
- Reveal the deepest secrets the universe has in store for you and resolve your relationship dilemmas within a month; - Finally close the chapter on long-standing issues that have plagued you for years, perhaps even decades; - Avoid wasting hundreds of dollars on untrustworthy, fake astrologers; - Gain access to your personal astrological forecast, receive daily personalized horoscopes, learn who’s been draining your energy, and benefit from other insightful readings.
",
+ "text_variant_3_span": "Our -day trial typically costs us $5, but you get to choose the amount that feels right for you:",
"button": "Choose an amount that you think is reasonable."
},
"skip_trial": "Skip Trial",
diff --git a/public/old-backend/auraweb.json b/public/old-backend/auraweb.json
new file mode 100644
index 0000000..d498b41
--- /dev/null
+++ b/public/old-backend/auraweb.json
@@ -0,0 +1 @@
+{"data":{"subscription_popup":true,"locale":"en","alerts":{},"version":"5.0","apple_music_api":{"jwt":"eyJhbGciOiJFUzI1NiIsImtpZCI6IlRSUDZXTUtERFYifQ.eyJpc3MiOiJLVEFMQTg4WkNSIiwiaWF0IjoxNzM2OTUyODM3LCJleHAiOjE3MzcwODI0Mzd9.0XjbuMOZ_7EcejBb5WEQxWH0tAkd1VqbbFJnYDDaKgpoLBd2fM7nYYHEOugKnmfWaJJt-OguJpmKI6opG1ilPg"},"chargebee":{"site":"kefirapp-test","publishableKey":"test_VtWSamZEfP175nqGZhkD0uvoouHieElv"},"first_open_subscription_popup":true,"runs_before_subscription_popup":0,"stripe_public_key":"pk_live_51Ndqf4IlX4lgwUxrdyEW5BKH30OLEYemyVj3XFqi3RNx3K149o0jNQEswuIutBXNQ4CeqJuODh6OMT9I3r1fq3VT00ncnJjWov","smartlook_manage":false,"appirater_alerts":[],"active_iaps":[{"bundle_id":"auraweb.yearlymembership","active":true,"subscription_type":"yearly"},{"bundle_id":"auraweb.weeklymembership","active":true,"subscription_type":"trial"},{"bundle_id":"auraweb.weekmembership","active":true,"subscription_type":"trial"},{"bundle_id":"auraweb.monthlymembership","active":true,"subscription_type":"monthly"}]}}
\ No newline at end of file
diff --git a/public/old-backend/elements.json b/public/old-backend/elements.json
new file mode 100644
index 0000000..6d29005
--- /dev/null
+++ b/public/old-backend/elements.json
@@ -0,0 +1 @@
+{"data":{"variant":"a","groups":[]}}
\ No newline at end of file
diff --git a/public/old-backend/t.json b/public/old-backend/t.json
new file mode 100644
index 0000000..962e88e
--- /dev/null
+++ b/public/old-backend/t.json
@@ -0,0 +1 @@
+{"translations":[{"key":"chat.inapppush.title","value":"{name} Astrologer"},{"key":"chat.inapppush.message","value":"New message"},{"key":"au.my_horoscope.loading4","value":"Today's Forecast Compilation"},{"key":"au.my_horoscope.loading3","value":"Prediction Crafting"},{"key":"au.my_horoscope.loading2","value":"Love Energy Analysis"},{"key":"au.my_horoscope.loading1","value":"Astrological Data Analysis"},{"key":"au.my_horoscope.loading_title","value":"In-Depth Personal Analysis and Daily Horoscope"},{"key":"aura.chakras.onboarding","value":"Chat with a professional Advisor and get answers to your pressing questions"},{"key":"aura.stat_fields.feelings","value":"LOVE PARTNER'S FEELINGS"},{"key":"aura.stat_fields.happiness","value":"LOVE RELATIONSHIP PROSPECTS"},{"key":"aura.3.loading","value":"Love Ex Analysis"},{"key":"aura.2.loading","value":"Love Partner's feelings Analysis"},{"key":"aura.1.loading","value":"Love Relationship Prospects Analysis"},{"key":"aura.stat_fields.energy_loss","value":"SELF-LOVE"},{"key":"aura.stat_fields.energy_loss.negative","value":"SELF-LOVE"},{"key":"aura.stat_fields.self_control","value":"LOVE EX"},{"key":"au.ar.no","value":"Do not use AR"},{"key":"au.ar.yes","value":"Continue"},{"key":"aura_subscrption.text_end_proplan2","value":"And then $59.99 forever. No commitment. Cancel anytime."},{"key":"aura_subscrption.text_end","value":"✔️Secured with iTunes.3-Day Free Trial. And then $59.99 per year. Cancel anytime."},{"key":"auweb.button.next","value":"TRY NOW"},{"key":"au.awareness_purchase.text_under_button","value":"$99.99 one time purchase. No commitment."},{"key":"au.awareness_purchase.text_above_button","value":"One-time purchase $99.99"},{"key":"au.awareness_purchase.button","value":"Start Awareness"},{"key":"au.awareness_purchase.text1","value":"You have used one awareness for today. Activate unlimited awarenesses for $99.99, valid forever, right now!"},{"key":"au.awareness_purchase.title","value":"Awareness PRO Plan"},{"key":"au.question.text2","value":"Are you adventurous person?"},{"key":"au.question.text1","value":"Do you enjoy time spent alone?"},{"key":"au.compatibility_purchase.text_under_button","value":"$99.99 one time purchase.No commitment."},{"key":"au.compatibility_purchase.text_above_button","value":"One-time purchase $99.99"},{"key":"au.compatibility_purchase.button","value":"Start Compatibility"},{"key":"au.compatibility_purchase.text1","value":"You have used one compatibility per day. Activate an unlimited number of compatibilities for $99.99 forever, right now!"},{"key":"au.compatibility_purchase.title","value":"Unlimited Compatibility Access"},{"key":"auweb.pay.information","value":"You'll pay %@ today for your 3-day trial, and then nineteen dollars every two weeks after your trial ends."},{"key":"au.ball.first_answer","value":"It's better for you not to know about this right now."},{"key":"au.one_time_purchase.unlock_time","value":"Get it all now for $39.99"},{"key":"aura_subscrption.trial.billed","value":"then $7.99 \r\nper week"},{"key":"au.meditations.button_awareness","value":"Awareness"},{"key":"au.meditations.button_breath","value":"Breath"},{"key":"au.meditations.text1","value":"Our unique practices will help you restore your energy balance, improve your well-being, and learn more about yourself. Let's begin!"},{"key":"au.meditations.title","value":"Meditations"},{"key":"au.crystal_ball.text_under_button","value":"$19.99 one time purchase.No commitment."},{"key":"au.crystal_ball.text_above_button","value":"One-time purchase $19.99"},{"key":"au.crystal_ball.button","value":"Start Crystal Ball"},{"key":"au.crystal_ball.text1","value":"The prediction ball is ready for your use. Activate unlimited answers from the ball for just $19.99 forever, right now!"},{"key":"au.crystal_ball.title","value":"Crystal Ball"},{"key":"aura.warming_up.body","value":"The analysis of your Aura revealed a negative energy influence on you and a partial positive one. Such a combination is very rare! Which one would you like to start with?"},{"key":"aura.warming_up.button","value":"GOOD BAD"},{"key":"subscription_hint.array","value":"And then %@ per three month. No commitment. Cancel anytime."},{"key":"subscription_hint.yearly","value":"And then %@ per year. Cancel anytime."},{"key":"subscription_hint.monthly","value":"And then %@ per month. No commitment. Cancel anytime."},{"key":"aura.4.loading","value":"Crafting Restorative Practices"},{"key":"aura.1.clap","value":"You're doing great"},{"key":"aura.2.clap","value":"There's just a little left"},{"key":"au.2_week.web","value":"2-Week Plan\r\n$1.46 per day"},{"key":"aura_subscrption.monthly.try","value":"A MONTH FOR"},{"key":"aura_subscrption.monthly.price","value":"$19.99"},{"key":"aura_subscrption.monthly.billed","value":"billed every\r\n month"},{"key":"aura_subscrption.quarterly.try","value":"3 MONTHS FOR"},{"key":"aura_subscrption.quarterly.billed","value":"billed every\r\n3 months"},{"key":"aura_subscrption.quarterly.price","value":"$39.99"},{"key":"aura_subscrption.trial.try","value":"TRY 3 DAYS FOR"},{"key":"aura_subscrption.trial.price","value":"FREE"},{"key":"aura_subscrption.hot_deal.auto_renewable","value":"auto-renewable"},{"key":"aura_subscrption.hot_deal","value":"HOT DEAL"},{"key":"zodiac_signs.metas.mode_element","value":"Mode + Element"},{"key":"aura.money_compatibility.button","value":"low MONEY energy. Determine who drains your energy"},{"key":"aura.sexual_compatibility.button","value":"Discover who's draining your SEXUAL energy"},{"key":"aura.friendship_compatibility.button","value":"Find out who drains your FRIENDSHIP energy"},{"key":"aura.name_person.body","value":"Write the name of the person with whom you want to check compatibility."},{"key":"awareness.title","value":"Focus on your chakras, repeat the following:"},{"key":"aura.choose_age.body","value":"Select what exactly you want to know."},{"key":"forecast.review","value":"Based on your aura you are in a playful mood today. You should be able to infect others with that spirit easily. Make games out of work and chores and try not to take anything too seriously."},{"key":"aura.breath_compatibility.button","value":"Discover who is causing your financial energy loss."},{"key":"breathe.title","value":"Stop and breathe to help you relax and focus on what really matters."},{"key":"breathe.subtitle","value":"Breathing practice will help improve your aura. Breath in the positive energy, breathe out the negative..."},{"key":"aura.compatibility_breath.button","value":"Use all the power of your Aura"},{"key":"awareness.subtitle","value":"…"},{"key":"subscription_hint.trial","value":"And then %@ per week. No commitment. Cancel anytime."},{"key":"aura_subscrption.yearly.try","value":"YEARLY FOR"},{"key":"au.web_onbording.start","value":"Our system offers you to undergo practices to improve energies where you have a leakage. Click to begin."},{"key":"aura.aura.onboarding","value":"Our system offers you to undergo practices to improve energies where you have a leakage. Click to begin."},{"key":"aura.breathing.onboarding","value":"Relaxation Through Breathing - allow yourself a minute of doing nothing and fill yourself with pure energy. A unique breathing practice with augmented reality."},{"key":"aura.compatibility.onboarding","value":"Your Compatibility with close people. Find out who drains your energy, and who fills you with the energy of love."},{"key":"aura.begin_breathe.button","value":"BEGIN"},{"key":"aura.personal_aura.button","value":"Receive an In-Depth Analysis and Today's Horoscope"},{"key":"aura_subscrption.text_end_proplan","value":" Unlimited access to Check Compatibility."},{"key":"aura.moons.onboarding","value":"Here you will learn everything about your Zodiac sign and download wallpapers with your sign. IMPORTANT - new wallpapers appear every day"},{"key":"aura.breath_in.text","value":"Breath_in"},{"key":"aura.breath_out.text","value":"Breath_out"},{"key":"aura.breath_relax.text","value":"Breath & Relax"},{"key":"aura.warmin_good.button","value":"GOOD"},{"key":"aura.attention.title","value":"ATTENTION"},{"key":"aura.name_1.review","value":"Samantha Green"},{"key":"aura.name_2.review","value":"James Wilson"},{"key":"au.web_onbording.name","value":"Write the name of the person with whom you want to check Сompatibility."},{"key":"au.web_onbording.date","value":"Choose his birthdate."},{"key":"au.web_onbording.category","value":"Write the name of the person with whom you want to check Сompatibility."},{"key":"au.web_onbording.moon","value":"Here you will learn everything about your Zodiac sign and download wallpapers with your sign. IMPORTANT - new wallpapers appear every day."},{"key":"aura.review_2.content","value":"I don't know why, but I always had bad experiences in relationships and couldn't find the one who would understand and love me. So, I took a special extended test and immediately figured everything out. It turns out that the birth date of the chosen one and number coincidences are very important in relationships. Now I consider this in all areas, and it helps me a lot."},{"key":"aura.review_1.content","value":"As for me, money just doesn't stick with me at all. It turned out that it wasn't because I was bad or irresponsible, but it was because of my partner. We delved deeply into this issue thanks to Aura, and what do you think? Everything changed the very next day. Now we are happy and wealthy."},{"key":"au.web_onbording.breathing","value":"Relaxation Through Breathing - allow yourself a minute of doing nothing and fill yourself with pure energy. A unique breathing practice with augmented reality."},{"key":"au.web_onbording.compatibility","value":"Your Compatibility with close people. Find out who drains your energy, and who fills you with the energy of love."},{"key":"aura_subscrption.yearly.price","value":"$59.99"},{"key":"aura.web.price_selection","value":"Money shouldn't get in the way of finding something for your well-being"},{"key":"aura_subscrption.yearly.billed","value":"billed yearly"},{"key":"aura.web.email_title","value":"We will email you a copy for easy access."},{"key":"au.friends.window","value":"Your two Friends are already using the full power of Aura"},{"key":"au.more_llc.button","value":"More About "},{"key":"au.name.my_name","value":"My Name"},{"key":"aura.warmin_bad.button","value":"BAD"},{"key":"au.try_for.button","value":"$1 - Try Now"},{"key":"au.get50.only","value":"GET Lower Price Today Only"},{"key":"au.name.person","value":"The Person’s Name"},{"key":"au.onboarding.my_name","value":"Your Name for Compatibility"},{"key":"au.free_trial_web.week","value":"Use 7-Days Trial"},{"key":"aura.ten_breath.button","value":"Increase up to 10%. Practice for the Energy of Money"},{"key":"au.moons.button","value":"Find out about Friends or Family"},{"key":"au.web.pay_good_title","value":"Your payment was successful"},{"key":"auweb.pay_good.text1","value":"Thank You!"},{"key":"auweb.pay_good.title","value":"Your payment was successful"},{"key":"auweb.pay_good.button","value":"Next"},{"key":"auweb.pay_bad.text1","value":"1. You entered the correct data during checkout\r\n\r\n2. You have enough funds available\r\n\r\n3. Your card can be used for international payment"},{"key":"auweb.pay_bad.text2","value":"If you're still having trouble, try a different payment method."},{"key":"auweb.pay_bad.button","value":"Update details"},{"key":"auweb.pay_bad.title","value":"If you're still having trouble, try a different payment method."},{"key":"aura_subscrption.title_moons","value":"To continue"},{"key":"aura.choose_birthdate.body","value":"Choose the birthdate of the person with whom you want to check compatibility."},{"key":"au.anxiety.category","value":"Anxiety"},{"key":"au.calm.category","value":"Calm"},{"key":"au.focus.category","value":"Focus"},{"key":"au.relationships.category","value":"Relationships"},{"key":"au.sleep.category","value":"Sleep"},{"key":"au.birds.category","value":"Birds"},{"key":"au.bonfire.category","value":"Bonfire"},{"key":"au.cat.category","value":"Cat"},{"key":"au.metropolis.category","value":"Metropolis"},{"key":"au.rain.category","value":"Rain"},{"key":"au.waterfall.category","value":"Waterfall"},{"key":"au.sea.category","value":"Sea"},{"key":"aura_subscrption.text_compatibility","value":" Discover everything about this person without limitations."},{"key":"aura_subscrption.text_horoscope","value":" Your extended Analysis and personal Horoscope for today are ready."},{"key":"aura_subscrption.text_moons","value":" You've read halfway about yourself."},{"key":"aura_subscrption.title_horoscope","value":"Personal Analysis"},{"key":"aura_subscrption.title_compatibility","value":"To continue"},{"key":"au.magic.title","value":"Welcome to the Magic Prediction Ball!"},{"key":"au.magic.text1","value":"Ask a question that can be answered with a \"yes\" or \"no\", and I'll try to predict your future. When you're ready, pose your question and I'll reveal what the ball predicts."},{"key":"auweb.agree.text1","value":"By proceeding, you agree that if you do not cancel your subscription before the end of the 7-day trial period, you will be automatically charged sixty nine US dollars ninty nine cents annual until you cancel the subscription in the settings."},{"key":"au.besties.title","value":"Preparing data on"},{"key":"au.besties.loading1","value":" Besties' Horoscope 1"},{"key":"au.besties.loading2","value":" Besties' Horoscope 2"},{"key":"au.besties.loading3","value":" Besties' Horoscope 3"},{"key":"au.besties.loading4","value":" Besties' Horoscope 4"},{"key":"au.besties.result","value":"Today's Horoscope with"},{"key":"au.prediction_moons.loading_title","value":"Preparing data"},{"key":"au.prediction_moons.loading1","value":"Moons losding 1"},{"key":"au.prediction_moons.loading2","value":"Moons losding 2"},{"key":"au.prediction_moons.loading3","value":"Moons losding 3"},{"key":"au.prediction_moons.loading4","value":"Moons losding 4"},{"key":"au.prediction_moons.result_title","value":"Forecast based on your moons"},{"key":"au.name_horoscope.loading_title","value":"Preparing Name"},{"key":"au.name_horoscope.loading1","value":"Name's Horoscope 1"},{"key":"au.name_horoscope.loading2","value":"Name's Horoscope 2"},{"key":"au.name_horoscope.loading3","value":"Name's Horoscope 3"},{"key":"au.name_horoscope.loading4","value":"Name's Horoscope 4"},{"key":"au.thermal_compatibility.loading_title","value":"Preparing Thermal"},{"key":"au.thermal_compatibility.loading1","value":"Thermal Compatibility 1"},{"key":"au.thermal_compatibility.loading2","value":"Thermal Compatibility 2"},{"key":"au.thermal_compatibility.loading3","value":"Thermal Compatibility 3"},{"key":"au.thermal_compatibility.loading4","value":"Thermal Compatibility 4"},{"key":"au.moonse_phase.loading_title","value":"Preparing Moon Phase"},{"key":"au.moonse_phase.loading1","value":"Moon Phase 1"},{"key":"au.moonse_phase.loading2","value":"Moon Phase 2"},{"key":"au.moonse_phase.loading3","value":"Moon Phase 3"},{"key":"au.moonse_phase.loading4","value":"Moon Phase 4"},{"key":"au.moonse_phase.result_title","value":"Impact on Your Personal Energy Today"},{"key":"au.energy_vampirism.loading_title","value":"Preparing data Vampirism"},{"key":"au.energy_vampirism.loading4","value":"Vampirism 4"},{"key":"au.energy_vampirism.loading3","value":"Vampirism 3"},{"key":"au.energy_vampirism.loading2","value":"Vampirism 2"},{"key":"au.energy_vampirism.loading1","value":"Vampirism 1"},{"key":"au.energy_vampirism.result_title","value":" Energy Vampirism Today"},{"key":"au.thermal_compatibility.result_title","value":"Thermal Aura Compatibility for Today with "},{"key":"au.moonse_phase.preview","value":"Discover the Impact on Your Personal Energy"},{"key":"au.energy_vampirism.preview","value":"Find out if you're an energy vampire today or not?"}],"meta":{"locale":"en"}}
\ No newline at end of file
diff --git a/public/v1/email-marketing/messages.png b/public/v1/email-marketing/messages.png
deleted file mode 100644
index fd2e590..0000000
Binary files a/public/v1/email-marketing/messages.png and /dev/null differ
diff --git a/public/v1/email-marketing/messages.svg b/public/v1/email-marketing/messages.svg
new file mode 100644
index 0000000..10e1bc1
--- /dev/null
+++ b/public/v1/email-marketing/messages.svg
@@ -0,0 +1,25 @@
+
diff --git a/public/v1/email-marketing/payments.png b/public/v1/email-marketing/payments.png
new file mode 100644
index 0000000..6c60729
Binary files /dev/null and b/public/v1/email-marketing/payments.png differ
diff --git a/public/v1/email-marketing/smartphone.png b/public/v1/email-marketing/smartphone.png
deleted file mode 100644
index c2d2981..0000000
Binary files a/public/v1/email-marketing/smartphone.png and /dev/null differ
diff --git a/public/v1/email-marketing/smartphone.svg b/public/v1/email-marketing/smartphone.svg
new file mode 100644
index 0000000..5c24c44
--- /dev/null
+++ b/public/v1/email-marketing/smartphone.svg
@@ -0,0 +1,706 @@
+
diff --git a/src/api/api.ts b/src/api/api.ts
index 6cf58ac..cc20704 100644
--- a/src/api/api.ts
+++ b/src/api/api.ts
@@ -2,15 +2,12 @@ import { createMethod } from './utils'
import {
User,
Auras,
- Element,
Elements,
AuthTokens,
Apps,
Assets,
AssetCategories,
DailyForecasts,
- SubscriptionItems,
- SubscriptionCheckout,
SubscriptionStatus,
AICompatCategories,
AICompats,
@@ -18,9 +15,6 @@ import {
UserCallbacks,
Translations,
Zodiacs,
- GoogleAuth,
- SubscriptionPlans,
- AppleAuth,
AIRequestsV2,
Assistants,
OpenAI,
@@ -41,12 +35,10 @@ import {
} from './resources'
const api = {
- auth: createMethod(AuthTokens.createRequest),
- appleAuth: createMethod(AppleAuth.createRequest),
- googleAuth: createMethod(GoogleAuth.createRequest),
+ // auth: createMethod(AuthTokens.createRequest),
getRealToken: createMethod(AuthTokens.createGetRealTokenRequest),
getAppConfig: createMethod(Apps.createRequest),
- getElement: createMethod(Element.createRequest),
+ // getElement: createMethod(Element.createRequest),
getElements: createMethod(Elements.createRequest),
getUser: createMethod(User.createGetRequest),
updateUser: createMethod(User.createPatchRequest),
@@ -54,9 +46,8 @@ const api = {
getAssetCategories: createMethod(AssetCategories.createRequest),
getDailyForecasts: createMethod(DailyForecasts.createRequest),
getAuras: createMethod(Auras.createRequest),
- getSubscriptionItems: createMethod(SubscriptionItems.createRequest),
- getSubscriptionPlans: createMethod(SubscriptionPlans.createRequest),
- getSubscriptionCheckout: createMethod(SubscriptionCheckout.createRequest),
+ // getSubscriptionPlans: createMethod(SubscriptionPlans.createRequest),
+ // getSubscriptionCheckout: createMethod(SubscriptionCheckout.createRequest),
getSubscriptionStatus: createMethod(SubscriptionStatus.createRequest),
// new get subscription status
getSubscriptionStatusNew: createMethod(SubscriptionStatus.createRequestNew),
@@ -101,6 +92,7 @@ const api = {
// Session
createSession: createMethod(Session.createRequest),
updateSession: createMethod(Session.updateRequest),
+ getLocaleTranslations: createMethod(Session.getLocaleRequest),
// Chats
getChatsCategories: createMethod(ChatsCategories.getRequest),
getChatMessages: createMethod(ChatMessages.getRequest),
diff --git a/src/api/resources/AppleAuth.ts b/src/api/resources/AppleAuth.ts
deleted file mode 100644
index da00711..0000000
--- a/src/api/resources/AppleAuth.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import routes from "@/routes";
-
-export interface Payload {
- origin: string;
-}
-
-export type Response = unknown;
-
-export const createRequest = ({ origin }: Payload): Request => {
-
- const url = new URL(routes.server.appleAuth(origin));
- return new Request(url, { method: "POST" });
-};
diff --git a/src/api/resources/AuthTokens.ts b/src/api/resources/AuthTokens.ts
index 6e3c976..e9d83e4 100644
--- a/src/api/resources/AuthTokens.ts
+++ b/src/api/resources/AuthTokens.ts
@@ -1,7 +1,7 @@
import routes from "@/routes";
import { AuthToken } from "../types";
import { User } from "./User";
-import { getAuthHeaders, getBaseHeaders } from "../utils";
+import { getAuthHeaders } from "../utils";
export interface PayloadRegisterByEmail {
email: string;
@@ -13,7 +13,7 @@ export interface PayloadAuthWithJWT {
jwt: string;
}
-export type Payload = PayloadRegisterByEmail | PayloadAuthWithJWT;
+// export type Payload = PayloadRegisterByEmail | PayloadAuthWithJWT;
export interface Response {
auth: {
@@ -36,11 +36,11 @@ export interface JwtPayload {
iss: string;
}
-export const createRequest = (payload: Payload): Request => {
- const url = new URL(routes.server.token());
- const body = JSON.stringify({ auth: { ...payload } });
- return new Request(url, { method: "POST", headers: getBaseHeaders(), body });
-};
+// export const createRequest = (payload: Payload): Request => {
+// const url = new URL(routes.server.token());
+// const body = JSON.stringify({ auth: { ...payload } });
+// return new Request(url, { method: "POST", headers: getBaseHeaders(), body });
+// };
export interface PayloadGetRealToken {
token: string;
diff --git a/src/api/resources/Element.ts b/src/api/resources/Element.ts
deleted file mode 100644
index 0de9cb8..0000000
--- a/src/api/resources/Element.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import routes from '@/routes'
-import { getBaseHeaders } from '../utils'
-
-export interface Payload {
- locale: string
- type: string
-}
-
-export interface Response {
- data: {
- variant: string
- element: Element
- }
-}
-
-export interface Element {
- type: string
- href: string
- title: string
- url_slug: string
- body: string
-}
-
-export const createRequest = ({ locale, type }: Payload): Request => {
- const url = new URL(routes.server.element(type))
- const query = new URLSearchParams({ locale })
-
- url.search = query.toString()
-
- return new Request(url, { method: 'GET', headers: getBaseHeaders() })
-}
diff --git a/src/api/resources/GoogleAuth.ts b/src/api/resources/GoogleAuth.ts
deleted file mode 100644
index 4f66cee..0000000
--- a/src/api/resources/GoogleAuth.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-export interface Payload {
- requestUrl: string;
-}
-
-export interface Response {
- access_token: string;
-}
-
-export const createRequest = ({ requestUrl }: Payload): Request => {
- const url = new URL(requestUrl);
- return new Request(url, {
- method: "GET",
- });
-};
diff --git a/src/api/resources/Paywall.ts b/src/api/resources/Paywall.ts
index 4c303f4..16a1cfe 100644
--- a/src/api/resources/Paywall.ts
+++ b/src/api/resources/Paywall.ts
@@ -17,7 +17,9 @@ export enum EPlacementKeys {
"aura.placement.secret.discount" = "aura.placement.secret.discount",
"aura.placement.palmistry.main" = "aura.placement.palmistry.main",
"aura.placement.palmistry.redesign" = "aura.placement.palmistry.redesign",
- "aura.placement.chat" = "aura.placement.chat"
+ "aura.placement.chat" = "aura.placement.chat",
+ "aura.placement.email.palmistry" = "aura.placement.email.palmistry",
+ "aura.placement.email.palmistry.discount" = "aura.placement.email.palmistry.discount"
}
export interface ResponseGetSuccess {
diff --git a/src/api/resources/Session.ts b/src/api/resources/Session.ts
index 4a2d479..85b945b 100644
--- a/src/api/resources/Session.ts
+++ b/src/api/resources/Session.ts
@@ -2,6 +2,7 @@ import routes from "@/routes";
import { getBaseHeaders } from "../utils";
import { IUTM } from "@/store/utm";
import { ICreateAuthorizeUser } from "./User";
+import { ELocalesPlacement } from "@/locales";
export interface PayloadCreate {
feature: string, // Type: string
@@ -78,6 +79,15 @@ export interface ResponseUpdate {
message: "Session updated" | string
}
+export interface ResponseGetLocale {
+ male: Record
+ female: Record
+ fallback: {
+ male: Record,
+ female: Record
+ }
+}
+
export const createRequest = (data: PayloadCreate) => {
const url = new URL(routes.server.createSession());
const body = JSON.stringify(data);
@@ -97,3 +107,18 @@ export const updateRequest = ({ data, sessionId }: PayloadUpdate) => {
headers: getBaseHeaders()
});
};
+
+export interface PayloadGetLocale {
+ funnel: ELocalesPlacement,
+ locale: string
+}
+
+export const getLocaleRequest = (data: PayloadGetLocale) => {
+ const url = new URL(routes.server.getLocale());
+ const body = JSON.stringify(data);
+ return new Request(url, {
+ method: "POST",
+ body,
+ headers: getBaseHeaders()
+ });
+};
\ No newline at end of file
diff --git a/src/api/resources/SubscriptionPlans.ts b/src/api/resources/SubscriptionPlans.ts
deleted file mode 100644
index 3e91f12..0000000
--- a/src/api/resources/SubscriptionPlans.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import routes from "@/routes";
-
-export interface Payload {
- locale: string;
-}
-
-export interface Response {
- sub_plans: ISubscriptionPlan[];
-}
-
-export interface ISubscriptionPlan {
- id: string;
- name: string;
- desc: string;
- provider: "stripe" | "paypal";
- interval: "week" | "month" | "year";
- price_cents: number;
- trial: ITrial | null;
-}
-
-export interface ITrial {
- is_paid: boolean;
- is_free: boolean;
- days: number;
- price_cents: number;
-}
-
-export interface AssetMetadata {
- size: number;
- width: number;
- height: number;
- filename: string;
- mime_type: string;
-}
-
-export const createRequest = ({ locale }: Payload): Request => {
- const url = new URL(routes.server.subscriptionPlans());
- const query = new URLSearchParams({ locale });
-
- url.search = query.toString();
-
- return new Request(url, { method: "GET" });
-};
diff --git a/src/api/resources/UserSubscriptionCheckout.ts b/src/api/resources/UserSubscriptionCheckout.ts
deleted file mode 100644
index d375f90..0000000
--- a/src/api/resources/UserSubscriptionCheckout.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-import routes from "@/routes"
-import { AuthPayload } from "../types"
-import { getAuthHeaders } from "../utils"
-
-export interface Payload extends AuthPayload {
- embed?: boolean
- locale: string
- itemPriceId: string
-}
-
-export interface Response {
- hosted_page: string
-}
-
-export interface HostedPage {
- id: string
- url: string
- embed: boolean
- type: string
- object: string
- state: string
- resource_version: number
- created_at: number
- updated_at: number
- expires_at: number
-}
-
-export const createRequest = ({ locale, token, itemPriceId, embed = false }: Payload): Request => {
- const url = new URL(routes.server.subscriptionCheckout())
- const query = new URLSearchParams({ locale, item_price_id: itemPriceId, embed: embed.toString() })
-
- url.search = query.toString()
-
- return new Request(url, { method: 'GET', headers: getAuthHeaders(token) })
-}
diff --git a/src/api/resources/UserSubscriptionItemPrices.ts b/src/api/resources/UserSubscriptionItemPrices.ts
deleted file mode 100644
index b8f0194..0000000
--- a/src/api/resources/UserSubscriptionItemPrices.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import routes from "@/routes"
-import { AuthPayload } from "../types"
-import { getAuthHeaders } from "../utils"
-
-export interface Payload extends AuthPayload {
- locale: string
-}
-
-export interface Response {
- item_prices: ItemPrice[]
-}
-
-export interface ItemPrice {
- currency_code: string
- external_name: string
- free_quantity: number
- id: string
- is_taxable: boolean
- item_id: string
- item_type: string
- name: string
- object: string
- period: number
- period_unit: string
- price: number
- pricing_model: string
- resource_version: number
- status: string
- created_at: number
- updated_at: number
-}
-
-export const createRequest = ({ locale, token }: Payload): Request => {
- const url = new URL(routes.server.subscriptionItems())
- const query = new URLSearchParams({ locale })
-
- url.search = query.toString()
-
- return new Request(url, { method: 'GET', headers: getAuthHeaders(token) })
-}
diff --git a/src/api/resources/UserSubscriptionReceipts.ts b/src/api/resources/UserSubscriptionReceipts.ts
deleted file mode 100644
index 1bddd7b..0000000
--- a/src/api/resources/UserSubscriptionReceipts.ts
+++ /dev/null
@@ -1,104 +0,0 @@
-import routes from "@/routes";
-import { AuthPayload } from "../types";
-import { getAuthHeaders } from "../utils";
-
-export interface GetPayload extends AuthPayload {
- id: string;
-}
-
-export interface AppleReceiptPayload extends AuthPayload {
- receiptData: string;
- autorenewable?: boolean;
- sandbox?: boolean;
-}
-
-export interface StripeReceiptPayload extends AuthPayload {
- way: "stripe";
- subscription_receipt: {
- sub_plan_id: string;
- };
-}
-
-export type Payload =
- | AppleReceiptPayload
- | StripeReceiptPayload
-
-export interface Response {
- subscription_receipt: SubscriptionReceipt;
-}
-
-export interface SubscriptionReceipt {
- id: string;
- user_id: number;
- status: number;
- expires_at: null | string;
- requested_at: string;
- created_at: string;
- data: {
- input: {
- subscription_items: [
- {
- item_price_id: string;
- }
- ];
- payment_intent: {
- gw_token: string;
- gateway_account_id: string;
- };
- };
- client_secret: string;
- app_bundle_id: string;
- autorenewable: boolean;
- error: string;
- stripe_status?: string;
- checkout_url?: string;
- checkout_session?: unknown;
- };
-}
-
-function createRequest({
- token,
- receiptData,
- autorenewable,
- sandbox,
-}: AppleReceiptPayload): Request;
-function createRequest({ token }: StripeReceiptPayload): Request;
-function createRequest(payload: Payload): Request;
-function createRequest(payload: Payload): Request {
- const url = new URL(routes.server.subscriptionReceipts());
- const data = getDataPayload(payload);
- const body = JSON.stringify(data);
- return new Request(url, {
- method: "POST",
- headers: getAuthHeaders(payload.token),
- body,
- });
-}
-
-function getDataPayload(payload: Payload) {
- if ("receiptData" in payload) {
- return {
- way: "apple",
- subscription_receipt: {
- receipt_data: payload.receiptData,
- autorenewable: payload.autorenewable,
- sandbox: payload.sandbox,
- },
- };
- }
- if ("way" in payload && payload.way === "stripe") {
- return {
- way: "stripe",
- subscription_receipt: {
- sub_plan_id: payload.subscription_receipt.sub_plan_id,
- },
- };
- }
-}
-
-function createGetRequest({ id, token }: GetPayload): Request {
- const url = new URL(routes.server.subscriptionReceipt(id));
- return new Request(url, { method: "GET", headers: getAuthHeaders(token) });
-}
-
-export { createRequest, createGetRequest };
diff --git a/src/api/resources/index.ts b/src/api/resources/index.ts
index 988bd4c..0588b21 100644
--- a/src/api/resources/index.ts
+++ b/src/api/resources/index.ts
@@ -4,11 +4,8 @@ export * as Apps from "./Apps";
export * as User from "./User";
export * as DailyForecasts from "./UserDailyForecasts";
export * as Auras from "./Auras";
-export * as Element from "./Element";
export * as Elements from "./Elements";
export * as AuthTokens from "./AuthTokens";
-export * as SubscriptionItems from "./UserSubscriptionItemPrices";
-export * as SubscriptionCheckout from "./UserSubscriptionCheckout";
export * as SubscriptionStatus from "./UserSubscriptionStatus";
export * as AICompatCategories from "./AICompatCategories";
export * as AICompats from "./AICompats";
@@ -16,9 +13,6 @@ export * as AIRequests from "./AIRequests";
export * as UserCallbacks from "./UserCallbacks";
export * as Translations from "./Translations";
export * as Zodiacs from "./Zodiacs";
-export * as GoogleAuth from "./GoogleAuth";
-export * as SubscriptionPlans from "./SubscriptionPlans";
-export * as AppleAuth from "./AppleAuth";
export * as AIRequestsV2 from "./AIRequestsV2";
export * as Assistants from "./Assistants";
export * as OpenAI from "./OpenAI";
diff --git a/src/components/App/index.tsx b/src/components/App/index.tsx
index 8d4bbd6..d576797 100755
--- a/src/components/App/index.tsx
+++ b/src/components/App/index.tsx
@@ -34,10 +34,8 @@ import BirthdayPage from "../BirthdayPage";
import BirthtimePage from "../BirthtimePage";
import CreateProfilePage from "../CreateProfilePage";
import EmailEnterPage from "../EmailEnterPage";
-import SubscriptionPage from "../SubscriptionPage";
import PaymentPage from "../PaymentPage";
import WallpaperPage from "../WallpaperPage";
-import StaticPage from "../StaticPage";
import NotFoundPage from "../NotFoundPage";
import Header from "../Header";
import Navbar from "../Navbar";
@@ -45,7 +43,6 @@ import Footer from "../Footer";
import "./styles.css";
import DidYouKnowPage from "../DidYouKnowPage";
import FreePeriodInfoPage from "../FreePeriodInfoPage";
-import AttentionPage from "../AttentionPage";
import FeedbackPage from "../FeedbackPage";
import CompatibilityPage from "../Compatibility";
import BreathPage from "../BreathPage";
@@ -147,13 +144,11 @@ if (isProduction) {
function App(): JSX.Element {
const location = useLocation();
- const [isSpecialOfferOpen, setIsSpecialOfferOpen] = useState(false);
const [leoApng, setLeoApng] = useState(Error);
// const [
// padLockApng,
// setPadLockApng,
// ] = useState(Error);
- const navigate = useNavigate();
const api = useApi();
const dispatch = useDispatch();
const { token, user, signUp, logout } = useAuth();
@@ -228,11 +223,6 @@ function App(): JSX.Element {
});
}, []);
- const closeSpecialOfferAttention = () => {
- setIsSpecialOfferOpen(false);
- navigate(routes.client.auth());
- };
-
const assetsData = useCallback(async () => {
const { assets } = await api.getAssets({
category: String("au"),
@@ -345,7 +335,7 @@ function App(): JSX.Element {
element={}
/>
}
+ element={}
>
} />
{/* Email - Pay - Email */}
@@ -852,15 +842,6 @@ function App(): JSX.Element {
path={routes.client.freePeriodInfo()}
element={}
/>
-
- }
- />
} />
}
/>
- } />
+ {/* } /> */}
}
/>
- }>
+ {/* }>
}
>
} />
-
+ */}
}>
}>
>;
-}
-
-function Layout({ setIsSpecialOfferOpen }: LayoutProps): JSX.Element {
+function Layout(): JSX.Element {
const location = useLocation();
const navigate = useNavigate();
const dispatch = useDispatch();
@@ -988,7 +965,6 @@ function Layout({ setIsSpecialOfferOpen }: LayoutProps): JSX.Element {
const showHeader = hasNoHeader(location.pathname);
const isRouteFullDataModal = hasFullDataModal(location.pathname);
const [isMenuOpen, setIsMenuOpen] = useState(false);
- const changeIsSpecialOfferOpen = () => setIsSpecialOfferOpen(true);
const homeConfig = useSelector(selectors.selectHome);
const showNavbarFooter = homeConfig.isShowNavbar;
const mainRef = useRef(null);
@@ -1081,7 +1057,6 @@ function Layout({ setIsSpecialOfferOpen }: LayoutProps): JSX.Element {
{showHeader ? (
setIsMenuOpen(true)}
- clickCross={changeIsSpecialOfferOpen}
/>
) : null}
{isRouteFullDataModal && (
diff --git a/src/components/AttentionPage/index.tsx b/src/components/AttentionPage/index.tsx
deleted file mode 100755
index 8dd384b..0000000
--- a/src/components/AttentionPage/index.tsx
+++ /dev/null
@@ -1,40 +0,0 @@
-import { useNavigate } from "react-router-dom";
-import { useTranslations } from "@/hooks/translations";
-import Title from "../Title";
-import routes from "@/routes";
-import styles from "./styles.module.css";
-import SpecialWelcomeOffer from "../SpecialWelcomeOffer";
-import MainButton from "../MainButton";
-
-interface AttentionPageProps {
- isOpenModal: boolean;
- onCloseSpecialOffer?: () => void;
-}
-
-function AttentionPage({
- isOpenModal,
- onCloseSpecialOffer,
-}: AttentionPageProps): JSX.Element {
- const { translate } = useTranslations();
- const navigate = useNavigate();
- const handleNext = () => navigate(routes.client.priceList());
-
- return (
-
-
-
- {translate("aura.attention.title")}
-
By continuing you agree that if you don't cancel prior to the end of the {trialDuration}-days trial, you will automatically be charged ${price} every 2 weeks until you cancel in settings. Learn more about cancellation and refund policy in Subscription terms