gitextract_0nt4pr3f/ ├── .dockerignore ├── .editorconfig ├── .eslintrc.json ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature-request-or-improvement.md │ └── workflows/ │ └── docker-publish.yml ├── .gitignore ├── .husky/ │ └── pre-commit ├── .prettierignore ├── .prettierrc ├── .storybook/ │ ├── main.js │ └── tsconfig.json ├── .vscode/ │ ├── extensions.json │ ├── launch.json │ └── settings.json ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── apps/ │ ├── .gitkeep │ ├── client/ │ │ ├── .babelrc.json │ │ ├── .eslintrc.json │ │ ├── .storybook/ │ │ │ ├── main.js │ │ │ ├── manager.js │ │ │ ├── preview.js │ │ │ ├── theme.js │ │ │ └── tsconfig.json │ │ ├── Dockerfile │ │ ├── components/ │ │ │ ├── APM.tsx │ │ │ ├── Maintenance.stories.tsx │ │ │ ├── Maintenance.tsx │ │ │ ├── Meta.tsx │ │ │ └── account-views/ │ │ │ ├── DefaultView.tsx │ │ │ ├── InvestmentView.tsx │ │ │ ├── LoanView.tsx │ │ │ └── index.ts │ │ ├── env.sh │ │ ├── env.ts │ │ ├── jest.config.ts │ │ ├── next-env.d.ts │ │ ├── next.config.js │ │ ├── pages/ │ │ │ ├── 404.tsx │ │ │ ├── _app.tsx │ │ │ ├── _document.tsx │ │ │ ├── accounts/ │ │ │ │ ├── [accountId].tsx │ │ │ │ └── index.tsx │ │ │ ├── api/ │ │ │ │ ├── auth/ │ │ │ │ │ └── [...nextauth].ts │ │ │ │ └── card.tsx │ │ │ ├── card/ │ │ │ │ └── [id].tsx │ │ │ ├── data-editor.tsx │ │ │ ├── index.tsx │ │ │ ├── login.tsx │ │ │ ├── onboarding.tsx │ │ │ ├── plans/ │ │ │ │ ├── [planId].tsx │ │ │ │ ├── create.tsx │ │ │ │ └── index.tsx │ │ │ ├── register.tsx │ │ │ ├── settings.tsx │ │ │ └── upgrade.tsx │ │ ├── postcss.config.js │ │ ├── public/ │ │ │ ├── .gitkeep │ │ │ ├── __appenv.js │ │ │ └── assets/ │ │ │ ├── browserconfig.xml │ │ │ └── site.webmanifest │ │ ├── stories/ │ │ │ └── 404.stories.tsx │ │ ├── styles.css │ │ ├── tailwind.config.js │ │ ├── tsconfig.json │ │ └── tsconfig.spec.json │ ├── e2e/ │ │ ├── .eslintrc.json │ │ ├── cypress.config.ts │ │ ├── src/ │ │ │ ├── e2e/ │ │ │ │ ├── accounts.cy.ts │ │ │ │ ├── auth.cy.ts │ │ │ │ └── subscription.cy.ts │ │ │ ├── fixtures/ │ │ │ │ └── stripe/ │ │ │ │ ├── checkoutSessionCompleted.ts │ │ │ │ ├── customerSubscriptionCreated.ts │ │ │ │ ├── customerSubscriptionDeleted.ts │ │ │ │ └── index.ts │ │ │ └── support/ │ │ │ ├── commands.ts │ │ │ ├── e2e.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── server/ │ │ ├── .eslintrc.json │ │ ├── Dockerfile │ │ ├── jest.config.ts │ │ ├── src/ │ │ │ ├── app/ │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── account.integration.spec.ts │ │ │ │ │ ├── balance-sync.integration.spec.ts │ │ │ │ │ ├── connection.integration.spec.ts │ │ │ │ │ ├── insights.integration.spec.ts │ │ │ │ │ ├── net-worth.integration.spec.ts │ │ │ │ │ ├── prisma.integration.spec.ts │ │ │ │ │ ├── stripe.integration.spec.ts │ │ │ │ │ ├── test-data/ │ │ │ │ │ │ ├── portfolio-1/ │ │ │ │ │ │ │ ├── holdings.csv │ │ │ │ │ │ │ ├── securities.csv │ │ │ │ │ │ │ └── transactions.csv │ │ │ │ │ │ └── portfolio-2/ │ │ │ │ │ │ ├── holdings.csv │ │ │ │ │ │ ├── securities.csv │ │ │ │ │ │ └── transactions.csv │ │ │ │ │ └── utils/ │ │ │ │ │ ├── account.ts │ │ │ │ │ ├── axios.ts │ │ │ │ │ ├── csv.ts │ │ │ │ │ ├── server.ts │ │ │ │ │ └── user.ts │ │ │ │ ├── admin/ │ │ │ │ │ └── views/ │ │ │ │ │ ├── pages/ │ │ │ │ │ │ ├── dashboard.ejs │ │ │ │ │ │ └── index.ejs │ │ │ │ │ └── partials/ │ │ │ │ │ └── head.ejs │ │ │ │ ├── app.ts │ │ │ │ ├── lib/ │ │ │ │ │ ├── ability.ts │ │ │ │ │ ├── email.ts │ │ │ │ │ ├── endpoint.ts │ │ │ │ │ ├── logger.ts │ │ │ │ │ ├── prisma.ts │ │ │ │ │ ├── stripe.ts │ │ │ │ │ ├── teller.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── webhook.ts │ │ │ │ ├── middleware/ │ │ │ │ │ ├── auth-error-handler.ts │ │ │ │ │ ├── dev-only.ts │ │ │ │ │ ├── error-handler.ts │ │ │ │ │ ├── identify-user.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── maintenance.ts │ │ │ │ │ ├── superjson.ts │ │ │ │ │ ├── validate-auth-jwt.ts │ │ │ │ │ └── validate-teller-signature.ts │ │ │ │ ├── routes/ │ │ │ │ │ ├── account-rollup.router.ts │ │ │ │ │ ├── accounts.router.ts │ │ │ │ │ ├── admin.router.ts │ │ │ │ │ ├── connections.router.ts │ │ │ │ │ ├── e2e.router.ts │ │ │ │ │ ├── holdings.router.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── institutions.router.ts │ │ │ │ │ ├── plans.router.ts │ │ │ │ │ ├── public.router.ts │ │ │ │ │ ├── securities.router.ts │ │ │ │ │ ├── teller.router.ts │ │ │ │ │ ├── tools.router.ts │ │ │ │ │ ├── transactions.router.ts │ │ │ │ │ ├── users.router.ts │ │ │ │ │ ├── valuations.router.ts │ │ │ │ │ └── webhooks.router.ts │ │ │ │ └── trpc.ts │ │ │ ├── assets/ │ │ │ │ ├── script.js │ │ │ │ └── styles.css │ │ │ ├── env.ts │ │ │ ├── environments/ │ │ │ │ ├── environment.prod.ts │ │ │ │ └── environment.ts │ │ │ └── main.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.json │ │ └── tsconfig.spec.json │ └── workers/ │ ├── .eslintrc.json │ ├── Dockerfile │ ├── jest.config.ts │ ├── src/ │ │ ├── app/ │ │ │ ├── __tests__/ │ │ │ │ ├── helpers/ │ │ │ │ │ └── user.test-helper.ts │ │ │ │ ├── queue.integration.spec.ts │ │ │ │ ├── security-sync.integration.spec.ts │ │ │ │ └── teller.integration.spec.ts │ │ │ ├── lib/ │ │ │ │ ├── di.ts │ │ │ │ ├── email.ts │ │ │ │ ├── logger.ts │ │ │ │ ├── prisma.ts │ │ │ │ ├── stripe.ts │ │ │ │ └── teller.ts │ │ │ └── services/ │ │ │ ├── bull-queue-event-handler.ts │ │ │ ├── index.ts │ │ │ └── worker-error.service.ts │ │ ├── assets/ │ │ │ └── .gitkeep │ │ ├── env.ts │ │ ├── environments/ │ │ │ ├── environment.prod.ts │ │ │ └── environment.ts │ │ ├── main.ts │ │ └── utils.ts │ ├── tsconfig.app.json │ ├── tsconfig.json │ └── tsconfig.spec.json ├── babel.config.json ├── custom-express.d.ts ├── docker-compose.test.yml ├── docker-compose.yml ├── jest.config.ts ├── jest.preset.js ├── libs/ │ ├── .gitkeep │ ├── client/ │ │ ├── features/ │ │ │ ├── .babelrc │ │ │ ├── .eslintrc.json │ │ │ ├── jest.config.ts │ │ │ ├── src/ │ │ │ │ ├── account/ │ │ │ │ │ ├── AccountMenu.tsx │ │ │ │ │ ├── AccountsSidebar.tsx │ │ │ │ │ ├── PageTitle.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── accounts-list/ │ │ │ │ │ ├── Account.tsx │ │ │ │ │ ├── AccountDevTools.tsx │ │ │ │ │ ├── AccountGroup.tsx │ │ │ │ │ ├── AccountGroupContainer.tsx │ │ │ │ │ ├── ConnectedAccountGroup.tsx │ │ │ │ │ ├── DeleteConnectionDialog.tsx │ │ │ │ │ ├── DisconnectedAccountGroup.tsx │ │ │ │ │ ├── ManualAccountGroup.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── accounts-manager/ │ │ │ │ │ ├── AccountTypeGrid.tsx │ │ │ │ │ ├── AccountTypeSelector.tsx │ │ │ │ │ ├── AccountValuationFormFields.tsx │ │ │ │ │ ├── AccountsManager.tsx │ │ │ │ │ ├── DeleteAccount.tsx │ │ │ │ │ ├── EditAccount.tsx │ │ │ │ │ ├── InstitutionGrid.tsx │ │ │ │ │ ├── InstitutionList.tsx │ │ │ │ │ ├── asset/ │ │ │ │ │ │ ├── AddAsset.tsx │ │ │ │ │ │ ├── AssetForm.tsx │ │ │ │ │ │ ├── EditAsset.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── connected/ │ │ │ │ │ │ ├── ConnectedAccountForm.tsx │ │ │ │ │ │ ├── EditConnectedAccount.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── liability/ │ │ │ │ │ │ ├── AddLiability.tsx │ │ │ │ │ │ ├── EditLiability.tsx │ │ │ │ │ │ ├── LiabilityForm.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── property/ │ │ │ │ │ │ ├── AddProperty.tsx │ │ │ │ │ │ ├── EditProperty.tsx │ │ │ │ │ │ ├── PropertyForm.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── stock/ │ │ │ │ │ │ ├── AddStock.tsx │ │ │ │ │ │ ├── CreateStockAccount.tsx │ │ │ │ │ │ ├── StockForm.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── vehicle/ │ │ │ │ │ ├── AddVehicle.tsx │ │ │ │ │ ├── EditVehicle.tsx │ │ │ │ │ ├── VehicleForm.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── data-editor/ │ │ │ │ │ ├── account/ │ │ │ │ │ │ ├── AccountEditor.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── transaction/ │ │ │ │ │ ├── TransactionEditor.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── holdings-list/ │ │ │ │ │ ├── CostBasisForm.tsx │ │ │ │ │ ├── HoldingList.tsx │ │ │ │ │ ├── HoldingPopout.tsx │ │ │ │ │ ├── HoldingsTable.tsx │ │ │ │ │ ├── SecurityPriceChart.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── insights/ │ │ │ │ │ ├── explainers/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── investments/ │ │ │ │ │ │ │ ├── AverageReturn.tsx │ │ │ │ │ │ │ ├── Contributions.tsx │ │ │ │ │ │ │ ├── PotentialGainLoss.tsx │ │ │ │ │ │ │ ├── SectorAllocation.tsx │ │ │ │ │ │ │ ├── TotalFees.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── net-worth/ │ │ │ │ │ │ ├── BadDebt.tsx │ │ │ │ │ │ ├── GoodDebt.tsx │ │ │ │ │ │ ├── IlliquidAssets.tsx │ │ │ │ │ │ ├── IncomePayingDebt.tsx │ │ │ │ │ │ ├── LiquidAssets.tsx │ │ │ │ │ │ ├── NetWorthTrend.tsx │ │ │ │ │ │ ├── SafetyNet.tsx │ │ │ │ │ │ ├── TotalDebtRatio.tsx │ │ │ │ │ │ ├── YieldingAssets.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── insight-states.ts │ │ │ │ ├── investment-transactions-list/ │ │ │ │ │ ├── InvestmentTransactionList.tsx │ │ │ │ │ ├── InvestmentTransactionListItem.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── layout/ │ │ │ │ │ ├── DesktopLayout.tsx │ │ │ │ │ ├── FullPageLayout.tsx │ │ │ │ │ ├── MenuPopover.tsx │ │ │ │ │ ├── MobileLayout.tsx │ │ │ │ │ ├── NotFound.tsx │ │ │ │ │ ├── SidebarNav.tsx │ │ │ │ │ ├── WithOnboardingLayout.tsx │ │ │ │ │ ├── WithSidebarLayout.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── loan-details/ │ │ │ │ │ ├── LoanCard.tsx │ │ │ │ │ ├── LoanDetail.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── net-worth-insights/ │ │ │ │ │ ├── NetWorthInsightBadge.tsx │ │ │ │ │ ├── NetWorthInsightCard.tsx │ │ │ │ │ ├── NetWorthInsightDetail.tsx │ │ │ │ │ ├── NetWorthInsightStateAxis.tsx │ │ │ │ │ ├── NetWorthPrimaryCardGroup.tsx │ │ │ │ │ ├── breakdown-slider/ │ │ │ │ │ │ ├── NetWorthBreakdownSlider.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── breakdown-table/ │ │ │ │ │ │ ├── BreakdownTableIcon.tsx │ │ │ │ │ │ ├── NetWorthBreakdownTable.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── income-debt/ │ │ │ │ │ │ ├── IncomeDebtBlock.tsx │ │ │ │ │ │ ├── IncomeDebtDialog.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── safety-net/ │ │ │ │ │ ├── SafetyNetDialog.tsx │ │ │ │ │ ├── SafetyNetOpportunityCost.tsx │ │ │ │ │ ├── SliderBlock.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── onboarding/ │ │ │ │ │ ├── ExampleApp.tsx │ │ │ │ │ ├── OnboardingBackground.tsx │ │ │ │ │ ├── OnboardingGuard.tsx │ │ │ │ │ ├── OnboardingNavbar.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── sidebar/ │ │ │ │ │ │ ├── SidebarOnboarding.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── steps/ │ │ │ │ │ ├── Intro.tsx │ │ │ │ │ ├── Profile.tsx │ │ │ │ │ ├── StepProps.ts │ │ │ │ │ ├── Welcome.tsx │ │ │ │ │ ├── YourMaybe.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── setup/ │ │ │ │ │ ├── AddFirstAccount.tsx │ │ │ │ │ ├── EmailVerification.tsx │ │ │ │ │ ├── OtherAccounts.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── plans/ │ │ │ │ │ ├── AddPlanScenario.tsx │ │ │ │ │ ├── NewPlanForm.tsx │ │ │ │ │ ├── PlanContext.ts │ │ │ │ │ ├── PlanEventCard.tsx │ │ │ │ │ ├── PlanEventForm.tsx │ │ │ │ │ ├── PlanEventList.tsx │ │ │ │ │ ├── PlanEventPopout.tsx │ │ │ │ │ ├── PlanExplainer.tsx │ │ │ │ │ ├── PlanMenu.tsx │ │ │ │ │ ├── PlanMilestones.tsx │ │ │ │ │ ├── PlanParameterCard.tsx │ │ │ │ │ ├── PlanRangeInput.tsx │ │ │ │ │ ├── PlanRangeSelector.tsx │ │ │ │ │ ├── RetirementMilestoneForm.tsx │ │ │ │ │ ├── RetirementPlanChart.tsx │ │ │ │ │ ├── icon-utils.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── transactions-list/ │ │ │ │ │ ├── ExcludeTransactionDialog.tsx │ │ │ │ │ ├── TransactionList.tsx │ │ │ │ │ ├── TransactionListItem.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── user-billing/ │ │ │ │ │ ├── BillingPreferences.tsx │ │ │ │ │ ├── PlanSelector.tsx │ │ │ │ │ ├── PremiumIcon.tsx │ │ │ │ │ ├── SubscriberGuard.tsx │ │ │ │ │ ├── UpgradePrompt.tsx │ │ │ │ │ ├── UpgradeTakeover.tsx │ │ │ │ │ ├── graphics/ │ │ │ │ │ │ ├── FeaturesGlow.tsx │ │ │ │ │ │ ├── SideGrid.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── user-details/ │ │ │ │ │ ├── DeleteUserButton.tsx │ │ │ │ │ ├── DeleteUserModal.tsx │ │ │ │ │ ├── UserDetails.tsx │ │ │ │ │ ├── UserDevTools.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── user-security/ │ │ │ │ │ ├── PasswordReset.tsx │ │ │ │ │ ├── SecurityPreferences.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── valuations-list/ │ │ │ │ ├── PerformanceMetric.tsx │ │ │ │ ├── ValuationList.tsx │ │ │ │ ├── ValuationsDateCell.tsx │ │ │ │ ├── ValuationsTable.tsx │ │ │ │ ├── ValuationsTableForm.tsx │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ │ └── shared/ │ │ ├── .babelrc │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── src/ │ │ │ ├── api/ │ │ │ │ ├── index.ts │ │ │ │ ├── useAccountApi.ts │ │ │ │ ├── useAccountConnectionApi.ts │ │ │ │ ├── useAuthUserApi.ts │ │ │ │ ├── useHoldingApi.ts │ │ │ │ ├── useInstitutionApi.ts │ │ │ │ ├── usePlanApi.ts │ │ │ │ ├── useSecurityApi.ts │ │ │ │ ├── useTellerApi.ts │ │ │ │ ├── useTransactionApi.ts │ │ │ │ ├── useUserApi.ts │ │ │ │ └── useValuationApi.ts │ │ │ ├── components/ │ │ │ │ ├── cards/ │ │ │ │ │ ├── MaybeCard.tsx │ │ │ │ │ ├── MaybeCardShareModal.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── charts/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── time-series/ │ │ │ │ │ ├── AxisBottom.tsx │ │ │ │ │ ├── AxisLeft.tsx │ │ │ │ │ ├── BaseChart.tsx │ │ │ │ │ ├── Chart.tsx │ │ │ │ │ ├── DefaultTooltip.tsx │ │ │ │ │ ├── FloatingIcon.tsx │ │ │ │ │ ├── Line.tsx │ │ │ │ │ ├── LineRange.tsx │ │ │ │ │ ├── LoadingChart.tsx │ │ │ │ │ ├── MultiColorGradient.tsx │ │ │ │ │ ├── PlusCircleGlyph.tsx │ │ │ │ │ ├── ZeroPointGradient.tsx │ │ │ │ │ ├── colorScales.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ ├── useSeries.ts │ │ │ │ │ └── useTooltip.ts │ │ │ │ ├── dialogs/ │ │ │ │ │ ├── NonUSDDialog.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── explainers/ │ │ │ │ │ ├── ExplainerExternalLink.tsx │ │ │ │ │ ├── ExplainerInfoBlock.tsx │ │ │ │ │ ├── ExplainerPerformanceBlock.tsx │ │ │ │ │ ├── ExplainerSection.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── generic/ │ │ │ │ │ ├── BoxIcon.tsx │ │ │ │ │ ├── Confetti.tsx │ │ │ │ │ ├── InfiniteScroll.tsx │ │ │ │ │ ├── InsightGroup.tsx │ │ │ │ │ ├── InsightPopout.tsx │ │ │ │ │ ├── ProfileCircle.tsx │ │ │ │ │ ├── RelativeTime.tsx │ │ │ │ │ ├── TakeoverBackground.tsx │ │ │ │ │ ├── Toaster.tsx │ │ │ │ │ ├── TrendBadge.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── small-decimals/ │ │ │ │ │ ├── SmallDecimals.test.tsx │ │ │ │ │ ├── SmallDecimals.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── loaders/ │ │ │ │ │ ├── MainContentLoader.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── overlays/ │ │ │ │ │ ├── BlurredContentOverlay.tsx │ │ │ │ │ ├── ErrorFallbackOverlay.tsx │ │ │ │ │ ├── MainContentOverlay.tsx │ │ │ │ │ ├── Overlay.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── tables/ │ │ │ │ ├── data-table/ │ │ │ │ │ ├── DataTable.tsx │ │ │ │ │ ├── DefaultCell.tsx │ │ │ │ │ ├── EditableBooleanCell.tsx │ │ │ │ │ ├── EditableCell.tsx │ │ │ │ │ ├── EditableDateCell.tsx │ │ │ │ │ ├── EditableDropdownCell.tsx │ │ │ │ │ ├── EditableStringCell.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ └── index.ts │ │ │ ├── hooks/ │ │ │ │ ├── index.ts │ │ │ │ ├── useAccountNotifications.ts │ │ │ │ ├── useAxiosWithAuth.ts │ │ │ │ ├── useDebounce.ts │ │ │ │ ├── useFrame.ts │ │ │ │ ├── useInterval.ts │ │ │ │ ├── useLastUpdated.ts │ │ │ │ ├── useLocalStorage.ts │ │ │ │ ├── useLogger.ts │ │ │ │ ├── useModalManager.ts │ │ │ │ ├── useProviderStatus.ts │ │ │ │ ├── useQueryParam.ts │ │ │ │ ├── useScreenSize.ts │ │ │ │ └── useTeller.ts │ │ │ ├── index.ts │ │ │ ├── providers/ │ │ │ │ ├── AccountContextProvider.tsx │ │ │ │ ├── AxiosProvider.tsx │ │ │ │ ├── LayoutContextProvider.tsx │ │ │ │ ├── LogProvider.tsx │ │ │ │ ├── PopoutProvider.tsx │ │ │ │ ├── QueryProvider.tsx │ │ │ │ ├── UserAccountContextProvider.tsx │ │ │ │ └── index.ts │ │ │ ├── types/ │ │ │ │ ├── client-side-feature-flags.ts │ │ │ │ ├── index.ts │ │ │ │ └── react-types.ts │ │ │ └── utils/ │ │ │ ├── account-utils.ts │ │ │ ├── browser-utils.ts │ │ │ ├── form-utils.ts │ │ │ ├── image-loaders.ts │ │ │ └── index.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── design-system/ │ │ ├── .babelrc │ │ ├── .eslintrc.json │ │ ├── .storybook/ │ │ │ ├── main.js │ │ │ ├── manager.js │ │ │ ├── preview.js │ │ │ ├── theme.js │ │ │ └── tsconfig.json │ │ ├── README.md │ │ ├── assets/ │ │ │ └── styles.css │ │ ├── docs/ │ │ │ ├── Getting Started/ │ │ │ │ ├── About.stories.mdx │ │ │ │ ├── Colors.stories.mdx │ │ │ │ └── Typography.stories.mdx │ │ │ └── util/ │ │ │ ├── Swatch.tsx │ │ │ └── SwatchGroup.tsx │ │ ├── jest.config.ts │ │ ├── jest.setup.js │ │ ├── package.json │ │ ├── postcss.config.js │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── lib/ │ │ │ ├── AccordionRow/ │ │ │ │ ├── AccordionRow.spec.tsx │ │ │ │ ├── AccordionRow.stories.tsx │ │ │ │ ├── AccordionRow.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── AccordionRow.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── Alert/ │ │ │ │ ├── Alert.stories.tsx │ │ │ │ ├── Alert.tsx │ │ │ │ └── index.ts │ │ │ ├── Badge/ │ │ │ │ ├── Badge.spec.tsx │ │ │ │ ├── Badge.stories.tsx │ │ │ │ ├── Badge.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Badge.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── Breadcrumb/ │ │ │ │ ├── Breadcrumb.spec.tsx │ │ │ │ ├── Breadcrumb.stories.tsx │ │ │ │ ├── Breadcrumb.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Breadcrumb.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── Button/ │ │ │ │ ├── Button.spec.tsx │ │ │ │ ├── Button.stories.tsx │ │ │ │ ├── Button.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Button.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── Checkbox/ │ │ │ │ ├── Checkbox.spec.tsx │ │ │ │ ├── Checkbox.stories.tsx │ │ │ │ ├── Checkbox.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Checkbox.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── DatePicker/ │ │ │ │ ├── DatePicker.spec.tsx │ │ │ │ ├── DatePicker.stories.tsx │ │ │ │ ├── DatePicker.tsx │ │ │ │ ├── DatePickerCalendar.tsx │ │ │ │ ├── DatePickerInput.tsx │ │ │ │ ├── DatePickerMonth.tsx │ │ │ │ ├── DatePickerQuickSelect.tsx │ │ │ │ ├── DatePickerRange/ │ │ │ │ │ ├── DatePickerRange.spec.tsx │ │ │ │ │ ├── DatePickerRange.stories.tsx │ │ │ │ │ ├── DatePickerRange.tsx │ │ │ │ │ ├── DatePickerRangeButton.tsx │ │ │ │ │ ├── DatePickerRangeCalendar.tsx │ │ │ │ │ ├── DatePickerRangeTabs.tsx │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ └── DatePickerRange.spec.tsx.snap │ │ │ │ │ └── index.ts │ │ │ │ ├── DatePickerYear.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── DatePicker.spec.tsx.snap │ │ │ │ ├── index.ts │ │ │ │ ├── selectableRanges.ts │ │ │ │ ├── utils.spec.tsx │ │ │ │ └── utils.tsx │ │ │ ├── Dialog/ │ │ │ │ ├── Dialog.spec.tsx │ │ │ │ ├── Dialog.stories.tsx │ │ │ │ ├── Dialog.tsx │ │ │ │ ├── DialogV2.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Dialog.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── FormGroup/ │ │ │ │ ├── FormGroup.spec.tsx │ │ │ │ ├── FormGroup.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── FormGroup.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── FractionalCircle/ │ │ │ │ ├── FractionalCircle.stories.tsx │ │ │ │ ├── FractionalCircle.tsx │ │ │ │ └── index.ts │ │ │ ├── IndexTabs/ │ │ │ │ ├── IndexTabs.spec.tsx │ │ │ │ ├── IndexTabs.stories.tsx │ │ │ │ ├── IndexTabs.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── IndexTabs.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── Listbox/ │ │ │ │ ├── Listbox.spec.tsx │ │ │ │ ├── Listbox.stories.tsx │ │ │ │ ├── Listbox.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Listbox.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── LoadingPlaceholder/ │ │ │ │ ├── LoadingPlaceholder.spec.tsx │ │ │ │ ├── LoadingPlaceholder.stories.tsx │ │ │ │ ├── LoadingPlaceholder.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── LoadingPlaceholder.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── LoadingSpinner/ │ │ │ │ ├── LoadingSpinner.spec.tsx │ │ │ │ ├── LoadingSpinner.stories.tsx │ │ │ │ ├── LoadingSpinner.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── LoadingSpinner.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── Menu/ │ │ │ │ ├── Menu.spec.tsx │ │ │ │ ├── Menu.stories.tsx │ │ │ │ ├── Menu.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Menu.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── Popover/ │ │ │ │ ├── Popover.spec.tsx │ │ │ │ ├── Popover.stories.tsx │ │ │ │ ├── Popover.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Popover.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── RTEditor/ │ │ │ │ ├── RTEditor.tsx │ │ │ │ └── index.ts │ │ │ ├── RadioGroup/ │ │ │ │ ├── RadioGroup.stories.tsx │ │ │ │ ├── RadioGroup.tsx │ │ │ │ └── index.ts │ │ │ ├── Slider/ │ │ │ │ ├── Slider.spec.tsx │ │ │ │ ├── Slider.stories.tsx │ │ │ │ ├── Slider.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Slider.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── Step/ │ │ │ │ ├── Step.spec.tsx │ │ │ │ ├── Step.stories.tsx │ │ │ │ ├── Step.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Step.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── Tab/ │ │ │ │ ├── Tab.spec.tsx │ │ │ │ ├── Tab.stories.tsx │ │ │ │ ├── Tab.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Tab.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── Takeover/ │ │ │ │ ├── Takeover.spec.tsx │ │ │ │ ├── Takeover.stories.tsx │ │ │ │ ├── Takeover.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Takeover.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── Toast/ │ │ │ │ ├── Toast.spec.tsx │ │ │ │ ├── Toast.stories.tsx │ │ │ │ ├── Toast.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Toast.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── Toggle/ │ │ │ │ ├── Toggle.spec.tsx │ │ │ │ ├── Toggle.stories.tsx │ │ │ │ ├── Toggle.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Toggle.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── Tooltip/ │ │ │ │ ├── Tooltip.spec.tsx │ │ │ │ ├── Tooltip.stories.tsx │ │ │ │ ├── Tooltip.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Tooltip.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── TrendLine/ │ │ │ │ ├── TrendLine.stories.tsx │ │ │ │ ├── TrendLine.tsx │ │ │ │ ├── Trendline.spec.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Trendline.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ └── inputs/ │ │ │ ├── Input/ │ │ │ │ ├── Input.spec.tsx │ │ │ │ ├── Input.stories.tsx │ │ │ │ ├── Input.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Input.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── InputColorHint/ │ │ │ │ ├── InputColorHint.tsx │ │ │ │ └── index.ts │ │ │ ├── InputCurrency/ │ │ │ │ ├── InputCurrency.spec.tsx │ │ │ │ ├── InputCurrency.stories.tsx │ │ │ │ ├── InputCurrency.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── InputCurrency.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── InputHint/ │ │ │ │ ├── InputHint.tsx │ │ │ │ └── index.ts │ │ │ ├── InputPassword/ │ │ │ │ ├── InputPassword.spec.tsx │ │ │ │ ├── InputPassword.stories.tsx │ │ │ │ ├── InputPassword.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── InputPassword.spec.tsx.snap │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ ├── tailwind.config.js │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── server/ │ │ ├── features/ │ │ │ ├── .babelrc │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── src/ │ │ │ │ ├── account/ │ │ │ │ │ ├── account-query.service.ts │ │ │ │ │ ├── account.processor.ts │ │ │ │ │ ├── account.provider.ts │ │ │ │ │ ├── account.schema.ts │ │ │ │ │ ├── account.service.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── insight.service.ts │ │ │ │ ├── account-balance/ │ │ │ │ │ ├── balance-sync.strategy.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── investment-transaction-balance-sync.strategy.ts │ │ │ │ │ ├── loan-balance-sync.strategy.ts │ │ │ │ │ ├── transaction-balance-sync.strategy.ts │ │ │ │ │ └── valuation-balance-sync.strategy.ts │ │ │ │ ├── account-connection/ │ │ │ │ │ ├── account-connection.processor.ts │ │ │ │ │ ├── account-connection.provider.ts │ │ │ │ │ ├── account-connection.service.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── auth-user/ │ │ │ │ │ ├── auth-user.service.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── email/ │ │ │ │ │ ├── email.processor.ts │ │ │ │ │ ├── email.schema.ts │ │ │ │ │ ├── email.service.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── providers/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── postmark.provider.ts │ │ │ │ │ └── smtp.provider.ts │ │ │ │ ├── holding/ │ │ │ │ │ ├── holding.schema.ts │ │ │ │ │ ├── holding.service.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── institution/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── institution.provider.ts │ │ │ │ │ └── institution.service.ts │ │ │ │ ├── investment-transaction/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── investment-transaction.schema.ts │ │ │ │ ├── plan/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── plan.schema.ts │ │ │ │ │ ├── plan.service.ts │ │ │ │ │ └── projection/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── monte-carlo.spec.ts │ │ │ │ │ ├── monte-carlo.ts │ │ │ │ │ ├── projection-calculator.spec.ts │ │ │ │ │ ├── projection-calculator.ts │ │ │ │ │ ├── projection-value.spec.ts │ │ │ │ │ └── projection-value.ts │ │ │ │ ├── providers/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── property/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── property.service.ts │ │ │ │ │ ├── teller/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── teller.etl.ts │ │ │ │ │ │ ├── teller.service.ts │ │ │ │ │ │ └── teller.webhook.ts │ │ │ │ │ └── vehicle/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── vehicle.service.ts │ │ │ │ ├── security-pricing/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── security-pricing.processor.ts │ │ │ │ │ └── security-pricing.service.ts │ │ │ │ ├── stripe/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── stripe.webhook.ts │ │ │ │ ├── transaction/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── transaction.schema.ts │ │ │ │ │ └── transaction.service.ts │ │ │ │ ├── user/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── onboarding.schema.ts │ │ │ │ │ ├── onboarding.service.ts │ │ │ │ │ ├── user.processor.ts │ │ │ │ │ └── user.service.ts │ │ │ │ └── valuation/ │ │ │ │ ├── index.ts │ │ │ │ └── valuation.service.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ │ └── shared/ │ │ ├── .babelrc │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── src/ │ │ │ ├── endpoint.ts │ │ │ ├── etl.ts │ │ │ ├── index.ts │ │ │ ├── logger.ts │ │ │ ├── services/ │ │ │ │ ├── cache.service.ts │ │ │ │ ├── crypto.service.ts │ │ │ │ ├── index.ts │ │ │ │ ├── market-data.service.spec.ts │ │ │ │ ├── market-data.service.ts │ │ │ │ ├── pg.service.ts │ │ │ │ ├── queue/ │ │ │ │ │ ├── bull-queue.ts │ │ │ │ │ ├── in-memory-queue.ts │ │ │ │ │ └── index.ts │ │ │ │ └── queue.service.ts │ │ │ ├── sql-template-tag.ts │ │ │ └── utils/ │ │ │ ├── db-utils.ts │ │ │ ├── error-utils.ts │ │ │ ├── index.ts │ │ │ ├── server-utils.ts │ │ │ └── teller-utils.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── shared/ │ │ ├── .babelrc │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── superjson.spec.ts │ │ │ ├── superjson.ts │ │ │ ├── types/ │ │ │ │ ├── account-types.ts │ │ │ │ ├── api-types.ts │ │ │ │ ├── email-types.ts │ │ │ │ ├── general-types.ts │ │ │ │ ├── holding-types.ts │ │ │ │ ├── index.ts │ │ │ │ ├── institution-types.ts │ │ │ │ ├── investment-transaction-types.ts │ │ │ │ ├── plan-types.ts │ │ │ │ ├── security-types.ts │ │ │ │ ├── transaction-types.ts │ │ │ │ └── user-types.ts │ │ │ └── utils/ │ │ │ ├── account-utils.ts │ │ │ ├── date-utils.spec.ts │ │ │ ├── date-utils.ts │ │ │ ├── geo-utils.ts │ │ │ ├── index.ts │ │ │ ├── market-utils.ts │ │ │ ├── number-utils.spec.ts │ │ │ ├── number-utils.ts │ │ │ ├── plan-utils.ts │ │ │ ├── shared-utils.spec.ts │ │ │ ├── shared-utils.ts │ │ │ ├── stats-utils.spec.ts │ │ │ ├── stats-utils.ts │ │ │ ├── test-utils.ts │ │ │ ├── transaction-utils.ts │ │ │ └── user-utils.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ └── teller-api/ │ ├── .eslintrc.json │ ├── jest.config.ts │ ├── src/ │ │ ├── index.ts │ │ ├── teller-api.ts │ │ └── types/ │ │ ├── account-balance.ts │ │ ├── account-details.ts │ │ ├── accounts.ts │ │ ├── authentication.ts │ │ ├── enrollment.ts │ │ ├── error.ts │ │ ├── identity.ts │ │ ├── index.ts │ │ ├── institutions.ts │ │ ├── transactions.ts │ │ └── webhooks.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── nx.json ├── package.json ├── prisma/ │ ├── migrations/ │ │ ├── 20211005200319_init/ │ │ │ └── migration.sql │ │ ├── 20211019194924_unique_constraint_on_account_balances/ │ │ │ └── migration.sql │ │ ├── 20211019214200_default_values/ │ │ │ └── migration.sql │ │ ├── 20211025200206_account_balance_schema_update/ │ │ │ └── migration.sql │ │ ├── 20211026174357_default_text_type/ │ │ │ └── migration.sql │ │ ├── 20211026175641_default_values/ │ │ │ └── migration.sql │ │ ├── 20211102165759_account_status/ │ │ │ └── migration.sql │ │ ├── 20211102183151_add_account_types_and_subtypes/ │ │ │ └── migration.sql │ │ ├── 20211104155259_account_uniqueness/ │ │ │ └── migration.sql │ │ ├── 20211105234550_posted_date_type/ │ │ │ └── migration.sql │ │ ├── 20211109151750_account_type_seed/ │ │ │ └── migration.sql │ │ ├── 20211110044559_manual_accounts_rename_fk/ │ │ │ └── migration.sql │ │ ├── 20211116235652_investment_data/ │ │ │ └── migration.sql │ │ ├── 20211117190140_add_manual_account_types/ │ │ │ └── migration.sql │ │ ├── 20211117190719_updated_at_default/ │ │ │ └── migration.sql │ │ ├── 20211117210112_valuation_date/ │ │ │ └── migration.sql │ │ ├── 20211117233026_add_date_indices/ │ │ │ └── migration.sql │ │ ├── 20211118160716_account_balance_update/ │ │ │ └── migration.sql │ │ ├── 20211118191000_account_balance_timestamps/ │ │ │ └── migration.sql │ │ ├── 20211118194940_account_functions/ │ │ │ └── migration.sql │ │ ├── 20211118214727_txn_date_naming/ │ │ │ └── migration.sql │ │ ├── 20211129155121_connection_status_codes/ │ │ │ └── migration.sql │ │ ├── 20211130184227_new_accounts_available_flag/ │ │ │ └── migration.sql │ │ ├── 20211201023540_account_single_table_inheritance/ │ │ │ └── migration.sql │ │ ├── 20211203180216_security_pricing/ │ │ │ └── migration.sql │ │ ├── 20211204053810_account_balance_hypertable/ │ │ │ └── migration.sql │ │ ├── 20211207192726_add_valuation_generated_cols/ │ │ │ └── migration.sql │ │ ├── 20211208162929_transaction_date/ │ │ │ └── migration.sql │ │ ├── 20211209041710_remove_initial_txn/ │ │ │ └── migration.sql │ │ ├── 20211209050532_update_fns/ │ │ │ └── migration.sql │ │ ├── 20211211140103_add_institution_id_to_connection/ │ │ │ └── migration.sql │ │ ├── 20211213211517_account_user_index/ │ │ │ └── migration.sql │ │ ├── 20211214162659_security_pricing_source/ │ │ │ └── migration.sql │ │ ├── 20211215195518_add_account_start_date/ │ │ │ └── migration.sql │ │ ├── 20211230035441_account_sync_status/ │ │ │ └── migration.sql │ │ ├── 20220106215040_add_mask_to_account/ │ │ │ └── migration.sql │ │ ├── 20220107170334_hypertable_chunk_size_tuning/ │ │ │ └── migration.sql │ │ ├── 20220112171128_update_fn/ │ │ │ └── migration.sql │ │ ├── 20220121175453_account_liability_json/ │ │ │ └── migration.sql │ │ ├── 20220124193549_add_plaid_valuation_valuation_type/ │ │ │ └── migration.sql │ │ ├── 20220124211317_update_valuation_types_and_sources/ │ │ │ └── migration.sql │ │ ├── 20220125211038_add_unique_constraint_to_valuations/ │ │ │ └── migration.sql │ │ ├── 20220202184342_account_balances_gapfilled_fn/ │ │ │ └── migration.sql │ │ ├── 20220203234737_update_fn/ │ │ │ └── migration.sql │ │ ├── 20220214175713_narrow_transaction_category/ │ │ │ └── migration.sql │ │ ├── 20220215201534_transaction_remove_subcategory_add_plaid_category/ │ │ │ └── migration.sql │ │ ├── 20220215212216_add_transaction_indexes/ │ │ │ └── migration.sql │ │ ├── 20220217040807_add_merchant_name_to_transactions/ │ │ │ └── migration.sql │ │ ├── 20220228233043_change_money_type/ │ │ │ └── migration.sql │ │ ├── 20220302181536_add_price_as_of_to_security_pricing/ │ │ │ └── migration.sql │ │ ├── 20220307200633_remove_price_from_holding/ │ │ │ └── migration.sql │ │ ├── 20220307211701_valuation_trigger/ │ │ │ └── migration.sql │ │ ├── 20220311165323_add_shares_per_contract_to_security/ │ │ │ └── migration.sql │ │ ├── 20220315172110_institution/ │ │ │ └── migration.sql │ │ ├── 20220316200652_reset_plaid_derivative_prices/ │ │ │ └── migration.sql │ │ ├── 20220317191949_reset_plaid_derivative_prices_again/ │ │ │ └── migration.sql │ │ ├── 20220323203441_multi_provider_updates/ │ │ │ └── migration.sql │ │ ├── 20220323212807_fix_function/ │ │ │ └── migration.sql │ │ ├── 20220411193518_stop_generating_and_enumize_account_category/ │ │ │ └── migration.sql │ │ ├── 20220426190758_add_url_and_logo_url_to_institution/ │ │ │ └── migration.sql │ │ ├── 20220504231954_finicity_updates/ │ │ │ └── migration.sql │ │ ├── 20220518005502_finicity_customer_id_uniqueness/ │ │ │ └── migration.sql │ │ ├── 20220519192445_institution_refactor/ │ │ │ └── migration.sql │ │ ├── 20220520161223_institution_search_algo/ │ │ │ └── migration.sql │ │ ├── 20220606160203_add_finicity_username_to_user/ │ │ │ └── migration.sql │ │ ├── 20220607162542_add_crisp_session_token_to_user/ │ │ │ └── migration.sql │ │ ├── 20220608171009_add_success_rate_and_oauth_to_provider_institutions/ │ │ │ └── migration.sql │ │ ├── 20220608190342_add_unique_constraint_to_institution/ │ │ │ └── migration.sql │ │ ├── 20220608202739_add_success_rate_updated_to_provider_institution/ │ │ │ └── migration.sql │ │ ├── 20220609195136_remove_success_rate_from_provider_institution/ │ │ │ └── migration.sql │ │ ├── 20220622160129_add_finicity_error/ │ │ │ └── migration.sql │ │ ├── 20220623171212_remove_holding_unique_constraint/ │ │ │ └── migration.sql │ │ ├── 20220630005107_category_overrides/ │ │ │ └── migration.sql │ │ ├── 20220701013813_merge_updates/ │ │ │ └── migration.sql │ │ ├── 20220707195013_user_overrides/ │ │ │ └── migration.sql │ │ ├── 20220708191740_txn_excluded_flag/ │ │ │ └── migration.sql │ │ ├── 20220713134742_add_provider_field/ │ │ │ └── migration.sql │ │ ├── 20220714180514_update_account_start_date_fn/ │ │ │ └── migration.sql │ │ ├── 20220714180819_account_category_consolidation/ │ │ │ └── migration.sql │ │ ├── 20220714181018_update_account_type_model/ │ │ │ └── migration.sql │ │ ├── 20220715191415_add_liability_fields/ │ │ │ └── migration.sql │ │ ├── 20220719200317_plaid_txn_category/ │ │ │ └── migration.sql │ │ ├── 20220720191551_generated_loan_credit_fields/ │ │ │ └── migration.sql │ │ ├── 20220725143246_map_credit_loan_data/ │ │ │ └── migration.sql │ │ ├── 20220726003918_reset_loan_account_balances/ │ │ │ └── migration.sql │ │ ├── 20220727145316_loan_credit_json_nullable/ │ │ │ └── migration.sql │ │ ├── 20220727202956_loan_account_start_date/ │ │ │ └── migration.sql │ │ ├── 20220729012630_security_fields/ │ │ │ └── migration.sql │ │ ├── 20220729202323_txn_updates/ │ │ │ └── migration.sql │ │ ├── 20220804180126_holdings_view/ │ │ │ └── migration.sql │ │ ├── 20220804191558_add_excluded_to_holding/ │ │ │ └── migration.sql │ │ ├── 20220808171116_investment_txn_fees/ │ │ │ └── migration.sql │ │ ├── 20220808174032_update_holdings_view/ │ │ │ └── migration.sql │ │ ├── 20220810190306_transaction_category_update/ │ │ │ └── migration.sql │ │ ├── 20220817180833_dietz/ │ │ │ └── migration.sql │ │ ├── 20220819151658_add_investment_transaction_category/ │ │ │ └── migration.sql │ │ ├── 20220915200544_add_plans/ │ │ │ └── migration.sql │ │ ├── 20220919203059_make_dob_optional/ │ │ │ └── migration.sql │ │ ├── 20220929161359_remove_crisp_session_token/ │ │ │ └── migration.sql │ │ ├── 20221004193621_security_brokerage_cash_flag/ │ │ │ └── migration.sql │ │ ├── 20221007143103_dietz_div0_fix/ │ │ │ └── migration.sql │ │ ├── 20221017145454_plan_events_milestones/ │ │ │ └── migration.sql │ │ ├── 20221021162836_remove_dob_from_plan/ │ │ │ └── migration.sql │ │ ├── 20221024203133_plan_event_milestone_category/ │ │ │ └── migration.sql │ │ ├── 20221027180912_cascade_plan_milestone_deletion/ │ │ │ └── migration.sql │ │ ├── 20221109192536_add_stripe_fields/ │ │ │ └── migration.sql │ │ ├── 20221111192223_ata/ │ │ │ └── migration.sql │ │ ├── 20221115201138_advisor_approval_status/ │ │ │ └── migration.sql │ │ ├── 20221117150434_update_advisor_profile/ │ │ │ └── migration.sql │ │ ├── 20221117213140_add_stripe_trial_reminder_sent/ │ │ │ └── migration.sql │ │ ├── 20221121214349_add_user_goals/ │ │ │ └── migration.sql │ │ ├── 20221129201601_conversation_advisor_unique_key/ │ │ │ └── migration.sql │ │ ├── 20221202213727_notification_preferences/ │ │ │ └── migration.sql │ │ ├── 20221206153642_conversation_user_required/ │ │ │ └── migration.sql │ │ ├── 20221207235557_expiry_email_sent/ │ │ │ └── migration.sql │ │ ├── 20221209041210_user_advisor_notes/ │ │ │ └── migration.sql │ │ ├── 20221212164355_update_risk_data_type/ │ │ │ └── migration.sql │ │ ├── 20221214145140_add_audit_table_and_trigger/ │ │ │ └── migration.sql │ │ ├── 20221222200240_add_onboarding_profile_fields/ │ │ │ └── migration.sql │ │ ├── 20230105203751_add_maybe_and_title/ │ │ │ └── migration.sql │ │ ├── 20230105210810_add_member_number/ │ │ │ └── migration.sql │ │ ├── 20230105221446_user_audit/ │ │ │ └── migration.sql │ │ ├── 20230106172727_add_user_residence/ │ │ │ └── migration.sql │ │ ├── 20230106221847_user_profile/ │ │ │ └── migration.sql │ │ ├── 20230110173017_add_user_member_id/ │ │ │ └── migration.sql │ │ ├── 20230112163100_add_agreements_table/ │ │ │ └── migration.sql │ │ ├── 20230113230312_user_email_required/ │ │ │ └── migration.sql │ │ ├── 20230117131125_update_ama_onboarding/ │ │ │ └── migration.sql │ │ ├── 20230117150048_user_name/ │ │ │ └── migration.sql │ │ ├── 20230117192734_update_agreement_types/ │ │ │ └── migration.sql │ │ ├── 20230119114411_add_onboarding_steps/ │ │ │ └── migration.sql │ │ ├── 20230123121401_separate_onboarding_flows/ │ │ │ └── migration.sql │ │ ├── 20230123192138_user_country_state/ │ │ │ └── migration.sql │ │ ├── 20230126230520_user_deletion/ │ │ │ └── migration.sql │ │ ├── 20230127003359_store_link_tokens/ │ │ │ └── migration.sql │ │ ├── 20230130161915_account_value_start_date/ │ │ │ └── migration.sql │ │ ├── 20230207111117_user_account_linking/ │ │ │ └── migration.sql │ │ ├── 20230207181233_add_conversation_relations/ │ │ │ └── migration.sql │ │ ├── 20230207230108_account_balance_strategy/ │ │ │ └── migration.sql │ │ ├── 20230210163006_add_user_trial_end/ │ │ │ └── migration.sql │ │ ├── 20230211134603_advisor_crm/ │ │ │ └── migration.sql │ │ ├── 20230220194746_remove_stripe_trials/ │ │ │ └── migration.sql │ │ ├── 20230223020847_txn_view/ │ │ │ └── migration.sql │ │ ├── 20240111031553_remove_advisor_and_related_data/ │ │ │ └── migration.sql │ │ ├── 20240111213125_next_auth_models/ │ │ │ └── migration.sql │ │ ├── 20240111213725_add_password_to_auth_user/ │ │ │ └── migration.sql │ │ ├── 20240112000538_remove_agreement_code/ │ │ │ └── migration.sql │ │ ├── 20240112001215_remove_convert_kit_usage/ │ │ │ └── migration.sql │ │ ├── 20240112201750_remove_auth0id_from_user/ │ │ │ └── migration.sql │ │ ├── 20240112204004_add_first_last_to_authuser/ │ │ │ └── migration.sql │ │ ├── 20240115222631_add_fields_for_teller/ │ │ │ └── migration.sql │ │ ├── 20240116023100_add_additional_teller_fields/ │ │ │ └── migration.sql │ │ ├── 20240116185600_add_teller_provider/ │ │ │ └── migration.sql │ │ ├── 20240116224800_add_enrollment_id_for_teller/ │ │ │ └── migration.sql │ │ ├── 20240117191553_categories_for_teller/ │ │ │ └── migration.sql │ │ ├── 20240118234302_remove_finicity_investment_transaction_categories/ │ │ │ └── migration.sql │ │ ├── 20240118234302_remove_finicity_transaction_categories/ │ │ │ └── migration.sql │ │ ├── 20240118234303_remove_finicity_usage/ │ │ │ └── migration.sql │ │ ├── 20240120213022_remove_transaction_category_generation/ │ │ │ └── migration.sql │ │ ├── 20240120215821_remove_investment_transaction_category_generation/ │ │ │ └── migration.sql │ │ ├── 20240121003016_add_asset_class_to_security/ │ │ │ └── migration.sql │ │ ├── 20240121011219_add_provider_name_to_security/ │ │ │ └── migration.sql │ │ ├── 20240121013630_add_exchange_info_to_security/ │ │ │ └── migration.sql │ │ ├── 20240121084645_create_unique_fields_for_security/ │ │ │ └── migration.sql │ │ ├── 20240121204146_add_auth_user_role/ │ │ │ └── migration.sql │ │ ├── 20240124090855_add_options_asset_class/ │ │ │ └── migration.sql │ │ ├── 20240124102931_remove_plaid_usage/ │ │ │ └── migration.sql │ │ └── migration_lock.toml │ ├── schema.prisma │ └── seed.ts ├── redis.Dockerfile ├── redis.conf ├── render.yaml ├── tools/ │ ├── generators/ │ │ ├── .gitkeep │ │ ├── index.ts │ │ └── tellerGenerator.ts │ ├── pages/ │ │ └── projections.html │ ├── scripts/ │ │ ├── gen-cloudfront-signing-keys.sh │ │ ├── gen-secret.sh │ │ ├── getAffectedApps.sh │ │ ├── runStagingE2ETests.sh │ │ ├── vercelBuildIgnore.js │ │ └── wait-for-it.sh │ ├── test-data/ │ │ ├── index.ts │ │ └── polygon/ │ │ ├── exchanges.ts │ │ ├── index.ts │ │ ├── snapshots.ts │ │ └── tickers.ts │ └── tsconfig.tools.json ├── tsconfig.base.json ├── vercel.json └── workspace.json