{ "version": "6.0", "nxVersion": "22.4.5", "pathMappings": { "@ghostfolio/api/*": [ "apps/api/src/*" ], "@ghostfolio/client/*": [ "apps/client/src/app/*" ], "@ghostfolio/common/*": [ "libs/common/src/lib/*" ], "@ghostfolio/ui/*": [ "libs/ui/src/lib/*" ] }, "nxJsonPlugins": [], "fileMap": { "projectFileMap": { "client": [ { "file": "apps/client/eslint.config.cjs", "hash": "15488054588656798378", "deps": [ "npm:@angular-eslint/eslint-plugin", "npm:@typescript-eslint/eslint-plugin" ] }, { "file": "apps/client/jest.config.ts", "hash": "13399690986781413134" }, { "file": "apps/client/localhost.cert", "hash": "6460500265282750115" }, { "file": "apps/client/localhost.pem", "hash": "6264516478971779288" }, { "file": "apps/client/ngsw-config.json", "hash": "5801283269356091158" }, { "file": "apps/client/project.json", "hash": "36675195621221975" }, { "file": "apps/client/proxy.conf.json", "hash": "14514634605533113054" }, { "file": "apps/client/src/app/adapter/custom-date-adapter.ts", "hash": "16037925367788370832", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:date-fns" ] }, { "file": "apps/client/src/app/adapter/date-formats.ts", "hash": "3744099453342770752", "deps": [ "common" ] }, { "file": "apps/client/src/app/app.component.html", "hash": "10524888508557517914" }, { "file": "apps/client/src/app/app.component.scss", "hash": "6000180079041469584" }, { "file": "apps/client/src/app/app.component.ts", "hash": "1509744179041170601", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/platform-browser", "npm:@angular/router", "npm:@prisma/client", "npm:ionicons", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/app.routes.ts", "hash": "15808924961662328958", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/components/access-table/access-table.component.html", "hash": "14052041597120813036" }, { "file": "apps/client/src/app/components/access-table/access-table.component.scss", "hash": "9715898318218748666" }, { "file": "apps/client/src/app/components/access-table/access-table.component.ts", "hash": "17460835971723653500", "deps": [ "common", "ui", "npm:@angular/cdk", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:ms" ] }, { "file": "apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.scss", "hash": "6123285939998494211" }, { "file": "apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts", "hash": "7545977096092111174", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:big.js", "npm:date-fns", "npm:ionicons", "npm:lodash", "npm:ngx-skeleton-loader", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html", "hash": "5567999231250595244" }, { "file": "apps/client/src/app/components/account-detail-dialog/interfaces/interfaces.ts", "hash": "16636862666439031431" }, { "file": "apps/client/src/app/components/admin-jobs/admin-jobs.component.ts", "hash": "2348713234948161080", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@ionic/angular", "npm:bull", "npm:ionicons", "npm:lodash", "npm:ngx-skeleton-loader", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/admin-jobs/admin-jobs.html", "hash": "7574760313463669" }, { "file": "apps/client/src/app/components/admin-jobs/admin-jobs.scss", "hash": "13027103444035360129" }, { "file": "apps/client/src/app/components/admin-market-data/admin-market-data.component.ts", "hash": "12943049261953874628", "deps": [ "common", "ui", "npm:@angular/cdk", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:@prisma/client", "npm:class-validator", "npm:ionicons", "npm:ngx-device-detector", "npm:ngx-skeleton-loader", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/admin-market-data/admin-market-data.html", "hash": "5618998148902190584" }, { "file": "apps/client/src/app/components/admin-market-data/admin-market-data.scss", "hash": "13027103444035360129" }, { "file": "apps/client/src/app/components/admin-market-data/admin-market-data.service.ts", "hash": "16190731752033501916", "deps": [ "common", "ui", "npm:@angular/core", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.scss", "hash": "13300712873933549686" }, { "file": "apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts", "hash": "14015070526900406305", "deps": [ "common", "ui", "npm:@angular/cdk", "npm:@angular/common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@ionic/angular", "npm:@prisma/client", "npm:class-validator", "npm:date-fns", "npm:http-status-codes", "npm:ionicons", "npm:ms", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html", "hash": "5603782674804095260" }, { "file": "apps/client/src/app/components/admin-market-data/asset-profile-dialog/interfaces/interfaces.ts", "hash": "6699448851425143486", "deps": [ "common", "npm:@prisma/client" ] }, { "file": "apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.component.scss", "hash": "13027103444035360129" }, { "file": "apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.component.ts", "hash": "3770726532473543711", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@prisma/client", "npm:class-validator", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html", "hash": "16650821504032591239" }, { "file": "apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/interfaces/interfaces.ts", "hash": "9767383460471059694" }, { "file": "apps/client/src/app/components/admin-overview/admin-overview.component.ts", "hash": "16804216223298188060", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:date-fns", "npm:ionicons", "npm:ms", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/admin-overview/admin-overview.html", "hash": "8889924461458306072" }, { "file": "apps/client/src/app/components/admin-overview/admin-overview.scss", "hash": "4347766444340904824" }, { "file": "apps/client/src/app/components/admin-platform/admin-platform.component.html", "hash": "4144164897207237027" }, { "file": "apps/client/src/app/components/admin-platform/admin-platform.component.scss", "hash": "13027103444035360129" }, { "file": "apps/client/src/app/components/admin-platform/admin-platform.component.ts", "hash": "8976268205839973047", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:@prisma/client", "npm:ionicons", "npm:lodash", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.component.ts", "hash": "15293071908673267549", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html", "hash": "4183194391349495908" }, { "file": "apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.scss", "hash": "4704321692649892017" }, { "file": "apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/interfaces/interfaces.ts", "hash": "10671934871791389141", "deps": [ "npm:@prisma/client" ] }, { "file": "apps/client/src/app/components/admin-settings/admin-settings.component.html", "hash": "17506227533476261161" }, { "file": "apps/client/src/app/components/admin-settings/admin-settings.component.scss", "hash": "2745237306300346599" }, { "file": "apps/client/src/app/components/admin-settings/admin-settings.component.ts", "hash": "7228909350813623460", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:ngx-skeleton-loader", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/admin-tag/admin-tag.component.html", "hash": "16275313429860723793" }, { "file": "apps/client/src/app/components/admin-tag/admin-tag.component.scss", "hash": "13027103444035360129" }, { "file": "apps/client/src/app/components/admin-tag/admin-tag.component.ts", "hash": "1563681177247469182", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:@prisma/client", "npm:ionicons", "npm:lodash", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.component.ts", "hash": "9436657605379720168", "deps": [ "common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html", "hash": "10031393499373756678" }, { "file": "apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.scss", "hash": "4704321692649892017" }, { "file": "apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/interfaces/interfaces.ts", "hash": "2180823042260238041", "deps": [ "npm:@prisma/client" ] }, { "file": "apps/client/src/app/components/admin-users/admin-users.component.ts", "hash": "13771927798611020451", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:date-fns", "npm:ionicons", "npm:ngx-device-detector", "npm:ngx-skeleton-loader", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/admin-users/admin-users.html", "hash": "7688091087236341156" }, { "file": "apps/client/src/app/components/admin-users/admin-users.scss", "hash": "7009173807116163093" }, { "file": "apps/client/src/app/components/ai-chat/ai-chat.component.html", "hash": "4245849363095290308" }, { "file": "apps/client/src/app/components/ai-chat/ai-chat.component.scss", "hash": "7600153598230075233" }, { "file": "apps/client/src/app/components/ai-chat/ai-chat.component.ts", "hash": "2752047163598700109", "deps": [ "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/forms", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/ai-chat/ai-markdown.pipe.ts", "hash": "7503664828207369999", "deps": [ "npm:@angular/core", "npm:@angular/platform-browser" ] }, { "file": "apps/client/src/app/components/ai-chat/portfolio-chart/portfolio-chart.component.html", "hash": "4296802236421412607" }, { "file": "apps/client/src/app/components/ai-chat/portfolio-chart/portfolio-chart.component.scss", "hash": "13684975983895990585" }, { "file": "apps/client/src/app/components/ai-chat/portfolio-chart/portfolio-chart.component.ts", "hash": "2167674391043651968", "deps": [ "npm:@angular/core", "npm:chart.js" ] }, { "file": "apps/client/src/app/components/ai-chat/real-estate-card/real-estate-card.component.html", "hash": "11367879544958123613" }, { "file": "apps/client/src/app/components/ai-chat/real-estate-card/real-estate-card.component.scss", "hash": "8139562825059084018" }, { "file": "apps/client/src/app/components/ai-chat/real-estate-card/real-estate-card.component.ts", "hash": "11915454421940825978", "deps": [ "npm:@angular/common", "npm:@angular/core" ] }, { "file": "apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html", "hash": "479713322640656508" }, { "file": "apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.scss", "hash": "8514395163855357955" }, { "file": "apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts", "hash": "16306189716818604913", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:@prisma/client", "npm:chart.js", "npm:chartjs-adapter-date-fns", "npm:chartjs-plugin-annotation", "npm:ionicons", "npm:ngx-skeleton-loader" ] }, { "file": "apps/client/src/app/components/data-provider-status/data-provider-status.component.html", "hash": "3925542451356870456" }, { "file": "apps/client/src/app/components/data-provider-status/data-provider-status.component.ts", "hash": "8358968328971411741", "deps": [ "ui", "npm:@angular/common", "npm:@angular/core", "npm:@prisma/client", "npm:ngx-skeleton-loader", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/data-provider-status/interfaces/interfaces.ts", "hash": "4029774955819797228" }, { "file": "apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.html", "hash": "3794254411679069331" }, { "file": "apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.scss", "hash": "8146631421652285360" }, { "file": "apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.ts", "hash": "2893306413481559071", "deps": [ "common", "ui", "npm:@angular/core", "npm:ngx-skeleton-loader" ] }, { "file": "apps/client/src/app/components/footer/footer.component.html", "hash": "7677246064655301430" }, { "file": "apps/client/src/app/components/footer/footer.component.scss", "hash": "18407039378423820640" }, { "file": "apps/client/src/app/components/footer/footer.component.ts", "hash": "11970486678324552674", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons" ] }, { "file": "apps/client/src/app/components/header/header.component.html", "hash": "1732967581749981160" }, { "file": "apps/client/src/app/components/header/header.component.scss", "hash": "6914948661384361336" }, { "file": "apps/client/src/app/components/header/header.component.ts", "hash": "13175433675094178639", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.scss", "hash": "14389676404586441784" }, { "file": "apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts", "hash": "1279443029560600683", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:@prisma/client", "npm:class-validator", "npm:date-fns", "npm:ionicons", "npm:ngx-skeleton-loader", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html", "hash": "2930887470598827271" }, { "file": "apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts", "hash": "191126400633910718", "deps": [ "common", "npm:@prisma/client" ] }, { "file": "apps/client/src/app/components/home-holdings/home-holdings.component.ts", "hash": "16728634182403660473", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/home-holdings/home-holdings.html", "hash": "12690510550756454866" }, { "file": "apps/client/src/app/components/home-holdings/home-holdings.scss", "hash": "4723890544624775415" }, { "file": "apps/client/src/app/components/home-market/home-market.component.ts", "hash": "11380997887190480942", "deps": [ "common", "ui", "npm:@angular/core", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/home-market/home-market.html", "hash": "6392471234984168918" }, { "file": "apps/client/src/app/components/home-market/home-market.scss", "hash": "2135937739181804669" }, { "file": "apps/client/src/app/components/home-overview/home-overview.component.ts", "hash": "6130859657548803952", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/home-overview/home-overview.html", "hash": "4920962722703709569" }, { "file": "apps/client/src/app/components/home-overview/home-overview.scss", "hash": "5706876007569166079" }, { "file": "apps/client/src/app/components/home-summary/home-summary.component.ts", "hash": "18323484238020315630", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/home-summary/home-summary.html", "hash": "9782578668344179166" }, { "file": "apps/client/src/app/components/home-summary/home-summary.scss", "hash": "13027103444035360129" }, { "file": "apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.component.scss", "hash": "13027103444035360129" }, { "file": "apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.component.ts", "hash": "6916667050736771706", "deps": [ "ui", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.html", "hash": "11970279927365724390" }, { "file": "apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/interfaces/interfaces.ts", "hash": "7735507385081528140" }, { "file": "apps/client/src/app/components/home-watchlist/home-watchlist.component.ts", "hash": "718946922045519769", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/home-watchlist/home-watchlist.html", "hash": "8502320670991333634" }, { "file": "apps/client/src/app/components/home-watchlist/home-watchlist.scss", "hash": "13027103444035360129" }, { "file": "apps/client/src/app/components/investment-chart/investment-chart.component.html", "hash": "8174220646676709198" }, { "file": "apps/client/src/app/components/investment-chart/investment-chart.component.scss", "hash": "15897516950633852301" }, { "file": "apps/client/src/app/components/investment-chart/investment-chart.component.ts", "hash": "16823701720783330935", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:chart.js", "npm:chartjs-adapter-date-fns", "npm:chartjs-plugin-annotation", "npm:date-fns", "npm:ngx-skeleton-loader" ] }, { "file": "apps/client/src/app/components/login-with-access-token-dialog/interfaces/interfaces.ts", "hash": "11684598095460900392" }, { "file": "apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.component.ts", "hash": "3902030503719463354", "deps": [ "ui", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@ionic/angular", "npm:ionicons" ] }, { "file": "apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html", "hash": "15249558892924285256" }, { "file": "apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.scss", "hash": "13027103444035360129" }, { "file": "apps/client/src/app/components/markets/markets.component.ts", "hash": "6875349484528810961", "deps": [ "common", "ui", "npm:@angular/core", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/markets/markets.html", "hash": "14858123435304816972" }, { "file": "apps/client/src/app/components/markets/markets.scss", "hash": "2135937739181804669" }, { "file": "apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html", "hash": "6931131168463970751" }, { "file": "apps/client/src/app/components/portfolio-performance/portfolio-performance.component.scss", "hash": "13277057842338871672" }, { "file": "apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts", "hash": "7915871163217190603", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@ionic/angular", "npm:countup.js", "npm:ionicons", "npm:lodash", "npm:ngx-skeleton-loader" ] }, { "file": "apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html", "hash": "684929204624743578" }, { "file": "apps/client/src/app/components/portfolio-summary/portfolio-summary.component.scss", "hash": "13027103444035360129" }, { "file": "apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts", "hash": "11406401722451443593", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@ionic/angular", "npm:date-fns", "npm:ionicons" ] }, { "file": "apps/client/src/app/components/rule/rule-settings-dialog/interfaces/interfaces.ts", "hash": "17619113341860705274", "deps": [ "common" ] }, { "file": "apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.component.ts", "hash": "2834510551761086873", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material" ] }, { "file": "apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html", "hash": "5857604958483998750" }, { "file": "apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.scss", "hash": "8042748621090870919" }, { "file": "apps/client/src/app/components/rule/rule.component.html", "hash": "5852978370401776990" }, { "file": "apps/client/src/app/components/rule/rule.component.scss", "hash": "14441759904772266654" }, { "file": "apps/client/src/app/components/rule/rule.component.ts", "hash": "8248019017696516776", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@ionic/angular", "npm:ionicons", "npm:ngx-device-detector", "npm:ngx-skeleton-loader", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/rules/rules.component.html", "hash": "12334497018914388483" }, { "file": "apps/client/src/app/components/rules/rules.component.scss", "hash": "13027103444035360129" }, { "file": "apps/client/src/app/components/rules/rules.component.ts", "hash": "16855026568245973444", "deps": [ "common", "npm:@angular/core", "npm:@angular/material" ] }, { "file": "apps/client/src/app/components/subscription-interstitial-dialog/interfaces/interfaces.ts", "hash": "9293012460480415122", "deps": [ "common" ] }, { "file": "apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts", "hash": "11377495683050161931", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:ms", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html", "hash": "7422542082768555465" }, { "file": "apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.scss", "hash": "12877818879073298453" }, { "file": "apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts", "hash": "15195261690772406233", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:http-status-codes", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html", "hash": "1143368880115020008" }, { "file": "apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.scss", "hash": "4704321692649892017" }, { "file": "apps/client/src/app/components/user-account-access/create-or-update-access-dialog/interfaces/interfaces.ts", "hash": "896409402003524166", "deps": [ "common" ] }, { "file": "apps/client/src/app/components/user-account-access/user-account-access.component.ts", "hash": "1688393703494884028", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/user-account-access/user-account-access.html", "hash": "10015246485670305613" }, { "file": "apps/client/src/app/components/user-account-access/user-account-access.scss", "hash": "14477351937719993417" }, { "file": "apps/client/src/app/components/user-account-membership/user-account-membership.component.ts", "hash": "2203830629659036209", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:ms", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/user-account-membership/user-account-membership.html", "hash": "6047444691086055737" }, { "file": "apps/client/src/app/components/user-account-membership/user-account-membership.scss", "hash": "10820821866916132038" }, { "file": "apps/client/src/app/components/user-account-settings/user-account-settings.component.ts", "hash": "11132757457183193880", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:date-fns", "npm:ionicons", "npm:ms", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/user-account-settings/user-account-settings.html", "hash": "8544223626017622911" }, { "file": "apps/client/src/app/components/user-account-settings/user-account-settings.scss", "hash": "14826547570222103093" }, { "file": "apps/client/src/app/components/user-detail-dialog/interfaces/interfaces.ts", "hash": "11043355342569663408" }, { "file": "apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.scss", "hash": "4704321692649892017" }, { "file": "apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts", "hash": "16342636622169870429", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@ionic/angular", "npm:ionicons", "npm:rxjs" ] }, { "file": "apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html", "hash": "9151006723147071312" }, { "file": "apps/client/src/app/core/auth.guard.ts", "hash": "12148020903053278620", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/router", "npm:rxjs" ] }, { "file": "apps/client/src/app/core/auth.interceptor.ts", "hash": "1497876181791257506", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:rxjs" ] }, { "file": "apps/client/src/app/core/http-response.interceptor.ts", "hash": "1228033415553476773", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:http-status-codes", "npm:ms", "npm:rxjs" ] }, { "file": "apps/client/src/app/core/language.service.ts", "hash": "14847054199780127645", "deps": [ "npm:@angular/core" ] }, { "file": "apps/client/src/app/core/layout.service.ts", "hash": "6709563926938498697", "deps": [ "ui", "npm:@angular/core", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/core/module-preload.service.ts", "hash": "5040496342575199955", "deps": [ "npm:@angular/core", "npm:@angular/router", "npm:rxjs" ] }, { "file": "apps/client/src/app/directives/file-drop/file-drop.directive.ts", "hash": "4109271109156522724", "deps": [ "npm:@angular/core" ] }, { "file": "apps/client/src/app/pages/about/about-page.component.ts", "hash": "3990499557940800640", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/about/about-page.html", "hash": "4714612951943756587" }, { "file": "apps/client/src/app/pages/about/about-page.routes.ts", "hash": "15062819270088369086", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/about/about-page.scss", "hash": "15477411832764313176" }, { "file": "apps/client/src/app/pages/about/changelog/changelog-page.component.ts", "hash": "12419694424003032101", "deps": [ "npm:@angular/core", "npm:ngx-markdown", "npm:ngx-skeleton-loader" ] }, { "file": "apps/client/src/app/pages/about/changelog/changelog-page.html", "hash": "7226619615197741342" }, { "file": "apps/client/src/app/pages/about/changelog/changelog-page.routes.ts", "hash": "5383825563484633739", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/about/changelog/changelog-page.scss", "hash": "5627587724077427718" }, { "file": "apps/client/src/app/pages/about/license/license-page.component.ts", "hash": "14699878400416958382", "deps": [ "npm:@angular/core", "npm:ngx-markdown", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/about/license/license-page.html", "hash": "4482804357101113651" }, { "file": "apps/client/src/app/pages/about/license/license-page.routes.ts", "hash": "5730251728950061838", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/about/license/license-page.scss", "hash": "14477351937719993417" }, { "file": "apps/client/src/app/pages/about/oss-friends/oss-friends-page.component.ts", "hash": "2393887789317814692", "deps": [ "npm:@angular/core", "npm:@angular/material", "npm:@ionic/angular", "npm:ionicons" ] }, { "file": "apps/client/src/app/pages/about/oss-friends/oss-friends-page.html", "hash": "8284352075957827881" }, { "file": "apps/client/src/app/pages/about/oss-friends/oss-friends-page.routes.ts", "hash": "6500365780701982140", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/about/oss-friends/oss-friends-page.scss", "hash": "9431923870739680990" }, { "file": "apps/client/src/app/pages/about/overview/about-overview-page.component.ts", "hash": "15577781218360933586", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/about/overview/about-overview-page.html", "hash": "16982612241510764567" }, { "file": "apps/client/src/app/pages/about/overview/about-overview-page.routes.ts", "hash": "8070075047912522795", "deps": [ "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/about/overview/about-overview-page.scss", "hash": "5012434259242447426" }, { "file": "apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.component.ts", "hash": "8912492667581891347", "deps": [ "npm:@angular/core", "npm:ngx-markdown", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html", "hash": "4459628210820570565" }, { "file": "apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.routes.ts", "hash": "5881987925648683269", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.scss", "hash": "18148060741308394252" }, { "file": "apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.component.ts", "hash": "17552734418666284717", "deps": [ "npm:@angular/core", "npm:ngx-markdown", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.html", "hash": "772330308251165700" }, { "file": "apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.routes.ts", "hash": "6348448278782893640", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.scss", "hash": "18148060741308394252" }, { "file": "apps/client/src/app/pages/accounts/accounts-page.component.ts", "hash": "2398273996904270271", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@prisma/client", "npm:ionicons", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/accounts/accounts-page.html", "hash": "8160015280647644168" }, { "file": "apps/client/src/app/pages/accounts/accounts-page.routes.ts", "hash": "11606823717607090625", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/accounts/accounts-page.scss", "hash": "13027103444035360129" }, { "file": "apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts", "hash": "8227277362068804312", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@prisma/client", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html", "hash": "11354014044410737610" }, { "file": "apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.scss", "hash": "4704321692649892017" }, { "file": "apps/client/src/app/pages/accounts/create-or-update-account-dialog/interfaces/interfaces.ts", "hash": "4945713113621340822", "deps": [ "npm:@prisma/client" ] }, { "file": "apps/client/src/app/pages/accounts/transfer-balance/interfaces/interfaces.ts", "hash": "5526689274518789670", "deps": [ "npm:@prisma/client" ] }, { "file": "apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.component.ts", "hash": "15209615077503231800", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@prisma/client", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html", "hash": "7811819076843042577" }, { "file": "apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.scss", "hash": "4704321692649892017" }, { "file": "apps/client/src/app/pages/admin/admin-page.component.ts", "hash": "2963269174669422053", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:ngx-device-detector" ] }, { "file": "apps/client/src/app/pages/admin/admin-page.html", "hash": "16175840787783744733" }, { "file": "apps/client/src/app/pages/admin/admin-page.routes.ts", "hash": "8126287226270697060", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/admin/admin-page.scss", "hash": "15477411832764313176" }, { "file": "apps/client/src/app/pages/api/api-page.component.ts", "hash": "11627270870177990591", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:date-fns", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/api/api-page.html", "hash": "11773784187738606746" }, { "file": "apps/client/src/app/pages/api/api-page.scss", "hash": "13027103444035360129" }, { "file": "apps/client/src/app/pages/auth/auth-page.component.ts", "hash": "9311264893121088113", "deps": [ "npm:@angular/core", "npm:@angular/router", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/auth/auth-page.html", "hash": "3244421341483603138" }, { "file": "apps/client/src/app/pages/auth/auth-page.routes.ts", "hash": "17815044697769752214", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/auth/auth-page.scss", "hash": "2239867564283572599" }, { "file": "apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts", "hash": "6676852197350463", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html", "hash": "3537065995343134185" }, { "file": "apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts", "hash": "1990882772153691186", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html", "hash": "16752330018813545854" }, { "file": "apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts", "hash": "17232540295446490038", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html", "hash": "3906952404050316693" }, { "file": "apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.component.ts", "hash": "6978646210638711134", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.html", "hash": "14492802708016270536" }, { "file": "apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts", "hash": "3334447077009186150", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.html", "hash": "9671074603433411912" }, { "file": "apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts", "hash": "9222041512498701978", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.html", "hash": "17192421411676901602" }, { "file": "apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.component.ts", "hash": "3914358784790259900", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.html", "hash": "13121547237419078481" }, { "file": "apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts", "hash": "10704977899474630427", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.html", "hash": "1474967662283829442" }, { "file": "apps/client/src/app/pages/blog/2022/12/the-importance-of-tracking-your-personal-finances/the-importance-of-tracking-your-personal-finances-page.component.ts", "hash": "11843944385895307042", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2022/12/the-importance-of-tracking-your-personal-finances/the-importance-of-tracking-your-personal-finances-page.html", "hash": "1386251408792284357" }, { "file": "apps/client/src/app/pages/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt/ghostfolio-auf-sackgeld-vorgestellt-page.component.ts", "hash": "15739896652807574185", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt/ghostfolio-auf-sackgeld-vorgestellt-page.html", "hash": "10143108222104883587" }, { "file": "apps/client/src/app/pages/blog/2023/02/ghostfolio-meets-umbrel/ghostfolio-meets-umbrel-page.component.ts", "hash": "16200467740260033391", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2023/02/ghostfolio-meets-umbrel/ghostfolio-meets-umbrel-page.html", "hash": "8779136286929757085" }, { "file": "apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts", "hash": "129923509404398673", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.html", "hash": "10431945900821424059" }, { "file": "apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts", "hash": "16301109196345633843", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.html", "hash": "10134652855669159165" }, { "file": "apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts", "hash": "17890895722955197318", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.html", "hash": "14172703549443581946" }, { "file": "apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts", "hash": "6474063698590805542", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.html", "hash": "7953636195775411679" }, { "file": "apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts", "hash": "2438627007175710919", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.html", "hash": "17681300839216332216" }, { "file": "apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts", "hash": "12565877466633185982", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.html", "hash": "13988982654060288219" }, { "file": "apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts", "hash": "14701520293804542133", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.html", "hash": "1924926000701490583" }, { "file": "apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts", "hash": "11299955893869338605", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.html", "hash": "12940293872956092114" }, { "file": "apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts", "hash": "13648836563075728900", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.html", "hash": "3729867476412097" }, { "file": "apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts", "hash": "16709775645604300471", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html", "hash": "621689288930140662" }, { "file": "apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.component.ts", "hash": "3788410469385035398", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html", "hash": "9491834506053104554" }, { "file": "apps/client/src/app/pages/blog/2025/11/black-weeks-2025/black-weeks-2025-page.component.ts", "hash": "4834174599764446718", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/2025/11/black-weeks-2025/black-weeks-2025-page.html", "hash": "6625894656919245159" }, { "file": "apps/client/src/app/pages/blog/blog-page.component.ts", "hash": "13911357920080141251", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/blog/blog-page.html", "hash": "16367514571861906456" }, { "file": "apps/client/src/app/pages/blog/blog-page.routes.ts", "hash": "16650551717521262076", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/blog/blog-page.scss", "hash": "8977556915821101106" }, { "file": "apps/client/src/app/pages/demo/demo-page.component.ts", "hash": "9230148344382118566", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/router", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/demo/demo-page.html", "hash": "3244421341483603138" }, { "file": "apps/client/src/app/pages/faq/faq-page.component.ts", "hash": "3541175173094234696", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/faq/faq-page.html", "hash": "4714612951943756587" }, { "file": "apps/client/src/app/pages/faq/faq-page.routes.ts", "hash": "10885879370050430643", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/faq/faq-page.scss", "hash": "15477411832764313176" }, { "file": "apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts", "hash": "8111507488064762859", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/faq/overview/faq-overview-page.html", "hash": "10743563255074612612" }, { "file": "apps/client/src/app/pages/faq/overview/faq-overview-page.routes.ts", "hash": "15414802207782949341", "deps": [ "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/faq/overview/faq-overview-page.scss", "hash": "6217860843745094081" }, { "file": "apps/client/src/app/pages/faq/saas/saas-page.component.ts", "hash": "7155941807541040163", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/faq/saas/saas-page.html", "hash": "14437554027046298410" }, { "file": "apps/client/src/app/pages/faq/saas/saas-page.routes.ts", "hash": "16055021722802109095", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/faq/saas/saas-page.scss", "hash": "6217860843745094081" }, { "file": "apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts", "hash": "17412735411685519700", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html", "hash": "10550083209830646385" }, { "file": "apps/client/src/app/pages/faq/self-hosting/self-hosting-page.routes.ts", "hash": "9561269784715693828", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/faq/self-hosting/self-hosting-page.scss", "hash": "6217860843745094081" }, { "file": "apps/client/src/app/pages/features/features-page.component.ts", "hash": "2758339116529768561", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/features/features-page.html", "hash": "9190766642226112894" }, { "file": "apps/client/src/app/pages/features/features-page.scss", "hash": "8950666980568756827" }, { "file": "apps/client/src/app/pages/home/home-page.component.ts", "hash": "5748369996176450666", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/home/home-page.html", "hash": "4714612951943756587" }, { "file": "apps/client/src/app/pages/home/home-page.routes.ts", "hash": "8632746722056774352", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/home/home-page.scss", "hash": "15477411832764313176" }, { "file": "apps/client/src/app/pages/i18n/i18n-page.component.ts", "hash": "6402072513136275771", "deps": [ "npm:@angular/core", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/i18n/i18n-page.html", "hash": "12571422511505334526" }, { "file": "apps/client/src/app/pages/i18n/i18n-page.scss", "hash": "13027103444035360129" }, { "file": "apps/client/src/app/pages/landing/landing-page.component.ts", "hash": "2399060567595182789", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:date-fns", "npm:ionicons", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/landing/landing-page.html", "hash": "1497327747969832296" }, { "file": "apps/client/src/app/pages/landing/landing-page.routes.ts", "hash": "12836490608767578524", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/landing/landing-page.scss", "hash": "13015170700793283029" }, { "file": "apps/client/src/app/pages/markets/markets-page.component.ts", "hash": "3496383030168265175", "deps": [ "npm:@angular/core", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/markets/markets-page.html", "hash": "7298520591032127616" }, { "file": "apps/client/src/app/pages/markets/markets-page.routes.ts", "hash": "10647568349248274734", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/markets/markets-page.scss", "hash": "13027103444035360129" }, { "file": "apps/client/src/app/pages/open/open-page.component.ts", "hash": "13393925129008422391", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/open/open-page.html", "hash": "13893329611087406614" }, { "file": "apps/client/src/app/pages/open/open-page.routes.ts", "hash": "17995934608818148332", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/open/open-page.scss", "hash": "4020857030744983763" }, { "file": "apps/client/src/app/pages/portfolio/activities/activities-page.component.ts", "hash": "11887983413822701868", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:date-fns", "npm:ionicons", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/portfolio/activities/activities-page.html", "hash": "4291953993232743200" }, { "file": "apps/client/src/app/pages/portfolio/activities/activities-page.routes.ts", "hash": "16273084523893069887", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/portfolio/activities/activities-page.scss", "hash": "13027103444035360129" }, { "file": "apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts", "hash": "14296650393944332921", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@ionic/angular", "npm:@prisma/client", "npm:date-fns", "npm:ionicons", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html", "hash": "17158173524022538088" }, { "file": "apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.scss", "hash": "15711318554933547473" }, { "file": "apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/interfaces/interfaces.ts", "hash": "17210569395473073612", "deps": [ "common", "npm:@prisma/client" ] }, { "file": "apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/types/activity-type.type.ts", "hash": "12543983627660829532", "deps": [ "npm:@prisma/client" ] }, { "file": "apps/client/src/app/pages/portfolio/activities/import-activities-dialog/enums/import-step.ts", "hash": "2381232556830393358" }, { "file": "apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts", "hash": "8923002855776624086", "deps": [ "common", "ui", "npm:@angular/cdk", "npm:@angular/common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@ionic/angular", "npm:@prisma/client", "npm:ionicons", "npm:lodash", "npm:ms", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html", "hash": "15756735464827169384" }, { "file": "apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.scss", "hash": "7326991256478358644" }, { "file": "apps/client/src/app/pages/portfolio/activities/import-activities-dialog/interfaces/interfaces.ts", "hash": "18390384725404788880", "deps": [ "common", "npm:@prisma/client" ] }, { "file": "apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts", "hash": "17287737683685523743", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@prisma/client", "npm:lodash", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/portfolio/allocations/allocations-page.html", "hash": "13785084361045825718" }, { "file": "apps/client/src/app/pages/portfolio/allocations/allocations-page.routes.ts", "hash": "9941752542484010043", "deps": [ "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/portfolio/allocations/allocations-page.scss", "hash": "1275463277965125798" }, { "file": "apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts", "hash": "13480934815678152418", "deps": [ "common", "ui", "npm:@angular/cdk", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:@prisma/client", "npm:ionicons", "npm:lodash", "npm:ms", "npm:ngx-device-detector", "npm:ngx-skeleton-loader", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/portfolio/analysis/analysis-page.html", "hash": "3764320919064690015" }, { "file": "apps/client/src/app/pages/portfolio/analysis/analysis-page.routes.ts", "hash": "3697866390485301366", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/portfolio/analysis/analysis-page.scss", "hash": "10863956955468823261" }, { "file": "apps/client/src/app/pages/portfolio/fire/fire-page.component.ts", "hash": "11695006210831943287", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/forms", "npm:big.js", "npm:ngx-device-detector", "npm:ngx-skeleton-loader", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/portfolio/fire/fire-page.html", "hash": "13563555818368434813" }, { "file": "apps/client/src/app/pages/portfolio/fire/fire-page.routes.ts", "hash": "3030692218252387098", "deps": [ "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/portfolio/fire/fire-page.scss", "hash": "850301236067537731" }, { "file": "apps/client/src/app/pages/portfolio/portfolio-page.component.ts", "hash": "11692127180094070010", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:ionicons", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/portfolio/portfolio-page.html", "hash": "4714612951943756587" }, { "file": "apps/client/src/app/pages/portfolio/portfolio-page.routes.ts", "hash": "14518653019970574123", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/portfolio/portfolio-page.scss", "hash": "15477411832764313176" }, { "file": "apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html", "hash": "7748546466913513127" }, { "file": "apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.scss", "hash": "2701747692084050305" }, { "file": "apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts", "hash": "10693170141096339455", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@ionic/angular", "npm:ionicons", "npm:ngx-skeleton-loader", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/portfolio/x-ray/x-ray-page.routes.ts", "hash": "1849246179626161044", "deps": [ "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/pricing/pricing-page.component.ts", "hash": "12823265262405795873", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:ms", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/pricing/pricing-page.html", "hash": "1562799419819630407" }, { "file": "apps/client/src/app/pages/pricing/pricing-page.routes.ts", "hash": "12833153067928098184", "deps": [ "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/pricing/pricing-page.scss", "hash": "8596829094606286168" }, { "file": "apps/client/src/app/pages/public/public-page.component.ts", "hash": "7731114717293893683", "deps": [ "common", "ui", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@prisma/client", "npm:http-status-codes", "npm:lodash", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/public/public-page.html", "hash": "3625517939197347335" }, { "file": "apps/client/src/app/pages/public/public-page.routes.ts", "hash": "882840875786004146", "deps": [ "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/public/public-page.scss", "hash": "16437306368196988131" }, { "file": "apps/client/src/app/pages/register/register-page.component.ts", "hash": "12089177970600919846", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/register/register-page.html", "hash": "12965403768576182709" }, { "file": "apps/client/src/app/pages/register/register-page.routes.ts", "hash": "1347756210818994835", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/register/register-page.scss", "hash": "16294282411248520206" }, { "file": "apps/client/src/app/pages/register/user-account-registration-dialog/interfaces/interfaces.ts", "hash": "4070911639708050189" }, { "file": "apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.component.ts", "hash": "10122832345042879491", "deps": [ "common", "ui", "npm:@angular/cdk", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html", "hash": "11191116890900253882" }, { "file": "apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.scss", "hash": "9576170968649839603" }, { "file": "apps/client/src/app/pages/resources/glossary/resources-glossary.component.html", "hash": "7088891884467569599" }, { "file": "apps/client/src/app/pages/resources/glossary/resources-glossary.component.scss", "hash": "8950666980568756827" }, { "file": "apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts", "hash": "5670658525230118255", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/resources/glossary/resources-glossary.routes.ts", "hash": "13513812621113891706", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/resources/guides/resources-guides.component.html", "hash": "9937099116678171239" }, { "file": "apps/client/src/app/pages/resources/guides/resources-guides.component.scss", "hash": "8950666980568756827" }, { "file": "apps/client/src/app/pages/resources/guides/resources-guides.component.ts", "hash": "16622378725671902412", "deps": [ "npm:@angular/core", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/resources/guides/resources-guides.routes.ts", "hash": "5480002194249880041", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/resources/markets/resources-markets.component.html", "hash": "5935207804260048603" }, { "file": "apps/client/src/app/pages/resources/markets/resources-markets.component.scss", "hash": "8950666980568756827" }, { "file": "apps/client/src/app/pages/resources/markets/resources-markets.component.ts", "hash": "91690110977230219", "deps": [ "npm:@angular/core" ] }, { "file": "apps/client/src/app/pages/resources/markets/resources-markets.routes.ts", "hash": "2509948377138197078", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/resources/overview/resources-overview.component.html", "hash": "11977445795955835858" }, { "file": "apps/client/src/app/pages/resources/overview/resources-overview.component.scss", "hash": "8950666980568756827" }, { "file": "apps/client/src/app/pages/resources/overview/resources-overview.component.ts", "hash": "8446953232963553215", "deps": [ "common", "npm:@angular/core", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/resources/overview/resources-overview.routes.ts", "hash": "750410504200335030", "deps": [ "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts", "hash": "10816069308287254400", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html", "hash": "11130662075526191758" }, { "file": "apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.routes.ts", "hash": "11017837210122110002", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.scss", "hash": "13646832794663364583" }, { "file": "apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts", "hash": "213331767451801887", "deps": [ "common", "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/resources/personal-finance-tools/product-page.html", "hash": "1714121874947572290" }, { "file": "apps/client/src/app/pages/resources/personal-finance-tools/product-page.scss", "hash": "6287789186381734493" }, { "file": "apps/client/src/app/pages/resources/resources-page.component.ts", "hash": "8058926575839348899", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/resources/resources-page.html", "hash": "4714612951943756587" }, { "file": "apps/client/src/app/pages/resources/resources-page.routes.ts", "hash": "15758855819540700204", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/resources/resources-page.scss", "hash": "15477411832764313176" }, { "file": "apps/client/src/app/pages/user-account/user-account-page.component.ts", "hash": "6568380133738982628", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/user-account/user-account-page.html", "hash": "4714612951943756587" }, { "file": "apps/client/src/app/pages/user-account/user-account-page.routes.ts", "hash": "17195017595728046080", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/user-account/user-account-page.scss", "hash": "15477411832764313176" }, { "file": "apps/client/src/app/pages/webauthn/webauthn-page.component.ts", "hash": "560734901423571566", "deps": [ "ui", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/webauthn/webauthn-page.html", "hash": "15932902948438103496" }, { "file": "apps/client/src/app/pages/webauthn/webauthn-page.scss", "hash": "12848913332226562112" }, { "file": "apps/client/src/app/pages/zen/zen-page.component.ts", "hash": "9497669550522438217", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/pages/zen/zen-page.html", "hash": "4714612951943756587" }, { "file": "apps/client/src/app/pages/zen/zen-page.routes.ts", "hash": "8386002608832545341", "deps": [ "common", "npm:@angular/router" ] }, { "file": "apps/client/src/app/pages/zen/zen-page.scss", "hash": "15477411832764313176" }, { "file": "apps/client/src/app/services/ai-chat.service.ts", "hash": "9244815979730334762", "deps": [ "npm:@angular/core", "npm:rxjs" ] }, { "file": "apps/client/src/app/services/cache.service.ts", "hash": "15052600112753296658", "deps": [ "npm:@angular/common", "npm:@angular/core" ] }, { "file": "apps/client/src/app/services/ics/ics.service.ts", "hash": "5406276691203236858", "deps": [ "common", "npm:@angular/core", "npm:@prisma/client", "npm:date-fns" ] }, { "file": "apps/client/src/app/services/impersonation-storage.service.ts", "hash": "7789594055937999523", "deps": [ "npm:@angular/core", "npm:rxjs" ] }, { "file": "apps/client/src/app/services/import-activities.service.ts", "hash": "14254153200712026861", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:@prisma/client", "npm:lodash", "npm:papaparse", "npm:rxjs" ] }, { "file": "apps/client/src/app/services/page-title.strategy.ts", "hash": "10261701088975020786", "deps": [ "npm:@angular/core", "npm:@angular/platform-browser", "npm:@angular/router" ] }, { "file": "apps/client/src/app/services/settings-storage.service.ts", "hash": "17973239997792831447", "deps": [ "npm:@angular/core" ] }, { "file": "apps/client/src/app/services/token-storage.service.ts", "hash": "18208297461724930334", "deps": [ "npm:@angular/core" ] }, { "file": "apps/client/src/app/services/user/user-store.actions.ts", "hash": "13503862465183627583" }, { "file": "apps/client/src/app/services/user/user-store.state.ts", "hash": "15745285627488286462", "deps": [ "common" ] }, { "file": "apps/client/src/app/services/user/user.service.ts", "hash": "10580593447974975788", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@codewithdan/observable-store", "npm:date-fns", "npm:ngx-device-detector", "npm:rxjs" ] }, { "file": "apps/client/src/app/services/web-authn.service.ts", "hash": "12853227751430259283", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:@simplewebauthn/browser", "npm:rxjs" ] }, { "file": "apps/client/src/app/util/rxjs.util.ts", "hash": "7692754070066246514" }, { "file": "apps/client/src/assets/.well-known/assetlinks.json", "hash": "17748211925306212726" }, { "file": "apps/client/src/assets/android-chrome-192x192.png", "hash": "1426204903990574578" }, { "file": "apps/client/src/assets/android-chrome-512x512.png", "hash": "11090355413905569035" }, { "file": "apps/client/src/assets/apple-touch-icon.png", "hash": "846919348597317210" }, { "file": "apps/client/src/assets/bootstrapped-dark.svg", "hash": "12926547307313000628" }, { "file": "apps/client/src/assets/bootstrapped-light.svg", "hash": "4828071557701272170" }, { "file": "apps/client/src/assets/cover.png", "hash": "15952546557931194444" }, { "file": "apps/client/src/assets/favicon-16x16.png", "hash": "5377426446766169446" }, { "file": "apps/client/src/assets/favicon-32x32.png", "hash": "14730299328617416586" }, { "file": "apps/client/src/assets/favicon.ico", "hash": "11625617523574118805" }, { "file": "apps/client/src/assets/fonts/Inter-Black.woff2", "hash": "11937952836971143822" }, { "file": "apps/client/src/assets/fonts/Inter-BlackItalic.woff2", "hash": "1493127890248109527" }, { "file": "apps/client/src/assets/fonts/Inter-Bold.woff2", "hash": "17713292774846215858" }, { "file": "apps/client/src/assets/fonts/Inter-BoldItalic.woff2", "hash": "623092326375378804" }, { "file": "apps/client/src/assets/fonts/Inter-ExtraBold.woff2", "hash": "13350127271424547661" }, { "file": "apps/client/src/assets/fonts/Inter-ExtraBoldItalic.woff2", "hash": "5132494226338059780" }, { "file": "apps/client/src/assets/fonts/Inter-ExtraLight.woff2", "hash": "1911643457538003395" }, { "file": "apps/client/src/assets/fonts/Inter-ExtraLightItalic.woff2", "hash": "7376504950079003494" }, { "file": "apps/client/src/assets/fonts/Inter-Italic.woff2", "hash": "18298239467480916863" }, { "file": "apps/client/src/assets/fonts/Inter-Light.woff2", "hash": "13938428275129276428" }, { "file": "apps/client/src/assets/fonts/Inter-LightItalic.woff2", "hash": "9871428815886675582" }, { "file": "apps/client/src/assets/fonts/Inter-Medium.woff2", "hash": "11062895445081207924" }, { "file": "apps/client/src/assets/fonts/Inter-MediumItalic.woff2", "hash": "6617211757258325454" }, { "file": "apps/client/src/assets/fonts/Inter-Regular.woff2", "hash": "16448910949437882740" }, { "file": "apps/client/src/assets/fonts/Inter-SemiBold.woff2", "hash": "1152230929913881663" }, { "file": "apps/client/src/assets/fonts/Inter-SemiBoldItalic.woff2", "hash": "14631358580949483704" }, { "file": "apps/client/src/assets/fonts/Inter-Thin.woff2", "hash": "6495107939414287224" }, { "file": "apps/client/src/assets/fonts/Inter-ThinItalic.woff2", "hash": "14663807749029210927" }, { "file": "apps/client/src/assets/fonts/InterDisplay-Black.woff2", "hash": "16554722172362479052" }, { "file": "apps/client/src/assets/fonts/InterDisplay-BlackItalic.woff2", "hash": "344888430947260530" }, { "file": "apps/client/src/assets/fonts/InterDisplay-Bold.woff2", "hash": "13882914833153795991" }, { "file": "apps/client/src/assets/fonts/InterDisplay-BoldItalic.woff2", "hash": "10218571855474088911" }, { "file": "apps/client/src/assets/fonts/InterDisplay-ExtraBold.woff2", "hash": "6349723785520240876" }, { "file": "apps/client/src/assets/fonts/InterDisplay-ExtraBoldItalic.woff2", "hash": "12738383799612198894" }, { "file": "apps/client/src/assets/fonts/InterDisplay-ExtraLight.woff2", "hash": "7286591343131274660" }, { "file": "apps/client/src/assets/fonts/InterDisplay-ExtraLightItalic.woff2", "hash": "11837632329941109902" }, { "file": "apps/client/src/assets/fonts/InterDisplay-Italic.woff2", "hash": "11328397217511402142" }, { "file": "apps/client/src/assets/fonts/InterDisplay-Light.woff2", "hash": "12938923642684626369" }, { "file": "apps/client/src/assets/fonts/InterDisplay-LightItalic.woff2", "hash": "14219656320464575456" }, { "file": "apps/client/src/assets/fonts/InterDisplay-Medium.woff2", "hash": "3964945058765210961" }, { "file": "apps/client/src/assets/fonts/InterDisplay-MediumItalic.woff2", "hash": "2104287557884630375" }, { "file": "apps/client/src/assets/fonts/InterDisplay-Regular.woff2", "hash": "8386787718912711348" }, { "file": "apps/client/src/assets/fonts/InterDisplay-SemiBold.woff2", "hash": "17855004808153655561" }, { "file": "apps/client/src/assets/fonts/InterDisplay-SemiBoldItalic.woff2", "hash": "6670789015889428999" }, { "file": "apps/client/src/assets/fonts/InterDisplay-Thin.woff2", "hash": "9794989684243633868" }, { "file": "apps/client/src/assets/fonts/InterDisplay-ThinItalic.woff2", "hash": "10867159997688586182" }, { "file": "apps/client/src/assets/fonts/InterVariable-Italic.woff2", "hash": "16964764538251896861" }, { "file": "apps/client/src/assets/fonts/InterVariable.woff2", "hash": "3209719928503176086" }, { "file": "apps/client/src/assets/fonts/inter.css", "hash": "8107862913626458843" }, { "file": "apps/client/src/assets/ghost.svg", "hash": "10353562633428501672" }, { "file": "apps/client/src/assets/icons/google.svg", "hash": "3214168647753194162" }, { "file": "apps/client/src/assets/images/blog/1000-stars-on-github.jpg", "hash": "4868694944062900423" }, { "file": "apps/client/src/assets/images/blog/20221226.jpg", "hash": "2360809366711559315" }, { "file": "apps/client/src/assets/images/blog/20230520.jpg", "hash": "3153081508989047302" }, { "file": "apps/client/src/assets/images/blog/20230701.jpg", "hash": "27321759123796171" }, { "file": "apps/client/src/assets/images/blog/500-stars-on-github.jpg", "hash": "2049826594134017174" }, { "file": "apps/client/src/assets/images/blog/black-friday-2022.jpg", "hash": "3062564197363405604" }, { "file": "apps/client/src/assets/images/blog/black-week-2023.jpg", "hash": "808853555361321736" }, { "file": "apps/client/src/assets/images/blog/black-weeks-2024.jpg", "hash": "8872819714181430429" }, { "file": "apps/client/src/assets/images/blog/black-weeks-2025.jpg", "hash": "8872819714181430429" }, { "file": "apps/client/src/assets/images/blog/ghostfolio-2.jpg", "hash": "3138788769169204176" }, { "file": "apps/client/src/assets/images/blog/ghostfolio-joins-oss-friends.png", "hash": "15500862494123332817" }, { "file": "apps/client/src/assets/images/blog/ghostfolio-meets-internet-identity.png", "hash": "8630508927855457042" }, { "file": "apps/client/src/assets/images/blog/ghostfolio-x-sackgeld.png", "hash": "10377803921254882302" }, { "file": "apps/client/src/assets/images/blog/ghostfolio-x-umbrel.png", "hash": "17670643520802015718" }, { "file": "apps/client/src/assets/images/blog/hacktoberfest-2022.png", "hash": "1264375910797095761" }, { "file": "apps/client/src/assets/images/blog/hacktoberfest-2023-badges.png", "hash": "7267872701782744252" }, { "file": "apps/client/src/assets/images/blog/hacktoberfest-2023-insights.png", "hash": "13707854152951978190" }, { "file": "apps/client/src/assets/images/blog/hacktoberfest-2023.png", "hash": "6333780242458327034" }, { "file": "apps/client/src/assets/images/blog/hacktoberfest-2024.png", "hash": "17185079941904627786" }, { "file": "apps/client/src/assets/images/blog/hacktoberfest-2025.png", "hash": "7905641510630366367" }, { "file": "apps/client/src/assets/images/blog/star-history-20230325.png", "hash": "17248241774766686136" }, { "file": "apps/client/src/assets/images/blog/umbrel-app-store.png", "hash": "16540778936835084716" }, { "file": "apps/client/src/assets/images/button-buy-me-a-coffee.png", "hash": "7385007108176137316" }, { "file": "apps/client/src/assets/images/logo-AGPLv3.svg", "hash": "10660002666513405984" }, { "file": "apps/client/src/assets/images/logo-alternative-to.svg", "hash": "12976117640579817253" }, { "file": "apps/client/src/assets/images/logo-awesome.png", "hash": "16649852289350502040" }, { "file": "apps/client/src/assets/images/logo-dev-community.svg", "hash": "12135599918377682809" }, { "file": "apps/client/src/assets/images/logo-hacker-news.svg", "hash": "1654227930986449516" }, { "file": "apps/client/src/assets/images/logo-openalternative.svg", "hash": "12894173409569846506" }, { "file": "apps/client/src/assets/images/logo-oss-gallery.svg", "hash": "14952985838294957628" }, { "file": "apps/client/src/assets/images/logo-privacy-tools.svg", "hash": "6884102786315718144" }, { "file": "apps/client/src/assets/images/logo-product-hunt.png", "hash": "10916653304477473843" }, { "file": "apps/client/src/assets/images/logo-reddit.svg", "hash": "12374339529412428164" }, { "file": "apps/client/src/assets/images/logo-sackgeld.png", "hash": "9532468577143758132" }, { "file": "apps/client/src/assets/images/logo-selfh-st.svg", "hash": "4436073133652455167" }, { "file": "apps/client/src/assets/images/logo-selfhostedhub.svg", "hash": "11101744335859922723" }, { "file": "apps/client/src/assets/images/logo-sourceforge.svg", "hash": "13624612123277950505" }, { "file": "apps/client/src/assets/images/logo-umbrel.svg", "hash": "2474253535351009225" }, { "file": "apps/client/src/assets/images/logo-unraid.svg", "hash": "10163965188682967651" }, { "file": "apps/client/src/assets/images/screenshot.png", "hash": "5823458719000317414" }, { "file": "apps/client/src/assets/images/sponsors/logo-testmu-dark.svg", "hash": "2534069783663248542" }, { "file": "apps/client/src/assets/images/sponsors/logo-testmu-light.svg", "hash": "3286135862200751090" }, { "file": "apps/client/src/assets/images/video-preview.jpg", "hash": "3244505629114847344" }, { "file": "apps/client/src/assets/index.html", "hash": "3244421341483603138" }, { "file": "apps/client/src/assets/intro.jpg", "hash": "8997414639532850585" }, { "file": "apps/client/src/assets/oss-friends.json", "hash": "5163043820555989233" }, { "file": "apps/client/src/assets/privacy-policy.md", "hash": "2819310421968933185" }, { "file": "apps/client/src/assets/robots.txt", "hash": "15025097878183897636" }, { "file": "apps/client/src/assets/terms-of-service.md", "hash": "13341889138242789236" }, { "file": "apps/client/src/environments/environment.prod.ts", "hash": "1523316893312722655", "deps": [ "ui" ] }, { "file": "apps/client/src/environments/environment.ts", "hash": "8313509003517650347", "deps": [ "ui" ] }, { "file": "apps/client/src/index.html", "hash": "3921042934530238411" }, { "file": "apps/client/src/locales/messages.ca.xlf", "hash": "623321874040090953" }, { "file": "apps/client/src/locales/messages.de.xlf", "hash": "2864951800568681254" }, { "file": "apps/client/src/locales/messages.es.xlf", "hash": "13069379848258815131" }, { "file": "apps/client/src/locales/messages.fr.xlf", "hash": "6496515368253927134" }, { "file": "apps/client/src/locales/messages.it.xlf", "hash": "2846753295076421980" }, { "file": "apps/client/src/locales/messages.ko.xlf", "hash": "5813511163365263266" }, { "file": "apps/client/src/locales/messages.nl.xlf", "hash": "7099345548369113035" }, { "file": "apps/client/src/locales/messages.pl.xlf", "hash": "6310361545803025576" }, { "file": "apps/client/src/locales/messages.pt.xlf", "hash": "989975621890957189" }, { "file": "apps/client/src/locales/messages.tr.xlf", "hash": "7102117632707814948" }, { "file": "apps/client/src/locales/messages.uk.xlf", "hash": "7316609893384400812" }, { "file": "apps/client/src/locales/messages.xlf", "hash": "5977878529249127906" }, { "file": "apps/client/src/locales/messages.zh.xlf", "hash": "1987678817924115764" }, { "file": "apps/client/src/main.ts", "hash": "3802444600563153061", "deps": [ "common", "ui", "npm:@angular/cdk", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/platform-browser", "npm:@angular/router", "npm:@angular/service-worker", "npm:@ionic/angular", "npm:ngx-markdown", "npm:ngx-skeleton-loader" ] }, { "file": "apps/client/src/polyfills.ts", "hash": "3236230360897995048", "deps": [ "npm:zone.js", "npm:@angular/localize", "npm:reflect-metadata" ] }, { "file": "apps/client/src/styles.scss", "hash": "12946605343951425040" }, { "file": "apps/client/src/styles/bootstrap.scss", "hash": "13451293048664880989" }, { "file": "apps/client/src/styles/table.scss", "hash": "14349960914203714173" }, { "file": "apps/client/src/styles/theme.scss", "hash": "11404797496001206693" }, { "file": "apps/client/src/styles/variables.scss", "hash": "16136052916208051300" }, { "file": "apps/client/src/test-setup.ts", "hash": "2674404341416425809", "deps": [ "npm:jest-preset-angular" ] }, { "file": "apps/client/tsconfig.app.json", "hash": "9459405154571149199" }, { "file": "apps/client/tsconfig.editor.json", "hash": "13708902743870995589" }, { "file": "apps/client/tsconfig.json", "hash": "799763760310069471" }, { "file": "apps/client/tsconfig.spec.json", "hash": "3093357885907724405" } ], "common": [ { "file": "libs/common/.babelrc", "hash": "12678781556853150254" }, { "file": "libs/common/README.md", "hash": "2963503814972959980" }, { "file": "libs/common/eslint.config.cjs", "hash": "18347574409718060117" }, { "file": "libs/common/jest.config.ts", "hash": "120976650782979737" }, { "file": "libs/common/project.json", "hash": "17850233401463668769" }, { "file": "libs/common/src/lib/calculation-helper.spec.ts", "hash": "13657387217384742362", "deps": [ "npm:big.js" ] }, { "file": "libs/common/src/lib/calculation-helper.ts", "hash": "6123321701822552724", "deps": [ "npm:big.js", "npm:date-fns", "npm:lodash" ] }, { "file": "libs/common/src/lib/chart-helper.ts", "hash": "37969912020617964", "deps": [ "npm:@angular/core", "npm:chart.js", "npm:date-fns" ] }, { "file": "libs/common/src/lib/class-transformer.ts", "hash": "3945550319038750864", "deps": [ "npm:big.js" ] }, { "file": "libs/common/src/lib/config.ts", "hash": "15660804399089711277", "deps": [ "npm:@prisma/client", "npm:bull", "npm:ms" ] }, { "file": "libs/common/src/lib/dtos/auth-device.dto.ts", "hash": "2327457877838282923" }, { "file": "libs/common/src/lib/dtos/create-access.dto.ts", "hash": "4417298307416894909", "deps": [ "npm:@prisma/client", "npm:class-validator" ] }, { "file": "libs/common/src/lib/dtos/create-account-balance.dto.ts", "hash": "9711586749711239884", "deps": [ "npm:class-validator" ] }, { "file": "libs/common/src/lib/dtos/create-account-with-balances.dto.ts", "hash": "5986685374303901395", "deps": [ "npm:class-validator" ] }, { "file": "libs/common/src/lib/dtos/create-account.dto.ts", "hash": "1078319728279212424", "deps": [ "npm:class-transformer", "npm:class-validator", "npm:lodash" ] }, { "file": "libs/common/src/lib/dtos/create-asset-profile-with-market-data.dto.ts", "hash": "10891914585856098329", "deps": [ "npm:@prisma/client", "npm:class-validator" ] }, { "file": "libs/common/src/lib/dtos/create-asset-profile.dto.ts", "hash": "11371841750505264781", "deps": [ "npm:@prisma/client", "npm:class-validator" ] }, { "file": "libs/common/src/lib/dtos/create-order.dto.ts", "hash": "768807074568776291", "deps": [ "npm:@prisma/client", "npm:class-transformer", "npm:class-validator", "npm:lodash" ] }, { "file": "libs/common/src/lib/dtos/create-platform.dto.ts", "hash": "6959820467570696180", "deps": [ "npm:class-validator" ] }, { "file": "libs/common/src/lib/dtos/create-tag.dto.ts", "hash": "17322064140460757155", "deps": [ "npm:class-validator" ] }, { "file": "libs/common/src/lib/dtos/create-watchlist-item.dto.ts", "hash": "10809591551837551905", "deps": [ "npm:@prisma/client", "npm:class-validator" ] }, { "file": "libs/common/src/lib/dtos/delete-own-user.dto.ts", "hash": "8310051672716144195", "deps": [ "npm:class-validator" ] }, { "file": "libs/common/src/lib/dtos/index.ts", "hash": "3545975687848058162" }, { "file": "libs/common/src/lib/dtos/transfer-balance.dto.ts", "hash": "17308113955349119381", "deps": [ "npm:class-validator" ] }, { "file": "libs/common/src/lib/dtos/update-access.dto.ts", "hash": "18153844500943868549", "deps": [ "npm:@prisma/client", "npm:class-validator" ] }, { "file": "libs/common/src/lib/dtos/update-account.dto.ts", "hash": "6690811347489801733", "deps": [ "npm:class-transformer", "npm:class-validator", "npm:lodash" ] }, { "file": "libs/common/src/lib/dtos/update-asset-profile.dto.ts", "hash": "9119969051249839182", "deps": [ "npm:@prisma/client", "npm:class-validator" ] }, { "file": "libs/common/src/lib/dtos/update-bulk-market-data.dto.ts", "hash": "3120935511204794640", "deps": [ "npm:class-transformer", "npm:class-validator" ] }, { "file": "libs/common/src/lib/dtos/update-market-data.dto.ts", "hash": "15072523541803070178", "deps": [ "npm:class-validator" ] }, { "file": "libs/common/src/lib/dtos/update-order.dto.ts", "hash": "3671251772078280079", "deps": [ "npm:@prisma/client", "npm:class-transformer", "npm:class-validator", "npm:lodash" ] }, { "file": "libs/common/src/lib/dtos/update-own-access-token.dto.ts", "hash": "3790583131964038579", "deps": [ "npm:class-validator" ] }, { "file": "libs/common/src/lib/dtos/update-platform.dto.ts", "hash": "10563372133423729265", "deps": [ "npm:class-validator" ] }, { "file": "libs/common/src/lib/dtos/update-property.dto.ts", "hash": "9752218726615121546", "deps": [ "npm:class-validator" ] }, { "file": "libs/common/src/lib/dtos/update-tag.dto.ts", "hash": "14635758141458391089", "deps": [ "npm:class-validator" ] }, { "file": "libs/common/src/lib/dtos/update-user-setting.dto.ts", "hash": "5459427365190595488", "deps": [ "npm:class-validator", "npm:date-fns" ] }, { "file": "libs/common/src/lib/enums/confirmation-dialog.type.ts", "hash": "9059124591064039145" }, { "file": "libs/common/src/lib/enums/index.ts", "hash": "7779615156897507024" }, { "file": "libs/common/src/lib/enums/subscription-type.type.ts", "hash": "8562599866961690614" }, { "file": "libs/common/src/lib/helper.spec.ts", "hash": "7932797796758471274" }, { "file": "libs/common/src/lib/helper.ts", "hash": "10920188230809019923", "deps": [ "npm:@internationalized/number", "npm:@prisma/client", "npm:big.js", "npm:class-validator", "npm:date-fns", "npm:lodash" ] }, { "file": "libs/common/src/lib/interfaces/access.interface.ts", "hash": "11555014613779333197", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/account-balance.interface.ts", "hash": "8404216016767863708" }, { "file": "libs/common/src/lib/interfaces/activities.interface.ts", "hash": "3695887572039636205", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/admin-data.interface.ts", "hash": "14651976372807411607" }, { "file": "libs/common/src/lib/interfaces/admin-jobs.interface.ts", "hash": "2891864539737871965", "deps": [ "npm:bull" ] }, { "file": "libs/common/src/lib/interfaces/admin-market-data-details.interface.ts", "hash": "16272258643501326416", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/admin-market-data.interface.ts", "hash": "5280052789408199710", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/admin-user.interface.ts", "hash": "1340558388759411609", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/asset-class-selector-option.interface.ts", "hash": "16187153447963648456", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/asset-profile-identifier.interface.ts", "hash": "6759671038556896814", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/benchmark-property.interface.ts", "hash": "2859468412521951336" }, { "file": "libs/common/src/lib/interfaces/benchmark.interface.ts", "hash": "13278971145145917340" }, { "file": "libs/common/src/lib/interfaces/country.interface.ts", "hash": "10175459781807309990" }, { "file": "libs/common/src/lib/interfaces/coupon.interface.ts", "hash": "14553626749209027989", "deps": [ "npm:ms" ] }, { "file": "libs/common/src/lib/interfaces/data-provider-info.interface.ts", "hash": "3928808056392056272", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/enhanced-symbol-profile.interface.ts", "hash": "15484673111666999519", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/filter-group.interface.ts", "hash": "4739142396015999729" }, { "file": "libs/common/src/lib/interfaces/filter.interface.ts", "hash": "3506296692380836429" }, { "file": "libs/common/src/lib/interfaces/fire-calculation-complete-event.interface.ts", "hash": "18018399673391644463" }, { "file": "libs/common/src/lib/interfaces/fire-wealth.interface.ts", "hash": "463634002815996324" }, { "file": "libs/common/src/lib/interfaces/historical-data-item.interface.ts", "hash": "3865553258161168721" }, { "file": "libs/common/src/lib/interfaces/holding-with-parents.interface.ts", "hash": "687797988159484813" }, { "file": "libs/common/src/lib/interfaces/holding.interface.ts", "hash": "17516652061364561900" }, { "file": "libs/common/src/lib/interfaces/index.ts", "hash": "15034117009705421404" }, { "file": "libs/common/src/lib/interfaces/info-item.interface.ts", "hash": "7143588157987348049", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/investment-item.interface.ts", "hash": "13879961706785093740" }, { "file": "libs/common/src/lib/interfaces/line-chart-item.interface.ts", "hash": "17247379844226503108" }, { "file": "libs/common/src/lib/interfaces/lookup-item.interface.ts", "hash": "14215059342548015277", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/market-data.interface.ts", "hash": "5504451297473310609" }, { "file": "libs/common/src/lib/interfaces/portfolio-chart.interface.ts", "hash": "2039913194292716736" }, { "file": "libs/common/src/lib/interfaces/portfolio-details.interface.ts", "hash": "5483319097131946664" }, { "file": "libs/common/src/lib/interfaces/portfolio-performance.interface.ts", "hash": "5241436795017008174" }, { "file": "libs/common/src/lib/interfaces/portfolio-position.interface.ts", "hash": "15507156229746860887", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/portfolio-report-rule.interface.ts", "hash": "15664041068762043108" }, { "file": "libs/common/src/lib/interfaces/portfolio-summary.interface.ts", "hash": "9564204681815544552" }, { "file": "libs/common/src/lib/interfaces/product.ts", "hash": "12115680739091657562" }, { "file": "libs/common/src/lib/interfaces/responses/access-token-response.interface.ts", "hash": "9082524031034965152" }, { "file": "libs/common/src/lib/interfaces/responses/account-balances-response.interface.ts", "hash": "7668752736663765893", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/responses/account-response.interface.ts", "hash": "9245221440222048110" }, { "file": "libs/common/src/lib/interfaces/responses/accounts-response.interface.ts", "hash": "6094095718540758191" }, { "file": "libs/common/src/lib/interfaces/responses/activities-response.interface.ts", "hash": "10436632802440923339" }, { "file": "libs/common/src/lib/interfaces/responses/activity-response.interface.ts", "hash": "13227875058982668499" }, { "file": "libs/common/src/lib/interfaces/responses/admin-user-response.interface.ts", "hash": "2972010883105058640" }, { "file": "libs/common/src/lib/interfaces/responses/admin-users-response.interface.ts", "hash": "16391268125829863097" }, { "file": "libs/common/src/lib/interfaces/responses/ai-prompt-response.interface.ts", "hash": "11393661326972164644" }, { "file": "libs/common/src/lib/interfaces/responses/api-key-response.interface.ts", "hash": "13704833741400486586" }, { "file": "libs/common/src/lib/interfaces/responses/asset-response.interface.ts", "hash": "9623665322613686432" }, { "file": "libs/common/src/lib/interfaces/responses/benchmark-market-data-details-response.interface.ts", "hash": "9155918533348981569" }, { "file": "libs/common/src/lib/interfaces/responses/benchmark-response.interface.ts", "hash": "14137631258806619860" }, { "file": "libs/common/src/lib/interfaces/responses/create-stripe-checkout-session-response.interface.ts", "hash": "6180259836801200112" }, { "file": "libs/common/src/lib/interfaces/responses/data-enhancer-health-response.interface.ts", "hash": "11100764808114427403" }, { "file": "libs/common/src/lib/interfaces/responses/data-provider-ghostfolio-asset-profile-response.interface.ts", "hash": "2780013589563707282", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/responses/data-provider-ghostfolio-status-response.interface.ts", "hash": "12957014175760381084" }, { "file": "libs/common/src/lib/interfaces/responses/data-provider-health-response.interface.ts", "hash": "12864470349089306938" }, { "file": "libs/common/src/lib/interfaces/responses/data-provider-response.interface.ts", "hash": "17369664151270328273", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/responses/dividends-response.interface.ts", "hash": "3084853040507586886" }, { "file": "libs/common/src/lib/interfaces/responses/errors.interface.ts", "hash": "5754344695160504069" }, { "file": "libs/common/src/lib/interfaces/responses/export-response.interface.ts", "hash": "16139173986787913711", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/responses/historical-response.interface.ts", "hash": "18358820306251066475" }, { "file": "libs/common/src/lib/interfaces/responses/import-response.interface.ts", "hash": "14735228441203823008" }, { "file": "libs/common/src/lib/interfaces/responses/info-response.interface.ts", "hash": "10611996022530481443" }, { "file": "libs/common/src/lib/interfaces/responses/lookup-response.interface.ts", "hash": "17724261388171555512" }, { "file": "libs/common/src/lib/interfaces/responses/market-data-details-response.interface.ts", "hash": "12125328718908707925", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/responses/market-data-of-markets-response.interface.ts", "hash": "13732100925588906952" }, { "file": "libs/common/src/lib/interfaces/responses/oauth-response.interface.ts", "hash": "7258595309035096390" }, { "file": "libs/common/src/lib/interfaces/responses/platforms-response.interface.ts", "hash": "11386677144477542098", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/responses/portfolio-dividends-response.interface.ts", "hash": "6462520362843409145" }, { "file": "libs/common/src/lib/interfaces/responses/portfolio-holding-response.interface.ts", "hash": "807058882463780598", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/responses/portfolio-holdings-response.interface.ts", "hash": "268297696205938097" }, { "file": "libs/common/src/lib/interfaces/responses/portfolio-investments.interface.ts", "hash": "12348675730421954029" }, { "file": "libs/common/src/lib/interfaces/responses/portfolio-performance-response.interface.ts", "hash": "7355275001535263092" }, { "file": "libs/common/src/lib/interfaces/responses/portfolio-report.interface.ts", "hash": "8849033128981922431" }, { "file": "libs/common/src/lib/interfaces/responses/public-portfolio-response.interface.ts", "hash": "9355726733302605710", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/responses/quotes-response.interface.ts", "hash": "1423227478766145067" }, { "file": "libs/common/src/lib/interfaces/responses/watchlist-response.interface.ts", "hash": "14372111391595787252" }, { "file": "libs/common/src/lib/interfaces/rule-settings.interface.ts", "hash": "3422699922434212213" }, { "file": "libs/common/src/lib/interfaces/scraper-configuration.interface.ts", "hash": "4527277788006725300" }, { "file": "libs/common/src/lib/interfaces/sector.interface.ts", "hash": "1925865579790140813" }, { "file": "libs/common/src/lib/interfaces/simplewebauthn.interface.ts", "hash": "13321737581195937693" }, { "file": "libs/common/src/lib/interfaces/statistics.interface.ts", "hash": "13476912576237287752" }, { "file": "libs/common/src/lib/interfaces/subscription-offer.interface.ts", "hash": "17409609054670651843", "deps": [ "npm:ms" ] }, { "file": "libs/common/src/lib/interfaces/symbol-item.interface.ts", "hash": "12724527896451809166" }, { "file": "libs/common/src/lib/interfaces/symbol-metrics.interface.ts", "hash": "11819147958106458269", "deps": [ "npm:big.js" ] }, { "file": "libs/common/src/lib/interfaces/system-message.interface.ts", "hash": "5211458062221096022" }, { "file": "libs/common/src/lib/interfaces/tab-configuration.interface.ts", "hash": "15166565744822124995" }, { "file": "libs/common/src/lib/interfaces/toggle-option.interface.ts", "hash": "13068473776319667148" }, { "file": "libs/common/src/lib/interfaces/user-item.interface.ts", "hash": "2258848255602359449", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/user-settings.interface.ts", "hash": "1775858993193602176", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/user.interface.ts", "hash": "8083868216014861349", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/interfaces/x-ray-rules-settings.interface.ts", "hash": "1485176956726670834" }, { "file": "libs/common/src/lib/models/index.ts", "hash": "16557665868957114491" }, { "file": "libs/common/src/lib/models/portfolio-snapshot.ts", "hash": "17459134041510817482", "deps": [ "npm:big.js", "npm:class-transformer" ] }, { "file": "libs/common/src/lib/models/timeline-position.ts", "hash": "322418129059411379", "deps": [ "npm:@prisma/client", "npm:big.js", "npm:class-transformer" ] }, { "file": "libs/common/src/lib/permissions.ts", "hash": "13350337111252504770", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/personal-finance-tools.ts", "hash": "2830770518820695699" }, { "file": "libs/common/src/lib/pipes/index.ts", "hash": "6352848447863838897" }, { "file": "libs/common/src/lib/pipes/symbol.pipe.ts", "hash": "11908518628229207437", "deps": [ "npm:@angular/core" ] }, { "file": "libs/common/src/lib/routes/interfaces/internal-route.interface.ts", "hash": "14213088853620891544" }, { "file": "libs/common/src/lib/routes/interfaces/public-route.interface.ts", "hash": "11407920100882772072" }, { "file": "libs/common/src/lib/routes/routes.ts", "hash": "6629938792672238665", "deps": [ [ "npm:@angular/localize", "dynamic" ] ] }, { "file": "libs/common/src/lib/types/access-type.type.ts", "hash": "13072559944350614809" }, { "file": "libs/common/src/lib/types/access-with-grantee-user.type.ts", "hash": "15255154129303127019", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/types/account-with-platform.type.ts", "hash": "6212865709107014147", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/types/account-with-value.type.ts", "hash": "6733749308904016445", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/types/ai-prompt-mode.type.ts", "hash": "12330849903216523079" }, { "file": "libs/common/src/lib/types/benchmark-trend.type.ts", "hash": "10840719486935624849" }, { "file": "libs/common/src/lib/types/color-scheme.type.ts", "hash": "10649385774478766723" }, { "file": "libs/common/src/lib/types/date-range.type.ts", "hash": "7471669312932893177" }, { "file": "libs/common/src/lib/types/fear-and-greed-index.type.ts", "hash": "9075954207391645248" }, { "file": "libs/common/src/lib/types/granularity.type.ts", "hash": "9021765475494416789" }, { "file": "libs/common/src/lib/types/group-by.type.ts", "hash": "7503097164576435399" }, { "file": "libs/common/src/lib/types/holding-type.type.ts", "hash": "13915556009267577565" }, { "file": "libs/common/src/lib/types/holdings-view-mode.type.ts", "hash": "11441751992165623113" }, { "file": "libs/common/src/lib/types/index.ts", "hash": "4988606855541512087" }, { "file": "libs/common/src/lib/types/market-advanced.type.ts", "hash": "15403303224402099722" }, { "file": "libs/common/src/lib/types/market-data-preset.type.ts", "hash": "3798041749599113363" }, { "file": "libs/common/src/lib/types/market-state.type.ts", "hash": "15617358400901205313" }, { "file": "libs/common/src/lib/types/market.type.ts", "hash": "2027716217752874516" }, { "file": "libs/common/src/lib/types/order-with-account.type.ts", "hash": "270369029299815461", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/types/performance-calculation-type.type.ts", "hash": "9398674866499241079" }, { "file": "libs/common/src/lib/types/request-with-user.type.ts", "hash": "11045928455237558745" }, { "file": "libs/common/src/lib/types/subscription-offer-key.type.ts", "hash": "13841162341336673868" }, { "file": "libs/common/src/lib/types/user-with-settings.type.ts", "hash": "3872014470749769603", "deps": [ "npm:@prisma/client" ] }, { "file": "libs/common/src/lib/types/view-mode.type.ts", "hash": "5493438802328211196" }, { "file": "libs/common/src/lib/utils/form.util.ts", "hash": "1243033304852829752", "deps": [ "npm:@angular/forms", "npm:class-transformer", "npm:class-validator" ] }, { "file": "libs/common/src/lib/utils/index.ts", "hash": "7347617581447991318" }, { "file": "libs/common/src/lib/validator-constraints/is-after-1970.ts", "hash": "14781412676248006809", "deps": [ "npm:class-validator", "npm:date-fns" ] }, { "file": "libs/common/src/lib/validators/is-currency-code.ts", "hash": "9900234225977433987", "deps": [ "npm:class-validator" ] }, { "file": "libs/common/tsconfig.json", "hash": "100281725105820955" }, { "file": "libs/common/tsconfig.lib.json", "hash": "17916346355753236326" }, { "file": "libs/common/tsconfig.spec.json", "hash": "3097876586456270502" } ], "ui": [ { "file": "libs/ui/.storybook/main.mjs", "hash": "17977002377372770204" }, { "file": "libs/ui/.storybook/preview.js", "hash": "3244421341483603138" }, { "file": "libs/ui/.storybook/tsconfig.json", "hash": "9001719990949372974" }, { "file": "libs/ui/README.md", "hash": "3098996868279451883" }, { "file": "libs/ui/eslint.config.cjs", "hash": "9464686051807512138", "deps": [ "npm:@eslint/eslintrc", "npm:@eslint/js" ] }, { "file": "libs/ui/jest.config.ts", "hash": "2308048604020903466" }, { "file": "libs/ui/project.json", "hash": "7461208401255701542" }, { "file": "libs/ui/src/lib/account-balances/account-balances.component.html", "hash": "7971627964371183808" }, { "file": "libs/ui/src/lib/account-balances/account-balances.component.scss", "hash": "13027103444035360129" }, { "file": "libs/ui/src/lib/account-balances/account-balances.component.ts", "hash": "12810950281437609966", "deps": [ "common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@ionic/angular", "npm:date-fns", "npm:ionicons", "npm:lodash" ] }, { "file": "libs/ui/src/lib/account-balances/index.ts", "hash": "2221007731550638606" }, { "file": "libs/ui/src/lib/accounts-table/accounts-table.component.html", "hash": "14573907745191345076" }, { "file": "libs/ui/src/lib/accounts-table/accounts-table.component.scss", "hash": "13027103444035360129" }, { "file": "libs/ui/src/lib/accounts-table/accounts-table.component.stories.ts", "hash": "7606720088891164054", "deps": [ "npm:@angular/common", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:@storybook/angular", "npm:ngx-skeleton-loader" ] }, { "file": "libs/ui/src/lib/accounts-table/accounts-table.component.ts", "hash": "5867949767784208943", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:@prisma/client", "npm:ionicons", "npm:ngx-skeleton-loader" ] }, { "file": "libs/ui/src/lib/accounts-table/index.ts", "hash": "11616762793826262078" }, { "file": "libs/ui/src/lib/activities-filter/activities-filter.component.html", "hash": "9662897706140613590" }, { "file": "libs/ui/src/lib/activities-filter/activities-filter.component.scss", "hash": "68613301259081313" }, { "file": "libs/ui/src/lib/activities-filter/activities-filter.component.ts", "hash": "4144762525834080404", "deps": [ "common", "npm:@angular/cdk", "npm:@angular/common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@ionic/angular", "npm:ionicons", "npm:lodash", "npm:rxjs" ] }, { "file": "libs/ui/src/lib/activities-filter/index.ts", "hash": "11820593968465538161" }, { "file": "libs/ui/src/lib/activities-table/activities-table.component.html", "hash": "6519659503396784069" }, { "file": "libs/ui/src/lib/activities-table/activities-table.component.scss", "hash": "13027103444035360129" }, { "file": "libs/ui/src/lib/activities-table/activities-table.component.stories.ts", "hash": "10592198943846459760", "deps": [ "common", "npm:@angular/common", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:@storybook/angular", "npm:ngx-skeleton-loader" ] }, { "file": "libs/ui/src/lib/activities-table/activities-table.component.ts", "hash": "16639564739986748392", "deps": [ "common", "npm:@angular/cdk", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@ionic/angular", "npm:class-validator", "npm:ionicons", "npm:ngx-skeleton-loader", "npm:rxjs" ] }, { "file": "libs/ui/src/lib/activities-table/index.ts", "hash": "11858604275810609141" }, { "file": "libs/ui/src/lib/activity-type/activity-type.component.html", "hash": "13103487184017309946" }, { "file": "libs/ui/src/lib/activity-type/activity-type.component.scss", "hash": "4610097464164769989" }, { "file": "libs/ui/src/lib/activity-type/activity-type.component.stories.ts", "hash": "5825968556123907757", "deps": [ "npm:@angular/common", "npm:@ionic/angular", "npm:@storybook/angular" ] }, { "file": "libs/ui/src/lib/activity-type/activity-type.component.ts", "hash": "16872786394750540659", "deps": [ "npm:@angular/common", "npm:@angular/core", "npm:@ionic/angular", "npm:@prisma/client", "npm:ionicons" ] }, { "file": "libs/ui/src/lib/activity-type/index.ts", "hash": "600441095252300791" }, { "file": "libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts", "hash": "15361624363587794446", "deps": [ "common", "npm:@angular/cdk", "npm:@angular/core", "npm:@angular/router" ] }, { "file": "libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.html", "hash": "441688779150858107" }, { "file": "libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.scss", "hash": "4356608788427304738" }, { "file": "libs/ui/src/lib/assistant/assistant.component.ts", "hash": "8175716688806647692", "deps": [ "common", "npm:@angular/cdk", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:@prisma/client", "npm:date-fns", "npm:fuse.js", "npm:ionicons", "npm:lodash", "npm:ngx-skeleton-loader", "npm:rxjs" ] }, { "file": "libs/ui/src/lib/assistant/assistant.html", "hash": "18349313537360048247" }, { "file": "libs/ui/src/lib/assistant/assistant.scss", "hash": "1386997526118519237" }, { "file": "libs/ui/src/lib/assistant/enums/search-mode.ts", "hash": "16784636826662641637" }, { "file": "libs/ui/src/lib/assistant/index.ts", "hash": "12790872093223273977" }, { "file": "libs/ui/src/lib/assistant/interfaces/interfaces.ts", "hash": "18018762100565669258", "deps": [ "common" ] }, { "file": "libs/ui/src/lib/benchmark/benchmark-detail-dialog/benchmark-detail-dialog.component.scss", "hash": "6335773300077561269" }, { "file": "libs/ui/src/lib/benchmark/benchmark-detail-dialog/benchmark-detail-dialog.component.ts", "hash": "12237319639470661437", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:date-fns", "npm:rxjs" ] }, { "file": "libs/ui/src/lib/benchmark/benchmark-detail-dialog/benchmark-detail-dialog.html", "hash": "17675554016675345452" }, { "file": "libs/ui/src/lib/benchmark/benchmark-detail-dialog/interfaces/interfaces.ts", "hash": "3850866288609350716", "deps": [ "common", "npm:@prisma/client" ] }, { "file": "libs/ui/src/lib/benchmark/benchmark.component.html", "hash": "17822093005853189140" }, { "file": "libs/ui/src/lib/benchmark/benchmark.component.scss", "hash": "13027103444035360129" }, { "file": "libs/ui/src/lib/benchmark/benchmark.component.ts", "hash": "15458656928610118545", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons", "npm:lodash", "npm:ngx-skeleton-loader", "npm:rxjs" ] }, { "file": "libs/ui/src/lib/benchmark/index.ts", "hash": "8062522265635992054" }, { "file": "libs/ui/src/lib/carousel/carousel-item.directive.ts", "hash": "2715745517140302691", "deps": [ "npm:@angular/core" ] }, { "file": "libs/ui/src/lib/carousel/carousel.component.html", "hash": "16909843014267280209" }, { "file": "libs/ui/src/lib/carousel/carousel.component.scss", "hash": "17312939737640835081" }, { "file": "libs/ui/src/lib/carousel/carousel.component.ts", "hash": "14411108224355292305", "deps": [ "npm:@angular/core", "npm:@angular/material", "npm:@angular/platform-browser", "npm:@ionic/angular", "npm:ionicons" ] }, { "file": "libs/ui/src/lib/carousel/index.ts", "hash": "2497708843118541026" }, { "file": "libs/ui/src/lib/chart/chart.registry.ts", "hash": "1869404777887850222", "deps": [ "common", "npm:chart.js" ] }, { "file": "libs/ui/src/lib/chart/index.ts", "hash": "689586301809551835" }, { "file": "libs/ui/src/lib/currency-selector/currency-selector.component.html", "hash": "7636097014048753617" }, { "file": "libs/ui/src/lib/currency-selector/currency-selector.component.scss", "hash": "13027103444035360129" }, { "file": "libs/ui/src/lib/currency-selector/currency-selector.component.ts", "hash": "17179165367183782486", "deps": [ "npm:@angular/cdk", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:rxjs" ] }, { "file": "libs/ui/src/lib/currency-selector/index.ts", "hash": "203989887445599712" }, { "file": "libs/ui/src/lib/data-provider-credits/data-provider-credits.component.html", "hash": "1851365799382317116" }, { "file": "libs/ui/src/lib/data-provider-credits/data-provider-credits.component.scss", "hash": "8336817635615071316" }, { "file": "libs/ui/src/lib/data-provider-credits/data-provider-credits.component.ts", "hash": "1522938066184511893", "deps": [ "common", "npm:@angular/core" ] }, { "file": "libs/ui/src/lib/data-provider-credits/index.ts", "hash": "15369237949011770321" }, { "file": "libs/ui/src/lib/dialog-footer/dialog-footer.component.html", "hash": "6577895585073084023" }, { "file": "libs/ui/src/lib/dialog-footer/dialog-footer.component.scss", "hash": "13027103444035360129" }, { "file": "libs/ui/src/lib/dialog-footer/dialog-footer.component.ts", "hash": "15593621171363486723", "deps": [ "npm:@angular/core", "npm:@angular/material", "npm:@ionic/angular", "npm:ionicons" ] }, { "file": "libs/ui/src/lib/dialog-footer/index.ts", "hash": "2917287019777982433" }, { "file": "libs/ui/src/lib/dialog-header/dialog-header.component.html", "hash": "8103675777842209741" }, { "file": "libs/ui/src/lib/dialog-header/dialog-header.component.scss", "hash": "13027103444035360129" }, { "file": "libs/ui/src/lib/dialog-header/dialog-header.component.ts", "hash": "4802356443541637453", "deps": [ "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@ionic/angular", "npm:ionicons" ] }, { "file": "libs/ui/src/lib/dialog-header/index.ts", "hash": "16385498757845686004" }, { "file": "libs/ui/src/lib/entity-logo/entity-logo-image-source.service.ts", "hash": "7399383342284253038", "deps": [ "common", "npm:@angular/core" ] }, { "file": "libs/ui/src/lib/entity-logo/entity-logo.component.html", "hash": "13428782330698629167" }, { "file": "libs/ui/src/lib/entity-logo/entity-logo.component.scss", "hash": "12627137498321392502" }, { "file": "libs/ui/src/lib/entity-logo/entity-logo.component.stories.ts", "hash": "14646427355516452951", "deps": [ "npm:@angular/common", "npm:@angular/core", "npm:@angular/platform-browser", "npm:@storybook/angular" ] }, { "file": "libs/ui/src/lib/entity-logo/entity-logo.component.ts", "hash": "6984195914193510467", "deps": [ "npm:@angular/common", "npm:@angular/core", "npm:@prisma/client" ] }, { "file": "libs/ui/src/lib/entity-logo/index.ts", "hash": "15781471068038461277" }, { "file": "libs/ui/src/lib/environment/environment.interface.ts", "hash": "15347889630841037147" }, { "file": "libs/ui/src/lib/environment/environment.token.ts", "hash": "16735771118556987037", "deps": [ "npm:@angular/core" ] }, { "file": "libs/ui/src/lib/environment/index.ts", "hash": "1726025949551807526" }, { "file": "libs/ui/src/lib/fire-calculator/fire-calculator.component.html", "hash": "6179186977543401659" }, { "file": "libs/ui/src/lib/fire-calculator/fire-calculator.component.scss", "hash": "3506830045353684872" }, { "file": "libs/ui/src/lib/fire-calculator/fire-calculator.component.stories.ts", "hash": "11564042332483308826", "deps": [ "common", "npm:@angular/common", "npm:@angular/forms", "npm:@angular/localize", "npm:@angular/material", "npm:@angular/platform-browser", "npm:@storybook/angular", "npm:ngx-skeleton-loader" ] }, { "file": "libs/ui/src/lib/fire-calculator/fire-calculator.component.ts", "hash": "13455476996550400826", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:chart.js", "npm:chartjs-adapter-date-fns", "npm:color", "npm:date-fns", "npm:lodash", "npm:ngx-skeleton-loader", "npm:rxjs" ] }, { "file": "libs/ui/src/lib/fire-calculator/fire-calculator.service.spec.ts", "hash": "11821157669206693539", "deps": [ "npm:@nestjs/testing" ] }, { "file": "libs/ui/src/lib/fire-calculator/fire-calculator.service.ts", "hash": "5580375613895747143", "deps": [ "npm:@angular/core", "npm:big.js" ] }, { "file": "libs/ui/src/lib/fire-calculator/index.ts", "hash": "3128150981651548197" }, { "file": "libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.component.ts", "hash": "7457325631598438309", "deps": [ "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@ionic/angular", "npm:ionicons" ] }, { "file": "libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html", "hash": "7278660013126567340" }, { "file": "libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.scss", "hash": "4704321692649892017" }, { "file": "libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/interfaces/interfaces.ts", "hash": "11057802300867501946", "deps": [ "common", "npm:@prisma/client" ] }, { "file": "libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html", "hash": "1722056186931090993" }, { "file": "libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.scss", "hash": "14814468137498098881" }, { "file": "libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.spec.ts", "hash": "15122808733485453827", "deps": [ "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:ngx-device-detector" ] }, { "file": "libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts", "hash": "14814342067318271209", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@prisma/client", "npm:date-fns", "npm:lodash", "npm:ms", "npm:ngx-device-detector", "npm:papaparse", "npm:rxjs" ] }, { "file": "libs/ui/src/lib/historical-market-data-editor/index.ts", "hash": "2213858388463032082" }, { "file": "libs/ui/src/lib/holdings-table/holdings-table.component.html", "hash": "8388424049477867126" }, { "file": "libs/ui/src/lib/holdings-table/holdings-table.component.scss", "hash": "13027103444035360129" }, { "file": "libs/ui/src/lib/holdings-table/holdings-table.component.stories.ts", "hash": "10742779174393659471", "deps": [ "npm:@angular/common", "npm:@angular/material", "npm:@storybook/angular", "npm:ngx-skeleton-loader" ] }, { "file": "libs/ui/src/lib/holdings-table/holdings-table.component.ts", "hash": "15185635972366297958", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@prisma/client", "npm:ngx-skeleton-loader" ] }, { "file": "libs/ui/src/lib/holdings-table/index.ts", "hash": "9541454087997466945" }, { "file": "libs/ui/src/lib/i18n.ts", "hash": "9830294035179006810", "deps": [ "npm:@angular/localize" ] }, { "file": "libs/ui/src/lib/line-chart/index.ts", "hash": "8194690185276083642" }, { "file": "libs/ui/src/lib/line-chart/line-chart.component.html", "hash": "4053205309064112505" }, { "file": "libs/ui/src/lib/line-chart/line-chart.component.scss", "hash": "15897516950633852301" }, { "file": "libs/ui/src/lib/line-chart/line-chart.component.stories.ts", "hash": "1111817743824056882", "deps": [ "npm:@angular/common", "npm:@storybook/angular", "npm:ngx-skeleton-loader" ] }, { "file": "libs/ui/src/lib/line-chart/line-chart.component.ts", "hash": "3493866756135642800", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:chart.js", "npm:chartjs-adapter-date-fns", "npm:ngx-skeleton-loader" ] }, { "file": "libs/ui/src/lib/logo-carousel/index.ts", "hash": "17556382772741402821" }, { "file": "libs/ui/src/lib/logo-carousel/interfaces/interfaces.ts", "hash": "5403763397142564195" }, { "file": "libs/ui/src/lib/logo-carousel/logo-carousel.component.html", "hash": "6843827244960472730" }, { "file": "libs/ui/src/lib/logo-carousel/logo-carousel.component.scss", "hash": "14810054243886462711" }, { "file": "libs/ui/src/lib/logo-carousel/logo-carousel.component.stories.ts", "hash": "15096394827660393250", "deps": [ "npm:@storybook/angular" ] }, { "file": "libs/ui/src/lib/logo-carousel/logo-carousel.component.ts", "hash": "6819916382807341024", "deps": [ "npm:@angular/core" ] }, { "file": "libs/ui/src/lib/logo/index.ts", "hash": "2773829276883681066" }, { "file": "libs/ui/src/lib/logo/logo.component.html", "hash": "7419880583436350622" }, { "file": "libs/ui/src/lib/logo/logo.component.scss", "hash": "6474178535788283688" }, { "file": "libs/ui/src/lib/logo/logo.component.stories.ts", "hash": "10894405746392794866", "deps": [ "npm:@storybook/angular" ] }, { "file": "libs/ui/src/lib/logo/logo.component.ts", "hash": "11052522618672735083", "deps": [ "npm:@angular/common", "npm:@angular/core" ] }, { "file": "libs/ui/src/lib/membership-card/index.ts", "hash": "11204756178088080112" }, { "file": "libs/ui/src/lib/membership-card/membership-card.component.html", "hash": "2848114715434650862" }, { "file": "libs/ui/src/lib/membership-card/membership-card.component.scss", "hash": "7581992259141520145" }, { "file": "libs/ui/src/lib/membership-card/membership-card.component.stories.ts", "hash": "13304791874720819527", "deps": [ "npm:@angular/common", "npm:@angular/localize", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:@storybook/angular", "npm:date-fns" ] }, { "file": "libs/ui/src/lib/membership-card/membership-card.component.ts", "hash": "12485370283834715764", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons" ] }, { "file": "libs/ui/src/lib/mocks/entity-logo-image-source.service.mock.ts", "hash": "3557462636105470799", "deps": [ "common", "npm:@prisma/client" ] }, { "file": "libs/ui/src/lib/mocks/holdings.ts", "hash": "10928744383330693213", "deps": [ "common" ] }, { "file": "libs/ui/src/lib/mocks/httpClient.mock.ts", "hash": "5036659638559593002", "deps": [ "npm:rxjs" ] }, { "file": "libs/ui/src/lib/no-transactions-info/index.ts", "hash": "8109942634907086039" }, { "file": "libs/ui/src/lib/no-transactions-info/no-transactions-info.component.html", "hash": "195378596269951881" }, { "file": "libs/ui/src/lib/no-transactions-info/no-transactions-info.component.scss", "hash": "16452429045122500227" }, { "file": "libs/ui/src/lib/no-transactions-info/no-transactions-info.component.stories.ts", "hash": "473402678110088715", "deps": [ "npm:@angular/router", "npm:@storybook/angular" ] }, { "file": "libs/ui/src/lib/no-transactions-info/no-transactions-info.component.ts", "hash": "14112017478908928572", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:@angular/router" ] }, { "file": "libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts", "hash": "8790443032724890324", "deps": [ "npm:@angular/core", "npm:@angular/material" ] }, { "file": "libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html", "hash": "1164702080652180565" }, { "file": "libs/ui/src/lib/notifications/alert-dialog/alert-dialog.scss", "hash": "2239867564283572599" }, { "file": "libs/ui/src/lib/notifications/alert-dialog/interfaces/interfaces.ts", "hash": "14550183532591920015" }, { "file": "libs/ui/src/lib/notifications/confirmation-dialog/confirmation-dialog.component.ts", "hash": "6787013246928385528", "deps": [ "common", "npm:@angular/core", "npm:@angular/material" ] }, { "file": "libs/ui/src/lib/notifications/confirmation-dialog/confirmation-dialog.html", "hash": "4837086253513937862" }, { "file": "libs/ui/src/lib/notifications/confirmation-dialog/confirmation-dialog.scss", "hash": "2239867564283572599" }, { "file": "libs/ui/src/lib/notifications/confirmation-dialog/interfaces/interfaces.ts", "hash": "15008866770855780236", "deps": [ "common" ] }, { "file": "libs/ui/src/lib/notifications/index.ts", "hash": "5899726053427446188" }, { "file": "libs/ui/src/lib/notifications/interfaces/interfaces.ts", "hash": "18091344373011724327", "deps": [ "common" ] }, { "file": "libs/ui/src/lib/notifications/notification.module.ts", "hash": "990323529946452514", "deps": [ "npm:@angular/common", "npm:@angular/core", "npm:@angular/material" ] }, { "file": "libs/ui/src/lib/notifications/notification.service.ts", "hash": "11029052856452878006", "deps": [ "common", "npm:@angular/core", "npm:@angular/material", "npm:lodash" ] }, { "file": "libs/ui/src/lib/notifications/prompt-dialog/interfaces/interfaces.ts", "hash": "8453446602961372356" }, { "file": "libs/ui/src/lib/notifications/prompt-dialog/prompt-dialog.component.ts", "hash": "14186173599378890545", "deps": [ "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material" ] }, { "file": "libs/ui/src/lib/notifications/prompt-dialog/prompt-dialog.html", "hash": "8767050767647087641" }, { "file": "libs/ui/src/lib/portfolio-filter-form/index.ts", "hash": "10802166755606865315" }, { "file": "libs/ui/src/lib/portfolio-filter-form/interfaces/index.ts", "hash": "1597681583353818609" }, { "file": "libs/ui/src/lib/portfolio-filter-form/interfaces/portfolio-filter-form-value.interface.ts", "hash": "10154530060257044907", "deps": [ "common" ] }, { "file": "libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.html", "hash": "5579895876518114824" }, { "file": "libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.scss", "hash": "13027103444035360129" }, { "file": "libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.stories.ts", "hash": "12465682660008802910", "deps": [ "npm:@angular/localize", "npm:@storybook/angular" ] }, { "file": "libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.ts", "hash": "17690500698094231524", "deps": [ "common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:rxjs" ] }, { "file": "libs/ui/src/lib/portfolio-proportion-chart/index.ts", "hash": "17270606927864401942" }, { "file": "libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.html", "hash": "8350337298960851772" }, { "file": "libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.scss", "hash": "10593417089722097661" }, { "file": "libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.stories.ts", "hash": "1963224924248981469", "deps": [ "npm:@angular/common", "npm:@angular/localize", "npm:@storybook/angular", "npm:ngx-skeleton-loader" ] }, { "file": "libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts", "hash": "8789806506232586785", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:@prisma/client", "npm:big.js", "npm:chart.js", "npm:chartjs-plugin-datalabels", "npm:class-validator", "npm:color", "npm:ngx-skeleton-loader", "npm:open-color" ] }, { "file": "libs/ui/src/lib/premium-indicator/index.ts", "hash": "5823435330165333220" }, { "file": "libs/ui/src/lib/premium-indicator/premium-indicator.component.html", "hash": "12180405183295718701" }, { "file": "libs/ui/src/lib/premium-indicator/premium-indicator.component.scss", "hash": "13027103444035360129" }, { "file": "libs/ui/src/lib/premium-indicator/premium-indicator.component.stories.ts", "hash": "10946370651366856883", "deps": [ "npm:@angular/common", "npm:@angular/router", "npm:@storybook/angular" ] }, { "file": "libs/ui/src/lib/premium-indicator/premium-indicator.component.ts", "hash": "13955677578786301074", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:@angular/router", "npm:@ionic/angular", "npm:ionicons" ] }, { "file": "libs/ui/src/lib/services/admin.service.ts", "hash": "11622041777933623447", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@prisma/client", "npm:bull" ] }, { "file": "libs/ui/src/lib/services/data.service.ts", "hash": "3293454752463484740", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:@date-fns/utc", "npm:@prisma/client", "npm:date-fns", "npm:lodash", "npm:rxjs" ] }, { "file": "libs/ui/src/lib/services/index.ts", "hash": "4567267300087984009" }, { "file": "libs/ui/src/lib/shared/abstract-mat-form-field.ts", "hash": "9028855460503766728", "deps": [ "npm:@angular/cdk", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:rxjs" ] }, { "file": "libs/ui/src/lib/symbol-autocomplete/index.ts", "hash": "17609319162537246080" }, { "file": "libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html", "hash": "9635876505219291562" }, { "file": "libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.scss", "hash": "16363301122020456704" }, { "file": "libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.stories.ts", "hash": "9955794471483292816", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/platform-browser", "npm:@storybook/angular" ] }, { "file": "libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts", "hash": "12668118617442224683", "deps": [ "common", "npm:@angular/cdk", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:lodash", "npm:rxjs" ] }, { "file": "libs/ui/src/lib/tags-selector/index.ts", "hash": "10576534165881604499" }, { "file": "libs/ui/src/lib/tags-selector/tags-selector.component.html", "hash": "13294818650210408704" }, { "file": "libs/ui/src/lib/tags-selector/tags-selector.component.scss", "hash": "13027103444035360129" }, { "file": "libs/ui/src/lib/tags-selector/tags-selector.component.stories.ts", "hash": "5079797594421089449", "deps": [ "npm:@angular/common", "npm:@angular/localize", "npm:@angular/platform-browser", "npm:@storybook/angular" ] }, { "file": "libs/ui/src/lib/tags-selector/tags-selector.component.ts", "hash": "1821853042476241447", "deps": [ "npm:@angular/cdk", "npm:@angular/common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material", "npm:@ionic/angular", "npm:@prisma/client", "npm:ionicons", "npm:rxjs" ] }, { "file": "libs/ui/src/lib/toggle/index.ts", "hash": "4281612822888923050" }, { "file": "libs/ui/src/lib/toggle/toggle.component.html", "hash": "11944716356408655021" }, { "file": "libs/ui/src/lib/toggle/toggle.component.scss", "hash": "7582877574457626967" }, { "file": "libs/ui/src/lib/toggle/toggle.component.stories.ts", "hash": "11162476783701626409", "deps": [ "npm:@angular/common", "npm:@angular/forms", "npm:@angular/material", "npm:@storybook/angular" ] }, { "file": "libs/ui/src/lib/toggle/toggle.component.ts", "hash": "15736041489417243643", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:@angular/forms", "npm:@angular/material" ] }, { "file": "libs/ui/src/lib/top-holdings/index.ts", "hash": "763732811096983129" }, { "file": "libs/ui/src/lib/top-holdings/top-holdings.component.html", "hash": "475167343365240748" }, { "file": "libs/ui/src/lib/top-holdings/top-holdings.component.scss", "hash": "11501716030479541061" }, { "file": "libs/ui/src/lib/top-holdings/top-holdings.component.ts", "hash": "14261584049206765521", "deps": [ "common", "npm:@angular/animations", "npm:@angular/common", "npm:@angular/core", "npm:@angular/material", "npm:ngx-skeleton-loader", "npm:rxjs" ] }, { "file": "libs/ui/src/lib/treemap-chart/index.ts", "hash": "17120477248796512317" }, { "file": "libs/ui/src/lib/treemap-chart/interfaces/interfaces.ts", "hash": "11191795150976447042", "deps": [ "common", "npm:chart.js", "npm:chartjs-chart-treemap" ] }, { "file": "libs/ui/src/lib/treemap-chart/treemap-chart.component.html", "hash": "8350337298960851772" }, { "file": "libs/ui/src/lib/treemap-chart/treemap-chart.component.scss", "hash": "15246335577106064655" }, { "file": "libs/ui/src/lib/treemap-chart/treemap-chart.component.stories.ts", "hash": "1596902197208525947", "deps": [ "npm:@angular/common", "npm:@angular/localize", "npm:@storybook/angular", "npm:ngx-skeleton-loader" ] }, { "file": "libs/ui/src/lib/treemap-chart/treemap-chart.component.ts", "hash": "10199928680312590517", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:@prisma/client", "npm:big.js", "npm:chart.js", "npm:chartjs-chart-treemap", "npm:class-validator", "npm:date-fns", "npm:lodash", "npm:ngx-skeleton-loader", "npm:open-color" ] }, { "file": "libs/ui/src/lib/trend-indicator/index.ts", "hash": "16487273717538787677" }, { "file": "libs/ui/src/lib/trend-indicator/trend-indicator.component.html", "hash": "6382947791442355104" }, { "file": "libs/ui/src/lib/trend-indicator/trend-indicator.component.scss", "hash": "9974966533729732782" }, { "file": "libs/ui/src/lib/trend-indicator/trend-indicator.component.stories.ts", "hash": "4731413525775295277", "deps": [ "npm:@storybook/angular", "npm:ngx-skeleton-loader" ] }, { "file": "libs/ui/src/lib/trend-indicator/trend-indicator.component.ts", "hash": "7591849615002075281", "deps": [ "common", "npm:@angular/core", "npm:@ionic/angular", "npm:ionicons", "npm:ngx-skeleton-loader" ] }, { "file": "libs/ui/src/lib/value/index.ts", "hash": "12906490588558465603" }, { "file": "libs/ui/src/lib/value/value.component.html", "hash": "8038733227151549423" }, { "file": "libs/ui/src/lib/value/value.component.scss", "hash": "10681804970574800104" }, { "file": "libs/ui/src/lib/value/value.component.stories.ts", "hash": "6449904970471825917", "deps": [ "npm:@storybook/angular", "npm:ngx-skeleton-loader" ] }, { "file": "libs/ui/src/lib/value/value.component.ts", "hash": "18188803447675476115", "deps": [ "common", "npm:@angular/common", "npm:@angular/core", "npm:@ionic/angular", "npm:lodash", "npm:ngx-skeleton-loader" ] }, { "file": "libs/ui/src/lib/world-map-chart/index.ts", "hash": "17606177600799778656" }, { "file": "libs/ui/src/lib/world-map-chart/world-map-chart.component.html", "hash": "15901391887241453557" }, { "file": "libs/ui/src/lib/world-map-chart/world-map-chart.component.scss", "hash": "11368859910475150977" }, { "file": "libs/ui/src/lib/world-map-chart/world-map-chart.component.stories.ts", "hash": "4516941392825089325", "deps": [ "common", "npm:@storybook/angular", "npm:ngx-skeleton-loader" ] }, { "file": "libs/ui/src/lib/world-map-chart/world-map-chart.component.ts", "hash": "523761991092256914", "deps": [ "common", "npm:@angular/core", "npm:ngx-skeleton-loader", "npm:svgmap" ] }, { "file": "libs/ui/src/test-setup.ts", "hash": "2674404341416425809", "deps": [ "npm:jest-preset-angular" ] }, { "file": "libs/ui/tsconfig.json", "hash": "5584986696837133227" }, { "file": "libs/ui/tsconfig.lib.json", "hash": "17857732058154521967" }, { "file": "libs/ui/tsconfig.spec.json", "hash": "3093357885907724405" } ], "api": [ { "file": "apps/api/eslint.config.cjs", "hash": "11564344137216643629" }, { "file": "apps/api/jest.config.ts", "hash": "314490672693074886" }, { "file": "apps/api/project.json", "hash": "18345271137563128324" }, { "file": "apps/api/src/app/access/access.controller.ts", "hash": "9359000742304049036", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/passport", "npm:@prisma/client", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/access/access.module.ts", "hash": "15242132786687169486", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/access/access.service.ts", "hash": "5086947227240187543", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client" ] }, { "file": "apps/api/src/app/account-balance/account-balance.controller.ts", "hash": "12839817552296139861", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/passport", "npm:@prisma/client", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/account-balance/account-balance.module.ts", "hash": "9940389709913594837", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/account-balance/account-balance.service.ts", "hash": "18294686301442026671", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/event-emitter", "npm:@prisma/client", "npm:big.js", "npm:date-fns" ] }, { "file": "apps/api/src/app/account/account.controller.ts", "hash": "10907785468467815131", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/passport", "npm:@prisma/client", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/account/account.module.ts", "hash": "17802306565766089084", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/account/account.service.ts", "hash": "9432549606624963666", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/event-emitter", "npm:@prisma/client", "npm:big.js", "npm:date-fns", "npm:lodash" ] }, { "file": "apps/api/src/app/account/interfaces/cash-details.interface.ts", "hash": "16270805154455976267", "deps": [ "npm:@prisma/client" ] }, { "file": "apps/api/src/app/admin/admin.controller.ts", "hash": "3456407671837926467", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/passport", "npm:@prisma/client", "npm:date-fns", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/admin/admin.module.ts", "hash": "1242302560419200244", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/admin/admin.service.ts", "hash": "2394657255473567905", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:date-fns", "npm:http-status-codes", "npm:lodash" ] }, { "file": "apps/api/src/app/admin/queue/queue.controller.ts", "hash": "9241995976832641704", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/passport", "npm:bull" ] }, { "file": "apps/api/src/app/admin/queue/queue.module.ts", "hash": "2431128607689252824", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/admin/queue/queue.service.ts", "hash": "551774306889715970", "deps": [ "common", "npm:@nestjs/bull", "npm:@nestjs/common", "npm:bull" ] }, { "file": "apps/api/src/app/app.controller.ts", "hash": "6505815695633840250", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/app.module.ts", "hash": "8585919561875566375", "deps": [ "common", "npm:@nestjs/bull", "npm:@nestjs/common", "npm:@nestjs/config", "npm:@nestjs/event-emitter", "npm:@nestjs/schedule", "npm:@nestjs/serve-static", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/asset/asset.controller.ts", "hash": "8237383608643095901", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:lodash" ] }, { "file": "apps/api/src/app/asset/asset.module.ts", "hash": "16733131101056451066", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/auth-device/auth-device.controller.ts", "hash": "14116576834097353810", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/passport" ] }, { "file": "apps/api/src/app/auth-device/auth-device.module.ts", "hash": "2636161877810784229", "deps": [ "npm:@nestjs/common", "npm:@nestjs/jwt" ] }, { "file": "apps/api/src/app/auth-device/auth-device.service.ts", "hash": "3666593946951142756", "deps": [ "npm:@nestjs/common", "npm:@prisma/client" ] }, { "file": "apps/api/src/app/auth/api-key.strategy.ts", "hash": "14084100183819372435", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/passport", "npm:http-status-codes", "npm:passport-headerapikey" ] }, { "file": "apps/api/src/app/auth/auth.controller.ts", "hash": "5479508421547845015", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/passport", "npm:express", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/auth/auth.module.ts", "hash": "17450087921582010828", "deps": [ "npm:@nestjs/common", "npm:@nestjs/jwt", "npm:passport-openidconnect" ] }, { "file": "apps/api/src/app/auth/auth.service.ts", "hash": "3347439322040518675", "deps": [ "npm:@nestjs/common", "npm:@nestjs/jwt" ] }, { "file": "apps/api/src/app/auth/google.strategy.ts", "hash": "2497329288672336464", "deps": [ "npm:@nestjs/common", "npm:@nestjs/passport", "npm:@prisma/client", "npm:passport", "npm:passport-google-oauth20" ] }, { "file": "apps/api/src/app/auth/interfaces/interfaces.ts", "hash": "2291053805201654215", "deps": [ "common", "npm:@prisma/client" ] }, { "file": "apps/api/src/app/auth/jwt.strategy.ts", "hash": "18206478471122052832", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/passport", "npm:countries-and-timezones", "npm:http-status-codes", "npm:passport-jwt" ] }, { "file": "apps/api/src/app/auth/oidc-state.store.ts", "hash": "77082241843499324", "deps": [ "npm:ms" ] }, { "file": "apps/api/src/app/auth/oidc.strategy.ts", "hash": "10500796351233846215", "deps": [ "npm:@nestjs/common", "npm:@nestjs/passport", "npm:@prisma/client", "npm:express", "npm:passport-openidconnect" ] }, { "file": "apps/api/src/app/auth/web-auth.service.ts", "hash": "7015038374412525357", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/jwt", "npm:@simplewebauthn/server", "npm:ms" ] }, { "file": "apps/api/src/app/cache/cache.controller.ts", "hash": "6517057824074739618", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/passport" ] }, { "file": "apps/api/src/app/cache/cache.module.ts", "hash": "6488595547792102045", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/endpoints/ai/ai.controller.ts", "hash": "5243935678885001241", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/passport" ] }, { "file": "apps/api/src/app/endpoints/ai/ai.module.ts", "hash": "10412792440256864746", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/endpoints/ai/ai.service.ts", "hash": "16475140642750705010", "deps": [ "common", "npm:@nestjs/common", "npm:@openrouter/ai-sdk-provider", "npm:ai", "npm:tablemark" ] }, { "file": "apps/api/src/app/endpoints/api-keys/api-keys.controller.ts", "hash": "11217202620306382509", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/passport" ] }, { "file": "apps/api/src/app/endpoints/api-keys/api-keys.module.ts", "hash": "17406829398023799591", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/endpoints/assets/assets.controller.ts", "hash": "6493914330460963766", "deps": [ "common", "npm:@nestjs/common", "npm:express" ] }, { "file": "apps/api/src/app/endpoints/assets/assets.module.ts", "hash": "6082808890140551626", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/endpoints/benchmarks/benchmarks.controller.ts", "hash": "18339892504218491232", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/passport", "npm:@prisma/client", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/endpoints/benchmarks/benchmarks.module.ts", "hash": "7519531486003316650", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/endpoints/benchmarks/benchmarks.service.ts", "hash": "16598097463779173677", "deps": [ "common", "npm:@nestjs/common", "npm:date-fns", "npm:lodash" ] }, { "file": "apps/api/src/app/endpoints/data-providers/ghostfolio/get-dividends.dto.ts", "hash": "17703358360927211315", "deps": [ "common", "npm:class-validator" ] }, { "file": "apps/api/src/app/endpoints/data-providers/ghostfolio/get-historical.dto.ts", "hash": "11217756629116971474", "deps": [ "common", "npm:class-validator" ] }, { "file": "apps/api/src/app/endpoints/data-providers/ghostfolio/get-quotes.dto.ts", "hash": "12904174328935837958", "deps": [ "npm:class-transformer", "npm:class-validator" ] }, { "file": "apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.controller.ts", "hash": "2160639995114360977", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/passport", "npm:class-validator", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.module.ts", "hash": "15982320751608982483", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.service.ts", "hash": "5223553041067426072", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:big.js" ] }, { "file": "apps/api/src/app/endpoints/market-data/market-data.controller.ts", "hash": "9568413731550243709", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/passport", "npm:@prisma/client", "npm:date-fns", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/endpoints/market-data/market-data.module.ts", "hash": "3063825296659009598", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/endpoints/platforms/platforms.controller.ts", "hash": "3659512115805887337", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/passport" ] }, { "file": "apps/api/src/app/endpoints/platforms/platforms.module.ts", "hash": "8602259080436025649", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/endpoints/public/public.controller.ts", "hash": "3410472648565679484", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@prisma/client", "npm:big.js", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/endpoints/public/public.module.ts", "hash": "9462617704864064495", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/endpoints/sitemap/sitemap.controller.ts", "hash": "3029623980495241134", "deps": [ "common", "npm:@nestjs/common", "npm:date-fns", "npm:express" ] }, { "file": "apps/api/src/app/endpoints/sitemap/sitemap.module.ts", "hash": "12208481129799057592", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/endpoints/sitemap/sitemap.service.ts", "hash": "12369879628216133495", "deps": [ "common", "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/endpoints/tags/tags.controller.ts", "hash": "8265671982501958837", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/passport", "npm:@prisma/client", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/endpoints/tags/tags.module.ts", "hash": "12714633669237830741", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/endpoints/watchlist/watchlist.controller.ts", "hash": "11052486750384024923", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/passport", "npm:@prisma/client", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/endpoints/watchlist/watchlist.module.ts", "hash": "9357409172050064735", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/endpoints/watchlist/watchlist.service.ts", "hash": "8911616871608435890", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client" ] }, { "file": "apps/api/src/app/exchange-rate/exchange-rate.controller.ts", "hash": "6949964342781459319", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/passport", "npm:date-fns", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/exchange-rate/exchange-rate.module.ts", "hash": "11181925525619351626", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/exchange-rate/exchange-rate.service.ts", "hash": "4778260563288012356", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/export/export.controller.ts", "hash": "17936524237866448420", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/passport" ] }, { "file": "apps/api/src/app/export/export.module.ts", "hash": "7894097850439476979", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/export/export.service.ts", "hash": "17132694999635561082", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:lodash" ] }, { "file": "apps/api/src/app/health/health.controller.ts", "hash": "6407068334607413626", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:express", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/health/health.module.ts", "hash": "4228218129869321797", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/health/health.service.ts", "hash": "4846393046844414645", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client" ] }, { "file": "apps/api/src/app/import/import-data.dto.ts", "hash": "12078876181068168559", "deps": [ "common", "npm:class-transformer", "npm:class-validator" ] }, { "file": "apps/api/src/app/import/import.controller.ts", "hash": "9943793844364454332", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/passport", "npm:@prisma/client", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/import/import.module.ts", "hash": "6866209361340446817", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/import/import.service.ts", "hash": "10159848233286662541", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:big.js", "npm:date-fns", "npm:lodash" ] }, { "file": "apps/api/src/app/info/info.controller.ts", "hash": "16286104312372049326", "deps": [ "common", "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/info/info.module.ts", "hash": "2694918968601183121", "deps": [ "npm:@nestjs/common", "npm:@nestjs/jwt" ] }, { "file": "apps/api/src/app/info/info.service.ts", "hash": "16139604198404754999", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/jwt", "npm:cheerio", "npm:date-fns" ] }, { "file": "apps/api/src/app/logo/logo.controller.ts", "hash": "6880771773435352834", "deps": [ "npm:@nestjs/common", "npm:@prisma/client", "npm:express" ] }, { "file": "apps/api/src/app/logo/logo.module.ts", "hash": "9443733667841082733", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/logo/logo.service.ts", "hash": "3990792163561220272", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/order/order.controller.ts", "hash": "5740619361966074400", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/passport", "npm:@prisma/client", "npm:date-fns", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/order/order.module.ts", "hash": "8912233153607679540", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/order/order.service.ts", "hash": "9775103902188533039", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/event-emitter", "npm:@prisma/client", "npm:big.js", "npm:class-validator", "npm:date-fns", "npm:lodash" ] }, { "file": "apps/api/src/app/platform/platform.controller.ts", "hash": "11740084137790232304", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/passport", "npm:@prisma/client", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/platform/platform.module.ts", "hash": "2724229831821154949", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/platform/platform.service.ts", "hash": "10044936168872298958", "deps": [ "npm:@nestjs/common", "npm:@prisma/client" ] }, { "file": "apps/api/src/app/portfolio/calculator/mwr/portfolio-calculator.ts", "hash": "1261577207939446641", "deps": [ "common" ] }, { "file": "apps/api/src/app/portfolio/calculator/portfolio-calculator-test-utils.ts", "hash": "7083210108583689998", "deps": [ "common" ] }, { "file": "apps/api/src/app/portfolio/calculator/portfolio-calculator.factory.ts", "hash": "11182978254811319097", "deps": [ "common", "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/portfolio/calculator/portfolio-calculator.ts", "hash": "9869212391465024541", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:big.js", "npm:class-transformer", "npm:date-fns", "npm:lodash" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-buy.spec.ts", "hash": "2092204144528643499", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts", "hash": "9914772745721039971", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-sell.spec.ts", "hash": "3925264641929851533", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy.spec.ts", "hash": "16840283569956648583", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btceur-in-base-currency-eur.spec.ts", "hash": "1368624185679140205", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btceur.spec.ts", "hash": "1633610715663711079", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts", "hash": "1150574696467405198", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd-short.spec.ts", "hash": "3191836514200637664", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd.spec.ts", "hash": "7854893818558859893", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-cash.spec.ts", "hash": "4661346971520628212", "deps": [ "common", "npm:@prisma/client", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-fee.spec.ts", "hash": "11948623142688477480", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-googl-buy.spec.ts", "hash": "9817276927104960226", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-jnug-buy-and-sell-and-buy-and-sell.spec.ts", "hash": "18321549621428101751", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-liability.spec.ts", "hash": "3470227669082968527", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-and-sell.spec.ts", "hash": "4857801102393930469", "deps": [ "common" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-with-dividend.spec.ts", "hash": "9510798447645824621", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-no-orders.spec.ts", "hash": "7624775439856512550", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell-partially.spec.ts", "hash": "11616783061259621841", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell.spec.ts", "hash": "16117793286774608466", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-valuable.spec.ts", "hash": "2117368692572200601", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.spec.ts", "hash": "7320024065681692112" }, { "file": "apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts", "hash": "7285208377934050513", "deps": [ "common", "npm:@nestjs/common", "npm:big.js", "npm:date-fns", "npm:lodash" ] }, { "file": "apps/api/src/app/portfolio/calculator/roi/portfolio-calculator.ts", "hash": "10031506312187751530", "deps": [ "common" ] }, { "file": "apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts", "hash": "8379354532324691257", "deps": [ "common" ] }, { "file": "apps/api/src/app/portfolio/current-rate.service.mock.ts", "hash": "8019176202187172298", "deps": [ "common", "npm:date-fns" ] }, { "file": "apps/api/src/app/portfolio/current-rate.service.spec.ts", "hash": "13962616103831772235", "deps": [ "common", "npm:@prisma/client" ] }, { "file": "apps/api/src/app/portfolio/current-rate.service.ts", "hash": "15447236618832258390", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:date-fns", "npm:lodash" ] }, { "file": "apps/api/src/app/portfolio/interfaces/date-query.interface.ts", "hash": "17392975535355338377" }, { "file": "apps/api/src/app/portfolio/interfaces/get-value-object.interface.ts", "hash": "8327906979356972933", "deps": [ "common" ] }, { "file": "apps/api/src/app/portfolio/interfaces/get-values-object.interface.ts", "hash": "11424647804175044099", "deps": [ "common" ] }, { "file": "apps/api/src/app/portfolio/interfaces/get-values-params.interface.ts", "hash": "4310821538443705785" }, { "file": "apps/api/src/app/portfolio/interfaces/portfolio-order-item.interface.ts", "hash": "15002989780107061866", "deps": [ "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/interfaces/portfolio-order.interface.ts", "hash": "9216090500388894952", "deps": [ "common" ] }, { "file": "apps/api/src/app/portfolio/interfaces/snapshot-value.interface.ts", "hash": "4065656085122795408" }, { "file": "apps/api/src/app/portfolio/interfaces/transaction-point-symbol.interface.ts", "hash": "7821377316211632201", "deps": [ "npm:@prisma/client", "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/interfaces/transaction-point.interface.ts", "hash": "9893238664331185136", "deps": [ "npm:big.js" ] }, { "file": "apps/api/src/app/portfolio/portfolio.controller.ts", "hash": "1882188579955791481", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/passport", "npm:@prisma/client", "npm:big.js", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/portfolio/portfolio.module.ts", "hash": "5127483324997865160", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/portfolio/portfolio.service.ts", "hash": "7715022221482031873", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@prisma/client", "npm:big.js", "npm:date-fns", "npm:fuse.js" ] }, { "file": "apps/api/src/app/portfolio/rules.service.ts", "hash": "6594880074282562566", "deps": [ "common", "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/portfolio/update-holding-tags.dto.ts", "hash": "2797145258104508259", "deps": [ "npm:@prisma/client", "npm:class-validator" ] }, { "file": "apps/api/src/app/redis-cache/redis-cache.module.ts", "hash": "11199935753897175063", "deps": [ "npm:@keyv/redis", "npm:@nestjs/cache-manager", "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/redis-cache/redis-cache.service.mock.ts", "hash": "5464314514695461108", "deps": [ "common" ] }, { "file": "apps/api/src/app/redis-cache/redis-cache.service.ts", "hash": "12421092249815195960", "deps": [ "common", "npm:@nestjs/cache-manager", "npm:@nestjs/common", "npm:keyv", "npm:ms" ] }, { "file": "apps/api/src/app/subscription/subscription.controller.ts", "hash": "2363366465620782572", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/passport", "npm:express", "npm:http-status-codes" ] }, { "file": "apps/api/src/app/subscription/subscription.module.ts", "hash": "12243301548523060309", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/subscription/subscription.service.ts", "hash": "1897947714488018417", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:date-fns", "npm:ms", "npm:stripe" ] }, { "file": "apps/api/src/app/symbol/symbol.controller.ts", "hash": "9169254245522838468", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/passport", "npm:@prisma/client", "npm:date-fns", "npm:http-status-codes", "npm:lodash" ] }, { "file": "apps/api/src/app/symbol/symbol.module.ts", "hash": "15283719597844888248", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/app/symbol/symbol.service.ts", "hash": "13785263343906556962", "deps": [ "common", "npm:@nestjs/common", "npm:date-fns" ] }, { "file": "apps/api/src/app/user/user.controller.ts", "hash": "360523281603894601", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:@nestjs/jwt", "npm:@nestjs/passport", "npm:@prisma/client", "npm:http-status-codes", "npm:lodash" ] }, { "file": "apps/api/src/app/user/user.module.ts", "hash": "2243491655857663585", "deps": [ "npm:@nestjs/common", "npm:@nestjs/jwt" ] }, { "file": "apps/api/src/app/user/user.service.ts", "hash": "779522569902969731", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/event-emitter", "npm:@prisma/client", "npm:date-fns", "npm:lodash" ] }, { "file": "apps/api/src/assets/countries/asia-pacific-markets.json", "hash": "11786643917804731254" }, { "file": "apps/api/src/assets/countries/developed-markets.json", "hash": "15014515724572350647" }, { "file": "apps/api/src/assets/countries/emerging-markets.json", "hash": "13102652427762909147" }, { "file": "apps/api/src/assets/countries/europe-markets.json", "hash": "7909159367379857842" }, { "file": "apps/api/src/assets/cryptocurrencies/cryptocurrencies.json", "hash": "4393876564260780073" }, { "file": "apps/api/src/assets/cryptocurrencies/custom.json", "hash": "16921961271907773657" }, { "file": "apps/api/src/assets/site.webmanifest", "hash": "16558392802946440729" }, { "file": "apps/api/src/assets/sitemap.xml", "hash": "6135399650432721691" }, { "file": "apps/api/src/decorators/has-permission.decorator.ts", "hash": "16912551574702848230", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/dependencies.ts", "hash": "2728322994444582716", "deps": [ "npm:dotenv", "npm:dotenv-expand" ] }, { "file": "apps/api/src/environments/environment.prod.ts", "hash": "4390255767487227590", "deps": [ "common" ] }, { "file": "apps/api/src/environments/environment.ts", "hash": "4633602507367672448", "deps": [ "common" ] }, { "file": "apps/api/src/events/asset-profile-changed.event.ts", "hash": "9004890052981155098", "deps": [ "common" ] }, { "file": "apps/api/src/events/asset-profile-changed.listener.ts", "hash": "4773922030751062984", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/event-emitter" ] }, { "file": "apps/api/src/events/events.module.ts", "hash": "13675458054633180929", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/events/portfolio-changed.event.ts", "hash": "14887314507002631278" }, { "file": "apps/api/src/events/portfolio-changed.listener.ts", "hash": "7744908501829210048", "deps": [ "npm:@nestjs/common", "npm:@nestjs/event-emitter" ] }, { "file": "apps/api/src/guards/has-permission.guard.spec.ts", "hash": "4798522664989686975", "deps": [ "npm:@nestjs/common", "npm:@nestjs/core" ] }, { "file": "apps/api/src/guards/has-permission.guard.ts", "hash": "11753141686427124390", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core", "npm:http-status-codes" ] }, { "file": "apps/api/src/helper/object.helper.spec.ts", "hash": "5313362537763935832", "deps": [ "common" ] }, { "file": "apps/api/src/helper/object.helper.ts", "hash": "15474276799147450415", "deps": [ "npm:fast-redact", "npm:jsonpath", "npm:lodash" ] }, { "file": "apps/api/src/helper/portfolio.helper.ts", "hash": "7123448058061258237", "deps": [ "npm:@prisma/client" ] }, { "file": "apps/api/src/helper/string.helper.ts", "hash": "3140664733053485447" }, { "file": "apps/api/src/interceptors/performance-logging/performance-logging.interceptor.ts", "hash": "5241556608201283437", "deps": [ "npm:@nestjs/common", "npm:rxjs" ] }, { "file": "apps/api/src/interceptors/performance-logging/performance-logging.module.ts", "hash": "9544156843013564973", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/interceptors/performance-logging/performance-logging.service.ts", "hash": "1561675548509901005", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/interceptors/redact-values-in-response/redact-values-in-response.interceptor.ts", "hash": "17576200115333986287", "deps": [ "common", "npm:@nestjs/common", "npm:rxjs" ] }, { "file": "apps/api/src/interceptors/redact-values-in-response/redact-values-in-response.module.ts", "hash": "8908315586575373597", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor.ts", "hash": "10276067726219618311", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:rxjs" ] }, { "file": "apps/api/src/interceptors/transform-data-source-in-request/transform-data-source-in-request.module.ts", "hash": "15846098677797604901", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor.ts", "hash": "18251999623644632911", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:rxjs" ] }, { "file": "apps/api/src/interceptors/transform-data-source-in-response/transform-data-source-in-response.module.ts", "hash": "10260971805487485415", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/main.ts", "hash": "1706758187551668974", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/config", "npm:@nestjs/core", "npm:@nestjs/platform-express", "npm:express", "npm:helmet" ] }, { "file": "apps/api/src/middlewares/html-template.middleware.ts", "hash": "17000988993557755334", "deps": [ "common", "npm:@nestjs/common", "npm:date-fns", "npm:express" ] }, { "file": "apps/api/src/models/interfaces/evaluation-result.interface.ts", "hash": "16990713790667585954" }, { "file": "apps/api/src/models/interfaces/rule.interface.ts", "hash": "316978456727434554", "deps": [ "common" ] }, { "file": "apps/api/src/models/rule.ts", "hash": "3592075457203909548", "deps": [ "common", "npm:big.js" ] }, { "file": "apps/api/src/models/rules/account-cluster-risk/current-investment.ts", "hash": "16097611376281528010", "deps": [ "common", "npm:@prisma/client" ] }, { "file": "apps/api/src/models/rules/account-cluster-risk/single-account.ts", "hash": "12409060114530059425", "deps": [ "common" ] }, { "file": "apps/api/src/models/rules/asset-class-cluster-risk/equity.ts", "hash": "8446155065100154678", "deps": [ "common" ] }, { "file": "apps/api/src/models/rules/asset-class-cluster-risk/fixed-income.ts", "hash": "6963053022890977403", "deps": [ "common" ] }, { "file": "apps/api/src/models/rules/currency-cluster-risk/base-currency-current-investment.ts", "hash": "3145079194432205462", "deps": [ "common" ] }, { "file": "apps/api/src/models/rules/currency-cluster-risk/current-investment.ts", "hash": "14913380617764715788", "deps": [ "common" ] }, { "file": "apps/api/src/models/rules/economic-market-cluster-risk/developed-markets.ts", "hash": "11307072678946598598", "deps": [ "common" ] }, { "file": "apps/api/src/models/rules/economic-market-cluster-risk/emerging-markets.ts", "hash": "15762387054913361908", "deps": [ "common" ] }, { "file": "apps/api/src/models/rules/emergency-fund/emergency-fund-setup.ts", "hash": "13717192462215785389", "deps": [ "common" ] }, { "file": "apps/api/src/models/rules/fees/fee-ratio-initial-investment.ts", "hash": "6820546524732241147", "deps": [ "common" ] }, { "file": "apps/api/src/models/rules/fees/fee-ratio-total-investment-volume.ts", "hash": "10169172453372386870", "deps": [ "common" ] }, { "file": "apps/api/src/models/rules/liquidity/buying-power.ts", "hash": "6222443637691361328", "deps": [ "common" ] }, { "file": "apps/api/src/models/rules/regional-market-cluster-risk/asia-pacific.ts", "hash": "15365003551879651606", "deps": [ "common" ] }, { "file": "apps/api/src/models/rules/regional-market-cluster-risk/emerging-markets.ts", "hash": "13153243084059081801", "deps": [ "common" ] }, { "file": "apps/api/src/models/rules/regional-market-cluster-risk/europe.ts", "hash": "6865052606810168071", "deps": [ "common" ] }, { "file": "apps/api/src/models/rules/regional-market-cluster-risk/interfaces/rule-settings.interface.ts", "hash": "628113973325363377", "deps": [ "common" ] }, { "file": "apps/api/src/models/rules/regional-market-cluster-risk/japan.ts", "hash": "16604171211181303892", "deps": [ "common" ] }, { "file": "apps/api/src/models/rules/regional-market-cluster-risk/north-america.ts", "hash": "17782335072732841352", "deps": [ "common" ] }, { "file": "apps/api/src/services/api-key/api-key.module.ts", "hash": "14723309184193906289", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/api-key/api-key.service.ts", "hash": "17734760277586886473", "deps": [ "common", "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/api/api.module.ts", "hash": "7354968351883377957", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/api/api.service.ts", "hash": "6751313023386576265", "deps": [ "common", "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/benchmark/benchmark.module.ts", "hash": "9360133691011349938", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/benchmark/benchmark.service.spec.ts", "hash": "13103742469403220808" }, { "file": "apps/api/src/services/benchmark/benchmark.service.ts", "hash": "5580014919748589425", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:big.js", "npm:date-fns", "npm:lodash", "npm:ms" ] }, { "file": "apps/api/src/services/benchmark/interfaces/benchmark-value.interface.ts", "hash": "338884094417550465", "deps": [ "common" ] }, { "file": "apps/api/src/services/configuration/configuration.module.ts", "hash": "4658466281372801861", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/configuration/configuration.service.ts", "hash": "2367972990397081570", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:envalid", "npm:ms" ] }, { "file": "apps/api/src/services/cron/cron.module.ts", "hash": "108148196063466371", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/cron/cron.service.ts", "hash": "6882867312981890941", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/schedule" ] }, { "file": "apps/api/src/services/cryptocurrency/cryptocurrency.module.ts", "hash": "15714200761230567997", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/cryptocurrency/cryptocurrency.service.ts", "hash": "1237077685028323228", "deps": [ "common", "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/data-provider/alpha-vantage/alpha-vantage.service.ts", "hash": "15053909864648181926", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:alphavantage", "npm:date-fns" ] }, { "file": "apps/api/src/services/data-provider/alpha-vantage/interfaces/interfaces.ts", "hash": "3063408268338565238" }, { "file": "apps/api/src/services/data-provider/coingecko/coingecko.service.ts", "hash": "11787497030860790739", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:date-fns" ] }, { "file": "apps/api/src/services/data-provider/data-enhancer/data-enhancer.module.ts", "hash": "6540505000062101947", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/data-provider/data-enhancer/data-enhancer.service.ts", "hash": "4427393763691477548", "deps": [ "npm:@nestjs/common", "npm:@prisma/client", "npm:http-status-codes", "npm:ms" ] }, { "file": "apps/api/src/services/data-provider/data-enhancer/openfigi/openfigi.service.ts", "hash": "17048034468851260211", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client" ] }, { "file": "apps/api/src/services/data-provider/data-enhancer/trackinsight/trackinsight.service.ts", "hash": "5225839783867517786", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:countries-list" ] }, { "file": "apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.spec.ts", "hash": "4719369868602143119" }, { "file": "apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.ts", "hash": "2197169859225043642", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:class-validator", "npm:countries-list", "npm:yahoo-finance2" ] }, { "file": "apps/api/src/services/data-provider/data-provider.module.ts", "hash": "2607536992505407174", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/data-provider/data-provider.service.ts", "hash": "6941287458033070726", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:big.js", "npm:date-fns", "npm:lodash", "npm:ms" ] }, { "file": "apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts", "hash": "7613174661268583728", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:date-fns", "npm:lodash" ] }, { "file": "apps/api/src/services/data-provider/errors/asset-profile-delisted.error.ts", "hash": "4296474189461775574" }, { "file": "apps/api/src/services/data-provider/errors/asset-profile-invalid.error.ts", "hash": "7455645065698911398" }, { "file": "apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts", "hash": "7696590401175200250", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:class-validator", "npm:countries-list", "npm:date-fns", "npm:lodash" ] }, { "file": "apps/api/src/services/data-provider/ghostfolio/ghostfolio.service.ts", "hash": "13590323008042086516", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:date-fns", "npm:http-status-codes" ] }, { "file": "apps/api/src/services/data-provider/google-sheets/google-sheets.service.ts", "hash": "4506109992949841263", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:date-fns", "npm:google-spreadsheet" ] }, { "file": "apps/api/src/services/data-provider/interfaces/data-enhancer.interface.ts", "hash": "5905789433897306305", "deps": [ "npm:@prisma/client" ] }, { "file": "apps/api/src/services/data-provider/interfaces/data-provider.interface.ts", "hash": "5664970237932723431", "deps": [ "common", "npm:@prisma/client" ] }, { "file": "apps/api/src/services/data-provider/manual/manual.service.ts", "hash": "9353963807504814875", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:cheerio", "npm:date-fns" ] }, { "file": "apps/api/src/services/data-provider/rapid-api/interfaces/interfaces.ts", "hash": "8424093270923872930" }, { "file": "apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts", "hash": "10801259609189396807", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:date-fns" ] }, { "file": "apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts", "hash": "16049573961214179098", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:date-fns", "npm:lodash", "npm:yahoo-finance2" ] }, { "file": "apps/api/src/services/demo/demo.module.ts", "hash": "15584725568269139642", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/demo/demo.service.ts", "hash": "6350809143965427599", "deps": [ "common", "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/exchange-rate-data/exchange-rate-data.module.ts", "hash": "16102051575863862952", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/exchange-rate-data/exchange-rate-data.service.mock.ts", "hash": "6829319059299174922" }, { "file": "apps/api/src/services/exchange-rate-data/exchange-rate-data.service.ts", "hash": "1092322378793813889", "deps": [ "common", "npm:@nestjs/common", "npm:date-fns", "npm:lodash", "npm:ms" ] }, { "file": "apps/api/src/services/exchange-rate-data/interfaces/exchange-rate-data.interface.ts", "hash": "13147322954568869345" }, { "file": "apps/api/src/services/i18n/i18n.module.ts", "hash": "4416527148780970240", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/i18n/i18n.service.ts", "hash": "6759760547678459029", "deps": [ "common", "npm:@nestjs/common", "npm:cheerio" ] }, { "file": "apps/api/src/services/impersonation/impersonation.module.ts", "hash": "3010619095332548903", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/impersonation/impersonation.service.ts", "hash": "11987556906301449254", "deps": [ "common", "npm:@nestjs/common", "npm:@nestjs/core" ] }, { "file": "apps/api/src/services/interfaces/environment.interface.ts", "hash": "3855341986111174142", "deps": [ "npm:envalid" ] }, { "file": "apps/api/src/services/interfaces/interfaces.ts", "hash": "10815197616548705865", "deps": [ "common" ] }, { "file": "apps/api/src/services/market-data/market-data.module.ts", "hash": "12440358661319807732", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/market-data/market-data.service.ts", "hash": "2086812361557687482", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client" ] }, { "file": "apps/api/src/services/prisma/prisma.module.ts", "hash": "12550362206928290755", "deps": [ "npm:@nestjs/common", "npm:@nestjs/config" ] }, { "file": "apps/api/src/services/prisma/prisma.service.ts", "hash": "10613682284405298281", "deps": [ "npm:@nestjs/common", "npm:@nestjs/config", "npm:@prisma/client" ] }, { "file": "apps/api/src/services/property/interfaces/interfaces.ts", "hash": "1561851996794043019" }, { "file": "apps/api/src/services/property/property.module.ts", "hash": "3085453214119883211", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/property/property.service.ts", "hash": "574312839115818357", "deps": [ "common", "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/queues/data-gathering/data-gathering.module.ts", "hash": "5307629830241219343", "deps": [ "common", "npm:@nestjs/bull", "npm:@nestjs/common", "npm:ms" ] }, { "file": "apps/api/src/services/queues/data-gathering/data-gathering.processor.ts", "hash": "18223908704251068937", "deps": [ "common", "npm:@nestjs/bull", "npm:@nestjs/common", "npm:@prisma/client", "npm:bull", "npm:date-fns" ] }, { "file": "apps/api/src/services/queues/data-gathering/data-gathering.service.ts", "hash": "6049928267500705193", "deps": [ "common", "npm:@nestjs/bull", "npm:@nestjs/common", "npm:@prisma/client", "npm:bull", "npm:date-fns", "npm:lodash", "npm:ms" ] }, { "file": "apps/api/src/services/queues/portfolio-snapshot/interfaces/portfolio-snapshot-queue-job.interface.ts", "hash": "8583148353136040536", "deps": [ "common" ] }, { "file": "apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.module.ts", "hash": "8297291138593518346", "deps": [ "common", "npm:@nestjs/bull", "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.processor.ts", "hash": "4186303662313622127", "deps": [ "common", "npm:@nestjs/bull", "npm:@nestjs/common", "npm:bull", "npm:date-fns" ] }, { "file": "apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock.ts", "hash": "16786115544867298475", "deps": [ "npm:bull" ] }, { "file": "apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.service.ts", "hash": "12277910663988458690", "deps": [ "common", "npm:@nestjs/bull", "npm:@nestjs/common", "npm:bull" ] }, { "file": "apps/api/src/services/symbol-profile/symbol-profile.module.ts", "hash": "5232121521664228275", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/symbol-profile/symbol-profile.service.ts", "hash": "15096594253906276847", "deps": [ "common", "npm:@nestjs/common", "npm:@prisma/client", "npm:countries-list" ] }, { "file": "apps/api/src/services/tag/tag.module.ts", "hash": "5582953936751098220", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/tag/tag.service.ts", "hash": "1402565448416884557", "deps": [ "npm:@nestjs/common", "npm:@prisma/client" ] }, { "file": "apps/api/src/services/twitter-bot/twitter-bot.module.ts", "hash": "3383850832412587513", "deps": [ "npm:@nestjs/common" ] }, { "file": "apps/api/src/services/twitter-bot/twitter-bot.service.ts", "hash": "4336669487510246926", "deps": [ "common", "npm:@nestjs/common", "npm:date-fns", "npm:twitter-api-v2" ] }, { "file": "apps/api/tsconfig.app.json", "hash": "998268749760607935" }, { "file": "apps/api/tsconfig.json", "hash": "9214820933160915425" }, { "file": "apps/api/tsconfig.spec.json", "hash": "11456460237505728881" }, { "file": "apps/api/webpack.config.js", "hash": "3401084728844548669", "deps": [ "npm:@nx/webpack" ] } ] }, "nonProjectFiles": [ { "file": ".config/prisma.ts", "hash": "16348431219884104142" }, { "file": ".editorconfig", "hash": "5443105041930014821" }, { "file": ".env.dev", "hash": "16865666361607950149" }, { "file": ".env.example", "hash": "1862094756373934162" }, { "file": ".github/FUNDING.yml", "hash": "16909704043473721683" }, { "file": ".github/ISSUE_TEMPLATE/bug_report.md", "hash": "685053750771044887" }, { "file": ".github/workflows/build-code.yml", "hash": "2622154859372880235" }, { "file": ".github/workflows/docker-image.yml", "hash": "13758063793368979718" }, { "file": ".github/workflows/extract-locales.yml", "hash": "14075793601299089741" }, { "file": ".gitignore", "hash": "15232197987773661306" }, { "file": ".husky/pre-commit", "hash": "3789793288886438064" }, { "file": ".nvmrc", "hash": "10726521585550549119" }, { "file": ".prettierignore", "hash": "5940749340571524768" }, { "file": ".prettierrc", "hash": "13119230825905607490" }, { "file": ".vscode/extensions.json", "hash": "6708453199782191120" }, { "file": ".vscode/launch.json", "hash": "18416635335944408060" }, { "file": ".vscode/settings.json", "hash": "18054807475792902797" }, { "file": "AGENT_README.md", "hash": "18171146822851200795" }, { "file": "BOUNTY.md", "hash": "1900581952729368068" }, { "file": "CHANGELOG.md", "hash": "9653745632959924676" }, { "file": "COST_ANALYSIS.md", "hash": "151155004394832060" }, { "file": "DEVELOPMENT.md", "hash": "3428697375240545725" }, { "file": "Dockerfile", "hash": "5609350500291209679" }, { "file": "LICENSE", "hash": "2271482152748302304" }, { "file": "README.md", "hash": "18263589393716718566" }, { "file": "SECURITY.md", "hash": "7968232148799516606" }, { "file": "agent/.env.example", "hash": "10531838018993712175" }, { "file": "agent/.gitignore", "hash": "2298713947366789772" }, { "file": "agent/Procfile", "hash": "11460476381201235251" }, { "file": "agent/chat_ui.html", "hash": "3933186816952653689" }, { "file": "agent/data/properties.db", "hash": "15816615665929550546" }, { "file": "agent/evals/__init__.py", "hash": "3244421341483603138" }, { "file": "agent/evals/conftest.py", "hash": "9316090075155772590" }, { "file": "agent/evals/coverage_matrix.py", "hash": "4516370369989072180" }, { "file": "agent/evals/golden_results.json", "hash": "10644667993511712021" }, { "file": "agent/evals/golden_sets.yaml", "hash": "12973595718758551760" }, { "file": "agent/evals/labeled_scenarios.yaml", "hash": "8129168157861963794" }, { "file": "agent/evals/run_evals.py", "hash": "18363199680855625586" }, { "file": "agent/evals/run_golden_sets.py", "hash": "3413157100891218116" }, { "file": "agent/evals/test_cases.json", "hash": "1272145643154145914" }, { "file": "agent/evals/test_equity_advisor.py", "hash": "4539684530578778762" }, { "file": "agent/evals/test_eval_dataset.py", "hash": "5839283513205298286" }, { "file": "agent/evals/test_family_planner.py", "hash": "18175107955809113172" }, { "file": "agent/evals/test_life_decision_advisor.py", "hash": "17264192519409799600" }, { "file": "agent/evals/test_portfolio.py", "hash": "6836551029129008352" }, { "file": "agent/evals/test_property_onboarding.py", "hash": "16625226641695152767" }, { "file": "agent/evals/test_property_tracker.py", "hash": "16741840386150628104" }, { "file": "agent/evals/test_real_estate.py", "hash": "8610100220544767700" }, { "file": "agent/evals/test_realestate_strategy.py", "hash": "13690711789322271469" }, { "file": "agent/evals/test_relocation_runway.py", "hash": "14343780272239926809" }, { "file": "agent/evals/test_wealth_bridge.py", "hash": "8635775242085226082" }, { "file": "agent/evals/test_wealth_visualizer.py", "hash": "8704132710203987150" }, { "file": "agent/graph.py", "hash": "9224526595538115630" }, { "file": "agent/login.html", "hash": "18158235814425365171" }, { "file": "agent/main.py", "hash": "1193398856861881805" }, { "file": "agent/pytest.ini", "hash": "74237186708701000" }, { "file": "agent/railway.toml", "hash": "8986283985348684832" }, { "file": "agent/requirements.txt", "hash": "15542918826833391008" }, { "file": "agent/scripts/seed_portfolio.py", "hash": "5320695648853207076" }, { "file": "agent/seed_demo.py", "hash": "14194907484060209373" }, { "file": "agent/state.py", "hash": "16475716517617413240" }, { "file": "agent/tools/__init__.py", "hash": "2725145359764893920" }, { "file": "agent/tools/categorize.py", "hash": "10345281950427710759" }, { "file": "agent/tools/compliance.py", "hash": "7458723023857782981" }, { "file": "agent/tools/family_planner.py", "hash": "6811542061969206362" }, { "file": "agent/tools/life_decision_advisor.py", "hash": "18041313283071167465" }, { "file": "agent/tools/market_data.py", "hash": "1762091721139578456" }, { "file": "agent/tools/portfolio.py", "hash": "1152245737511147869" }, { "file": "agent/tools/property_tracker.py", "hash": "16581161458494880996" }, { "file": "agent/tools/real_estate.py", "hash": "2725024927827743582" }, { "file": "agent/tools/realestate_strategy.py", "hash": "3044398087067811589" }, { "file": "agent/tools/relocation_runway.py", "hash": "13684451118085072923" }, { "file": "agent/tools/tax_estimate.py", "hash": "18154020863262258784" }, { "file": "agent/tools/teleport_api.py", "hash": "16728972857155072245" }, { "file": "agent/tools/transactions.py", "hash": "17519519060266385369" }, { "file": "agent/tools/wealth_bridge.py", "hash": "12374246684670280088" }, { "file": "agent/tools/wealth_visualizer.py", "hash": "11531366791455905250" }, { "file": "agent/tools/write_ops.py", "hash": "10444878684834785733" }, { "file": "agent/verification/__init__.py", "hash": "3244421341483603138" }, { "file": "agent/verification/fact_checker.py", "hash": "8261131935771467714" }, { "file": "docker/docker-compose.build.yml", "hash": "296960770637111741" }, { "file": "docker/docker-compose.dev.yml", "hash": "6326472022612437994" }, { "file": "docker/docker-compose.override.yml", "hash": "3869741265263844263" }, { "file": "docker/docker-compose.yml", "hash": "3940373253158217647" }, { "file": "docker/entrypoint.sh", "hash": "5948677520288982892" }, { "file": "eslint.config.cjs", "hash": "2468086126307397075" }, { "file": "jest.config.ts", "hash": "9503103576462223123" }, { "file": "jest.preset.js", "hash": "9430166341120122740" }, { "file": "nx.json", "hash": "9009411869964998609" }, { "file": "package-lock.json", "hash": "4935449714809677924" }, { "file": "package.json", "hash": "17491303488963474752" }, { "file": "prisma/migrations/20210604190809_initial_migration/migration.sql", "hash": "15154371243705581772" }, { "file": "prisma/migrations/20210605161257_added_symbol_profile/migration.sql", "hash": "17966153087896059885" }, { "file": "prisma/migrations/20210612110542_added_auth_device/migration.sql", "hash": "15744618206573993987" }, { "file": "prisma/migrations/20210616075245_added_sectors_to_symbol_profile/migration.sql", "hash": "14139052383848289176" }, { "file": "prisma/migrations/20210703194509_added_balance_to_account/migration.sql", "hash": "7033590542062362795" }, { "file": "prisma/migrations/20210724160404_added_currency_to_symbol_profile/migration.sql", "hash": "1357738893175446305" }, { "file": "prisma/migrations/20210807062952_added_is_draft_to_order/migration.sql", "hash": "10678492812191859591" }, { "file": "prisma/migrations/20210808075949_added_asset_class_to_symbol_profile/migration.sql", "hash": "3030817154809865195" }, { "file": "prisma/migrations/20210815180121_added_settings_to_settings/migration.sql", "hash": "2635894368164025432" }, { "file": "prisma/migrations/20210822200534_added_asset_sub_class_to_symbol_profile/migration.sql", "hash": "11114439259354600687" }, { "file": "prisma/migrations/20210913190808_changed_currency_to_optional_in_order/migration.sql", "hash": "6603287914329455593" }, { "file": "prisma/migrations/20210916182355_added_data_source_to_market_data/migration.sql", "hash": "12173843165864408045" }, { "file": "prisma/migrations/20210918183212_removed_default_value_of_data_source/migration.sql", "hash": "14517533350538973383" }, { "file": "prisma/migrations/20210921151004_changed_currency_from_enum_to_string/migration.sql", "hash": "5699924197844567361" }, { "file": "prisma/migrations/20211018203042_changed_grantee_user_to_optional_in_access/migration.sql", "hash": "3748985445928676299" }, { "file": "prisma/migrations/20211107082008_added_symbol_mapping_to_symbol_profile/migration.sql", "hash": "4854030630939625691" }, { "file": "prisma/migrations/20211107171624_added_scraper_configuration_to_symbol_profile/migration.sql", "hash": "14062937305939722579" }, { "file": "prisma/migrations/20211215203002_migrated_schema_to_prisma_3/migration.sql", "hash": "4679965170582444827" }, { "file": "prisma/migrations/20211215205808_added_dividend_to_order_type/migration.sql", "hash": "16789115386239859515" }, { "file": "prisma/migrations/20220108083624_added_google_sheets_to_data_source/migration.sql", "hash": "16579767064029385248" }, { "file": "prisma/migrations/20220202192001_changed_data_source_to_optional_in_order/migration.sql", "hash": "15881692204104386354" }, { "file": "prisma/migrations/20220202192041_changed_symbol_to_optional_in_order/migration.sql", "hash": "2644710246787905432" }, { "file": "prisma/migrations/20220202192216_changed_symbol_profile_to_required_in_order/migration.sql", "hash": "18165614307580756572" }, { "file": "prisma/migrations/20220205195653_added_default_value_for_provider_in_user/migration.sql", "hash": "16898826791696357531" }, { "file": "prisma/migrations/20220209194930_added_manual_to_data_source/migration.sql", "hash": "3102895299728253882" }, { "file": "prisma/migrations/20220209195038_added_item_to_order_type/migration.sql", "hash": "3243045345473953460" }, { "file": "prisma/migrations/20220227092214_added_mutualfund_to_asset_sub_class/migration.sql", "hash": "15454428814771223445" }, { "file": "prisma/migrations/20220227093650_added_url_to_symbol_profile/migration.sql", "hash": "222834145333110901" }, { "file": "prisma/migrations/20220302184222_removed_data_source_from_order/migration.sql", "hash": "5411688657429592181" }, { "file": "prisma/migrations/20220302191841_removed_currency_from_order/migration.sql", "hash": "5602720973314297989" }, { "file": "prisma/migrations/20220302193633_removed_symbol_from_order/migration.sql", "hash": "5107582941867937368" }, { "file": "prisma/migrations/20220302200727_changed_currency_to_required_in_symbol_profile/migration.sql", "hash": "12210276262923057486" }, { "file": "prisma/migrations/20220313200604_added_fixed_income_to_asset_class/migration.sql", "hash": "6789775044436512986" }, { "file": "prisma/migrations/20220313200721_added_bond_to_asset_sub_class/migration.sql", "hash": "18114417808415641132" }, { "file": "prisma/migrations/20220422174935_added_symbol_profile_overrides/migration.sql", "hash": "11386361488609096047" }, { "file": "prisma/migrations/20220422183831_added_commodity_to_asset_sub_class/migration.sql", "hash": "16585914061291304550" }, { "file": "prisma/migrations/20220424064155_changed_various_ids_with_multiple_fields/migration.sql", "hash": "12580484879156463761" }, { "file": "prisma/migrations/20220424152051_added_tags_to_order/migration.sql", "hash": "5017752243188484045" }, { "file": "prisma/migrations/20220430083454_added_real_estate_to_asset_class/migration.sql", "hash": "13936566523022976477" }, { "file": "prisma/migrations/20220430083631_added_precious_metal_to_asset_sub_class/migration.sql", "hash": "14628758516830379268" }, { "file": "prisma/migrations/20220430193522_added_private_equity_to_asset_sub_class/migration.sql", "hash": "9240580020511523361" }, { "file": "prisma/migrations/20220529071429_added_eod_historical_data_to_data_source/migration.sql", "hash": "17583463291449558446" }, { "file": "prisma/migrations/20220716071244_added_internet_identity_to_provider/migration.sql", "hash": "17765651863044482170" }, { "file": "prisma/migrations/20220725155238_added_comment_to_order/migration.sql", "hash": "2134829822996547684" }, { "file": "prisma/migrations/20220808181846_added_url_to_symbol_profile_overrides/migration.sql", "hash": "1166715326833800745" }, { "file": "prisma/migrations/20220808191912_added_default_value_for_countries_of_symbol_profile_overrides/migration.sql", "hash": "5406402083892413095" }, { "file": "prisma/migrations/20220808192002_added_default_value_for_sectors_of_symbol_profile_overrides/migration.sql", "hash": "9506300322434841024" }, { "file": "prisma/migrations/20220827074920_added_alias_to_access/migration.sql", "hash": "2831694143847770184" }, { "file": "prisma/migrations/20220903065048_removed_alias_from_user/migration.sql", "hash": "5045253299661486309" }, { "file": "prisma/migrations/20220910135140_removed_currency_and_view_mode_from_user/migration.sql", "hash": "11176636923832622391" }, { "file": "prisma/migrations/20220924175215_added_is_excluded_to_account/migration.sql", "hash": "1521901475393071355" }, { "file": "prisma/migrations/20221015160602_added_rapid_api_to_data_source/migration.sql", "hash": "12603078288975235720" }, { "file": "prisma/migrations/20221128064317_added_comment_to_symbol_profile/migration.sql", "hash": "8322947201385329471" }, { "file": "prisma/migrations/20221225084546_removed_rakuten_from_data_source/migration.sql", "hash": "7576910237392792649" }, { "file": "prisma/migrations/20221227203757_added_price_to_subscription/migration.sql", "hash": "4989640679356505380" }, { "file": "prisma/migrations/20230205173009_added_country_to_analytics/migration.sql", "hash": "13787999678768335234" }, { "file": "prisma/migrations/20230215174320_changed_data_source_from_ghostfolio_to_manual/migration.sql", "hash": "18280233761913113111" }, { "file": "prisma/migrations/20230217173323_removed_ghostfolio_from_data_source/migration.sql", "hash": "5213868384785904142" }, { "file": "prisma/migrations/20230222200407_added_coingecko_to_data_source/migration.sql", "hash": "2334563189271091274" }, { "file": "prisma/migrations/20230318081658_added_isin_to_symbol_profile/migration.sql", "hash": "5516733246499367813" }, { "file": "prisma/migrations/20230422180309_added_data_source_to_market_data_as_unique_constraint/migration.sql", "hash": "13095322332300527002" }, { "file": "prisma/migrations/20230424194009_added_state_to_market_data/migration.sql", "hash": "1837741061499545838" }, { "file": "prisma/migrations/20230511070258_added_financial_modeling_prep_to_data_source/migration.sql", "hash": "12309938578320065137" }, { "file": "prisma/migrations/20230610083653_added_comment_to_account/migration.sql", "hash": "1681688971418102287" }, { "file": "prisma/migrations/20230614345544_added_liability_to_order_type/migration.sql", "hash": "18389546286336788286" }, { "file": "prisma/migrations/20230723104112_added_account_balances_to_account/migration.sql", "hash": "3743010601815422207" }, { "file": "prisma/migrations/20230915141658_changed_account_type_to_optional_in_account/migration.sql", "hash": "18128499078626844834" }, { "file": "prisma/migrations/20230917074305_added_fee_to_order_type/migration.sql", "hash": "10565996145364681793" }, { "file": "prisma/migrations/20230918204124_added_interest_to_order_type/migration.sql", "hash": "10259936373930155355" }, { "file": "prisma/migrations/20231021094346_added_figi_figi_composite_and_figi_share_class_to_symbol_profile/migration.sql", "hash": "4894302633243771751" }, { "file": "prisma/migrations/20231105135400_set_value_of_account_type_to_null_in_account/migration.sql", "hash": "13936752693430631901" }, { "file": "prisma/migrations/20231107080536_removed_account_type_from_account/migration.sql", "hash": "9880935795615310565" }, { "file": "prisma/migrations/20240106124731_removed_account_type_enum/migration.sql", "hash": "14293152204356249455" }, { "file": "prisma/migrations/20240106131428_added_permissions_to_access/migration.sql", "hash": "11420734472202612944" }, { "file": "prisma/migrations/20240218173439_added_inactive_to_role/migration.sql", "hash": "6071091710750698459" }, { "file": "prisma/migrations/20240219182116_added_missing_indexes/migration.sql", "hash": "7465595315907993623" }, { "file": "prisma/migrations/20240221201438_added_missing_indexes/migration.sql", "hash": "10577640581808820354" }, { "file": "prisma/migrations/20240224102024_removed_is_default_from_account/migration.sql", "hash": "4120842480862217683" }, { "file": "prisma/migrations/20240229191929_added_index_for_is_excluded_to_account/migration.sql", "hash": "15532543140332131243" }, { "file": "prisma/migrations/20240323080559_added_index_for_data_source_symbol_to_market_data/migration.sql", "hash": "9621304781909950087" }, { "file": "prisma/migrations/20240407073037_added_currency_to_order/migration.sql", "hash": "4651144009874994534" }, { "file": "prisma/migrations/20240421080039_added_account_id_and_date_to_account_balance_as_unique_constraint/migration.sql", "hash": "6859771909427891282" }, { "file": "prisma/migrations/20240422181320_added_liquidity_to_asset_class/migration.sql", "hash": "8117347629288599186" }, { "file": "prisma/migrations/20240422181356_added_cash_to_asset_sub_class/migration.sql", "hash": "18039207202175644855" }, { "file": "prisma/migrations/20240422181835_changed_cash_to_liquidity_in_asset_sub_class/migration.sql", "hash": "8833421340775784205" }, { "file": "prisma/migrations/20240422182643_removed_cash_from_asset_class/migration.sql", "hash": "699784815771293233" }, { "file": "prisma/migrations/20240601083002_added_cascade_on_delete_for_various_relations/migration.sql", "hash": "606645310344849966" }, { "file": "prisma/migrations/20240607122659_added_holdings_to_symbol_profile/migration.sql", "hash": "6632702557735518233" }, { "file": "prisma/migrations/20240928171744_added_user_to_tag/migration.sql", "hash": "3488561889976330954" }, { "file": "prisma/migrations/20241029190323_added_data_provider_ghostfolio_daily_requests_to_analytics/migration.sql", "hash": "14102200407685250291" }, { "file": "prisma/migrations/20241102121004_added_last_request_at_to_analytics/migration.sql", "hash": "12789416138566146055" }, { "file": "prisma/migrations/20241103110114_added_ghostfolio_to_data_source/migration.sql", "hash": "575527496995004342" }, { "file": "prisma/migrations/20241130164334_upgraded_to_prisma_6/migration.sql", "hash": "16322787896049916311" }, { "file": "prisma/migrations/20241130164335_added_api_keys_to_user copy/migration.sql", "hash": "13596558956154285709" }, { "file": "prisma/migrations/20241207142023_set_hashed_key_of_api_key_to_unique/migration.sql", "hash": "12606847682803550276" }, { "file": "prisma/migrations/20241214091912_added_user_to_symbol_profile/migration.sql", "hash": "2761120790260909928" }, { "file": "prisma/migrations/20250222084717_added_cusip_to_symbol_profile/migration.sql", "hash": "5203933851644179816" }, { "file": "prisma/migrations/20250324072407_added_is_active_to_symbol_profile/migration.sql", "hash": "13636953675964752561" }, { "file": "prisma/migrations/20250401084916_set_value_of_currency_to_null_in_order/migration.sql", "hash": "14816068508835152735" }, { "file": "prisma/migrations/20250418123137_added_watchlist_to_user/migration.sql", "hash": "8385642389250130433" }, { "file": "prisma/migrations/20250704214021_changed_type_from_item_to_buy_in_order/migration.sql", "hash": "3625201959208497824" }, { "file": "prisma/migrations/20250708090630_added_alternative_investment_to_asset_class/migration.sql", "hash": "7047001754052150624" }, { "file": "prisma/migrations/20250708090631_added_collectible_to_asset_sub_class/migration.sql", "hash": "1482390491130066113" }, { "file": "prisma/migrations/20250915163323_added_asset_profile_resolution/migration.sql", "hash": "16539441789942819301" }, { "file": "prisma/migrations/20250924210446_added_settings_to_access/migration.sql", "hash": "9819454691765881020" }, { "file": "prisma/migrations/20250926182138_removed_item_from_type/migration.sql", "hash": "16740430459207078142" }, { "file": "prisma/migrations/20251103162035_added_oidc_to_provider/migration.sql", "hash": "4058591526200782356" }, { "file": "prisma/migrations/migration_lock.toml", "hash": "872437952673290735" }, { "file": "prisma/schema.prisma", "hash": "7039911793903335639" }, { "file": "prisma/seed.mts", "hash": "2054571958792999276" }, { "file": "railway.json", "hash": "17042404192288899675" }, { "file": "replace.build.mjs", "hash": "3395691063101301313" }, { "file": "test/import/not-ok/invalid-currency.csv", "hash": "3280388847775623875" }, { "file": "test/import/not-ok/invalid-data-source.json", "hash": "6488812904661352086" }, { "file": "test/import/not-ok/invalid-date-before-min.json", "hash": "14446121672619627476" }, { "file": "test/import/not-ok/invalid-date-yy.csv", "hash": "11467305560781585468" }, { "file": "test/import/not-ok/invalid-date.json", "hash": "16676766659820464778" }, { "file": "test/import/not-ok/invalid-fee.csv", "hash": "2237881109779274534" }, { "file": "test/import/not-ok/invalid-multi-line.csv", "hash": "16986013149066524874" }, { "file": "test/import/not-ok/invalid-symbol-btc-usd.csv", "hash": "12065607042561786928" }, { "file": "test/import/not-ok/invalid-symbol.csv", "hash": "2056534592771603558" }, { "file": "test/import/not-ok/invalid-symbol.json", "hash": "12452248087380125829" }, { "file": "test/import/not-ok/invalid-type.json", "hash": "17375018934908475660" }, { "file": "test/import/not-ok/unavailable-exchange-rate.json", "hash": "12225157246970503401" }, { "file": "test/import/not-ok/unexpected-format.json", "hash": "15486083036504493317" }, { "file": "test/import/ok/500-activities.json", "hash": "15760431450888860471" }, { "file": "test/import/ok/btceur.json", "hash": "14391956564910473026" }, { "file": "test/import/ok/btcusd-short.json", "hash": "625672754063068526" }, { "file": "test/import/ok/btcusd.csv", "hash": "7281124703291835189" }, { "file": "test/import/ok/btcusd.json", "hash": "14753630423278268038" }, { "file": "test/import/ok/derived-currency.json", "hash": "17169375560835143418" }, { "file": "test/import/ok/jnug-buy-and-sell-and-buy-and-sell.json", "hash": "14360015067251015726" }, { "file": "test/import/ok/novn-buy-and-sell-partially.json", "hash": "11117802109288574736" }, { "file": "test/import/ok/novn-buy-and-sell.json", "hash": "1282435698606387488" }, { "file": "test/import/ok/penthouse-apartment.csv", "hash": "1042847043239107905" }, { "file": "test/import/ok/penthouse-apartment.json", "hash": "7418782190515584518" }, { "file": "test/import/ok/sample.csv", "hash": "15168157200082591118" }, { "file": "test/import/ok/sample.json", "hash": "16011686998688277350" }, { "file": "test/import/ok/vti-buy-long-history.json", "hash": "3851935364514418581" }, { "file": "test/import/ok/vti-buy-on-ibkr.csv", "hash": "8055093977448151391" }, { "file": "test/import/ok/without-accounts.json", "hash": "16736843207644364876" }, { "file": "tools/tsconfig.tools.json", "hash": "5864009640613726360" }, { "file": "tsconfig.base.json", "hash": "13577932458849693605" } ] }, "externalNodesHash": "13940014180313458077" }