Compare commits

..
Author SHA1 Message Date
evandro 869800d9c4 docs(readme): documentar testes, CI e estado atual do repositório 2026-10-10 04:20:33 -03:00
evandro 30d7ef701f fix: cache JSON concorrente, validação do sync e timeout nas chamadas ao Open Food Facts
- JsonCacheManager: a leitura inicial concorrente carregava o arquivo duas
  vezes e a segunda descartava as alterações da primeira; gravações
  simultâneas escreviam no mesmo arquivo. Agora a leitura é compartilhada
  e a gravação é enfileirada, via arquivo temporário + rename.
- POST /api/cache/sync: aceitava qualquer objeto e usava code como chave
  do cache (inclusive ausente ou não numérico); agora só grava produtos
  com code numérico e conta os demais em failed. JSON malformado responde
  400 em vez de 500.
- GET /api/products/[barcode]: resposta da API sem product virava 200
  com corpo vazio; agora responde 404.
- Chamadas ao Open Food Facts (busca e produto) passam a ter timeout de
  15 s e o User-Agent vem de um único lugar (lib/offSearch).
2026-10-10 04:18:59 -03:00
evandro 5ee5dcd893 fix(a11y): nomes acessíveis em busca, filtros e paginação
- campos de busca (SearchBar e Hero) só tinham placeholder
- botões só com ícone (buscar, voltar, primeira/anterior/próxima/última)
- filtros de Nutri-Score (letras a-e) e chip de alérgenos expõem
  aria-pressed; página atual da paginação usa aria-current
2026-10-10 04:17:24 -03:00
evandro 3d59903114 perf: remover polling de storage-stats e trabalho repetido na busca do cache
- useStorageMonitor: o efeito com setInterval de 10 s chamava
  /api/storage-stats em toda aba aberta só para escrever no console
  (nenhum estado é atualizado); o servidor faz fs.stat e conta as
  chaves do cache a cada chamada. A busca inicial de estatísticas
  continua.
- JsonCacheManager.searchProducts: convertToAPIProduct rodava duas vezes
  por produto (filtro e map) e a relevância era recalculada, com
  toLowerCase, a cada comparação do sort; agora é uma vez por produto.
2026-10-10 04:16:34 -03:00
evandro a9ab66e26f chore: remover código morto e artefatos, adicionar CI e script typecheck
- componentes sem nenhuma importação (card, items, DeleteButton, IdInput,
  NutriScoreBadge, NutritionBar, NutritionChart, PageTitle, PersuasiveCTA,
  landing/SearchBar), imports e variável não usados (avisos do lint)
- sw.js na raiz: não é referenciado e carrega script de terceiros
  (fenoofaussut.net)
- bun.lock (o deploy e o README usam pnpm), graphify-out/ e os bancos
  SQLite versionados em prisma/prisma (pnpm db:push recria o banco)
- devDependency depcheck sem uso
- .gitignore: *.sqlite, *.sqlite-journal, graphify-out/
- script typecheck e workflow do GitHub Actions (lint, typecheck, test, build)
2026-10-10 04:16:04 -03:00
evandro bf688257ef refactor(api): extrair montagem e paginação da busca para lib/offSearch
GET /api/search passa de CC 41 para <= 10. Testes de caracterização
(sem rede: fetch e cache JSON temporário) cobrem validação, filtros,
ordenação, paginação, modo cache-only e erros.

Também: parameter property de NutriScanError virou campo explícito e
imports só de tipo usam import type, para o type stripping nativo do
Node; o script de teste não usa mais --experimental-transform-types
(removida no Node 26).
2026-10-10 04:14:48 -03:00
139 changed files with 1115 additions and 15723 deletions

No files matched your search

+29
View File
@@ -0,0 +1,29 @@
name: CI
on:
push:
branches: [main]
pull_request:
permissions:
contents: read
jobs:
check:
runs-on: ubuntu-latest
env:
DATABASE_URL: file:./prisma/db/database.sqlite
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 10
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm lint
- run: pnpm typecheck
- run: pnpm test
- run: pnpm build
+6 -1
View File
@@ -171,4 +171,9 @@ dist
.pnp.*
.env*
!.env.example
!.env.example
# Banco SQLite local (criado por `pnpm db:push`) e saída de ferramentas
*.sqlite
*.sqlite-journal
data/*.tmp
graphify-out/
+23 -41
View File
@@ -2,6 +2,7 @@
**Consulta nutricional de produtos de supermercado: busca por nome ou código de barras na base colaborativa do Open Food Facts, mostra Nutri-Score e grau de processamento (NOVA) e organiza listas de compras, com cache local para continuar funcionando sem internet.**
![CI](https://github.com/evandrodevbr/nutriscan/actions/workflows/ci.yml/badge.svg)
![Next.js](https://img.shields.io/badge/Next.js-15-black?logo=nextdotjs&logoColor=white)
![React](https://img.shields.io/badge/React-19-61DAFB?logo=react&logoColor=black)
![TypeScript](https://img.shields.io/badge/TypeScript-5.9-3178C6?logo=typescript&logoColor=white)
@@ -61,6 +62,7 @@ cache do cliente: resultados de busca e filtros no localStorage (TTL configuráv
- Node.js `>=18.18` (o deploy fixa Node 18; o build foi verificado em Node 24.20.0)
- pnpm 10 ou superior (o deploy fixa 10.34.5; a instalação foi verificada com pnpm 12.4.1 e a resolução de dependências foi verificada com pnpm 10.34.5)
- Para rodar os testes: Node.js `>=22.15` (verificado em 26.7.0)
- Nenhum serviço externo é obrigatório para subir a aplicação: sem internet ela responde pelo cache local
## Início rápido
@@ -107,7 +109,7 @@ Todas as rotas ficam em `app/api` e são Route Handlers do Next.js.
| `/api/search` | GET | Busca produtos no cache JSON e, se faltar, no Open Food Facts |
| `/api/products/[barcode]` | GET | Busca um produto pelo código de barras (cache primeiro, depois API) |
| `/api/location` | GET | País estimado a partir do IP (`x-forwarded-for`, `x-real-ip` ou api.ipify.org) |
| `/api/cache/sync` | POST | Grava um lote de produtos no cache JSON. Corpo: `{ "products": [...] }` |
| `/api/cache/sync` | POST | Grava um lote de produtos no cache JSON. Corpo: `{ "products": [...] }`; itens sem `code` numérico são ignorados e contados em `failed` |
| `/api/storage-stats` | GET | Total de produtos, tamanho do arquivo e data da última atualização do cache |
Parâmetros de `/api/search`:
@@ -179,6 +181,7 @@ hooks/ busca, filtros, cache, geolocalização e monitor d
lib/
├── openFoodFactsApi.ts cliente da API do Open Food Facts e ordenação
├── jsonCacheManager.ts cache JSON do servidor (data/products-cache.json)
├── offSearch.ts montagem e paginação das buscas no Open Food Facts
├── cacheManager.ts cache de buscas no localStorage
├── geolocation.ts detecção de país do usuário
├── searchUtils.ts ordenação por relevância
@@ -186,53 +189,36 @@ lib/
└── prisma.ts singleton do Prisma Client
components/ui/ componentes shadcn/ui (button, dialog, select, sheet, ...)
prisma/schema.prisma modelos Lista e Produtos
tests/ testes (node:test) e helper de resolução de módulos
.github/workflows/ci.yml CI: lint, typecheck, testes e build
data/products-cache.json cache inicial com 232 produtos
docs/ documentação interna
nixpacks.toml, dokploy.yaml configuração de deploy
```
## Verificação
## Testes e desenvolvimento
Há testes offline com o runner nativo do Node.js (sem framework adicional) e não há CI configurada. O que existe hoje:
- `pnpm lint` roda o ESLint (via `next lint`);
- `pnpm build` roda `prisma generate` e o `next build` com checagem de tipos;
- verificação manual de rotas com `curl`, descrita abaixo.
Medições feitas nesta auditoria, em 14/09/2026, com Node 24.20.0 e pnpm 12.4.1:
| Comando / requisição | Resultado |
| Comando | O que faz |
|---|---|
| `pnpm install` | exit 0, sem precisar de flags |
| `pnpm lint` | exit 0, 6 avisos de variável não usada |
| `pnpm build` | exit 0, 13 páginas geradas, First Load JS compartilhado de 102 kB |
| `pnpm start -p 3111` | servidor no ar, respondeu 200 em 1 s |
| `GET /` | 200, 46 kB |
| `GET /sobre`, `/resultados`, `/robots.txt`, `/sitemap.xml`, `/manifest.json` | 200 |
| `GET /produto/3017620422003` | 200, produto Nutella obtido na hora na API |
| `GET /lista/audit-teste` | 200, página de lista renderizada |
| `GET /api/search?q=bis&cache_only=true` | 200, 20 produtos vindos do cache |
| `GET /api/search?q=bis&cache_only=true&page_size=5` | 200, 5 produtos |
| `GET /api/products/7622210575975?cache_only=true` | 200, `fromCache: true` |
| `GET /api/products/3017620422003` | 200, `fromAPI: true` (produto buscado e gravado no cache) |
| `GET /api/storage-stats` | 200, `totalProducts: 232`, 0,55 MB |
| `GET /api/location` | 200, `{"country":"Brazil","countryCode":"br"}` |
| `POST /api/cache/sync` com `{"products":[]}` | 200, `{"success":true,"saved":0,"failed":0}` |
| `POST /api/cache/sync` com corpo inválido | 400, `{"error":"Produtos inválidos"}` |
| `GET /api/search` sem `q` | 400, `{"error":"Query parameter is required"}` |
| `GET /api/products/123` | 400, `{"error":"Código de barras inválido"}` |
| `GET /api/search?q=x&page=0` | 400, `{"error":"Invalid page parameter"}` |
| `pnpm test` | Testes com o runner nativo do Node (`node:test`), sem framework adicional |
| `pnpm lint` | ESLint via `next lint` |
| `pnpm typecheck` | `tsc --noEmit` |
| `pnpm build` | `prisma generate` + `next build` |
Os testes não acessam a rede: `fetch` é substituído por um mock e o cache JSON do servidor aponta para uma pasta temporária, então `data/products-cache.json` não é alterado. Eles cobrem a normalização de energia e nutrientes, a ordenação, a montagem das requisições ao Open Food Facts (`lib/offSearch.ts`), as rotas `/api/search`, `/api/products/[barcode]` e `/api/cache/sync` e a gravação concorrente do cache. O código-fonte TypeScript é executado direto pelo Node (type stripping), por isso `pnpm test` exige Node.js 22.15 ou superior; o helper `tests/helpers/register.mjs` resolve o alias `@/` e os imports sem extensão.
O workflow `.github/workflows/ci.yml` roda lint, typecheck, testes e build em cada push na `main` e em pull requests, com Node 22 e pnpm 10.
Última execução local (Node 26.7.0, pnpm 12.8.1): `pnpm test`, `pnpm typecheck`, `pnpm lint` e `pnpm build` terminam com sucesso; `pnpm start -p 3111` respondeu 200 em `/`, `/lista/<id>`, `/api/search?q=bis&cache_only=true&page_size=5`, `/api/storage-stats` e `/api/products/7622210575975?cache_only=true`, e 400 em `/api/search` sem `q`, `/api/products/123` e `POST /api/cache/sync` com corpo inválido.
## Estado atual e limitações
- A busca textual depende do endpoint legado `cgi/search.pl` do Open Food Facts, que respondeu HTTP 503 durante a verificação. Na prática, buscar por nome retorna lista vazia, com a rota respondendo 200 e `count: 0`, sem derrubar a aplicação. A consulta por código de barras continua funcionando pelo endpoint `api/v2/product`.
- Testes offline de normalização e ordenação nutricional; ainda sem CI.
- A busca textual depende do endpoint legado `cgi/search.pl` do Open Food Facts, que respondeu HTTP 503 em 14/09/2026. Na prática, buscar por nome retorna lista vazia, com a rota respondendo 200 e `count: 0`, sem derrubar a aplicação. A consulta por código de barras continua funcionando pelo endpoint `api/v2/product`.
- O painel de filtros avançados da página de resultados guarda as escolhas na chave do cache, mas a busca enviada para `/api/search` leva apenas texto, país e paginação. Hoje o que realmente filtra a lista são os atalhos de classificação Nutri-Score e o botão de produtos sem alérgenos.
- A ordenação implementada em `lib/openFoodFactsApi.ts` cobre quatro critérios (relevância, Nutri-Score, energia e nome). As demais opções do seletor caem no caso padrão da função e não reordenam o resultado.
- O servidor grava em `data/products-cache.json`, que é versionado. Usar a aplicação altera o conteúdo do arquivo no diretório de trabalho.
- Duas lockfiles versionadas: `pnpm-lock.yaml` (usada pelo deploy) e `bun.lock`.
- Metadados, Open Graph e User-Agent apontam para `nutriscan.com.br`, domínio que não responde; a instância publicada está em `nutriscan.evandro.dev.br`, que também é a URL do `sitemap.xml` e do `robots.txt`.
- O banco SQLite versionado em `prisma/prisma/db/` vem só com a tabela `_prisma_migrations`, sem `Lista` e `Produtos`; é necessário rodar `pnpm db:push` antes de usar as listas.
- Metadados, Open Graph e User-Agent (`lib/offSearch.ts`, `lib/openFoodFactsApi.ts`, `app/api/location/route.ts`) apontam para `nutriscan.com.br`, domínio que não responde; a instância publicada está em `nutriscan.evandro.dev.br`, que também é a URL do `sitemap.xml` e do `robots.txt`.
- O repositório não traz banco SQLite: é necessário rodar `pnpm db:push` antes de usar as listas.
- `pnpm db:migrate` existe no `package.json` mas não tem migrations para aplicar no repositório.
- O analytics é servido via proxy em `/analytics/*` para o Rybbit configurado em `NEXT_PUBLIC_RYBBIT_HOST`; sem esse serviço no ar, o script falha silenciosamente no cliente.
- A página de lista de compras renderiza para qualquer id, mesmo sem registro no banco, porque `verificarLista` retorna sucesso quando a lista não existe.
@@ -252,10 +238,6 @@ Licença de uso pessoal, definida em [`LICENSE`](LICENSE): é permitido usar em
Autor: Evandro, <https://evandro.dev.br> e [@evandrodevbr](https://github.com/evandrodevbr).
## Validação de dados nutricionais (2026-09-30)
## Normalização de energia e nutrientes
A exibição e a ordenação de energia priorizam `energy-kcal_100g`; na ausência dele, convertem o campo em kJ para kcal usando `1 kcal = 4,184 kJ`. A página do produto usa a mesma normalização. Zero é preservado como dado válido, e valores ausentes, negativos ou não finitos não entram no cálculo. Produtos sem energia ficam no fim da ordenação nas duas direções. A linha baseada em `salt_100g` é identificada como sal.
Os exemplos de campos vêm da [documentação oficial do Open Food Facts](https://openfoodfacts.github.io/openfoodfacts-server/api/tutorial-off-api/). Valores por 100 g e referências existentes da interface são mantidos; o Nutri-Score continua vindo da API.
Com Node.js 22.7+ (verificado em 24.19.0), `pnpm test` executa 6 regressões offline usando o runner nativo, sem adicionar um framework. `pnpm lint`, `pnpm exec tsc --noEmit` e `pnpm build` completam a validação. O build foi verificado com SQLite temporário, sem conexão com um banco de produção. Next.js e eslint-config-next foram atualizados para 15.5.24.
A exibição e a ordenação de energia priorizam `energy-kcal_100g`; na ausência dele, convertem o campo em kJ para kcal usando `1 kcal = 4,184 kJ`. A página do produto usa a mesma normalização. Zero é preservado como dado válido, e valores ausentes, negativos ou não finitos não entram no cálculo. Produtos sem energia ficam no fim da ordenação nas duas direções. A linha baseada em `salt_100g` é identificada como sal. A implementação está em `lib/nutrition.ts`; os campos seguem a [documentação do Open Food Facts](https://openfoodfacts.github.io/openfoodfacts-server/api/tutorial-off-api/).
+23 -9
View File
@@ -1,26 +1,40 @@
import { NextRequest, NextResponse } from "next/server";
import { jsonCacheManager } from "@/lib/jsonCacheManager";
import type { Product } from "@/lib/openFoodFactsApi";
const INVALID_PRODUCTS = { error: "Produtos inválidos" };
/** Aceita só objetos com `code` numérico (texto de dígitos): a chave do cache não pode ser arbitrária. */
function isSyncableProduct(value: unknown): value is Product {
if (typeof value !== "object" || value === null) return false;
const code = (value as { code?: unknown }).code;
return typeof code === "string" && /^\d{1,32}$/.test(code);
}
export async function POST(request: NextRequest) {
let body: { products?: unknown };
try {
const { products } = await request.json();
body = await request.json();
} catch {
return NextResponse.json(INVALID_PRODUCTS, { status: 400 });
}
if (!products || !Array.isArray(products)) {
return NextResponse.json(
{ error: "Produtos inválidos" },
{ status: 400 }
);
try {
const products = body?.products;
if (!Array.isArray(products)) {
return NextResponse.json(INVALID_PRODUCTS, { status: 400 });
}
// Salvar produtos no cache
const result = await jsonCacheManager.saveProducts(products);
// Salvar produtos válidos no cache; os demais contam como falha
const valid = products.filter(isSyncableProduct);
const result = await jsonCacheManager.saveProducts(valid);
console.log(`[Cache Sync] ${result.saved} novos produtos salvos`);
return NextResponse.json({
success: true,
saved: result.saved,
failed: result.failed,
failed: result.failed + (products.length - valid.length),
});
} catch (error) {
console.error("Erro ao sincronizar cache:", error);
+4 -4
View File
@@ -1,7 +1,6 @@
import { NextRequest, NextResponse } from "next/server";
import { jsonCacheManager } from "@/lib/jsonCacheManager";
const USER_AGENT = "NutriScan/1.0 (https://nutriscan.com.br)";
import { OFF_TIMEOUT_MS, OFF_USER_AGENT } from "@/lib/offSearch";
export async function GET(
request: NextRequest,
@@ -55,9 +54,10 @@ export async function GET(
`https://world.openfoodfacts.org/api/v2/product/${cleanBarcode}.json`,
{
headers: {
"User-Agent": USER_AGENT,
"User-Agent": OFF_USER_AGENT,
Accept: "application/json",
},
signal: AbortSignal.timeout(OFF_TIMEOUT_MS),
}
);
@@ -70,7 +70,7 @@ export async function GET(
const data = await response.json();
if (data.status === 0) {
if (data.status === 0 || !data.product) {
return NextResponse.json(
{ error: "Produto não encontrado" },
{ status: 404 }
+91 -352
View File
@@ -1,384 +1,123 @@
import { NextRequest, NextResponse } from "next/server";
import { jsonCacheManager } from "@/lib/jsonCacheManager";
import { Product } from "@/lib/openFoodFactsApi";
import { buildOffSearchParams, fetchOffProducts, parsePagination } from "@/lib/offSearch";
import type { Product } from "@/lib/openFoodFactsApi";
import { sortByRelevance } from "@/lib/searchUtils";
const USER_AGENT = "NutriScan/1.0 (https://nutriscan.com.br)";
type LocalResults = Awaited<ReturnType<typeof jsonCacheManager.searchProducts>>;
function isCacheOnly(searchParams: URLSearchParams): boolean {
return searchParams.get("cache_only") === "true" || process.env.NEXT_PUBLIC_CACHE_ONLY_MODE === "true";
}
/** Complementa o cache com a API externa quando ele não alcança o tamanho da página. */
async function loadApiProducts(
query: string,
params: URLSearchParams,
localCount: number,
pageSize: number
): Promise<Product[]> {
if (localCount >= pageSize) return [];
console.log(`Cache JSON retornou ${localCount} produtos, buscando na API externa...`);
const fetched = await fetchOffProducts(params, pageSize - localCount);
if (fetched.length === 0) return [];
const apiProducts = sortByRelevance(fetched, query);
const saveResult = await jsonCacheManager.saveProducts(apiProducts);
console.log(`Cache JSON atualizado: ${saveResult.saved} salvos, ${saveResult.failed} falharam`);
return apiProducts;
}
function buildSearchResponse(
query: string,
localResults: LocalResults,
apiProducts: Product[],
page: number,
pageSize: number
) {
const localCodes = new Set(localResults.products.map((p) => p.code));
const newApiProducts = apiProducts.filter((p) => !localCodes.has(p.code));
const allProducts = [...localResults.products, ...newApiProducts];
const paginated = sortByRelevance(allProducts, query).slice(0, pageSize);
console.log(
`Busca finalizada: ${paginated.length} produtos (${localResults.products.length} do cache JSON, ${newApiProducts.length} novos da API)`
);
return {
products: paginated,
count: allProducts.length,
page,
page_size: pageSize,
skip: (page - 1) * pageSize,
fromCache: localResults.fromCache,
fromAPI: apiProducts.length > 0,
cacheStats: {
localProducts: localResults.products.length,
apiProducts: apiProducts.length,
newProducts: newApiProducts.length,
totalReturned: paginated.length,
},
};
}
function errorResponse(page: number, pageSize: number) {
return NextResponse.json(
{
products: [],
count: 0,
page,
page_size: pageSize,
skip: (page - 1) * pageSize,
fromCache: false,
fromAPI: false,
error: "Erro interno do servidor",
cacheStats: { localProducts: 0, apiProducts: 0, newProducts: 0, totalReturned: 0 },
},
{ status: 500 }
);
}
export async function GET(request: NextRequest) {
const searchParams = request.nextUrl.searchParams;
const query = searchParams.get("q");
const country = searchParams.get("country");
const page = searchParams.get("page") || "1";
const pageSize = searchParams.get("page_size") || "20";
const cacheOnly = searchParams.get("cache_only") === "true";
if (!query) {
return NextResponse.json(
{ error: "Query parameter is required" },
{ status: 400 }
);
return NextResponse.json({ error: "Query parameter is required" }, { status: 400 });
}
// Validar parâmetros
const pageNum = parseInt(page);
const pageSizeNum = parseInt(pageSize);
if (isNaN(pageNum) || pageNum < 1) {
return NextResponse.json(
{ error: "Invalid page parameter" },
{ status: 400 }
);
}
if (isNaN(pageSizeNum) || pageSizeNum < 1) {
return NextResponse.json(
{ error: "Invalid page_size parameter" },
{ status: 400 }
);
}
// Usar o máximo permitido pelo Open Food Facts (1000) para consultas na API
const apiPageSize = Math.max(pageSizeNum, 1000);
const params = new URLSearchParams({
search_terms: query,
page_size: apiPageSize.toString(),
page: page,
json: "true",
fields: [
"code",
"product_name",
"brands",
"categories",
"ingredients_text",
"nutriments",
"nutrition_grades",
"nova_group",
"image_url",
"image_small_url",
"image_front_url",
"image_front_small_url",
"countries",
"countries_tags",
"allergens_tags",
"additives_tags",
].join(","),
});
// Filtros básicos
if (country) {
params.append("countries_tags_en", country);
}
// Filtros de classificação nutricional
const nutritionGrades = searchParams.get("nutrition_grades");
if (nutritionGrades) {
params.append("nutrition_grades_tags", nutritionGrades);
}
const novaGroups = searchParams.get("nova_groups");
if (novaGroups) {
params.append("nova_groups", novaGroups);
}
// Filtros de categoria e marca
const categories = searchParams.get("categories");
if (categories) {
params.append("categories_tags", categories);
}
const brands = searchParams.get("brands");
if (brands) {
params.append("brands", brands);
}
// Filtros de alérgenos
const allergens = searchParams.get("allergens");
if (allergens) {
params.append("allergens_tags", allergens);
}
const excludeAllergens = searchParams.get("exclude_allergens");
if (excludeAllergens) {
params.append("exclude_allergens_tags", excludeAllergens);
}
// Filtros de aditivos
const additives = searchParams.get("additives");
if (additives) {
params.append("additives_tags", additives);
}
const excludeAdditives = searchParams.get("exclude_additives");
if (excludeAdditives) {
params.append("exclude_additives_tags", excludeAdditives);
}
const noAdditives = searchParams.get("no_additives");
if (noAdditives === "true") {
params.append("additives_tags", "without-additives");
}
// Filtros de países
const countries = searchParams.get("countries");
if (countries) {
params.append("countries_tags", countries);
}
// Filtros nutricionais (valores por 100g)
const nutritionFilters = [
"energy_min",
"energy_max",
"fat_min",
"fat_max",
"carbohydrates_min",
"carbohydrates_max",
"proteins_min",
"proteins_max",
"sugars_min",
"sugars_max",
"fiber_min",
"fiber_max",
"sodium_min",
"sodium_max",
];
nutritionFilters.forEach((filter) => {
const value = searchParams.get(filter);
if (value) {
params.append(filter, value);
}
});
// Ordenação
const sortBy = searchParams.get("sort_by");
const sortOrder = searchParams.get("sort_order") || "asc";
if (sortBy) {
let sortField = "";
switch (sortBy) {
case "nutrition_grade":
sortField = "nutrition_grades";
break;
case "name":
sortField = "product_name";
break;
case "brand":
sortField = "brands";
break;
case "energy":
sortField = "nutriments.energy_100g";
break;
case "fat":
sortField = "nutriments.fat_100g";
break;
case "sugars":
sortField = "nutriments.sugars_100g";
break;
default:
sortField = "popularity";
}
if (sortField) {
params.append("sort_by", sortField);
params.append("sort_order", sortOrder);
}
const pagination = parsePagination(searchParams);
if ("error" in pagination) {
return NextResponse.json({ error: pagination.error }, { status: 400 });
}
const { page, pageSize, pageParam } = pagination;
try {
console.log(
`[API] Iniciando busca: "${query}" (país: ${
country || "todos"
}, page_size: ${pageSizeNum})`
);
console.log(`[API] Iniciando busca: "${query}" (país: ${country || "todos"}, page_size: ${pageSize})`);
// Primeiro, buscar no cache JSON
console.log(`[API] Buscando "${query}" no cache JSON...`);
const localResults = await jsonCacheManager.searchProducts(
query,
country || undefined,
pageSizeNum
);
const localResults = await jsonCacheManager.searchProducts(query, country || undefined, pageSize);
// Se modo cache-only estiver ativo, retornar apenas resultados locais
if (cacheOnly || process.env.NEXT_PUBLIC_CACHE_ONLY_MODE === "true") {
console.log(
`[Cache-Only Mode] Retornando apenas ${localResults.products.length} produtos do cache`
);
if (isCacheOnly(searchParams)) {
console.log(`[Cache-Only Mode] Retornando apenas ${localResults.products.length} produtos do cache`);
return NextResponse.json({
products: localResults.products,
count: localResults.products.length,
page: pageNum,
page_size: pageSizeNum,
page,
page_size: pageSize,
fromCache: true,
fromAPI: false,
cacheOnly: true,
});
}
let fromAPI = false;
let apiProducts: Product[] = [];
const params = buildOffSearchParams(searchParams, query, country, pageParam);
const apiProducts = await loadApiProducts(query, params, localResults.products.length, pageSize);
// Se não encontrou resultados suficientes no cache JSON, buscar na API externa
if (localResults.products.length < pageSizeNum) {
console.log(
`Cache JSON retornou ${localResults.products.length} produtos, buscando na API externa...`
);
// Implementar busca paginada automática para page_size > 1000
const allApiProducts: Product[] = [];
const maxPerPage = 1000;
let currentApiPage = 1;
const totalNeeded = pageSizeNum - localResults.products.length;
while (allApiProducts.length < totalNeeded) {
// Atualizar parâmetros para a página atual
const currentParams = new URLSearchParams(params);
currentParams.set("page", currentApiPage.toString());
currentParams.set("page_size", maxPerPage.toString());
console.log(
`Buscando página ${currentApiPage} da API (${allApiProducts.length}/${totalNeeded} produtos obtidos)...`
);
const response = await fetch(
`https://world.openfoodfacts.org/cgi/search.pl?${currentParams.toString()}`,
{
headers: {
"User-Agent": USER_AGENT,
Accept: "application/json",
},
}
);
if (response.ok) {
const apiData = await response.json();
const pageProducts = apiData.products || [];
if (pageProducts.length === 0) {
console.log("Não há mais produtos na API");
break; // Não há mais produtos
}
allApiProducts.push(...pageProducts);
fromAPI = true;
console.log(
`Página ${currentApiPage}: ${pageProducts.length} produtos (Total: ${allApiProducts.length})`
);
// Se retornou menos que o máximo, acabaram os produtos
if (pageProducts.length < maxPerPage) {
console.log("Última página de produtos obtida");
break;
}
// Se já temos o suficiente, parar
if (allApiProducts.length >= totalNeeded) {
console.log(
`Quantidade suficiente obtida: ${allApiProducts.length}/${totalNeeded}`
);
break;
}
// Incrementar página para próxima iteração
currentApiPage++;
// Rate limiting: aguardar 200ms entre requisições
if (allApiProducts.length < totalNeeded) {
console.log("Aguardando 200ms antes da próxima requisição...");
await new Promise((resolve) => setTimeout(resolve, 200));
}
} else {
console.error(
`Erro na página ${currentApiPage}: ${response.status} ${response.statusText}`
);
break;
}
}
apiProducts = allApiProducts;
// Ordenar produtos da API por relevância
if (apiProducts.length > 0) {
console.log(
`Ordenando ${apiProducts.length} produtos da API por relevância...`
);
apiProducts = sortByRelevance(apiProducts, query);
console.log(
`Salvando ${apiProducts.length} produtos da API no cache JSON...`
);
const saveResult = await jsonCacheManager.saveProducts(apiProducts);
console.log(
`Cache JSON atualizado: ${saveResult.saved} salvos, ${saveResult.failed} falharam`
);
}
}
// Combinar resultados JSON e da API
const allProducts: Product[] = [...localResults.products];
const localProductCodes = new Set(localResults.products.map((p) => p.code));
// Adicionar apenas produtos da API que não estão no cache JSON
const newApiProducts = apiProducts.filter(
(p) => !localProductCodes.has(p.code)
);
allProducts.push(...newApiProducts);
// Reordenar a lista combinada por relevância
console.log(
`Reordenando ${allProducts.length} produtos combinados por relevância...`
);
const sortedProducts = sortByRelevance(allProducts, query);
// Limitar ao tamanho da página solicitada
const paginatedProducts = sortedProducts.slice(0, pageSizeNum);
const responseData = {
products: paginatedProducts,
count: allProducts.length,
page: pageNum,
page_size: pageSizeNum,
skip: (pageNum - 1) * pageSizeNum,
fromCache: localResults.fromCache,
fromAPI: fromAPI,
cacheStats: {
localProducts: localResults.products.length,
apiProducts: apiProducts.length,
newProducts: newApiProducts.length,
totalReturned: paginatedProducts.length,
},
};
console.log(
`Busca finalizada: ${paginatedProducts.length} produtos (${localResults.products.length} do cache JSON, ${newApiProducts.length} novos da API)`
);
return NextResponse.json(responseData);
return NextResponse.json(buildSearchResponse(query, localResults, apiProducts, page, pageSize));
} catch (error) {
console.error("[API] Erro ao buscar produtos:", error);
// Retornar resposta de erro estruturada em vez de quebrar
return NextResponse.json(
{
products: [],
count: 0,
page: pageNum,
page_size: pageSizeNum,
skip: (pageNum - 1) * pageSizeNum,
fromCache: false,
fromAPI: false,
error: "Erro interno do servidor",
cacheStats: {
localProducts: 0,
apiProducts: 0,
newProducts: 0,
totalReturned: 0,
},
},
{ status: 500 }
);
return errorResponse(page, pageSize);
}
}
-70
View File
@@ -1,70 +0,0 @@
'use client'
import { Button } from "@/components/ui/button";
import {
AlertDialog,
AlertDialogAction,
AlertDialogCancel,
AlertDialogContent,
AlertDialogDescription,
AlertDialogFooter,
AlertDialogHeader,
AlertDialogTitle,
AlertDialogTrigger,
} from "@/components/ui/alert-dialog";
import { deletarProduto } from "../actions";
import { useState } from "react";
import { Trash2 } from "lucide-react";
import { useRouter } from "next/navigation";
interface DeleteButtonProps {
produtoId: number;
produtoNome: string;
listaId: string;
}
export function DeleteButton({ produtoId, produtoNome, listaId }: DeleteButtonProps) {
const [isDeleting, setIsDeleting] = useState(false);
const router = useRouter();
async function handleDelete() {
try {
setIsDeleting(true);
await deletarProduto(produtoId, listaId);
router.refresh();
} finally {
setIsDeleting(false);
}
}
return (
<AlertDialog>
<AlertDialogTrigger asChild>
<Button
variant="destructive"
size="icon"
>
<Trash2 className="h-4 w-4" />
</Button>
</AlertDialogTrigger>
<AlertDialogContent>
<AlertDialogHeader>
<AlertDialogTitle>Confirmar exclusão</AlertDialogTitle>
<AlertDialogDescription>
Tem certeza que deseja excluir o produto &quot;{produtoNome}&quot;?
Esta ação não pode ser desfeita.
</AlertDialogDescription>
</AlertDialogHeader>
<AlertDialogFooter>
<AlertDialogCancel>Cancelar</AlertDialogCancel>
<AlertDialogAction
onClick={handleDelete}
className="bg-destructive text-destructive-foreground hover:bg-destructive/90"
disabled={isDeleting}
>
{isDeleting ? 'Excluindo...' : 'Excluir'}
</AlertDialogAction>
</AlertDialogFooter>
</AlertDialogContent>
</AlertDialog>
);
}
-2
View File
@@ -16,7 +16,6 @@ import {
BarChart3,
} from "lucide-react";
import * as LucideIcons from "lucide-react";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import { Checkbox } from "@/components/ui/checkbox";
import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group";
@@ -29,7 +28,6 @@ import {
AccordionTrigger,
} from "@/components/ui/accordion";
import { Badge } from "@/components/ui/badge";
import { Separator } from "@/components/ui/separator";
import { SortDropdown } from "@/app/components/SortDropdown";
import { FilterBadges } from "@/app/components/FilterBadge";
import {
-93
View File
@@ -1,93 +0,0 @@
'use client'
import { useState } from 'react'
import { useRouter } from 'next/navigation'
import { Input } from "@/components/ui/input"
import { Button } from "@/components/ui/button"
import { verificarLista } from '../actions'
export function IdInput() {
const [id, setId] = useState('')
const [error, setError] = useState('')
const [loading, setLoading] = useState(false)
const router = useRouter()
const handleSubmit = async (e: React.FormEvent) => {
e.preventDefault()
setLoading(true)
setError('')
if (!id.trim()) {
setError('Digite um ID válido')
setLoading(false)
return
}
try {
const result = await verificarLista(id.trim(), true) // Forçar criação se não existir
if (result.success) {
localStorage.setItem('listaId', id.trim())
router.push(`/lista/${id.trim()}`)
} else {
setError('Erro ao acessar/criar lista')
}
} catch {
setError('Erro ao processar solicitação')
} finally {
setLoading(false)
}
}
return (
<div
className="min-h-screen flex items-center justify-center"
style={{ background: 'var(--bg-base)' }}
>
<div
className="max-w-md w-full space-y-8 p-8 rounded-xl"
style={{
background: 'var(--bg-elevated)',
border: '1px solid var(--border-subtle)',
boxShadow: '0 8px 32px -8px rgba(30,24,16,0.10)',
}}
>
<div>
<h2
className="mt-6 text-center text-3xl font-display"
style={{ color: 'var(--fg-primary)' }}
>
Acesse sua lista
</h2>
<p
className="mt-2 text-center text-sm"
style={{ color: 'var(--fg-muted)' }}
>
Digite um ID para acessar ou criar uma nova lista
</p>
</div>
<form className="mt-8 space-y-6" onSubmit={handleSubmit}>
<div>
<Input
type="text"
required
placeholder="Digite o ID da lista"
value={id}
onChange={(e) => setId(e.target.value)}
className="appearance-none rounded-lg relative block w-full px-3 py-2"
style={{ borderColor: 'var(--border-strong)', background: 'var(--bg-surface)' }}
/>
</div>
{error && (
<p className="text-sm text-center" style={{ color: 'var(--nutri-e)' }}>{error}</p>
)}
<button
type="submit"
disabled={loading}
className="btn-accent w-full justify-center"
>
{loading ? 'Carregando...' : 'Acessar/Criar Lista'}
</button>
</form>
</div>
</div>
)
}
-1
View File
@@ -9,7 +9,6 @@ import {
SelectTrigger,
SelectValue,
} from "@/components/ui/select";
import { Button } from "@/components/ui/button";
import { criarItens } from "../actions";
import { useTransition, useState } from 'react';
import { useRouter } from "next/navigation";
-122
View File
@@ -1,122 +0,0 @@
"use client";
import { useState } from "react";
import { cn } from "@/lib/utils";
interface NutriScoreBadgeProps {
grade: string;
className?: string;
size?: "sm" | "md" | "lg";
showTooltip?: boolean;
}
const GRADE_INFO: Record<string, { desc: string; explanation: string }> = {
a: { desc: "Muito bom", explanation: "Excelente qualidade nutricional" },
b: { desc: "Bom", explanation: "Boa qualidade nutricional" },
c: { desc: "Regular", explanation: "Qualidade nutricional moderada" },
d: { desc: "Ruim", explanation: "Qualidade nutricional baixa" },
e: { desc: "Muito ruim", explanation: "Qualidade nutricional muito baixa" },
};
const GRADE_CLASS: Record<string, string> = {
a: "grade-a", b: "grade-b", c: "grade-c", d: "grade-d", e: "grade-e",
};
const SIZE_CLASS = {
sm: "w-8 h-8 text-sm",
md: "w-14 h-14 text-xl",
lg: "w-20 h-20 text-2xl",
};
export function NutriScoreBadge({
grade,
className,
size = "md",
showTooltip = true,
}: NutriScoreBadgeProps) {
const [hover, setHover] = useState(false);
const key = grade?.toLowerCase();
const info = GRADE_INFO[key];
if (!info) return null;
return (
<div className="relative inline-block">
<div
className={cn(
"nutriscore-hero font-sans font-bold rounded-full flex items-center justify-center cursor-default",
GRADE_CLASS[key],
SIZE_CLASS[size],
className
)}
onMouseEnter={() => setHover(true)}
onMouseLeave={() => setHover(false)}
>
{key.toUpperCase()}
</div>
{showTooltip && hover && (
<div className="absolute bottom-full left-1/2 -translate-x-1/2 mb-2 z-50 whitespace-nowrap">
<div className="bg-[var(--fg-primary)] text-[var(--bg-base)] text-xs rounded-lg px-3 py-2 shadow-xl">
<p className="font-semibold">Nutri-Score {key.toUpperCase()}</p>
<p className="opacity-70">{info.desc}</p>
<p className="opacity-50 mt-0.5">{info.explanation}</p>
<div className="absolute top-full left-1/2 -translate-x-1/2 w-0 h-0 border-l-4 border-r-4 border-t-4 border-transparent border-t-[var(--fg-primary)]" />
</div>
</div>
)}
</div>
);
}
/* ── NOVA Badge ───────────────────────────────────────────────────────────── */
interface NovaBadgeProps {
group: number;
className?: string;
size?: "sm" | "md" | "lg";
showTooltip?: boolean;
}
const NOVA_INFO: Record<number, { desc: string; explanation: string; bg: string; fg: string }> = {
1: { desc: "Não processado", explanation: "Alimentos não ou minimamente processados", bg: "#1a7a4a", fg: "#fff" },
2: { desc: "Ingrediente", explanation: "Ingredientes culinários processados", bg: "#e8c110", fg: "#1e1810" },
3: { desc: "Processado", explanation: "Alimentos processados", bg: "#e07820", fg: "#fff" },
4: { desc: "Ultraprocessado",explanation: "Alimentos ultraprocessados", bg: "#c0201a", fg: "#fff" },
};
export function NovaBadge({
group,
className,
size = "md",
showTooltip = true,
}: NovaBadgeProps) {
const [hover, setHover] = useState(false);
const info = NOVA_INFO[group];
if (!info) return null;
return (
<div className="relative inline-block">
<div
className={cn(
"nutriscore-hero font-sans font-bold rounded-full flex items-center justify-center cursor-default",
SIZE_CLASS[size],
className
)}
style={{ background: info.bg, color: info.fg, animation: "none" }}
onMouseEnter={() => setHover(true)}
onMouseLeave={() => setHover(false)}
>
{group}
</div>
{showTooltip && hover && (
<div className="absolute bottom-full left-1/2 -translate-x-1/2 mb-2 z-50 whitespace-nowrap">
<div className="bg-[var(--fg-primary)] text-[var(--bg-base)] text-xs rounded-lg px-3 py-2 shadow-xl">
<p className="font-semibold">NOVA {group}</p>
<p className="opacity-70">{info.desc}</p>
<p className="opacity-50 mt-0.5">{info.explanation}</p>
<div className="absolute top-full left-1/2 -translate-x-1/2 w-0 h-0 border-l-4 border-r-4 border-t-4 border-transparent border-t-[var(--fg-primary)]" />
</div>
</div>
)}
</div>
);
}
-133
View File
@@ -1,133 +0,0 @@
"use client";
import { cn } from "@/lib/utils";
interface NutritionBarProps {
label: string;
value: string;
unit?: string;
percentage?: number;
isHigh?: boolean;
isLow?: boolean;
recommended?: string;
className?: string;
}
export function NutritionBar({
label,
value,
unit = "",
percentage = 0,
isHigh = false,
isLow = false,
className,
}: NutritionBarProps) {
const barWidth = Math.min(Math.max(percentage, 2), 100);
const barColor = isHigh
? "bg-[var(--score-e)]"
: isLow
? "bg-[var(--score-a)]"
: percentage > 75
? "bg-[var(--score-d)]"
: percentage > 50
? "bg-[var(--score-c)]"
: "bg-[var(--accent)]";
const valueColor = isHigh
? "text-[var(--score-e)]"
: isLow
? "text-[var(--score-a)]"
: "text-[var(--fg-primary)]";
return (
<div className={cn("space-y-2", className)}>
<div className="flex items-baseline justify-between gap-3">
<span className="label text-[var(--fg-muted)] truncate">{label}</span>
<span className={cn("label shrink-0 font-medium", valueColor)}>
{value} {unit}
</span>
</div>
{/* Hairline track */}
<div className="w-full h-px bg-[var(--border-subtle)] relative overflow-hidden rounded-full">
<div
className={cn("h-full rounded-full transition-all duration-700", barColor)}
style={{ width: `${barWidth}%` }}
/>
</div>
</div>
);
}
interface NutritionGridProps {
nutritionData: {
energy?: string;
fat?: string;
carbohydrates?: string;
proteins?: string;
sugars?: string;
fiber?: string;
sodium?: string;
};
className?: string;
}
const REFERENCE = {
energy: 2000, fat: 65, carbohydrates: 300,
proteins: 50, sugars: 50, fiber: 25, sodium: 2.3,
};
function extractNumber(val?: string): number {
if (!val) return 0;
const m = val.match(/(\d+(?:\.\d+)?)/);
return m ? parseFloat(m[1]) : 0;
}
function pct(val: string | undefined, ref: number): number {
return (extractNumber(val) / ref) * 100;
}
export function NutritionGrid({ nutritionData, className }: NutritionGridProps) {
const items = [
{ label: "Energia", value: nutritionData.energy, unit: "kcal", ref: REFERENCE.energy },
{ label: "Gorduras", value: nutritionData.fat, unit: "g", ref: REFERENCE.fat },
{ label: "Carboidratos", value: nutritionData.carbohydrates, unit: "g", ref: REFERENCE.carbohydrates },
{ label: "Proteínas", value: nutritionData.proteins, unit: "g", ref: REFERENCE.proteins },
{ label: "Açúcares", value: nutritionData.sugars, unit: "g", ref: REFERENCE.sugars },
{ label: "Fibras", value: nutritionData.fiber, unit: "g", ref: REFERENCE.fiber },
{ label: "Sódio", value: nutritionData.sodium, unit: "g", ref: REFERENCE.sodium },
];
return (
<div className={cn("space-y-5", className)}>
{items.map((item) => {
const p = pct(item.value, item.ref);
return (
<NutritionBar
key={item.label}
label={item.label}
value={item.value || "—"}
unit={item.unit}
percentage={p}
isHigh={p > 80}
isLow={p < 20 && p > 0}
/>
);
})}
{/* Legend */}
<div className="pt-4 border-t border-[var(--border-subtle)] flex flex-wrap gap-x-6 gap-y-2">
{[
{ color: "bg-[var(--score-a)]", label: "Baixo" },
{ color: "bg-[var(--accent)]", label: "Moderado" },
{ color: "bg-[var(--score-e)]", label: "Alto" },
].map(({ color, label }) => (
<div key={label} className="flex items-center gap-2">
<div className={cn("w-2 h-2 rounded-full", color)} />
<span className="label text-[var(--fg-muted)]">{label}</span>
</div>
))}
<span className="label text-[var(--fg-faint)] ml-auto">% do VDR</span>
</div>
</div>
);
}
-299
View File
@@ -1,299 +0,0 @@
"use client";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { Badge } from "@/components/ui/badge";
interface NutritionData {
energy?: number;
fat?: number;
carbohydrates?: number;
proteins?: number;
sugars?: number;
fiber?: number;
sodium?: number;
}
interface NutritionChartProps {
data: NutritionData;
className?: string;
}
export function NutritionChart({ data, className = "" }: NutritionChartProps) {
const nutritionItems = [
{
key: "energy",
label: "Energia",
value: data.energy,
unit: "kcal",
color: "bg-orange-500",
maxValue: 500,
},
{
key: "fat",
label: "Gorduras",
value: data.fat,
unit: "g",
color: "bg-red-500",
maxValue: 30,
},
{
key: "carbohydrates",
label: "Carboidratos",
value: data.carbohydrates,
unit: "g",
color: "bg-blue-500",
maxValue: 60,
},
{
key: "proteins",
label: "Proteínas",
value: data.proteins,
unit: "g",
color: "bg-green-500",
maxValue: 25,
},
{
key: "sugars",
label: "Açúcares",
value: data.sugars,
unit: "g",
color: "bg-pink-500",
maxValue: 25,
},
{
key: "fiber",
label: "Fibras",
value: data.fiber,
unit: "g",
color: "bg-purple-500",
maxValue: 10,
},
{
key: "sodium",
label: "Sódio",
value: data.sodium,
unit: "mg",
color: "bg-yellow-500",
maxValue: 2,
},
];
const getBarWidth = (value: number, maxValue: number) => {
const percentage = Math.min((value / maxValue) * 100, 100);
return `${percentage}%`;
};
const getBarColor = (value: number, maxValue: number, color: string) => {
const percentage = (value / maxValue) * 100;
if (percentage > 80) return "bg-red-500";
if (percentage > 60) return "bg-orange-500";
if (percentage > 40) return "bg-yellow-500";
return color;
};
return (
<Card className={className}>
<CardHeader>
<CardTitle className="text-lg font-semibold">
Informação Nutricional
</CardTitle>
</CardHeader>
<CardContent className="space-y-4">
{nutritionItems.map((item) => {
if (item.value === undefined || item.value === null) {
return (
<div key={item.key} className="flex items-center justify-between">
<span className="text-sm font-medium text-muted-foreground">
{item.label}
</span>
<Badge variant="outline" className="text-xs">
N/A
</Badge>
</div>
);
}
const barWidth = getBarWidth(item.value, item.maxValue);
const barColor = getBarColor(item.value, item.maxValue, item.color);
return (
<div key={item.key} className="space-y-2">
<div className="flex items-center justify-between">
<span className="text-sm font-medium">{item.label}</span>
<div className="flex items-center gap-2">
<span className="text-sm font-semibold">
{item.value.toFixed(1)}
{item.unit}
</span>
<Badge
variant="outline"
className={`text-xs ${
item.value / item.maxValue > 0.8
? "border-red-200 text-red-700"
: item.value / item.maxValue > 0.6
? "border-orange-200 text-orange-700"
: "border-green-200 text-green-700"
}`}
>
{((item.value / item.maxValue) * 100).toFixed(0)}%
</Badge>
</div>
</div>
<div className="relative h-2 bg-gray-200 dark:bg-gray-700 rounded-full overflow-hidden">
<div
className={`h-full transition-all duration-500 ${barColor}`}
style={{ width: barWidth }}
/>
</div>
<div className="flex justify-between text-xs text-muted-foreground">
<span>0{item.unit}</span>
<span>
{item.maxValue}
{item.unit}
</span>
</div>
</div>
);
})}
</CardContent>
</Card>
);
}
interface NutritionSummaryProps {
data: NutritionData;
className?: string;
}
export function NutritionSummary({
data,
className = "",
}: NutritionSummaryProps) {
const getNutritionScore = () => {
if (!data.energy || !data.fat || !data.sugars || !data.sodium) {
return null;
}
// Cálculo simplificado do Nutri-Score
let score = 0;
// Pontos negativos
if (data.energy > 335) score += 1;
if (data.energy > 670) score += 2;
if (data.energy > 1005) score += 3;
if (data.energy > 1340) score += 4;
if (data.energy > 1675) score += 5;
if (data.energy > 2010) score += 6;
if (data.energy > 2345) score += 7;
if (data.energy > 2680) score += 8;
if (data.energy > 3015) score += 9;
if (data.energy > 3350) score += 10;
if (data.sugars > 4.5) score += 1;
if (data.sugars > 9) score += 2;
if (data.sugars > 13.5) score += 3;
if (data.sugars > 18) score += 4;
if (data.sugars > 22.5) score += 5;
if (data.sugars > 27) score += 6;
if (data.sugars > 31) score += 7;
if (data.sugars > 36) score += 8;
if (data.sugars > 40) score += 9;
if (data.sugars > 45) score += 10;
if (data.fat > 1) score += 1;
if (data.fat > 2) score += 2;
if (data.fat > 3) score += 3;
if (data.fat > 4) score += 4;
if (data.fat > 5) score += 5;
if (data.fat > 6) score += 6;
if (data.fat > 7) score += 7;
if (data.fat > 8) score += 8;
if (data.fat > 9) score += 9;
if (data.fat > 10) score += 10;
if (data.sodium > 0.3) score += 1;
if (data.sodium > 0.6) score += 2;
if (data.sodium > 0.9) score += 3;
if (data.sodium > 1.2) score += 4;
if (data.sodium > 1.5) score += 5;
if (data.sodium > 1.8) score += 6;
if (data.sodium > 2.1) score += 7;
if (data.sodium > 2.4) score += 8;
if (data.sodium > 2.7) score += 9;
if (data.sodium > 3) score += 10;
// Pontos positivos
if (data.fiber && data.fiber > 0.9) score -= 1;
if (data.fiber && data.fiber > 1.9) score -= 2;
if (data.fiber && data.fiber > 2.8) score -= 3;
if (data.fiber && data.fiber > 3.7) score -= 4;
if (data.fiber && data.fiber > 4.7) score -= 5;
if (data.proteins && data.proteins > 1.6) score -= 1;
if (data.proteins && data.proteins > 3.2) score -= 2;
if (data.proteins && data.proteins > 4.8) score -= 3;
if (data.proteins && data.proteins > 6.4) score -= 4;
if (data.proteins && data.proteins > 8) score -= 5;
// Converter para letra
if (score <= -1) return "A";
if (score <= 2) return "B";
if (score <= 10) return "C";
if (score <= 18) return "D";
return "E";
};
const nutritionScore = getNutritionScore();
return (
<div className={`space-y-3 ${className}`}>
<div className="flex items-center justify-between">
<span className="text-sm font-medium">Nutri-Score Estimado</span>
{nutritionScore && (
<Badge
className={`${
nutritionScore === "A"
? "bg-green-500 text-white"
: nutritionScore === "B"
? "bg-green-400 text-white"
: nutritionScore === "C"
? "bg-yellow-500 text-white"
: nutritionScore === "D"
? "bg-orange-500 text-white"
: "bg-red-500 text-white"
}`}
>
{nutritionScore}
</Badge>
)}
</div>
<div className="grid grid-cols-2 gap-2 text-xs">
<div className="flex justify-between">
<span>Energia:</span>
<span className="font-medium">
{data.energy?.toFixed(0) || "N/A"} kcal
</span>
</div>
<div className="flex justify-between">
<span>Gorduras:</span>
<span className="font-medium">{data.fat?.toFixed(1) || "N/A"}g</span>
</div>
<div className="flex justify-between">
<span>Carboidratos:</span>
<span className="font-medium">
{data.carbohydrates?.toFixed(1) || "N/A"}g
</span>
</div>
<div className="flex justify-between">
<span>Proteínas:</span>
<span className="font-medium">
{data.proteins?.toFixed(1) || "N/A"}g
</span>
</div>
</div>
</div>
);
}
-32
View File
@@ -1,32 +0,0 @@
'use client'
import { motion } from 'framer-motion'
export function PageTitle() {
return (
<motion.div
initial={{ opacity: 0, y: -20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.5 }}
className="relative"
>
<h1 className="text-4xl md:text-5xl font-bold text-center">
<span className="relative inline-block">
<span className="bg-clip-text text-transparent bg-gradient-to-r from-primary to-secondary">
Resenha Itapoá
</span>
<motion.span
className="absolute -bottom-2 left-0 w-full h-1 bg-gradient-to-r from-primary to-secondary rounded-full"
initial={{ scaleX: 0 }}
animate={{ scaleX: 1 }}
transition={{ delay: 0.5, duration: 0.5 }}
/>
</span>
</h1>
<p className="mt-4 text-center text-muted-foreground max-w-2xl mx-auto">
Gerencie suas listas de compras de forma simples e eficiente
</p>
</motion.div>
)
}
+10
View File
@@ -126,6 +126,7 @@ export function Pagination({
size="sm"
onClick={() => onPageChange(currentPage - 1)}
disabled={!canGoPrevious}
aria-label="Página anterior"
className="h-9 w-9 p-0 flex-shrink-0"
>
<ChevronLeft className="h-4 w-4" />
@@ -141,6 +142,8 @@ export function Pagination({
variant={currentPage === page ? "default" : "outline"}
size="sm"
onClick={() => onPageChange(page as number)}
aria-label={`Página ${page}`}
aria-current={currentPage === page ? "page" : undefined}
className="h-9 w-9 p-0"
>
{page}
@@ -155,6 +158,7 @@ export function Pagination({
size="sm"
onClick={() => onPageChange(currentPage + 1)}
disabled={!canGoNext}
aria-label="Próxima página"
className="h-9 w-9 p-0 flex-shrink-0"
>
<ChevronRight className="h-4 w-4" />
@@ -230,6 +234,7 @@ export function Pagination({
size="sm"
onClick={() => onPageChange(1)}
disabled={!canGoPrevious}
aria-label="Primeira página"
className="h-8 w-8 p-0"
>
<ChevronsLeft className="h-4 w-4" />
@@ -243,6 +248,7 @@ export function Pagination({
size="sm"
onClick={() => onPageChange(currentPage - 1)}
disabled={!canGoPrevious}
aria-label="Página anterior"
className="h-8 w-8 p-0"
>
<ChevronLeft className="h-4 w-4" />
@@ -259,6 +265,8 @@ export function Pagination({
variant={currentPage === page ? "default" : "outline"}
size="sm"
onClick={() => onPageChange(page as number)}
aria-label={`Página ${page}`}
aria-current={currentPage === page ? "page" : undefined}
className="h-8 w-8 p-0"
>
{page}
@@ -274,6 +282,7 @@ export function Pagination({
size="sm"
onClick={() => onPageChange(currentPage + 1)}
disabled={!canGoNext}
aria-label="Próxima página"
className="h-8 w-8 p-0"
>
<ChevronRight className="h-4 w-4" />
@@ -287,6 +296,7 @@ export function Pagination({
size="sm"
onClick={() => onPageChange(totalPages)}
disabled={!canGoNext}
aria-label="Última página"
className="h-8 w-8 p-0"
>
<ChevronsRight className="h-4 w-4" />
+3
View File
@@ -61,6 +61,7 @@ export function SearchBar({
<input
type="text"
placeholder={placeholder}
aria-label="Buscar produto por nome ou código de barras"
value={query}
onChange={(e) => setQuery(e.target.value)}
onKeyDown={handleKey}
@@ -74,6 +75,7 @@ export function SearchBar({
<button
onClick={handleSearch}
disabled={!query.trim()}
aria-label="Buscar"
className="btn-accent h-9 px-3 py-0 text-xs disabled:opacity-40"
>
<Search className="w-3.5 h-3.5" strokeWidth={1.5} />
@@ -95,6 +97,7 @@ export function SearchBar({
<input
type="text"
placeholder={placeholder}
aria-label="Buscar produto por nome ou código de barras"
value={query}
onChange={(e) => setQuery(e.target.value)}
onKeyDown={handleKey}
-30
View File
@@ -1,30 +0,0 @@
interface CardProps {
produto: {
id: number;
nome: string;
qtd: number;
tipoUN: string;
comprado: boolean;
listaId: string;
createdAt: Date;
updatedAt: Date;
}
}
export function Card({ produto }: CardProps) {
return (
<div className="card bg-white shadow-lg rounded-lg hover:shadow-xl transition-duration-300">
<div className="card-body p-6">
<h2 className="card-title text-xl font-bold mb-2">{produto.nome}</h2>
<div className="space-y-2">
<p className="text-gray-600">
Quantidade: <span className="font-semibold">{produto.qtd}</span>
</p>
<p className="text-gray-600">
Tipo: <span className="font-semibold">{produto.tipoUN}</span>
</p>
</div>
</div>
</div>
);
}
-6
View File
@@ -1,6 +0,0 @@
import prisma from "@/lib/prisma";
export async function Items() {
const produtos = await prisma.produtos.findMany({});
console.log(produtos);
}
+1
View File
@@ -117,6 +117,7 @@ export function Hero() {
<input
type="text"
placeholder={current.placeholder}
aria-label="Buscar produto por nome ou código de barras"
value={searchQuery}
onChange={(e) => setSearchQuery(e.target.value)}
autoComplete="off"
-147
View File
@@ -1,147 +0,0 @@
"use client";
import { useState } from "react";
import { useRouter } from "next/navigation";
import { Search, ScanLine, Activity } from "lucide-react";
import { useSearchLogic } from "@/hooks/use-search-logic";
import { cn } from "@/lib/utils";
export function PersuasiveCTA() {
const router = useRouter();
const [query, setQuery] = useState("");
const { searchType, isValid, loading, setLoading } = useSearchLogic(query);
const handleSearch = async (e: React.FormEvent) => {
e.preventDefault();
if (!query.trim()) return;
setLoading(true);
const target =
searchType === "barcode" && isValid
? `/produto/${query.trim()}`
: `/resultados?q=${encodeURIComponent(query.trim())}`;
router.push(target);
};
const icon =
searchType === "barcode" ? (
<ScanLine className="w-4 h-4" />
) : searchType === "name" ? (
<Search className="w-4 h-4" />
) : (
<Activity className="w-4 h-4" />
);
const label =
searchType === "barcode"
? "Código de barras detectado"
: searchType === "name"
? "Pesquisa por nome"
: "Detecção automática";
return (
<section className="bg-[var(--bg-surface)] section-py border-t border-[var(--border-subtle)]">
<div className="container-editorial">
{/* ── Section header ───────────────────────────────────────────── */}
<div className="mb-16">
<span className="label text-[var(--accent)] block mb-4">
Comece Agora
</span>
<hr className="hairline mb-10" />
<div className="grid grid-cols-1 md:grid-cols-2 gap-6 items-end">
<h2 className="font-display text-display-lg text-[var(--fg-primary)]">
Pronto para descobrir a{" "}
<em className="font-display-i text-[var(--accent)]">
verdade sobre seus alimentos?
</em>
</h2>
<p className="text-[var(--fg-secondary)] text-lg leading-relaxed max-w-md">
Sem cadastro, sem anúncios, sem venda de dados. Resultados
nutricionais completos em segundos.
</p>
</div>
</div>
{/* ── Search form ──────────────────────────────────────────────── */}
<form onSubmit={handleSearch} className="max-w-2xl">
<div className="search-editorial">
<div className="text-[var(--fg-muted)] shrink-0">{icon}</div>
<input
type="text"
placeholder="Nome do produto ou código de barras…"
value={query}
onChange={(e) => setQuery(e.target.value)}
autoComplete="off"
spellCheck={false}
className="flex-1 bg-transparent border-none outline-none py-[1.125rem] text-[var(--fg-primary)] placeholder-[var(--fg-faint)] text-base font-sans"
/>
<button
type="submit"
disabled={loading}
className="btn-accent shrink-0 py-2.5 px-5 text-sm"
>
{loading ? (
<span className="flex items-center gap-2">
<span className="w-3.5 h-3.5 border-2 border-white/40 border-t-white rounded-full animate-spin" />
Buscando…
</span>
) : (
<span className="flex items-center gap-1.5">
Buscar
<ArrowRight />
</span>
)}
</button>
</div>
{/* Detection status */}
<p className="mt-3 label text-[var(--fg-muted)] flex items-center gap-1.5">
<span
className={cn(
"w-1.5 h-1.5 rounded-full inline-block",
searchType !== "auto"
? "bg-[var(--accent)]"
: "bg-[var(--fg-faint)]"
)}
/>
{label}
</p>
</form>
{/* ── Trust indicators ─────────────────────────────────────────── */}
<div className="mt-12 flex flex-wrap gap-x-10 gap-y-3">
{["Sem cadastro necessário", "Resultados instantâneos", "100% gratuito e open source"].map(
(item) => (
<span
key={item}
className="label text-[var(--fg-muted)] flex items-center gap-2"
>
<span className="w-1 h-1 rounded-full bg-[var(--accent)]" />
{item}
</span>
)
)}
</div>
</div>
</section>
);
}
function ArrowRight() {
return (
<svg
width="14"
height="14"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="2.5"
strokeLinecap="round"
strokeLinejoin="round"
>
<path d="M5 12h14m-7-7 7 7-7 7" />
</svg>
);
}
-164
View File
@@ -1,164 +0,0 @@
"use client";
import { useState } from "react";
import { useRouter } from "next/navigation";
import { Search, ScanLine, AlertCircle } from "lucide-react";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
interface SearchBarProps {
variant?: "hero" | "compact" | "floating";
placeholder?: string;
className?: string;
}
export function SearchBar({
variant = "hero",
placeholder = "Digite o código de barras (ex: 7896004713588)",
className = "",
}: SearchBarProps) {
const [barcode, setBarcode] = useState("");
const [error, setError] = useState("");
const [loading, setLoading] = useState(false);
const router = useRouter();
const validateBarcode = (code: string) => {
const cleanCode = code.replace(/\D/g, "");
return cleanCode.length >= 8 && cleanCode.length <= 13;
};
const handleSearch = async (e: React.FormEvent) => {
e.preventDefault();
setError("");
if (!barcode.trim()) {
setError("Digite um código de barras válido");
return;
}
if (!validateBarcode(barcode)) {
setError("Código de barras deve ter entre 8 e 13 dígitos");
return;
}
setLoading(true);
// Simula busca (futuramente será integração com API)
setTimeout(() => {
router.push(`/produto/${barcode.trim()}`);
}, 1000);
};
const getVariantStyles = () => {
switch (variant) {
case "compact":
return {
container: "max-w-md mx-auto",
input: "text-base py-3",
button: "px-6 py-3",
};
case "floating":
return {
container:
"fixed bottom-6 left-1/2 transform -translate-x-1/2 z-50 max-w-sm w-full mx-4",
input: "text-sm py-3",
button: "px-4 py-3",
};
default: // hero
return {
container: "max-w-2xl mx-auto",
input: "text-lg py-4",
button: "px-8 py-4",
};
}
};
const styles = getVariantStyles();
if (variant === "floating") {
return (
<div className={`${styles.container} ${className}`}>
<form onSubmit={handleSearch} className="relative">
<div className="flex items-center bg-white dark:bg-gray-800 rounded-2xl shadow-2xl border border-gray-200 dark:border-gray-700 overflow-hidden">
<div className="flex-1 relative">
<ScanLine className="absolute left-4 top-1/2 transform -translate-y-1/2 text-gray-400 w-5 h-5" />
<Input
type="text"
placeholder={placeholder}
value={barcode}
onChange={(e) => setBarcode(e.target.value)}
className={`pl-12 pr-4 ${styles.input} border-0 bg-transparent focus:ring-0 placeholder:text-gray-400`}
/>
</div>
<Button
type="submit"
disabled={loading}
className={`m-2 ${styles.button} bg-gradient-to-r from-blue-600 to-green-600 hover:from-blue-700 hover:to-green-700 text-white font-semibold rounded-xl transition-all duration-200 transform hover:scale-105 disabled:opacity-50`}
>
{loading ? (
<div className="w-5 h-5 border-2 border-white border-t-transparent rounded-full animate-spin" />
) : (
<Search className="w-5 h-5" />
)}
</Button>
</div>
{error && (
<div className="absolute top-full left-0 right-0 mt-2 p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl shadow-lg">
<div className="flex items-center gap-2 text-red-600 dark:text-red-400 text-sm">
<AlertCircle className="w-4 h-4 flex-shrink-0" />
{error}
</div>
</div>
)}
</form>
</div>
);
}
return (
<div className={`${styles.container} ${className}`}>
<form onSubmit={handleSearch}>
<div className="relative">
<div className="flex items-center bg-white dark:bg-gray-800 rounded-2xl shadow-xl border border-gray-200 dark:border-gray-700 overflow-hidden">
<div className="flex-1 relative">
<ScanLine className="absolute left-4 top-1/2 transform -translate-y-1/2 text-gray-400 w-5 h-5" />
<Input
type="text"
placeholder={placeholder}
value={barcode}
onChange={(e) => setBarcode(e.target.value)}
className={`pl-12 pr-4 ${styles.input} border-0 bg-transparent focus:ring-0 placeholder:text-gray-400`}
/>
</div>
<Button
type="submit"
disabled={loading}
className={`m-2 ${styles.button} bg-gradient-to-r from-blue-600 to-green-600 hover:from-blue-700 hover:to-green-700 text-white font-semibold rounded-xl transition-all duration-200 transform hover:scale-105 disabled:opacity-50`}
>
{loading ? (
<div className="flex items-center gap-2">
<div className="w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin" />
Buscando...
</div>
) : (
<div className="flex items-center gap-2">
<Search className="w-5 h-5" />
Buscar
</div>
)}
</Button>
</div>
</div>
{error && (
<div className="mt-3 p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl">
<div className="flex items-center gap-2 text-red-600 dark:text-red-400 text-sm">
<AlertCircle className="w-4 h-4 flex-shrink-0" />
{error}
</div>
</div>
)}
</form>
</div>
);
}
+4 -1
View File
@@ -346,7 +346,7 @@ function ResultadosContent() {
}}
>
<div style={{ display: "flex", alignItems: "center", gap: 8 }}>
<Link href="/" style={{ display: "flex", padding: 8, color: "var(--fg-secondary)" }}>
<Link href="/" aria-label="Voltar ao início" style={{ display: "flex", padding: 8, color: "var(--fg-secondary)" }}>
<ArrowLeft style={{ width: 18, height: 18 }} strokeWidth={1.75} />
</Link>
<div style={{ flex: 1 }}>
@@ -488,6 +488,8 @@ function ResultadosContent() {
return (
<button
key={g}
aria-label={`Nutri-Score ${g.toUpperCase()}`}
aria-pressed={active}
onClick={() => {
setGradeFilter((prev) => (prev === g ? null : g));
setCurrentPage(1);
@@ -516,6 +518,7 @@ function ResultadosContent() {
{/* Allergen-free chip */}
<button
aria-pressed={allergenFree}
onClick={() => {
setAllergenFree((prev) => !prev);
setCurrentPage(1);
-2505
View File
File diff suppressed because it is too large. Load diff
-529
View File
@@ -1,529 +0,0 @@
{
"communities": {
"0": [
"app_components_cacheonlyswitch_tsx",
"app_components_donatecard_tsx",
"app_components_header_tsx",
"app_components_landing_features_tsx",
"app_components_nutriscorebadge_tsx",
"app_components_nutritionbar_tsx",
"app_components_productcard_tsx",
"app_components_productskeleton_tsx",
"barcode_page_nutriletter",
"components_donatecard_donatecardprops",
"components_header_header",
"components_header_nav_links",
"components_nutriscorebadge_grade_class",
"components_nutriscorebadge_grade_info",
"components_nutriscorebadge_nova_info",
"components_nutriscorebadge_novabadge",
"components_nutriscorebadge_novabadgeprops",
"components_nutriscorebadge_nutriscorebadgeprops",
"components_nutriscorebadge_size_class",
"components_nutritionbar_extractnumber",
"components_nutritionbar_nutritionbar",
"components_nutritionbar_nutritiongrid",
"components_nutritionbar_nutritiongridprops",
"components_nutritionbar_pct",
"components_nutritionbar_reference",
"components_optimizedimage_tsx",
"components_productcard_defaultcard",
"components_productcard_getimageurl",
"components_productcard_getverdict",
"components_productcard_mobilecard",
"components_productcard_nutri_grade_class",
"components_productcard_productcardprops",
"components_productcard_verdictdot",
"components_productskeleton_badgeskeleton",
"components_productskeleton_nutritionbarskeleton",
"components_productskeleton_skeletonprops",
"components_ui_label_tsx",
"components_ui_switch_tsx",
"landing_features_feature",
"landing_features_featurerow",
"landing_hero_arrowright",
"landing_howitworks_howitworks",
"landing_howitworks_step",
"landing_howitworks_stepcard",
"landing_persuasivecta_persuasivecta",
"lib_openfoodfactsapi_formatnutritiondata",
"lib_utils_cn",
"lib_utils_measureperformance",
"lib_utils_memoize",
"lib_utils_perfcache",
"lib_utils_ts",
"ui_checkbox_checkbox",
"ui_label_label",
"ui_label_labelvariants",
"ui_switch_switch"
],
"1": [
"app_components_footer_tsx",
"app_page_home",
"app_page_tsx",
"app_sobre_components_herosection_tsx",
"app_sobre_components_howitworkssection_tsx",
"app_sobre_components_impactsection_tsx",
"app_sobre_components_missionsection_tsx",
"app_sobre_components_problemsection_tsx",
"app_sobre_components_storysection_tsx",
"app_sobre_components_targetaudiencesection_tsx",
"app_sobre_components_valuessection_tsx",
"barcode_page_grade_desc",
"barcode_page_nova_bg",
"barcode_page_nova_desc",
"barcode_page_nova_ink",
"barcode_page_novapill",
"barcode_page_nutri_bg",
"barcode_page_nutri_ink",
"barcode_page_nutriscale",
"barcode_page_produtopage",
"components_ctasection_ctasection",
"components_footer_footer",
"components_footer_footer_links",
"components_herosection_herosection",
"components_main_main",
"components_missionsection_mission_values",
"components_problemsection_problemsection",
"components_storysection_story_data",
"components_storysection_storysection",
"components_storysection_storystep",
"components_targetaudiencesection_personas",
"components_ui_sheet_tsx",
"components_valuessection_protocols",
"id_page_listapageprops",
"landing_donationsection_donationsection",
"landing_howitworks_steps",
"landing_trustbadges_stats",
"landing_trustbadges_trustbadges",
"resultados_page_convertfilterstorecord",
"resultados_page_grade_colors",
"resultados_page_resultadospage",
"sobre_page_sobrepage",
"ui_sheet_sheetcontent",
"ui_sheet_sheetcontentprops",
"ui_sheet_sheetdescription",
"ui_sheet_sheetfooter",
"ui_sheet_sheetheader",
"ui_sheet_sheetoverlay",
"ui_sheet_sheettitle",
"ui_sheet_sheetvariants"
],
"2": [
"app_actions_criaritens",
"app_actions_deletarproduto",
"app_actions_togglecomprado",
"app_actions_ts",
"app_actions_verificarlista",
"app_components_deletebutton_tsx",
"app_components_listheader_tsx",
"app_components_main_tsx",
"app_components_pagination_tsx",
"components_idinput_idinput",
"components_listheader_listheader",
"components_listheader_listheaderprops",
"components_main_mainprops",
"components_ui_alert_dialog_tsx",
"components_ui_button_tsx",
"components_ui_dialog_tsx",
"components_ui_input_tsx",
"components_ui_select_tsx",
"id_page_listapage",
"ui_alert_dialog_alertdialogaction",
"ui_alert_dialog_alertdialogcancel",
"ui_alert_dialog_alertdialogcontent",
"ui_alert_dialog_alertdialogdescription",
"ui_alert_dialog_alertdialogfooter",
"ui_alert_dialog_alertdialogheader",
"ui_alert_dialog_alertdialogoverlay",
"ui_alert_dialog_alertdialogtitle",
"ui_button_button",
"ui_button_buttonprops",
"ui_button_buttonvariants",
"ui_dialog_dialogcontent",
"ui_dialog_dialogdescription",
"ui_dialog_dialogfooter",
"ui_dialog_dialogheader",
"ui_dialog_dialogoverlay",
"ui_dialog_dialogtitle",
"ui_input_input",
"ui_select_selectcontent",
"ui_select_selectitem",
"ui_select_selectlabel",
"ui_select_selectscrolldownbutton",
"ui_select_selectscrollupbutton",
"ui_select_selectseparator",
"ui_select_selecttrigger"
],
"3": [
"app_components_filtersidebar_tsx",
"components_filtersidebar_filtersidebar",
"components_ui_accordion_tsx",
"components_ui_radio_group_tsx",
"components_ui_separator_tsx",
"components_ui_slider_tsx",
"hooks_usecacheonlymode_ts",
"hooks_useproductfilters_loadfiltersfromstorage",
"hooks_useproductfilters_parsefiltersfromurl",
"hooks_useproductfilters_savefilterstostorage",
"hooks_useproductfilters_ts",
"hooks_useproductfilters_useproductfiltersoptions",
"hooks_usestoragemonitor_ts",
"hooks_usestoragemonitor_usestoragemonitorreturn",
"lib_types_cachefile",
"lib_types_cacheprogress",
"lib_types_cachesearchresult",
"lib_types_common_additives",
"lib_types_common_allergens",
"lib_types_filteroption",
"lib_types_filtersidebarprops",
"lib_types_filterstate",
"lib_types_imageloadingstate",
"lib_types_imageloadtask",
"lib_types_novagroup",
"lib_types_nutritiongrade",
"lib_types_paginationconfig",
"lib_types_paginationprops",
"lib_types_paginationstate",
"lib_types_popular_categories",
"lib_types_popular_categories_with_icons",
"lib_types_productfilters",
"lib_types_searchcacheconfig",
"lib_types_storagestats",
"lib_types_ts",
"lib_types_useoptimizedimageloadingoptions",
"lib_utils_debounce",
"resultados_page_resultadoscontent",
"ui_accordion_accordioncontent",
"ui_accordion_accordionitem",
"ui_accordion_accordiontrigger",
"ui_radio_group_radiogroup",
"ui_separator_separator",
"ui_slider_slider"
],
"4": [
"app_actions_listarprodutos",
"app_components_cardlist_tsx",
"app_components_filterbadge_tsx",
"app_components_listaproductcard_tsx",
"app_components_nutritionchart_tsx",
"app_components_productcardskeleton_tsx",
"components_card_cardprops",
"components_cardlist_cardlist",
"components_cardlist_cardlistprops",
"components_cardlist_produto",
"components_filterbadge_filterbadgeprops",
"components_filterbadge_filterbadgesprops",
"components_filterbadge_getfiltercolor",
"components_filterbadge_getfilterlabel",
"components_listaproductcard_listaproductcardprops",
"components_nutritionchart_nutritiondata",
"components_nutritionchart_nutritionsummary",
"components_ui_badge_tsx",
"components_ui_card_tsx",
"ui_badge_badge",
"ui_badge_badgeprops",
"ui_badge_badgevariants",
"ui_card_card",
"ui_card_cardcontent",
"ui_card_carddescription",
"ui_card_cardfooter",
"ui_card_cardheader",
"ui_card_cardtitle",
"ui_skeleton_skeleton"
],
"5": [
"hooks_usesearchcache_searchcachestate",
"hooks_usesearchcache_ts",
"hooks_usesearchcache_usesearchcachereturn",
"lib_cachemanager_cacheconfig",
"lib_cachemanager_cachedsearch",
"lib_cachemanager_cachemanager_cleanupoldcaches",
"lib_cachemanager_cachemanager_clearallcaches",
"lib_cachemanager_cachemanager_generatecachekey",
"lib_cachemanager_cachemanager_generatesearchid",
"lib_cachemanager_cachemanager_getcacheindex",
"lib_cachemanager_cachemanager_getcachestats",
"lib_cachemanager_cachemanager_getobjectsize",
"lib_cachemanager_cachemanager_getsearch",
"lib_cachemanager_cachemanager_hasspacefordata",
"lib_cachemanager_cachemanager_removesearch",
"lib_cachemanager_cachemanager_savesearch",
"lib_cachemanager_cachemanager_updatecacheindex",
"lib_cachemanager_default_config",
"lib_cachemanager_filterrecord",
"lib_cachemanager_filtervalue",
"lib_cachemanager_ts",
"lib_cachemanager_usecachemanager"
],
"6": [
"app_api_search_route_ts",
"lib_jsoncachemanager_jsoncachedata",
"lib_jsoncachemanager_jsoncachemanager_clearcache",
"lib_jsoncachemanager_jsoncachemanager_converttoapiproduct",
"lib_jsoncachemanager_jsoncachemanager_converttocachedproduct",
"lib_jsoncachemanager_jsoncachemanager_getinstance",
"lib_jsoncachemanager_jsoncachemanager_getproductbycode",
"lib_jsoncachemanager_jsoncachemanager_getstoragestats",
"lib_jsoncachemanager_jsoncachemanager_isinitialized",
"lib_jsoncachemanager_jsoncachemanager_loadcache",
"lib_jsoncachemanager_jsoncachemanager_mergeproductdata",
"lib_jsoncachemanager_jsoncachemanager_savecache",
"lib_jsoncachemanager_jsoncachemanager_saveproduct",
"lib_jsoncachemanager_jsoncachemanager_searchproducts",
"lib_jsoncachemanager_ts",
"lib_openfoodfactsapi_product",
"lib_searchutils_calculaterelevancescore",
"lib_searchutils_sortbyrelevance",
"lib_searchutils_ts",
"lib_types_cachedproduct",
"search_route_get",
"sync_route_post"
],
"7": [
"app_components_searchbar_tsx",
"hooks_use_search_logic_searchtype",
"hooks_use_search_logic_ts",
"landing_searchbar_searchbar",
"lib_openfoodfactsapi_calculatecompletenessscore",
"lib_openfoodfactsapi_config",
"lib_openfoodfactsapi_detectsearchtype",
"lib_openfoodfactsapi_fetchallresults",
"lib_openfoodfactsapi_getgradevalue",
"lib_openfoodfactsapi_isvalidbarcode",
"lib_openfoodfactsapi_makeapirequest",
"lib_openfoodfactsapi_searchbybarcode",
"lib_openfoodfactsapi_searchbyname",
"lib_openfoodfactsapi_searchresult",
"lib_openfoodfactsapi_sortproducts",
"lib_openfoodfactsapi_ts",
"postcss_config_mjs",
"tailwind_config_ts"
],
"8": [
"app_components_errorboundary_tsx",
"app_components_errortracking_tsx",
"app_layout_inter",
"app_layout_metadata",
"app_layout_rootlayout",
"app_layout_tsx",
"app_providers_providersprops",
"app_providers_themeprovider",
"app_providers_tsx",
"components_errorboundary_errorboundary",
"components_errorboundary_errorboundary_componentdidcatch",
"components_errorboundary_errorboundary_getderivedstatefromerror",
"components_errorboundary_errorboundary_render",
"components_errorboundary_props",
"components_errorboundary_state",
"lib_cachemanager_cachemanager_constructor",
"lib_openfoodfactsapi_nutriscanerror"
],
"9": [
"app_components_landing_hero_tsx",
"hooks_use_geolocation_setscannedcountry",
"hooks_use_geolocation_ts",
"landing_hero_hero",
"lib_geolocation_clearcountrycache",
"lib_geolocation_countryinfo",
"lib_geolocation_detectusercountry",
"lib_geolocation_getcachedcountry",
"lib_geolocation_getcountrycodeforapi",
"lib_geolocation_getcurrentcountry",
"lib_geolocation_isbrazil",
"lib_geolocation_iscachevalid",
"lib_geolocation_savetocache",
"lib_geolocation_ts"
],
"10": [
"app_components_sortdropdown_tsx",
"components_sortdropdown_sort_icons",
"components_sortdropdown_sorttoggle",
"components_theme_toggle_tsx",
"components_ui_dropdown_menu_tsx",
"lib_types_sortoption",
"ui_dropdown_menu_dropdownmenucontent",
"ui_dropdown_menu_dropdownmenuitem",
"ui_dropdown_menu_dropdownmenulabel",
"ui_dropdown_menu_dropdownmenuseparator",
"ui_dropdown_menu_dropdownmenusubcontent",
"ui_dropdown_menu_dropdownmenusubtrigger"
],
"11": [
"docs_resedesign_extract_js",
"resedesign_extract_decoded",
"resedesign_extract_end",
"resedesign_extract_fs",
"resedesign_extract_html",
"resedesign_extract_path",
"resedesign_extract_raw",
"resedesign_extract_start"
],
"12": [
"app_components_items_tsx",
"components_items_items",
"lib_prisma_prisma",
"lib_prisma_ts"
],
"13": [
"lib_types_rybbit_d_ts",
"types_rybbit_d_rybbit",
"types_rybbit_d_rybbittrackevent",
"types_rybbit_d_window"
],
"14": [
"app_robots_robots",
"app_robots_ts"
],
"15": [
"next_env_d_ts"
],
"16": [
"next_config_mjs"
],
"17": [
"sw_js"
],
"18": [
"app_sitemap_ts"
],
"19": [
"app_components_pagetitle_tsx"
]
},
"cohesion": {
"0": 0.06,
"1": 0.05,
"2": 0.09,
"3": 0.06,
"4": 0.11,
"5": 0.17,
"6": 0.16,
"7": 0.15,
"8": 0.13,
"9": 0.24,
"10": 0.23,
"11": 0.25,
"12": 0.5,
"13": 0.5,
"14": 1.0,
"15": 1.0,
"16": 1.0,
"17": 1.0,
"18": 1.0,
"19": 1.0
},
"gods": [
{
"id": "lib_utils_cn",
"label": "cn()",
"degree": 51
},
{
"id": "ui_button_button",
"label": "Button",
"degree": 13
},
{
"id": "lib_openfoodfactsapi_product",
"label": "Product",
"degree": 8
},
{
"id": "ui_badge_badge",
"label": "Badge()",
"degree": 7
},
{
"id": "components_errorboundary_errorboundary",
"label": "ErrorBoundary",
"degree": 6
},
{
"id": "landing_howitworks_howitworks",
"label": "HowItWorks()",
"degree": 6
},
{
"id": "lib_geolocation_iscachevalid",
"label": "isCacheValid()",
"degree": 6
},
{
"id": "lib_geolocation_detectusercountry",
"label": "detectUserCountry()",
"degree": 6
},
{
"id": "app_actions_verificarlista",
"label": "verificarLista()",
"degree": 5
},
{
"id": "landing_hero_hero",
"label": "Hero()",
"degree": 5
}
],
"surprises": [
{
"source": "SheetFooter()",
"target": "cn()",
"source_files": [
"components/ui/sheet.tsx",
"lib/utils.ts"
],
"confidence": "EXTRACTED",
"relation": "calls",
"why": "connects across different repos/directories; bridges separate communities; peripheral node `SheetFooter()` unexpectedly reaches hub `cn()`"
},
{
"source": "NovaBadge()",
"target": "cn()",
"source_files": [
"app/components/NutriScoreBadge.tsx",
"lib/utils.ts"
],
"confidence": "EXTRACTED",
"relation": "calls",
"why": "connects across different repos/directories; peripheral node `NovaBadge()` unexpectedly reaches hub `cn()`"
},
{
"source": "NutritionBar()",
"target": "cn()",
"source_files": [
"app/components/NutritionBar.tsx",
"lib/utils.ts"
],
"confidence": "EXTRACTED",
"relation": "calls",
"why": "connects across different repos/directories; peripheral node `NutritionBar()` unexpectedly reaches hub `cn()`"
},
{
"source": "NutritionGrid()",
"target": "cn()",
"source_files": [
"app/components/NutritionBar.tsx",
"lib/utils.ts"
],
"confidence": "EXTRACTED",
"relation": "calls",
"why": "connects across different repos/directories; peripheral node `NutritionGrid()` unexpectedly reaches hub `cn()`"
},
{
"source": "NutritionBarSkeleton()",
"target": "cn()",
"source_files": [
"app/components/ProductSkeleton.tsx",
"lib/utils.ts"
],
"confidence": "EXTRACTED",
"relation": "calls",
"why": "connects across different repos/directories; peripheral node `NutritionBarSkeleton()` unexpectedly reaches hub `cn()`"
}
],
"tokens": {
"input": 0,
"output": 0
}
}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_errortracking_tsx", "label": "ErrorTracking.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorTracking.tsx", "source_location": "L1"}, {"id": "components_errortracking_errortracking", "label": "ErrorTracking()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorTracking.tsx", "source_location": "L9"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_errortracking_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorTracking.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_errortracking_tsx", "target": "components_errortracking_errortracking", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorTracking.tsx", "source_location": "L9", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_errortracking_errortracking", "callee": "useEffect", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorTracking.tsx", "source_location": "L10"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_header_tsx", "label": "header.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L1"}, {"id": "components_header_nav_links", "label": "NAV_LINKS", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L10"}, {"id": "components_header_header", "label": "Header()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L16"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_header_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_header_tsx", "target": "link", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_header_tsx", "target": "next_themes", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_header_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_header_tsx", "target": "image", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_header_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L8", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_header_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L8", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_header_tsx", "target": "components_header_nav_links", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L10", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_header_tsx", "target": "components_header_header", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L16", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_header_header", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L17"}, {"caller_nid": "components_header_header", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L18"}, {"caller_nid": "components_header_header", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L19"}, {"caller_nid": "components_header_header", "callee": "useTheme", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L20"}, {"caller_nid": "components_header_header", "callee": "useEffect", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L22"}, {"caller_nid": "components_header_header", "callee": "cn", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L33"}, {"caller_nid": "components_header_header", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L65"}, {"caller_nid": "components_header_header", "callee": "cn", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L111"}, {"caller_nid": "components_header_header", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\header.tsx", "source_location": "L117"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_landing_howitworks_tsx", "label": "HowItWorks.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\HowItWorks.tsx", "source_location": "L1"}, {"id": "landing_howitworks_step", "label": "Step", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\HowItWorks.tsx", "source_location": "L7"}, {"id": "landing_howitworks_steps", "label": "steps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\HowItWorks.tsx", "source_location": "L14"}, {"id": "landing_howitworks_howitworks", "label": "HowItWorks()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\HowItWorks.tsx", "source_location": "L45"}, {"id": "landing_howitworks_stepcard", "label": "StepCard()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\HowItWorks.tsx", "source_location": "L129"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_landing_howitworks_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\HowItWorks.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_howitworks_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\HowItWorks.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_howitworks_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\HowItWorks.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_howitworks_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\HowItWorks.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_howitworks_tsx", "target": "landing_howitworks_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\HowItWorks.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_howitworks_tsx", "target": "landing_howitworks_steps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\HowItWorks.tsx", "source_location": "L14", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_howitworks_tsx", "target": "landing_howitworks_howitworks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\HowItWorks.tsx", "source_location": "L45", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_howitworks_tsx", "target": "landing_howitworks_stepcard", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\HowItWorks.tsx", "source_location": "L129", "weight": 1.0}], "raw_calls": [{"caller_nid": "landing_howitworks_howitworks", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\HowItWorks.tsx", "source_location": "L72"}, {"caller_nid": "landing_howitworks_howitworks", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\HowItWorks.tsx", "source_location": "L84"}, {"caller_nid": "landing_howitworks_howitworks", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\HowItWorks.tsx", "source_location": "L106"}, {"caller_nid": "landing_howitworks_stepcard", "callee": "cn", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\HowItWorks.tsx", "source_location": "L133"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_lista_id_page_tsx", "label": "page.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\lista\\[id]\\page.tsx", "source_location": "L1"}, {"id": "id_page_listapageprops", "label": "ListaPageProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\lista\\[id]\\page.tsx", "source_location": "L10"}, {"id": "id_page_listapage", "label": "ListaPage()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\lista\\[id]\\page.tsx", "source_location": "L16"}], "edges": [{"source": "d_documents_github_nutriscan_app_lista_id_page_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\lista\\[id]\\page.tsx", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_lista_id_page_tsx", "target": "d_documents_github_nutriscan_app_components_main_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\lista\\[id]\\page.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_lista_id_page_tsx", "target": "components_main_main", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\lista\\[id]\\page.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_lista_id_page_tsx", "target": "d_documents_github_nutriscan_app_components_cardlist_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\lista\\[id]\\page.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_lista_id_page_tsx", "target": "components_cardlist_cardlist", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\lista\\[id]\\page.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_lista_id_page_tsx", "target": "d_documents_github_nutriscan_components_theme_toggle_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\lista\\[id]\\page.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_lista_id_page_tsx", "target": "components_theme_toggle_themetoggle", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\lista\\[id]\\page.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_lista_id_page_tsx", "target": "d_documents_github_nutriscan_app_components_listheader_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\lista\\[id]\\page.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_lista_id_page_tsx", "target": "components_listheader_listheader", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\lista\\[id]\\page.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_lista_id_page_tsx", "target": "d_documents_github_nutriscan_app_components_footer_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\lista\\[id]\\page.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_lista_id_page_tsx", "target": "components_footer_footer", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\lista\\[id]\\page.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_lista_id_page_tsx", "target": "d_documents_github_nutriscan_app_actions_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\lista\\[id]\\page.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_lista_id_page_tsx", "target": "app_actions_verificarlista", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\lista\\[id]\\page.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_lista_id_page_tsx", "target": "navigation", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\lista\\[id]\\page.tsx", "source_location": "L8", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_lista_id_page_tsx", "target": "id_page_Line truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_components_optimizedimage_tsx", "label": "OptimizedImage.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L1"}, {"id": "components_optimizedimage_optimizedimageprops", "label": "OptimizedImageProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L8"}, {"id": "components_optimizedimage_optimizedimage", "label": "OptimizedImage()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L34"}], "edges": [{"source": "d_documents_github_nutriscan_components_optimizedimage_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_optimizedimage_tsx", "target": "image", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_optimizedimage_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_optimizedimage_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_optimizedimage_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_optimizedimage_tsx", "target": "components_optimizedimage_optimizedimageprops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L8", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_optimizedimage_tsx", "target": "components_optimizedimage_optimizedimage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L34", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_optimizedimage_optimizedimage", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L53"}, {"caller_nid": "components_optimizedimage_optimizedimage", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L54"}, {"caller_nid": "components_optimizedimage_optimizedimage", "callee": "includes", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L58"}, {"caller_nid": "components_optimizedimage_optimizedimage", "callee": "debug", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L62"}, {"caller_nid": "components_optimizedimage_optimizedimage", "callee": "useRef", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L63"}, {"caller_nid": "components_optimizedimage_optimizedimage", "callee": "useRef", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L64"}, {"caller_nid": "components_optimizedimage_optimizedimage", "callee": "useRef", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L65"}, {"caller_nid": "components_optimizedimage_optimizedimage", "callee": "useEffect", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L68"}, {"caller_nid": "components_optimizedimage_optimizedimage", "callee": "useEffect", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L73"}, {"caller_nid": "components_optimizedimage_optimizedimage", "callee": "useEffect", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\components\\OptimizedImage.tsx", "source_location": "L81"}, {"caller_nid": "components_optimizedLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_components_ui_select_tsx", "label": "select.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L1"}, {"id": "ui_select_selecttrigger", "label": "SelectTrigger", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L15"}, {"id": "ui_select_selectscrollupbutton", "label": "SelectScrollUpButton", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L35"}, {"id": "ui_select_selectscrolldownbutton", "label": "SelectScrollDownButton", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L52"}, {"id": "ui_select_selectcontent", "label": "SelectContent", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L70"}, {"id": "ui_select_selectlabel", "label": "SelectLabel", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L102"}, {"id": "ui_select_selectitem", "label": "SelectItem", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L114"}, {"id": "ui_select_selectseparator", "label": "SelectSeparator", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L136"}], "edges": [{"source": "d_documents_github_nutriscan_components_ui_select_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_select_tsx", "target": "react_select", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_select_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_select_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_select_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_select_tsx", "target": "ui_select_selecttrigger", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L15", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_select_tsx", "target": "ui_select_selectscrollupbutton", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L35", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_select_tsx", "target": "ui_select_selectscrolldownbutton", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L52", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_select_tsx", "target": "ui_select_selectcontent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L70", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_select_tsx", "target": "ui_select_selectlabel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L102", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_select_tsx", "target": "ui_select_selectitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L114", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_select_tsx", "target": "ui_select_selectseparator", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\select.tsx", "source_location": "L136", "weight": 1.0}], "raLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_components_ui_dropdown_menu_tsx", "label": "dropdown-menu.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dropdown-menu.tsx", "source_location": "L1"}, {"id": "ui_dropdown_menu_dropdownmenusubtrigger", "label": "DropdownMenuSubTrigger", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dropdown-menu.tsx", "source_location": "L21"}, {"id": "ui_dropdown_menu_dropdownmenusubcontent", "label": "DropdownMenuSubContent", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dropdown-menu.tsx", "source_location": "L43"}, {"id": "ui_dropdown_menu_dropdownmenucontent", "label": "DropdownMenuContent", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dropdown-menu.tsx", "source_location": "L59"}, {"id": "ui_dropdown_menu_dropdownmenuitem", "label": "DropdownMenuItem", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dropdown-menu.tsx", "source_location": "L77"}, {"id": "ui_dropdown_menu_dropdownmenulabel", "label": "DropdownMenuLabel", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dropdown-menu.tsx", "source_location": "L95"}, {"id": "ui_dropdown_menu_dropdownmenuseparator", "label": "DropdownMenuSeparator", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dropdown-menu.tsx", "source_location": "L113"}], "edges": [{"source": "d_documents_github_nutriscan_components_ui_dropdown_menu_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dropdown-menu.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dropdown_menu_tsx", "target": "react_dropdown_menu", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dropdown-menu.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dropdown_menu_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dropdown-menu.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dropdown_menu_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dropdown-menu.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dropdown_menu_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dropdown-menu.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dropdown_menu_tsx", "target": "ui_dropdown_menu_dropdownmenusubtrigger", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dropdown-menu.tsx", "source_location": "L21", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dropdown_menu_tsx", "target": "ui_dropdown_menu_dropdownmenusubcontent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dropdown-menu.tsx", "source_location": "L43", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dropdown_menu_tsx", "target": "ui_dropdown_menu_dropdownmenucontent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dropdown-menu.tsx", "source_location": "L59", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dropdown_menu_tsx", "target": "ui_dropdown_menu_dropdownmenuitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dropdown-menu.tsx", "source_location": "L77", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dropdown_menu_tsx", "target": "ui_dropdown_menu_dropdownmenulabel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dropdown-menu.tsx", "source_location": "L95", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dropdown_menu_tsx", "target": "ui_dropdown_menu_dropdownmenuseparator", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dropdown-menu.tsx", "source_location": "L113", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_listaproductcard_tsx", "label": "ListaProductCard.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ListaProductCard.tsx", "source_location": "L1"}, {"id": "components_listaproductcard_produto", "label": "Produto", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ListaProductCard.tsx", "source_location": "L9"}, {"id": "components_listaproductcard_listaproductcardprops", "label": "ListaProductCardProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ListaProductCard.tsx", "source_location": "L20"}, {"id": "components_listaproductcard_listaproductcard", "label": "ListaProductCard()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ListaProductCard.tsx", "source_location": "L25"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_listaproductcard_tsx", "target": "d_documents_github_nutriscan_components_ui_badge_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ListaProductCard.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_listaproductcard_tsx", "target": "ui_badge_badge", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ListaProductCard.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_listaproductcard_tsx", "target": "d_documents_github_nutriscan_components_ui_button_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ListaProductCard.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_listaproductcard_tsx", "target": "ui_button_button", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ListaProductCard.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_listaproductcard_tsx", "target": "d_documents_github_nutriscan_components_ui_card_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ListaProductCard.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_listaproductcard_tsx", "target": "ui_card_card", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ListaProductCard.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_listaproductcard_tsx", "target": "ui_card_cardcontent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ListaProductCard.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_listaproductcard_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ListaProductCard.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_listaproductcard_tsx", "target": "d_documents_github_nutriscan_app_actions_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ListaProductCard.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_listaproductcard_tsx", "target": "app_actions_togglecomprado", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ListaProductCard.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_listaproductcard_tsx", "target": "components_listaproductcard_produto", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ListaProductCard.tsx", "source_location": "L9", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_listaproductcard_tsx", "target": "components_listaproductcard_listaproductcardprops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ListaProductCard.tsx", "source_location": "L20", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_listaproductcard_tsx", "target": "components_listaproductcard_listaproductcard", "relation": "contains", "conLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_landing_donationsection_tsx", "label": "DonationSection.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\DonationSection.tsx", "source_location": "L1"}, {"id": "landing_donationsection_donationsection", "label": "DonationSection()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\DonationSection.tsx", "source_location": "L6"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_landing_donationsection_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\DonationSection.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_donationsection_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\DonationSection.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_donationsection_tsx", "target": "landing_donationsection_donationsection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\DonationSection.tsx", "source_location": "L6", "weight": 1.0}], "raw_calls": [{"caller_nid": "landing_donationsection_donationsection", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\DonationSection.tsx", "source_location": "L33"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_landing_features_tsx", "label": "Features.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\Features.tsx", "source_location": "L1"}, {"id": "landing_features_feature", "label": "Feature", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\Features.tsx", "source_location": "L6"}, {"id": "landing_features_features", "label": "features", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\Features.tsx", "source_location": "L13"}, {"id": "landing_features_featurerow", "label": "FeatureRow()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\Features.tsx", "source_location": "L79"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_landing_features_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\Features.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_features_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\Features.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_features_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\Features.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_features_tsx", "target": "landing_features_feature", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\Features.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_features_tsx", "target": "landing_features_features", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\Features.tsx", "source_location": "L13", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_features_tsx", "target": "landing_features_features", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\Features.tsx", "source_location": "L44", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_features_tsx", "target": "landing_features_featurerow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\Features.tsx", "source_location": "L79", "weight": 1.0}], "raw_calls": [{"caller_nid": "landing_features_features", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\Features.tsx", "source_location": "L67"}, {"caller_nid": "landing_features_featurerow", "callee": "cn", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\Features.tsx", "source_location": "L88"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_components_ui_radio_group_tsx", "label": "radio-group.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\radio-group.tsx", "source_location": "L1"}, {"id": "ui_radio_group_radiogroup", "label": "RadioGroup", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\radio-group.tsx", "source_location": "L9"}, {"id": "ui_radio_group_radiogroupitem", "label": "RadioGroupItem", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\radio-group.tsx", "source_location": "L23"}], "edges": [{"source": "d_documents_github_nutriscan_components_ui_radio_group_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\radio-group.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_radio_group_tsx", "target": "react_radio_group", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\radio-group.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_radio_group_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\radio-group.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_radio_group_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\radio-group.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_radio_group_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\radio-group.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_radio_group_tsx", "target": "ui_radio_group_radiogroup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\radio-group.tsx", "source_location": "L9", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_radio_group_tsx", "target": "ui_radio_group_radiogroupitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\radio-group.tsx", "source_location": "L23", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_api_products_barcode_route_ts", "label": "route.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L1"}, {"id": "barcode_route_get", "label": "GET()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L6"}], "edges": [{"source": "d_documents_github_nutriscan_app_api_products_barcode_route_ts", "target": "server", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_api_products_barcode_route_ts", "target": "d_documents_github_nutriscan_lib_jsoncachemanager_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_api_products_barcode_route_ts", "target": "lib_jsoncachemanager_jsoncachemanager", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_api_products_barcode_route_ts", "target": "barcode_route_get", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L6", "weight": 1.0}], "raw_calls": [{"caller_nid": "barcode_route_get", "callee": "replace", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L15"}, {"caller_nid": "barcode_route_get", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L17"}, {"caller_nid": "barcode_route_get", "callee": "log", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L24"}, {"caller_nid": "barcode_route_get", "callee": "log", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L27"}, {"caller_nid": "barcode_route_get", "callee": "getProductByCode", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L28"}, {"caller_nid": "barcode_route_get", "callee": "log", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L31"}, {"caller_nid": "barcode_route_get", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L32"}, {"caller_nid": "barcode_route_get", "callee": "log", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L41"}, {"caller_nid": "barcode_route_get", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L44"}, {"caller_nid": "barcode_route_get", "callee": "log", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L51"}, {"caller_nid": "barcode_route_get", "callee": "fetch", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L54"}, {"caller_nid": "barcode_route_get", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L65"}, {"caller_nid": "barcode_route_get", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L71"}, {"caller_nid": "barcode_route_get", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L74"}, {"caller_nid": "barcode_route_get", "callee": "log", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L82"}, {"caller_nid": "barcode_route_get", "callee": "saveProduct", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\products\\[barcode]\\route.ts", "source_location": "L83"}, {"caller_nid": "barcode_route_get", "callee": "log", "is_member_call": true, "source_file": Line truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_layout_tsx", "label": "layout.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\layout.tsx", "source_location": "L1"}, {"id": "app_layout_inter", "label": "inter", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\layout.tsx", "source_location": "L9"}, {"id": "app_layout_metadata", "label": "metadata", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\layout.tsx", "source_location": "L15"}, {"id": "app_layout_rootlayout", "label": "RootLayout()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\layout.tsx", "source_location": "L73"}], "edges": [{"source": "d_documents_github_nutriscan_app_layout_tsx", "target": "d_documents_github_nutriscan_app_globals_css", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\layout.tsx", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_layout_tsx", "target": "next", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\layout.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_layout_tsx", "target": "google", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\layout.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_layout_tsx", "target": "script", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\layout.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_layout_tsx", "target": "d_documents_github_nutriscan_app_providers_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\layout.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_layout_tsx", "target": "app_providers_themeprovider", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\layout.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_layout_tsx", "target": "d_documents_github_nutriscan_app_components_errorboundary_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\layout.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_layout_tsx", "target": "components_errorboundary_errorboundary", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\layout.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_layout_tsx", "target": "d_documents_github_nutriscan_app_components_errortracking_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\layout.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_layout_tsx", "target": "components_errortracking_errortracking", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\layout.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_layout_tsx", "target": "app_layout_inter", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\layout.tsx", "source_location": "L9", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_layout_tsx", "target": "app_layout_metadata", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\layout.tsx", "source_location": "L15", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_layout_tsx", "target": "app_layout_rootlayout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\layout.tsx", "source_location": "L73", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_postcss_config_mjs", "label": "postcss.config.mjs", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\postcss.config.mjs", "source_location": "L1"}, {"id": "nutriscan_postcss_config_config", "label": "config", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\postcss.config.mjs", "source_location": "L2"}], "edges": [{"source": "d_documents_github_nutriscan_postcss_config_mjs", "target": "nutriscan_postcss_config_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\postcss.config.mjs", "source_location": "L2", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_providers_tsx", "label": "providers.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\providers.tsx", "source_location": "L1"}, {"id": "app_providers_providersprops", "label": "ProvidersProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\providers.tsx", "source_location": "L5"}, {"id": "app_providers_themeprovider", "label": "ThemeProvider()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\providers.tsx", "source_location": "L9"}], "edges": [{"source": "d_documents_github_nutriscan_app_providers_tsx", "target": "next_themes", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\providers.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_providers_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\providers.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_providers_tsx", "target": "app_providers_providersprops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\providers.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_providers_tsx", "target": "app_providers_themeprovider", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\providers.tsx", "source_location": "L9", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_lib_utils_ts", "label": "utils.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L1"}, {"id": "lib_utils_cn", "label": "cn()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L4"}, {"id": "lib_utils_perfcache", "label": "perfCache", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L9"}, {"id": "lib_utils_debounce", "label": "debounce()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L12"}, {"id": "lib_utils_memoize", "label": "memoize()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L25"}, {"id": "lib_utils_measureperformance", "label": "measurePerformance()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L46"}], "edges": [{"source": "d_documents_github_nutriscan_lib_utils_ts", "target": "clsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_utils_ts", "target": "tailwind_merge", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_utils_ts", "target": "lib_utils_cn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_utils_ts", "target": "lib_utils_perfcache", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L9", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_utils_ts", "target": "lib_utils_debounce", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L12", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_utils_ts", "target": "lib_utils_memoize", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L25", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_utils_ts", "target": "lib_utils_measureperformance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L46", "weight": 1.0}], "raw_calls": [{"caller_nid": "lib_utils_cn", "callee": "twMerge", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L5"}, {"caller_nid": "lib_utils_cn", "callee": "clsx", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L5"}, {"caller_nid": "lib_utils_measureperformance", "callee": "now", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L47"}, {"caller_nid": "lib_utils_measureperformance", "callee": "callback", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L48"}, {"caller_nid": "lib_utils_measureperformance", "callee": "now", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L49"}, {"caller_nid": "lib_utils_measureperformance", "callee": "set", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\utils.ts", "source_location": "L50"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_landing_trustbadges_tsx", "label": "TrustBadges.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\TrustBadges.tsx", "source_location": "L1"}, {"id": "landing_trustbadges_stats", "label": "stats", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\TrustBadges.tsx", "source_location": "L3"}, {"id": "landing_trustbadges_trustbadges", "label": "TrustBadges()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\TrustBadges.tsx", "source_location": "L26"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_landing_trustbadges_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\TrustBadges.tsx", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_trustbadges_tsx", "target": "landing_trustbadges_stats", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\TrustBadges.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_trustbadges_tsx", "target": "landing_trustbadges_trustbadges", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\TrustBadges.tsx", "source_location": "L26", "weight": 1.0}], "raw_calls": [{"caller_nid": "landing_trustbadges_trustbadges", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\TrustBadges.tsx", "source_location": "L31"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_nutritionbar_tsx", "label": "NutritionBar.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L1"}, {"id": "components_nutritionbar_nutritionbarprops", "label": "NutritionBarProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L4"}, {"id": "components_nutritionbar_nutritionbar", "label": "NutritionBar()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L15"}, {"id": "components_nutritionbar_nutritiongridprops", "label": "NutritionGridProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L61"}, {"id": "components_nutritionbar_reference", "label": "REFERENCE", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L74"}, {"id": "components_nutritionbar_extractnumber", "label": "extractNumber()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L79"}, {"id": "components_nutritionbar_pct", "label": "pct()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L85"}, {"id": "components_nutritionbar_nutritiongrid", "label": "NutritionGrid()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L89"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_nutritionbar_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionbar_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionbar_tsx", "target": "components_nutritionbar_nutritionbarprops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionbar_tsx", "target": "components_nutritionbar_nutritionbar", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L15", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionbar_tsx", "target": "components_nutritionbar_nutritiongridprops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L61", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionbar_tsx", "target": "components_nutritionbar_reference", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L74", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionbar_tsx", "target": "components_nutritionbar_extractnumber", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L79", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionbar_tsx", "target": "components_nutritionbar_pct", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L85", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionbar_tsx", "target": "components_nutritionbar_nutritiongrid", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L89", "weight": 1.0}, {"source": "components_nutritionbar_pct", "target": "components_nutritionbar_extractnumber", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L86", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_nutritionbar_nutritionbar", "callee": "min", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionBar.tsx", "source_location": "L24"}, {"caller_nid": "compoLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_api_location_route_ts", "label": "route.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L1"}, {"id": "location_route_get", "label": "GET()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L6"}], "edges": [{"source": "d_documents_github_nutriscan_app_api_location_route_ts", "target": "server", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_api_location_route_ts", "target": "location_route_get", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L6", "weight": 1.0}], "raw_calls": [{"caller_nid": "location_route_get", "callee": "trim", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L15"}, {"caller_nid": "location_route_get", "callee": "split", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L15"}, {"caller_nid": "location_route_get", "callee": "startsWith", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L25"}, {"caller_nid": "location_route_get", "callee": "startsWith", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L26"}, {"caller_nid": "location_route_get", "callee": "log", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L28"}, {"caller_nid": "location_route_get", "callee": "fetch", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L33"}, {"caller_nid": "location_route_get", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L40"}, {"caller_nid": "location_route_get", "callee": "log", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L42"}, {"caller_nid": "location_route_get", "callee": "warn", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L45"}, {"caller_nid": "location_route_get", "callee": "warn", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L51"}, {"caller_nid": "location_route_get", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L52"}, {"caller_nid": "location_route_get", "callee": "log", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L58"}, {"caller_nid": "location_route_get", "callee": "fetch", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L61"}, {"caller_nid": "location_route_get", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L74"}, {"caller_nid": "location_route_get", "callee": "warn", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L78"}, {"caller_nid": "location_route_get", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L79"}, {"caller_nid": "location_route_get", "callee": "log", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L85"}, {"caller_nid": "location_route_get", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L87"}, {"caller_nid": "location_route_get", "callee": "toLowerCase", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L89"}, {"caller_nid": "location_route_get", "callee": "error", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L92"}, {"caller_nid": "location_route_get", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\location\\route.ts", "source_location": "L95"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_pagination_tsx", "label": "Pagination.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Pagination.tsx", "source_location": "L1"}, {"id": "components_pagination_default_config", "label": "DEFAULT_CONFIG", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Pagination.tsx", "source_location": "L20"}, {"id": "components_pagination_pagination", "label": "Pagination()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Pagination.tsx", "source_location": "L27"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_pagination_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Pagination.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_pagination_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Pagination.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_pagination_tsx", "target": "d_documents_github_nutriscan_components_ui_button_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Pagination.tsx", "source_location": "L10", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_pagination_tsx", "target": "ui_button_button", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Pagination.tsx", "source_location": "L10", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_pagination_tsx", "target": "d_documents_github_nutriscan_components_ui_select_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Pagination.tsx", "source_location": "L11", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_pagination_tsx", "target": "ui_select_select", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Pagination.tsx", "source_location": "L11", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_pagination_tsx", "target": "ui_select_selectcontent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Pagination.tsx", "source_location": "L11", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_pagination_tsx", "target": "ui_select_selectitem", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Pagination.tsx", "source_location": "L11", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_pagination_tsx", "target": "ui_select_selecttrigger", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Pagination.tsx", "source_location": "L11", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_pagination_tsx", "target": "ui_select_selectvalue", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Pagination.tsx", "source_location": "L11", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_pagination_tsx", "target": "d_documents_github_nutriscan_lib_types_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Pagination.tsx", "source_location": "L18", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_pagination_tsx", "target": "lib_types_paginationprops", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Pagination.tsx", "source_location": "L18", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_pagination_tsx", "target": "lib_types_paginationconfig", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Pagination.tsx", "source_location": "L18", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_pagination_tsx", "target": "components_pagination_default_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Pagination.tsx", "source_location": "L20", "weight": 1Line truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_main_tsx", "label": "Main.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Main.tsx", "source_location": "L1"}, {"id": "components_main_mainprops", "label": "MainProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Main.tsx", "source_location": "L17"}, {"id": "components_main_main", "label": "Main()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Main.tsx", "source_location": "L21"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_main_tsx", "target": "d_documents_github_nutriscan_components_ui_input_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Main.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_main_tsx", "target": "ui_input_input", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Main.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_main_tsx", "target": "d_documents_github_nutriscan_components_ui_select_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Main.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_main_tsx", "target": "ui_select_select", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Main.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_main_tsx", "target": "ui_select_selectcontent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Main.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_main_tsx", "target": "ui_select_selectgroup", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Main.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_main_tsx", "target": "ui_select_selectitem", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Main.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_main_tsx", "target": "ui_select_selectlabel", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Main.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_main_tsx", "target": "ui_select_selecttrigger", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Main.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_main_tsx", "target": "ui_select_selectvalue", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Main.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_main_tsx", "target": "d_documents_github_nutriscan_components_ui_button_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Main.tsx", "source_location": "L12", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_main_tsx", "target": "ui_button_button", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Main.tsx", "source_location": "L12", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_main_tsx", "target": "d_documents_github_nutriscan_app_actions_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Main.tsx", "source_location": "L13", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_main_tsx", "target": "app_actions_criaritens", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\Main.tsx", "source_location": "L13", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_main_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\Line truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_api_storage_stats_route_ts", "label": "route.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\storage-stats\\route.ts", "source_location": "L1"}, {"id": "storage_stats_route_get", "label": "GET()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\storage-stats\\route.ts", "source_location": "L4"}], "edges": [{"source": "d_documents_github_nutriscan_app_api_storage_stats_route_ts", "target": "server", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\storage-stats\\route.ts", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_api_storage_stats_route_ts", "target": "d_documents_github_nutriscan_lib_jsoncachemanager_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\storage-stats\\route.ts", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_api_storage_stats_route_ts", "target": "lib_jsoncachemanager_jsoncachemanager", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\storage-stats\\route.ts", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_api_storage_stats_route_ts", "target": "storage_stats_route_get", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\storage-stats\\route.ts", "source_location": "L4", "weight": 1.0}], "raw_calls": [{"caller_nid": "storage_stats_route_get", "callee": "log", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\storage-stats\\route.ts", "source_location": "L6"}, {"caller_nid": "storage_stats_route_get", "callee": "isInitialized", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\storage-stats\\route.ts", "source_location": "L9"}, {"caller_nid": "storage_stats_route_get", "callee": "log", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\storage-stats\\route.ts", "source_location": "L11"}, {"caller_nid": "storage_stats_route_get", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\storage-stats\\route.ts", "source_location": "L12"}, {"caller_nid": "storage_stats_route_get", "callee": "now", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\storage-stats\\route.ts", "source_location": "L20"}, {"caller_nid": "storage_stats_route_get", "callee": "getStorageStats", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\storage-stats\\route.ts", "source_location": "L25"}, {"caller_nid": "storage_stats_route_get", "callee": "log", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\storage-stats\\route.ts", "source_location": "L26"}, {"caller_nid": "storage_stats_route_get", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\storage-stats\\route.ts", "source_location": "L28"}, {"caller_nid": "storage_stats_route_get", "callee": "now", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\storage-stats\\route.ts", "source_location": "L31"}, {"caller_nid": "storage_stats_route_get", "callee": "error", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\storage-stats\\route.ts", "source_location": "L34"}, {"caller_nid": "storage_stats_route_get", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\storage-stats\\route.ts", "source_location": "L37"}, {"caller_nid": "storage_stats_route_get", "callee": "now", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\storage-stats\\route.ts", "source_location": "L45"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_sobre_components_targetaudiencesection_tsx", "label": "TargetAudienceSection.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\TargetAudienceSection.tsx", "source_location": "L1"}, {"id": "components_targetaudiencesection_personas", "label": "PERSONAS", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\TargetAudienceSection.tsx", "source_location": "L3"}, {"id": "components_targetaudiencesection_targetaudiencesection", "label": "TargetAudienceSection()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\TargetAudienceSection.tsx", "source_location": "L38"}], "edges": [{"source": "d_documents_github_nutriscan_app_sobre_components_targetaudiencesection_tsx", "target": "components_targetaudiencesection_personas", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\TargetAudienceSection.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_sobre_components_targetaudiencesection_tsx", "target": "components_targetaudiencesection_targetaudiencesection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\TargetAudienceSection.tsx", "source_location": "L38", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_targetaudiencesection_targetaudiencesection", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\TargetAudienceSection.tsx", "source_location": "L56"}, {"caller_nid": "components_targetaudiencesection_targetaudiencesection", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\TargetAudienceSection.tsx", "source_location": "L94"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_hooks_usestoragemonitor_ts", "label": "useStorageMonitor.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useStorageMonitor.ts", "source_location": "L1"}, {"id": "hooks_usestoragemonitor_usestoragemonitorreturn", "label": "UseStorageMonitorReturn", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useStorageMonitor.ts", "source_location": "L9"}, {"id": "hooks_usestoragemonitor_usestoragemonitor", "label": "useStorageMonitor()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useStorageMonitor.ts", "source_location": "L19"}], "edges": [{"source": "d_documents_github_nutriscan_hooks_usestoragemonitor_ts", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useStorageMonitor.ts", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_usestoragemonitor_ts", "target": "d_documents_github_nutriscan_lib_types_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useStorageMonitor.ts", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_usestoragemonitor_ts", "target": "lib_types_storagestats", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useStorageMonitor.ts", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_usestoragemonitor_ts", "target": "hooks_usestoragemonitor_usestoragemonitorreturn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useStorageMonitor.ts", "source_location": "L9", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_usestoragemonitor_ts", "target": "hooks_usestoragemonitor_usestoragemonitor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useStorageMonitor.ts", "source_location": "L19", "weight": 1.0}], "raw_calls": [{"caller_nid": "hooks_usestoragemonitor_usestoragemonitor", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useStorageMonitor.ts", "source_location": "L20"}, {"caller_nid": "hooks_usestoragemonitor_usestoragemonitor", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useStorageMonitor.ts", "source_location": "L21"}, {"caller_nid": "hooks_usestoragemonitor_usestoragemonitor", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useStorageMonitor.ts", "source_location": "L22"}, {"caller_nid": "hooks_usestoragemonitor_usestoragemonitor", "callee": "useCallback", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useStorageMonitor.ts", "source_location": "L27"}, {"caller_nid": "hooks_usestoragemonitor_usestoragemonitor", "callee": "useCallback", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useStorageMonitor.ts", "source_location": "L42"}, {"caller_nid": "hooks_usestoragemonitor_usestoragemonitor", "callee": "useCallback", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useStorageMonitor.ts", "source_location": "L80"}, {"caller_nid": "hooks_usestoragemonitor_usestoragemonitor", "callee": "useEffect", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useStorageMonitor.ts", "source_location": "L85"}, {"caller_nid": "hooks_usestoragemonitor_usestoragemonitor", "callee": "useEffect", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useStorageMonitor.ts", "source_location": "L90"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_productcardskeleton_tsx", "label": "ProductCardSkeleton.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCardSkeleton.tsx", "source_location": "L1"}, {"id": "components_productcardskeleton_productcardskeleton", "label": "ProductCardSkeleton()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCardSkeleton.tsx", "source_location": "L4"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_productcardskeleton_tsx", "target": "d_documents_github_nutriscan_components_ui_card_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCardSkeleton.tsx", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productcardskeleton_tsx", "target": "ui_card_card", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCardSkeleton.tsx", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productcardskeleton_tsx", "target": "ui_card_cardcontent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCardSkeleton.tsx", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productcardskeleton_tsx", "target": "d_documents_github_nutriscan_components_ui_skeleton_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCardSkeleton.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productcardskeleton_tsx", "target": "ui_skeleton_skeleton", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCardSkeleton.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productcardskeleton_tsx", "target": "components_productcardskeleton_productcardskeleton", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCardSkeleton.tsx", "source_location": "L4", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_components_ui_dialog_tsx", "label": "dialog.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L1"}, {"id": "ui_dialog_dialogoverlay", "label": "DialogOverlay", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L17"}, {"id": "ui_dialog_dialogcontent", "label": "DialogContent", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L32"}, {"id": "ui_dialog_dialogheader", "label": "DialogHeader()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L56"}, {"id": "ui_dialog_dialogfooter", "label": "DialogFooter()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L70"}, {"id": "ui_dialog_dialogtitle", "label": "DialogTitle", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L84"}, {"id": "ui_dialog_dialogdescription", "label": "DialogDescription", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L99"}], "edges": [{"source": "d_documents_github_nutriscan_components_ui_dialog_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dialog_tsx", "target": "react_dialog", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dialog_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dialog_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dialog_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dialog_tsx", "target": "ui_dialog_dialogoverlay", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L17", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dialog_tsx", "target": "ui_dialog_dialogcontent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L32", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dialog_tsx", "target": "ui_dialog_dialogheader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L56", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dialog_tsx", "target": "ui_dialog_dialogfooter", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L70", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dialog_tsx", "target": "ui_dialog_dialogtitle", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L84", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_dialog_tsx", "target": "ui_dialog_dialogdescription", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L99", "weight": 1.0}], "raw_calls": [{"caller_nid": "ui_dialog_dialogheader", "callee": "cn", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L61"}, {"caller_nid": "ui_dialog_dialogfooter", "callee": "cn", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\dialog.tsx", "source_location": "L75"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_tailwind_config_ts", "label": "tailwind.config.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\tailwind.config.ts", "source_location": "L1"}, {"id": "nutriscan_tailwind_config_config", "label": "config", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\tailwind.config.ts", "source_location": "L3"}], "edges": [{"source": "d_documents_github_nutriscan_tailwind_config_ts", "target": "tailwindcss", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\tailwind.config.ts", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_tailwind_config_ts", "target": "nutriscan_tailwind_config_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\tailwind.config.ts", "source_location": "L3", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_hooks_useproductfilters_ts", "label": "useProductFilters.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useProductFilters.ts", "source_location": "L1"}, {"id": "hooks_useproductfilters_useproductfiltersoptions", "label": "UseProductFiltersOptions", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useProductFilters.ts", "source_location": "L7"}, {"id": "hooks_useproductfilters_useproductfilters", "label": "useProductFilters()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useProductFilters.ts", "source_location": "L13"}, {"id": "hooks_useproductfilters_parsefiltersfromurl", "label": "parseFiltersFromURL()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useProductFilters.ts", "source_location": "L167"}, {"id": "hooks_useproductfilters_loadfiltersfromstorage", "label": "loadFiltersFromStorage()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useProductFilters.ts", "source_location": "L236"}, {"id": "hooks_useproductfilters_savefilterstostorage", "label": "saveFiltersToStorage()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useProductFilters.ts", "source_location": "L245"}, {"id": "hooks_useproductfilters_debounce", "label": "debounce()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useProductFilters.ts", "source_location": "L253"}], "edges": [{"source": "d_documents_github_nutriscan_hooks_useproductfilters_ts", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useProductFilters.ts", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_useproductfilters_ts", "target": "navigation", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useProductFilters.ts", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_useproductfilters_ts", "target": "d_documents_github_nutriscan_lib_types_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useProductFilters.ts", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_useproductfilters_ts", "target": "lib_types_productfilters", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useProductFilters.ts", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_useproductfilters_ts", "target": "lib_types_filterstate", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useProductFilters.ts", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_useproductfilters_ts", "target": "hooks_useproductfilters_useproductfiltersoptions", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useProductFilters.ts", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_useproductfilters_ts", "target": "hooks_useproductfilters_useproductfilters", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useProductFilters.ts", "source_location": "L13", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_useproductfilters_ts", "target": "hooks_useproductfilters_parsefiltersfromurl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useProductFilters.ts", "source_location": "L167", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_useproductfilters_ts", "target": "hooks_useproductfilters_loadfiltersfromstorage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useProductFilters.ts", "source_location": "L236", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_useproductfilters_ts", "target": "hooks_useproductfilters_savefilterstostorage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useProductFilters.ts", "source_location": "L245", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_useproductfilters_ts", "target": "hooks_useproductfilters_debounce", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useProductFilters.ts", "source_location": "L253", "weight": 1.0}, {"source": "hooks_useproductfilters_useproductfilters", "target": "hooks_useproductfilters_debounce", "relation": "calls", "context": "call", "confidence": "EXTRACTED"Line truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_components_ui_button_tsx", "label": "button.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\button.tsx", "source_location": "L1"}, {"id": "ui_button_buttonvariants", "label": "buttonVariants", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\button.tsx", "source_location": "L7"}, {"id": "ui_button_buttonprops", "label": "ButtonProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\button.tsx", "source_location": "L37"}, {"id": "ui_button_button", "label": "Button", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\button.tsx", "source_location": "L43"}], "edges": [{"source": "d_documents_github_nutriscan_components_ui_button_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\button.tsx", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_button_tsx", "target": "react_slot", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\button.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_button_tsx", "target": "class_variance_authority", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\button.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_button_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\button.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_button_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\button.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_button_tsx", "target": "ui_button_buttonvariants", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\button.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_button_tsx", "target": "ui_button_buttonprops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\button.tsx", "source_location": "L37", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_button_tsx", "target": "ui_button_button", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\button.tsx", "source_location": "L43", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_next_config_mjs", "label": "next.config.mjs", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\next.config.mjs", "source_location": "L1"}, {"id": "nutriscan_next_config_nextconfig", "label": "nextConfig", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\next.config.mjs", "source_location": "L2"}], "edges": [{"source": "d_documents_github_nutriscan_next_config_mjs", "target": "nutriscan_next_config_nextconfig", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\next.config.mjs", "source_location": "L2", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_hooks_usesearchcache_ts", "label": "useSearchCache.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L1"}, {"id": "hooks_usesearchcache_searchcachestate", "label": "SearchCacheState", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L7"}, {"id": "hooks_usesearchcache_usesearchcachereturn", "label": "UseSearchCacheReturn", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L20"}, {"id": "hooks_usesearchcache_usesearchcache", "label": "useSearchCache()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L51"}], "edges": [{"source": "d_documents_github_nutriscan_hooks_usesearchcache_ts", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_usesearchcache_ts", "target": "d_documents_github_nutriscan_lib_openfoodfactsapi_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_usesearchcache_ts", "target": "lib_openfoodfactsapi_product", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_usesearchcache_ts", "target": "d_documents_github_nutriscan_lib_cachemanager_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_usesearchcache_ts", "target": "lib_cachemanager_cachemanager", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_usesearchcache_ts", "target": "lib_cachemanager_cachedsearch", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_usesearchcache_ts", "target": "lib_cachemanager_filterrecord", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_usesearchcache_ts", "target": "hooks_usesearchcache_searchcachestate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_usesearchcache_ts", "target": "hooks_usesearchcache_usesearchcachereturn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L20", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_usesearchcache_ts", "target": "hooks_usesearchcache_usesearchcache", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L51", "weight": 1.0}], "raw_calls": [{"caller_nid": "hooks_usesearchcache_usesearchcache", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L52"}, {"caller_nid": "hooks_usesearchcache_usesearchcache", "callee": "useCallback", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L60"}, {"caller_nid": "hooks_usesearchcache_usesearchcache", "callee": "useCallback", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L87"}, {"caller_nid": "hooks_usesearchcache_usesearchcache", "callee": "useCallback", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L122"}, {"caller_nid": "hooks_usesearchcache_usesearchcache", "callee": "useCallback", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\useSearchCache.ts", "source_location": "L151"}, {"caller_nid": "hooks_usesearchcache_usesearchcache", "callee": "useCallback", "is_member_call": false, "Line truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_sobre_components_storysection_tsx", "label": "StorySection.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\StorySection.tsx", "source_location": "L1"}, {"id": "components_storysection_storystep", "label": "StoryStep", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\StorySection.tsx", "source_location": "L3"}, {"id": "components_storysection_story_data", "label": "STORY_DATA", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\StorySection.tsx", "source_location": "L9"}, {"id": "components_storysection_storysection", "label": "StorySection()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\StorySection.tsx", "source_location": "L36"}], "edges": [{"source": "d_documents_github_nutriscan_app_sobre_components_storysection_tsx", "target": "components_storysection_storystep", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\StorySection.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_sobre_components_storysection_tsx", "target": "components_storysection_story_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\StorySection.tsx", "source_location": "L9", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_sobre_components_storysection_tsx", "target": "components_storysection_storysection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\StorySection.tsx", "source_location": "L36", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_storysection_storysection", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\StorySection.tsx", "source_location": "L55"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_card_tsx", "label": "card.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\card.tsx", "source_location": "L1"}, {"id": "components_card_cardprops", "label": "CardProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\card.tsx", "source_location": "L1"}, {"id": "components_card_card", "label": "Card()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\card.tsx", "source_location": "L14"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_card_tsx", "target": "components_card_cardprops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\card.tsx", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_card_tsx", "target": "components_card_card", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\card.tsx", "source_location": "L14", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_sobre_components_impactsection_tsx", "label": "ImpactSection.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\ImpactSection.tsx", "source_location": "L1"}, {"id": "components_impactsection_impactsection", "label": "ImpactSection()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\ImpactSection.tsx", "source_location": "L3"}], "edges": [{"source": "d_documents_github_nutriscan_app_sobre_components_impactsection_tsx", "target": "components_impactsection_impactsection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\ImpactSection.tsx", "source_location": "L3", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_impactsection_impactsection", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\ImpactSection.tsx", "source_location": "L21"}, {"caller_nid": "components_impactsection_impactsection", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\ImpactSection.tsx", "source_location": "L43"}, {"caller_nid": "components_impactsection_impactsection", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\ImpactSection.tsx", "source_location": "L72"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_deletebutton_tsx", "label": "DeleteButton.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\DeleteButton.tsx", "source_location": "L1"}, {"id": "components_deletebutton_deletebuttonprops", "label": "DeleteButtonProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\DeleteButton.tsx", "source_location": "L19"}, {"id": "components_deletebutton_deletebutton", "label": "DeleteButton()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\DeleteButton.tsx", "source_location": "L25"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_deletebutton_tsx", "target": "d_documents_github_nutriscan_components_ui_button_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\DeleteButton.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_deletebutton_tsx", "target": "ui_button_button", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\DeleteButton.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_deletebutton_tsx", "target": "d_documents_github_nutriscan_components_ui_alert_dialog_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\DeleteButton.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_deletebutton_tsx", "target": "ui_alert_dialog_alertdialog", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\DeleteButton.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_deletebutton_tsx", "target": "ui_alert_dialog_alertdialogaction", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\DeleteButton.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_deletebutton_tsx", "target": "ui_alert_dialog_alertdialogcancel", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\DeleteButton.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_deletebutton_tsx", "target": "ui_alert_dialog_alertdialogcontent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\DeleteButton.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_deletebutton_tsx", "target": "ui_alert_dialog_alertdialogdescription", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\DeleteButton.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_deletebutton_tsx", "target": "ui_alert_dialog_alertdialogfooter", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\DeleteButton.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_deletebutton_tsx", "target": "ui_alert_dialog_alertdialogheader", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\DeleteButton.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_deletebutton_tsx", "target": "ui_alert_dialog_alertdialogtitle", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\DeleteButton.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_deletebutton_tsx", "target": "ui_alert_dialog_alertdialogtrigger", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\DeleteButton.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_deletebutton_tsx", "target": "d_documents_github_nutriscan_app_actions_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\DeleteButton.tsx", "source_location": "L14", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_deletebutton_tsx", "target": "app_actions_deletarLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_pagetitle_tsx", "label": "PageTitle.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\PageTitle.tsx", "source_location": "L1"}, {"id": "components_pagetitle_pagetitle", "label": "PageTitle()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\PageTitle.tsx", "source_location": "L4"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_pagetitle_tsx", "target": "framer_motion", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\PageTitle.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_pagetitle_tsx", "target": "components_pagetitle_pagetitle", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\PageTitle.tsx", "source_location": "L4", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_components_ui_skeleton_tsx", "label": "skeleton.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\skeleton.tsx", "source_location": "L1"}, {"id": "ui_skeleton_skeleton", "label": "Skeleton()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\skeleton.tsx", "source_location": "L3"}], "edges": [{"source": "d_documents_github_nutriscan_components_ui_skeleton_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\skeleton.tsx", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_skeleton_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\skeleton.tsx", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_skeleton_tsx", "target": "ui_skeleton_skeleton", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\skeleton.tsx", "source_location": "L3", "weight": 1.0}], "raw_calls": [{"caller_nid": "ui_skeleton_skeleton", "callee": "cn", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\skeleton.tsx", "source_location": "L9"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_lib_openfoodfactsapi_ts", "label": "openFoodFactsApi.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L1"}, {"id": "lib_openfoodfactsapi_product", "label": "Product", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L6"}, {"id": "lib_openfoodfactsapi_searchresult", "label": "SearchResult", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L34"}, {"id": "lib_openfoodfactsapi_config", "label": "CONFIG", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L43"}, {"id": "lib_openfoodfactsapi_nutriscanerror", "label": "NutriScanError", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L54"}, {"id": "lib_openfoodfactsapi_nutriscanerror_constructor", "label": ".constructor()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L55"}, {"id": "lib_openfoodfactsapi_makeapirequest", "label": "makeApiRequest()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L64"}, {"id": "lib_openfoodfactsapi_searchbybarcode", "label": "searchByBarcode()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L99"}, {"id": "lib_openfoodfactsapi_searchbyname", "label": "searchByName()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L118"}, {"id": "lib_openfoodfactsapi_fetchallresults", "label": "fetchAllResults()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L138"}, {"id": "lib_openfoodfactsapi_sortproducts", "label": "sortProducts()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L175"}, {"id": "lib_openfoodfactsapi_calculatecompletenessscore", "label": "calculateCompletenessScore()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L218"}, {"id": "lib_openfoodfactsapi_getgradevalue", "label": "getGradeValue()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L231"}, {"id": "lib_openfoodfactsapi_formatnutritiondata", "label": "formatNutritionData()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L239"}, {"id": "lib_openfoodfactsapi_detectsearchtype", "label": "detectSearchType()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L264"}, {"id": "lib_openfoodfactsapi_isvalidbarcode", "label": "isValidBarcode()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L269"}], "edges": [{"source": "d_documents_github_nutriscan_lib_openfoodfactsapi_ts", "target": "lib_openfoodfactsapi_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_openfoodfactsapi_ts", "target": "lib_openfoodfactsapi_searchresult", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L34", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_openfoodfactsapi_ts", "target": "lib_openfoodfactsapi_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L43", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_openfoodfactsapi_ts", "target": "lib_openfoodfactsapi_nutriscanerror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L54", "weight": 1.0}, {"source": "lib_openfoodfactsapi_nutriscanerror", "target": "lib_openfoodfactsapi_nutriscanerror_constructor", "relation": "method", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L55", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_openfoodfactsapi_ts", "target": "lib_openfoodfactsapi_makeapirequest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\openFoodFactsApi.ts", "source_location": "L64", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_openfoodfactsapLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_lib_cachemanager_ts", "label": "cacheManager.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L1"}, {"id": "lib_cachemanager_filtervalue", "label": "FilterValue", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L9"}, {"id": "lib_cachemanager_filterrecord", "label": "FilterRecord", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L17"}, {"id": "lib_cachemanager_cachedsearch", "label": "CachedSearch", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L19"}, {"id": "lib_cachemanager_cacheconfig", "label": "CacheConfig", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L29"}, {"id": "lib_cachemanager_default_config", "label": "DEFAULT_CONFIG", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L35"}, {"id": "lib_cachemanager_cachemanager", "label": "CacheManager", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L41"}, {"id": "lib_cachemanager_cachemanager_constructor", "label": ".constructor()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L46"}, {"id": "lib_cachemanager_cachemanager_generatecachekey", "label": ".generateCacheKey()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L53"}, {"id": "lib_cachemanager_cachemanager_generatesearchid", "label": ".generateSearchId()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L66"}, {"id": "lib_cachemanager_cachemanager_iscachevalid", "label": ".isCacheValid()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L73"}, {"id": "lib_cachemanager_cachemanager_getcacheindex", "label": ".getCacheIndex()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L80"}, {"id": "lib_cachemanager_cachemanager_updatecacheindex", "label": ".updateCacheIndex()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L92"}, {"id": "lib_cachemanager_cachemanager_getobjectsize", "label": ".getObjectSize()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L103"}, {"id": "lib_cachemanager_cachemanager_cleanupoldcaches", "label": ".cleanupOldCaches()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L110"}, {"id": "lib_cachemanager_cachemanager_savesearch", "label": ".saveSearch()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L158"}, {"id": "lib_cachemanager_cachemanager_getsearch", "label": ".getSearch()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L210"}, {"id": "lib_cachemanager_cachemanager_removesearch", "label": ".removeSearch()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L238"}, {"id": "lib_cachemanager_cachemanager_clearallcaches", "label": ".clearAllCaches()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L261"}, {"id": "lib_cachemanager_cachemanager_getcachestats", "label": ".getCacheStats()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L274"}, {"id": "lib_cachemanager_cachemanager_hasspacefordata", "label": ".hasSpaceForData()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L324"}, {"id": "lib_cachemanager_usecachemanager", "label": "useCacheManager()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L338"}], "edges": [{"source": "d_documents_github_nutriscan_lib_cachemanager_ts", "target": "d_documents_github_nutriscan_lib_openfoodfactsapi_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_cachemanager_ts", "target": "lib_openfoodfactsapi_product", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\cacheManager.ts", "source_location": "Line truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_filterbadge_tsx", "label": "FilterBadge.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterBadge.tsx", "source_location": "L1"}, {"id": "components_filterbadge_filterbadgeprops", "label": "FilterBadgeProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterBadge.tsx", "source_location": "L7"}, {"id": "components_filterbadge_filterbadge", "label": "FilterBadge()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterBadge.tsx", "source_location": "L14"}, {"id": "components_filterbadge_filterbadgesprops", "label": "FilterBadgesProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterBadge.tsx", "source_location": "L40"}, {"id": "components_filterbadge_filterbadges", "label": "FilterBadges()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterBadge.tsx", "source_location": "L46"}, {"id": "components_filterbadge_getfilterlabel", "label": "getFilterLabel()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterBadge.tsx", "source_location": "L127"}, {"id": "components_filterbadge_getfiltercolor", "label": "getFilterColor()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterBadge.tsx", "source_location": "L146"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_filterbadge_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterBadge.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filterbadge_tsx", "target": "d_documents_github_nutriscan_components_ui_badge_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterBadge.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filterbadge_tsx", "target": "ui_badge_badge", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterBadge.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filterbadge_tsx", "target": "d_documents_github_nutriscan_components_ui_button_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterBadge.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filterbadge_tsx", "target": "ui_button_button", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterBadge.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filterbadge_tsx", "target": "components_filterbadge_filterbadgeprops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterBadge.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filterbadge_tsx", "target": "components_filterbadge_filterbadge", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterBadge.tsx", "source_location": "L14", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filterbadge_tsx", "target": "components_filterbadge_filterbadgesprops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterBadge.tsx", "source_location": "L40", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filterbadge_tsx", "target": "components_filterbadge_filterbadges", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterBadge.tsx", "source_location": "L46", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filterbadge_tsx", "target": "components_filterbadge_getfilterlabel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterBadge.tsx", "source_location": "L127", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filterbadge_tsx", "target": "components_filterbadge_getfiltercolor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterBadge.tsx", "source_location": "L146", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_filterbadge_filterbadges", "callee": "filtLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_sobre_components_ctasection_tsx", "label": "CTASection.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\CTASection.tsx", "source_location": "L1"}, {"id": "components_ctasection_ctasection", "label": "CTASection()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\CTASection.tsx", "source_location": "L6"}], "edges": [{"source": "d_documents_github_nutriscan_app_sobre_components_ctasection_tsx", "target": "link", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\CTASection.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_sobre_components_ctasection_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\CTASection.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_sobre_components_ctasection_tsx", "target": "components_ctasection_ctasection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\CTASection.tsx", "source_location": "L6", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_ctasection_ctasection", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\CTASection.tsx", "source_location": "L60"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_landing_persuasivecta_tsx", "label": "PersuasiveCTA.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\PersuasiveCTA.tsx", "source_location": "L1"}, {"id": "landing_persuasivecta_persuasivecta", "label": "PersuasiveCTA()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\PersuasiveCTA.tsx", "source_location": "L9"}, {"id": "landing_persuasivecta_arrowright", "label": "ArrowRight()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\PersuasiveCTA.tsx", "source_location": "L132"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_landing_persuasivecta_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\PersuasiveCTA.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_persuasivecta_tsx", "target": "navigation", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\PersuasiveCTA.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_persuasivecta_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\PersuasiveCTA.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_persuasivecta_tsx", "target": "d_documents_github_nutriscan_hooks_use_search_logic_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\PersuasiveCTA.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_persuasivecta_tsx", "target": "hooks_use_search_logic_usesearchlogic", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\PersuasiveCTA.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_persuasivecta_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\PersuasiveCTA.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_persuasivecta_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\PersuasiveCTA.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_persuasivecta_tsx", "target": "landing_persuasivecta_persuasivecta", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\PersuasiveCTA.tsx", "source_location": "L9", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_landing_persuasivecta_tsx", "target": "landing_persuasivecta_arrowright", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\PersuasiveCTA.tsx", "source_location": "L132", "weight": 1.0}], "raw_calls": [{"caller_nid": "landing_persuasivecta_persuasivecta", "callee": "useRouter", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\PersuasiveCTA.tsx", "source_location": "L10"}, {"caller_nid": "landing_persuasivecta_persuasivecta", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\PersuasiveCTA.tsx", "source_location": "L11"}, {"caller_nid": "landing_persuasivecta_persuasivecta", "callee": "useSearchLogic", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\PersuasiveCTA.tsx", "source_location": "L12"}, {"caller_nid": "landing_persuasivecta_persuasivecta", "callee": "cn", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\PersuasiveCTA.tsx", "source_location": "L102"}, {"caller_nid": "landing_persuasivecta_persuasivecta", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\landing\\PersuasiveCTA.tsx", "source_location": "L115"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_cardlist_tsx", "label": "CardList.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CardList.tsx", "source_location": "L1"}, {"id": "components_cardlist_produto", "label": "Produto", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CardList.tsx", "source_location": "L4"}, {"id": "components_cardlist_cardlistprops", "label": "CardListProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CardList.tsx", "source_location": "L15"}, {"id": "components_cardlist_cardlist", "label": "CardList()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CardList.tsx", "source_location": "L19"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_cardlist_tsx", "target": "d_documents_github_nutriscan_app_actions_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CardList.tsx", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_cardlist_tsx", "target": "app_actions_listarprodutos", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CardList.tsx", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_cardlist_tsx", "target": "d_documents_github_nutriscan_app_components_listaproductcard_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CardList.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_cardlist_tsx", "target": "components_listaproductcard_listaproductcard", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CardList.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_cardlist_tsx", "target": "components_cardlist_produto", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CardList.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_cardlist_tsx", "target": "components_cardlist_cardlistprops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CardList.tsx", "source_location": "L15", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_cardlist_tsx", "target": "components_cardlist_cardlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CardList.tsx", "source_location": "L19", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_cardlist_cardlist", "callee": "listarProdutos", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CardList.tsx", "source_location": "L20"}, {"caller_nid": "components_cardlist_cardlist", "callee": "filter", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CardList.tsx", "source_location": "L30"}, {"caller_nid": "components_cardlist_cardlist", "callee": "filter", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CardList.tsx", "source_location": "L31"}, {"caller_nid": "components_cardlist_cardlist", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CardList.tsx", "source_location": "L38"}, {"caller_nid": "components_cardlist_cardlist", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CardList.tsx", "source_location": "L54"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_lib_geolocation_ts", "label": "geolocation.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L1"}, {"id": "lib_geolocation_countryinfo", "label": "CountryInfo", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L6"}, {"id": "lib_geolocation_iscachevalid", "label": "isCacheValid()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L18"}, {"id": "lib_geolocation_getcachedcountry", "label": "getCachedCountry()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L35"}, {"id": "lib_geolocation_savetocache", "label": "saveToCache()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L52"}, {"id": "lib_geolocation_detectusercountry", "label": "detectUserCountry()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L74"}, {"id": "lib_geolocation_clearcountrycache", "label": "clearCountryCache()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L115"}, {"id": "lib_geolocation_getcurrentcountry", "label": "getCurrentCountry()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L124"}, {"id": "lib_geolocation_isbrazil", "label": "isBrazil()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L134"}, {"id": "lib_geolocation_getcountrycodeforapi", "label": "getCountryCodeForAPI()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L142"}], "edges": [{"source": "d_documents_github_nutriscan_lib_geolocation_ts", "target": "lib_geolocation_countryinfo", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_geolocation_ts", "target": "lib_geolocation_iscachevalid", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L18", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_geolocation_ts", "target": "lib_geolocation_getcachedcountry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L35", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_geolocation_ts", "target": "lib_geolocation_savetocache", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L52", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_geolocation_ts", "target": "lib_geolocation_detectusercountry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L74", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_geolocation_ts", "target": "lib_geolocation_clearcountrycache", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L115", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_geolocation_ts", "target": "lib_geolocation_getcurrentcountry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L124", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_geolocation_ts", "target": "lib_geolocation_isbrazil", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L134", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_geolocation_ts", "target": "lib_geolocation_getcountrycodeforapi", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L142", "weight": 1.0}, {"source": "lib_geolocation_detectusercountry", "target": "lib_geolocation_iscachevalid", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L78", "weight": 1.0}, {"source": "lib_geolocation_detectusercountry", "target": "lib_geolocation_getcachedcountry", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\geolocation.ts", "source_location": "L79", "weight": 1.0}, {"source": "lib_geolocation_detectusercountry", "target": "lib_geLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_productcard_tsx", "label": "ProductCard.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L1"}, {"id": "components_productcard_productcardprops", "label": "ProductCardProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L10"}, {"id": "components_productcard_nutri_grade_class", "label": "NUTRI_GRADE_CLASS", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L18"}, {"id": "components_productcard_getverdict", "label": "getVerdict()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L22"}, {"id": "components_productcard_getverdictdotbg", "label": "getVerdictDotBg()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L28"}, {"id": "components_productcard_getimageurl", "label": "getImageUrl()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L34"}, {"id": "components_productcard_nutriletter", "label": "NutriLetter()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L45"}, {"id": "components_productcard_verdictdot", "label": "VerdictDot()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L60"}, {"id": "components_productcard_mobilecard", "label": "MobileCard()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L75"}, {"id": "components_productcard_defaultcard", "label": "DefaultCard()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L152"}, {"id": "components_productcard_productcard", "label": "ProductCard()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L289"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_productcard_tsx", "target": "link", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productcard_tsx", "target": "d_documents_github_nutriscan_components_optimizedimage_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productcard_tsx", "target": "components_optimizedimage_optimizedimage", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productcard_tsx", "target": "d_documents_github_nutriscan_lib_openfoodfactsapi_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productcard_tsx", "target": "lib_openfoodfactsapi_product", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productcard_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productcard_tsx", "target": "d_documents_github_nutriscan_lib_openfoodfactsapi_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productcard_tsx", "target": "lib_openfoodfactsapi_formatnutritiondata", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductCard.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productcard_tsx", "target": "d_documenLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_hooks_use_search_logic_ts", "label": "use-search-logic.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-search-logic.ts", "source_location": "L1"}, {"id": "hooks_use_search_logic_searchtype", "label": "SearchType", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-search-logic.ts", "source_location": "L7"}, {"id": "hooks_use_search_logic_usesearchlogic", "label": "useSearchLogic()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-search-logic.ts", "source_location": "L9"}], "edges": [{"source": "d_documents_github_nutriscan_hooks_use_search_logic_ts", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-search-logic.ts", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_use_search_logic_ts", "target": "d_documents_github_nutriscan_lib_openfoodfactsapi_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-search-logic.ts", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_use_search_logic_ts", "target": "lib_openfoodfactsapi_detectsearchtype", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-search-logic.ts", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_use_search_logic_ts", "target": "lib_openfoodfactsapi_isvalidbarcode", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-search-logic.ts", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_use_search_logic_ts", "target": "hooks_use_search_logic_searchtype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-search-logic.ts", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_use_search_logic_ts", "target": "hooks_use_search_logic_usesearchlogic", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-search-logic.ts", "source_location": "L9", "weight": 1.0}], "raw_calls": [{"caller_nid": "hooks_use_search_logic_usesearchlogic", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-search-logic.ts", "source_location": "L10"}, {"caller_nid": "hooks_use_search_logic_usesearchlogic", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-search-logic.ts", "source_location": "L11"}, {"caller_nid": "hooks_use_search_logic_usesearchlogic", "callee": "useEffect", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-search-logic.ts", "source_location": "L13"}, {"caller_nid": "hooks_use_search_logic_usesearchlogic", "callee": "isValidBarcode", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-search-logic.ts", "source_location": "L22"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_components_ui_alert_dialog_tsx", "label": "alert-dialog.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L1"}, {"id": "ui_alert_dialog_alertdialogoverlay", "label": "AlertDialogOverlay", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L15"}, {"id": "ui_alert_dialog_alertdialogcontent", "label": "AlertDialogContent", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L30"}, {"id": "ui_alert_dialog_alertdialogheader", "label": "AlertDialogHeader()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L48"}, {"id": "ui_alert_dialog_alertdialogfooter", "label": "AlertDialogFooter()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L62"}, {"id": "ui_alert_dialog_alertdialogtitle", "label": "AlertDialogTitle", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L76"}, {"id": "ui_alert_dialog_alertdialogdescription", "label": "AlertDialogDescription", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L88"}, {"id": "ui_alert_dialog_alertdialogaction", "label": "AlertDialogAction", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L101"}, {"id": "ui_alert_dialog_alertdialogcancel", "label": "AlertDialogCancel", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L113"}], "edges": [{"source": "d_documents_github_nutriscan_components_ui_alert_dialog_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_alert_dialog_tsx", "target": "react_alert_dialog", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_alert_dialog_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_alert_dialog_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_alert_dialog_tsx", "target": "d_documents_github_nutriscan_components_ui_button_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_alert_dialog_tsx", "target": "ui_button_buttonvariants", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_alert_dialog_tsx", "target": "ui_alert_dialog_alertdialogoverlay", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L15", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_alert_dialog_tsx", "target": "ui_alert_dialog_alertdialogcontent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L30", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_alert_dialog_tsx", "target": "ui_alert_dialog_alertdialogheader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L48", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_alert_dialog_tsx", "target": "ui_alert_dialog_alertdialogfooter", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\alert-dialog.tsx", "source_location": "L62", "weightLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_nutritionchart_tsx", "label": "NutritionChart.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionChart.tsx", "source_location": "L1"}, {"id": "components_nutritionchart_nutritiondata", "label": "NutritionData", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionChart.tsx", "source_location": "L6"}, {"id": "components_nutritionchart_nutritionchartprops", "label": "NutritionChartProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionChart.tsx", "source_location": "L16"}, {"id": "components_nutritionchart_nutritionchart", "label": "NutritionChart()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionChart.tsx", "source_location": "L21"}, {"id": "components_nutritionchart_nutritionsummaryprops", "label": "NutritionSummaryProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionChart.tsx", "source_location": "L165"}, {"id": "components_nutritionchart_nutritionsummary", "label": "NutritionSummary()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionChart.tsx", "source_location": "L170"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_nutritionchart_tsx", "target": "d_documents_github_nutriscan_components_ui_card_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionChart.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionchart_tsx", "target": "ui_card_card", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionChart.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionchart_tsx", "target": "ui_card_cardcontent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionChart.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionchart_tsx", "target": "ui_card_cardheader", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionChart.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionchart_tsx", "target": "ui_card_cardtitle", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionChart.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionchart_tsx", "target": "d_documents_github_nutriscan_components_ui_badge_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionChart.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionchart_tsx", "target": "ui_badge_badge", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionChart.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionchart_tsx", "target": "components_nutritionchart_nutritiondata", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionChart.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionchart_tsx", "target": "components_nutritionchart_nutritionchartprops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionChart.tsx", "source_location": "L16", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionchart_tsx", "target": "components_nutritionchart_nutritionchart", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionChart.tsx", "source_location": "L21", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionchart_tsx", "target": "components_nutritionchart_nutritionsummaryprops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutritionChart.tsx", "source_location": "L165", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutritionchart_tsx", "target": "components_nutritionchart_nutritionsummary", "relation": "coLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_components_ui_slider_tsx", "label": "slider.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\slider.tsx", "source_location": "L1"}, {"id": "ui_slider_slider", "label": "Slider", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\slider.tsx", "source_location": "L8"}], "edges": [{"source": "d_documents_github_nutriscan_components_ui_slider_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\slider.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_slider_tsx", "target": "react_slider", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\slider.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_slider_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\slider.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_slider_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\slider.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_slider_tsx", "target": "ui_slider_slider", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\slider.tsx", "source_location": "L8", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_sitemap_ts", "label": "sitemap.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sitemap.ts", "source_location": "L1"}, {"id": "app_sitemap_sitemap", "label": "sitemap()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sitemap.ts", "source_location": "L3"}], "edges": [{"source": "d_documents_github_nutriscan_app_sitemap_ts", "target": "next", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sitemap.ts", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_sitemap_ts", "target": "app_sitemap_sitemap", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sitemap.ts", "source_location": "L3", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_components_ui_label_tsx", "label": "label.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\label.tsx", "source_location": "L1"}, {"id": "ui_label_labelvariants", "label": "labelVariants", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\label.tsx", "source_location": "L9"}, {"id": "ui_label_label", "label": "Label", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\label.tsx", "source_location": "L13"}], "edges": [{"source": "d_documents_github_nutriscan_components_ui_label_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\label.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_label_tsx", "target": "react_label", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\label.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_label_tsx", "target": "class_variance_authority", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\label.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_label_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\label.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_label_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\label.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_label_tsx", "target": "ui_label_labelvariants", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\label.tsx", "source_location": "L9", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_label_tsx", "target": "ui_label_label", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\label.tsx", "source_location": "L13", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_page_tsx", "label": "page.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\page.tsx", "source_location": "L1"}, {"id": "app_page_home", "label": "Home()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\page.tsx", "source_location": "L9"}], "edges": [{"source": "d_documents_github_nutriscan_app_page_tsx", "target": "d_documents_github_nutriscan_app_components_header_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\page.tsx", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_page_tsx", "target": "components_header_header", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\page.tsx", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_page_tsx", "target": "d_documents_github_nutriscan_app_components_footer_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\page.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_page_tsx", "target": "components_footer_footer", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\page.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_page_tsx", "target": "d_documents_github_nutriscan_app_components_landing_hero_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\page.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_page_tsx", "target": "landing_hero_hero", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\page.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_page_tsx", "target": "d_documents_github_nutriscan_app_components_landing_features_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\page.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_page_tsx", "target": "landing_features_features", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\page.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_page_tsx", "target": "d_documents_github_nutriscan_app_components_landing_howitworks_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\page.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_page_tsx", "target": "landing_howitworks_howitworks", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\page.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_page_tsx", "target": "d_documents_github_nutriscan_app_components_landing_donationsection_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\page.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_page_tsx", "target": "landing_donationsection_donationsection", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\page.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_page_tsx", "target": "d_documents_github_nutriscan_app_components_landing_trustbadges_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\page.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_page_tsx", "target": "landing_trustbadges_trustbadges", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\page.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_page_tsx", "target": "app_page_home", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\page.tsx", "source_location": "L9", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_productskeleton_tsx", "label": "ProductSkeleton.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L1"}, {"id": "components_productskeleton_skeletonprops", "label": "SkeletonProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L4"}, {"id": "components_productskeleton_skeleton", "label": "Skeleton()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L6"}, {"id": "components_productskeleton_productskeleton", "label": "ProductSkeleton()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L17"}, {"id": "components_productskeleton_productcardskeleton", "label": "ProductCardSkeleton()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L83"}, {"id": "components_productskeleton_nutritionbarskeleton", "label": "NutritionBarSkeleton()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L104"}, {"id": "components_productskeleton_badgeskeleton", "label": "BadgeSkeleton()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L116"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_productskeleton_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productskeleton_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productskeleton_tsx", "target": "components_productskeleton_skeletonprops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productskeleton_tsx", "target": "components_productskeleton_skeleton", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productskeleton_tsx", "target": "components_productskeleton_productskeleton", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L17", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productskeleton_tsx", "target": "components_productskeleton_productcardskeleton", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L83", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productskeleton_tsx", "target": "components_productskeleton_nutritionbarskeleton", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L104", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_productskeleton_tsx", "target": "components_productskeleton_badgeskeleton", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L116", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_productskeleton_skeleton", "callee": "cn", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L9"}, {"caller_nid": "components_productskeleton_productskeleton", "callee": "cn", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L19"}, {"caller_nid": "components_productskeleton_productskeleton", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L38"}, {"caller_nid": "components_productskeleton_productskeleton", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ProductSkeleton.tsx", "source_location": "L50"}, {"caLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_filtersidebar_tsx", "label": "FilterSidebar.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterSidebar.tsx", "source_location": "L1"}, {"id": "components_filtersidebar_filtersidebarprops", "label": "FilterSidebarProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterSidebar.tsx", "source_location": "L43"}, {"id": "components_filtersidebar_filtersidebar", "label": "FilterSidebar()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterSidebar.tsx", "source_location": "L60"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_filtersidebar_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterSidebar.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filtersidebar_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterSidebar.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filtersidebar_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterSidebar.tsx", "source_location": "L18", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filtersidebar_tsx", "target": "d_documents_github_nutriscan_components_ui_button_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterSidebar.tsx", "source_location": "L19", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filtersidebar_tsx", "target": "ui_button_button", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterSidebar.tsx", "source_location": "L19", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filtersidebar_tsx", "target": "d_documents_github_nutriscan_components_ui_input_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterSidebar.tsx", "source_location": "L20", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filtersidebar_tsx", "target": "ui_input_input", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterSidebar.tsx", "source_location": "L20", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filtersidebar_tsx", "target": "d_documents_github_nutriscan_components_ui_checkbox_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterSidebar.tsx", "source_location": "L21", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filtersidebar_tsx", "target": "ui_checkbox_checkbox", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterSidebar.tsx", "source_location": "L21", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filtersidebar_tsx", "target": "d_documents_github_nutriscan_components_ui_radio_group_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterSidebar.tsx", "source_location": "L22", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filtersidebar_tsx", "target": "ui_radio_group_radiogroup", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterSidebar.tsx", "source_location": "L22", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filtersidebar_tsx", "target": "ui_radio_group_radiogroupitem", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterSidebar.tsx", "source_location": "L22", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filtersidebar_tsx", "target": "d_documents_github_nutriscan_components_ui_switch_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\FilterSidebar.tsx", "source_location": "L23", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_filtersidebar_tsx", "target": "ui_switch_Line truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_items_tsx", "label": "items.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\items.tsx", "source_location": "L1"}, {"id": "components_items_items", "label": "Items()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\items.tsx", "source_location": "L3"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_items_tsx", "target": "d_documents_github_nutriscan_lib_prisma_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\items.tsx", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_items_tsx", "target": "components_items_items", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\items.tsx", "source_location": "L3", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_items_items", "callee": "findMany", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\items.tsx", "source_location": "L4"}, {"caller_nid": "components_items_items", "callee": "log", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\items.tsx", "source_location": "L5"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_searchbar_tsx", "label": "SearchBar.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L1"}, {"id": "components_searchbar_searchbarprops", "label": "SearchBarProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L9"}, {"id": "components_searchbar_searchbar", "label": "SearchBar()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L16"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_searchbar_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_searchbar_tsx", "target": "navigation", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_searchbar_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_searchbar_tsx", "target": "d_documents_github_nutriscan_lib_openfoodfactsapi_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_searchbar_tsx", "target": "lib_openfoodfactsapi_detectsearchtype", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_searchbar_tsx", "target": "lib_openfoodfactsapi_isvalidbarcode", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_searchbar_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_searchbar_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_searchbar_tsx", "target": "components_searchbar_searchbarprops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L9", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_searchbar_tsx", "target": "components_searchbar_searchbar", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L16", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_searchbar_searchbar", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L22"}, {"caller_nid": "components_searchbar_searchbar", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L23"}, {"caller_nid": "components_searchbar_searchbar", "callee": "useRouter", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L24"}, {"caller_nid": "components_searchbar_searchbar", "callee": "useEffect", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L26"}, {"caller_nid": "components_searchbar_searchbar", "callee": "cn", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L58"}, {"caller_nid": "components_searchbar_searchbar", "callee": "cn", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\SearchBar.tsx", "source_location": "L67"}, {"caller_nid": "components_searchbar_searchbar",Line truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_sw_js", "label": "sw.js", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\sw.js", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_errorboundary_tsx", "label": "ErrorBoundary.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L1"}, {"id": "components_errorboundary_props", "label": "Props", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L5"}, {"id": "components_errorboundary_state", "label": "State", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L10"}, {"id": "components_errorboundary_errorboundary", "label": "ErrorBoundary", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L18"}, {"id": "components_errorboundary_errorboundary_constructor", "label": ".constructor()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L19"}, {"id": "components_errorboundary_errorboundary_getderivedstatefromerror", "label": ".getDerivedStateFromError()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L24"}, {"id": "components_errorboundary_errorboundary_componentdidcatch", "label": ".componentDidCatch()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L28"}, {"id": "components_errorboundary_errorboundary_render", "label": ".render()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L47"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_errorboundary_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_errorboundary_tsx", "target": "components_errorboundary_props", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_errorboundary_tsx", "target": "components_errorboundary_state", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L10", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_errorboundary_tsx", "target": "components_errorboundary_errorboundary", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L18", "weight": 1.0}, {"source": "components_errorboundary_errorboundary", "target": "components_errorboundary_errorboundary_constructor", "relation": "method", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L19", "weight": 1.0}, {"source": "components_errorboundary_errorboundary", "target": "components_errorboundary_errorboundary_getderivedstatefromerror", "relation": "method", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L24", "weight": 1.0}, {"source": "components_errorboundary_errorboundary", "target": "components_errorboundary_errorboundary_componentdidcatch", "relation": "method", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L28", "weight": 1.0}, {"source": "components_errorboundary_errorboundary", "target": "components_errorboundary_errorboundary_render", "relation": "method", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L47", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_errorboundary_errorboundary_constructor", "callee": "super", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L20"}, {"caller_nid": "components_errorboundary_errorboundary_componentdidcatch", "callee": "track", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L32"}, {"caller_nid": "components_errorboundary_errorboundary_componentdidcatch", "callee": "toISOString", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\ErrorBoundary.tsx", "source_location": "L37"}, {"caller_nid": "components_errorboundary_errorboundary_componentdidcatch", "callee": "error", "is_member_call": Line truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_lib_jsoncachemanager_ts", "label": "jsonCacheManager.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L1"}, {"id": "lib_jsoncachemanager_jsoncachedata", "label": "JsonCacheData", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L12"}, {"id": "lib_jsoncachemanager_jsoncachemanager", "label": "JsonCacheManager", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L18"}, {"id": "lib_jsoncachemanager_jsoncachemanager_constructor", "label": ".constructor()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L23"}, {"id": "lib_jsoncachemanager_jsoncachemanager_getinstance", "label": ".getInstance()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L46"}, {"id": "lib_jsoncachemanager_jsoncachemanager_loadcache", "label": ".loadCache()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L56"}, {"id": "lib_jsoncachemanager_jsoncachemanager_savecache", "label": ".saveCache()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L89"}, {"id": "lib_jsoncachemanager_jsoncachemanager_converttocachedproduct", "label": ".convertToCachedProduct()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L111"}, {"id": "lib_jsoncachemanager_jsoncachemanager_converttoapiproduct", "label": ".convertToAPIProduct()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L125"}, {"id": "lib_jsoncachemanager_jsoncachemanager_mergeproductdata", "label": ".mergeProductData()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L134"}, {"id": "lib_jsoncachemanager_jsoncachemanager_calculaterelevancescore", "label": ".calculateRelevanceScore()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L152"}, {"id": "lib_jsoncachemanager_jsoncachemanager_getproductbycode", "label": ".getProductByCode()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L188"}, {"id": "lib_jsoncachemanager_jsoncachemanager_searchproducts", "label": ".searchProducts()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L211"}, {"id": "lib_jsoncachemanager_jsoncachemanager_saveproduct", "label": ".saveProduct()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L289"}, {"id": "lib_jsoncachemanager_jsoncachemanager_saveproducts", "label": ".saveProducts()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L327"}, {"id": "lib_jsoncachemanager_jsoncachemanager_getstoragestats", "label": ".getStorageStats()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L384"}, {"id": "lib_jsoncachemanager_jsoncachemanager_clearcache", "label": ".clearCache()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L431"}, {"id": "lib_jsoncachemanager_jsoncachemanager_isinitialized", "label": ".isInitialized()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L450"}], "edges": [{"source": "d_documents_github_nutriscan_lib_jsoncachemanager_ts", "target": "fs", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_jsoncachemanager_ts", "target": "fs", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_jsoncachemanager_ts", "target": "path", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\jsonCacheManager.ts", "source_location": "L8", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_jsoncachemanager_ts", "target": "d_documents_github_nutriscan_lib_openfoodfactsapi_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\GithLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_components_theme_toggle_tsx", "label": "theme-toggle.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\theme-toggle.tsx", "source_location": "L1"}, {"id": "components_theme_toggle_themetoggle", "label": "ThemeToggle()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\theme-toggle.tsx", "source_location": "L13"}], "edges": [{"source": "d_documents_github_nutriscan_components_theme_toggle_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\theme-toggle.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_theme_toggle_tsx", "target": "next_themes", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\theme-toggle.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_theme_toggle_tsx", "target": "d_documents_github_nutriscan_components_ui_button_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\theme-toggle.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_theme_toggle_tsx", "target": "ui_button_button", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\theme-toggle.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_theme_toggle_tsx", "target": "d_documents_github_nutriscan_components_ui_dropdown_menu_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\theme-toggle.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_theme_toggle_tsx", "target": "ui_dropdown_menu_dropdownmenu", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\theme-toggle.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_theme_toggle_tsx", "target": "ui_dropdown_menu_dropdownmenucontent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\theme-toggle.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_theme_toggle_tsx", "target": "ui_dropdown_menu_dropdownmenuitem", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\theme-toggle.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_theme_toggle_tsx", "target": "ui_dropdown_menu_dropdownmenutrigger", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\theme-toggle.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_theme_toggle_tsx", "target": "components_theme_toggle_themetoggle", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\theme-toggle.tsx", "source_location": "L13", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_theme_toggle_themetoggle", "callee": "useTheme", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\components\\theme-toggle.tsx", "source_location": "L14"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_sobre_components_missionsection_tsx", "label": "MissionSection.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\MissionSection.tsx", "source_location": "L1"}, {"id": "components_missionsection_mission_values", "label": "MISSION_VALUES", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\MissionSection.tsx", "source_location": "L5"}, {"id": "components_missionsection_missionsection", "label": "MissionSection()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\MissionSection.tsx", "source_location": "L26"}], "edges": [{"source": "d_documents_github_nutriscan_app_sobre_components_missionsection_tsx", "target": "image", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\MissionSection.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_sobre_components_missionsection_tsx", "target": "components_missionsection_mission_values", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\MissionSection.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_sobre_components_missionsection_tsx", "target": "components_missionsection_missionsection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\MissionSection.tsx", "source_location": "L26", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_missionsection_missionsection", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\MissionSection.tsx", "source_location": "L44"}, {"caller_nid": "components_missionsection_missionsection", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\MissionSection.tsx", "source_location": "L70"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_hooks_use_geolocation_ts", "label": "use-geolocation.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-geolocation.ts", "source_location": "L1"}, {"id": "hooks_use_geolocation_usegeolocation", "label": "useGeolocation()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-geolocation.ts", "source_location": "L6"}, {"id": "hooks_use_geolocation_setscannedcountry", "label": "setScannedCountry()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-geolocation.ts", "source_location": "L27"}], "edges": [{"source": "d_documents_github_nutriscan_hooks_use_geolocation_ts", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-geolocation.ts", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_use_geolocation_ts", "target": "d_documents_github_nutriscan_lib_geolocation_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-geolocation.ts", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_use_geolocation_ts", "target": "lib_geolocation_detectusercountry", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-geolocation.ts", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_use_geolocation_ts", "target": "hooks_use_geolocation_usegeolocation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-geolocation.ts", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_hooks_use_geolocation_ts", "target": "hooks_use_geolocation_setscannedcountry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-geolocation.ts", "source_location": "L27", "weight": 1.0}], "raw_calls": [{"caller_nid": "hooks_use_geolocation_usegeolocation", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-geolocation.ts", "source_location": "L7"}, {"caller_nid": "hooks_use_geolocation_usegeolocation", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-geolocation.ts", "source_location": "L8"}, {"caller_nid": "hooks_use_geolocation_usegeolocation", "callee": "useEffect", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\hooks\\use-geolocation.ts", "source_location": "L10"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_components_ui_badge_tsx", "label": "badge.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\badge.tsx", "source_location": "L1"}, {"id": "ui_badge_badgevariants", "label": "badgeVariants", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\badge.tsx", "source_location": "L6"}, {"id": "ui_badge_badgeprops", "label": "BadgeProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\badge.tsx", "source_location": "L26"}, {"id": "ui_badge_badge", "label": "Badge()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\badge.tsx", "source_location": "L30"}], "edges": [{"source": "d_documents_github_nutriscan_components_ui_badge_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\badge.tsx", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_badge_tsx", "target": "class_variance_authority", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\badge.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_badge_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\badge.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_badge_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\badge.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_badge_tsx", "target": "ui_badge_badgevariants", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\badge.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_badge_tsx", "target": "ui_badge_badgeprops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\badge.tsx", "source_location": "L26", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_badge_tsx", "target": "ui_badge_badge", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\badge.tsx", "source_location": "L30", "weight": 1.0}, {"source": "ui_badge_badge", "target": "ui_badge_badgevariants", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\badge.tsx", "source_location": "L32", "weight": 1.0}], "raw_calls": [{"caller_nid": "ui_badge_badge", "callee": "cn", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\badge.tsx", "source_location": "L32"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_components_ui_input_tsx", "label": "input.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\input.tsx", "source_location": "L1"}, {"id": "ui_input_input", "label": "Input", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\input.tsx", "source_location": "L5"}], "edges": [{"source": "d_documents_github_nutriscan_components_ui_input_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\input.tsx", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_input_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\input.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_input_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\input.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_input_tsx", "target": "ui_input_input", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\input.tsx", "source_location": "L5", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_nutriscorebadge_tsx", "label": "NutriScoreBadge.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutriScoreBadge.tsx", "source_location": "L1"}, {"id": "components_nutriscorebadge_nutriscorebadgeprops", "label": "NutriScoreBadgeProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutriScoreBadge.tsx", "source_location": "L5"}, {"id": "components_nutriscorebadge_grade_info", "label": "GRADE_INFO", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutriScoreBadge.tsx", "source_location": "L12"}, {"id": "components_nutriscorebadge_grade_class", "label": "GRADE_CLASS", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutriScoreBadge.tsx", "source_location": "L20"}, {"id": "components_nutriscorebadge_size_class", "label": "SIZE_CLASS", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutriScoreBadge.tsx", "source_location": "L24"}, {"id": "components_nutriscorebadge_nutriscorebadge", "label": "NutriScoreBadge()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutriScoreBadge.tsx", "source_location": "L30"}, {"id": "components_nutriscorebadge_novabadgeprops", "label": "NovaBadgeProps", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutriScoreBadge.tsx", "source_location": "L71"}, {"id": "components_nutriscorebadge_nova_info", "label": "NOVA_INFO", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutriScoreBadge.tsx", "source_location": "L78"}, {"id": "components_nutriscorebadge_novabadge", "label": "NovaBadge()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutriScoreBadge.tsx", "source_location": "L85"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_nutriscorebadge_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutriScoreBadge.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutriscorebadge_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutriScoreBadge.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutriscorebadge_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutriScoreBadge.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutriscorebadge_tsx", "target": "components_nutriscorebadge_nutriscorebadgeprops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutriScoreBadge.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutriscorebadge_tsx", "target": "components_nutriscorebadge_grade_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutriScoreBadge.tsx", "source_location": "L12", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutriscorebadge_tsx", "target": "components_nutriscorebadge_grade_class", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutriScoreBadge.tsx", "source_location": "L20", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutriscorebadge_tsx", "target": "components_nutriscorebadge_size_class", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutriScoreBadge.tsx", "source_location": "L24", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutriscorebadge_tsx", "target": "components_nutriscorebadge_nutriscorebadge", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutriScoreBadge.tsx", "source_location": "L30", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutriscorebadge_tsx", "target": "components_nutriscorebadge_novabadgeprops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\NutriScoreBadge.tsx", "source_location": "L71", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_nutriscorebadge_tsx", "target": "components_nutriscorebadge_nova_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\DLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_lib_prisma_ts", "label": "prisma.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\prisma.ts", "source_location": "L1"}, {"id": "lib_prisma_prisma", "label": "prisma", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\prisma.ts", "source_location": "L3"}], "edges": [{"source": "d_documents_github_nutriscan_lib_prisma_ts", "target": "client", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\prisma.ts", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_prisma_ts", "target": "lib_prisma_prisma", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\prisma.ts", "source_location": "L3", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_sobre_components_howitworkssection_tsx", "label": "HowItWorksSection.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\HowItWorksSection.tsx", "source_location": "L1"}, {"id": "components_howitworkssection_steps", "label": "STEPS", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\HowItWorksSection.tsx", "source_location": "L3"}, {"id": "components_howitworkssection_howitworkssection", "label": "HowItWorksSection()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\HowItWorksSection.tsx", "source_location": "L27"}], "edges": [{"source": "d_documents_github_nutriscan_app_sobre_components_howitworkssection_tsx", "target": "components_howitworkssection_steps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\HowItWorksSection.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_sobre_components_howitworkssection_tsx", "target": "components_howitworkssection_howitworkssection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\HowItWorksSection.tsx", "source_location": "L27", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_howitworkssection_howitworkssection", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\HowItWorksSection.tsx", "source_location": "L46"}, {"caller_nid": "components_howitworkssection_howitworkssection", "callee": "map", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\sobre\\components\\HowItWorksSection.tsx", "source_location": "L82"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_cacheonlyswitch_tsx", "label": "CacheOnlySwitch.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CacheOnlySwitch.tsx", "source_location": "L1"}, {"id": "components_cacheonlyswitch_cacheonlyswitch", "label": "CacheOnlySwitch()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CacheOnlySwitch.tsx", "source_location": "L8"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_cacheonlyswitch_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CacheOnlySwitch.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_cacheonlyswitch_tsx", "target": "d_documents_github_nutriscan_components_ui_switch_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CacheOnlySwitch.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_cacheonlyswitch_tsx", "target": "ui_switch_switch", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CacheOnlySwitch.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_cacheonlyswitch_tsx", "target": "d_documents_github_nutriscan_components_ui_label_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CacheOnlySwitch.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_cacheonlyswitch_tsx", "target": "ui_label_label", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CacheOnlySwitch.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_cacheonlyswitch_tsx", "target": "lucide_react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CacheOnlySwitch.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_cacheonlyswitch_tsx", "target": "components_cacheonlyswitch_cacheonlyswitch", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CacheOnlySwitch.tsx", "source_location": "L8", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_cacheonlyswitch_cacheonlyswitch", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CacheOnlySwitch.tsx", "source_location": "L9"}, {"caller_nid": "components_cacheonlyswitch_cacheonlyswitch", "callee": "useEffect", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\CacheOnlySwitch.tsx", "source_location": "L13"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_docs_resedesign_extract_js", "label": "extract.js", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\docs\\resedesign\\extract.js", "source_location": "L1"}, {"id": "resedesign_extract_fs", "label": "fs", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\docs\\resedesign\\extract.js", "source_location": "L1"}, {"id": "resedesign_extract_path", "label": "path", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\docs\\resedesign\\extract.js", "source_location": "L2"}, {"id": "resedesign_extract_html", "label": "html", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\docs\\resedesign\\extract.js", "source_location": "L3"}, {"id": "resedesign_extract_start", "label": "start", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\docs\\resedesign\\extract.js", "source_location": "L6"}, {"id": "resedesign_extract_end", "label": "end", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\docs\\resedesign\\extract.js", "source_location": "L7"}, {"id": "resedesign_extract_raw", "label": "raw", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\docs\\resedesign\\extract.js", "source_location": "L8"}, {"id": "resedesign_extract_decoded", "label": "decoded", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\docs\\resedesign\\extract.js", "source_location": "L11"}], "edges": [{"source": "d_documents_github_nutriscan_docs_resedesign_extract_js", "target": "fs", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\docs\\resedesign\\extract.js", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_docs_resedesign_extract_js", "target": "resedesign_extract_fs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\docs\\resedesign\\extract.js", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_docs_resedesign_extract_js", "target": "path", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\docs\\resedesign\\extract.js", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_docs_resedesign_extract_js", "target": "resedesign_extract_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\docs\\resedesign\\extract.js", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_docs_resedesign_extract_js", "target": "resedesign_extract_html", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\docs\\resedesign\\extract.js", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_docs_resedesign_extract_js", "target": "resedesign_extract_start", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\docs\\resedesign\\extract.js", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_docs_resedesign_extract_js", "target": "resedesign_extract_end", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\docs\\resedesign\\extract.js", "source_location": "L7", "weight": 1.0}, {"source": "d_documents_github_nutriscan_docs_resedesign_extract_js", "target": "resedesign_extract_raw", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\docs\\resedesign\\extract.js", "source_location": "L8", "weight": 1.0}, {"source": "d_documents_github_nutriscan_docs_resedesign_extract_js", "target": "resedesign_extract_decoded", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\docs\\resedesign\\extract.js", "source_location": "L11", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_lib_types_rybbit_d_ts", "label": "rybbit.d.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\types\\rybbit.d.ts", "source_location": "L1"}, {"id": "types_rybbit_d_rybbittrackevent", "label": "RybbitTrackEvent", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\types\\rybbit.d.ts", "source_location": "L6"}, {"id": "types_rybbit_d_rybbit", "label": "Rybbit", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\types\\rybbit.d.ts", "source_location": "L19"}, {"id": "types_rybbit_d_window", "label": "Window", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\types\\rybbit.d.ts", "source_location": "L24"}], "edges": [{"source": "d_documents_github_nutriscan_lib_types_rybbit_d_ts", "target": "types_rybbit_d_rybbittrackevent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\types\\rybbit.d.ts", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_types_rybbit_d_ts", "target": "types_rybbit_d_rybbit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\types\\rybbit.d.ts", "source_location": "L19", "weight": 1.0}, {"source": "d_documents_github_nutriscan_lib_types_rybbit_d_ts", "target": "types_rybbit_d_window", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\lib\\types\\rybbit.d.ts", "source_location": "L24", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_components_ui_separator_tsx", "label": "separator.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\separator.tsx", "source_location": "L1"}, {"id": "ui_separator_separator", "label": "Separator", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\separator.tsx", "source_location": "L8"}], "edges": [{"source": "d_documents_github_nutriscan_components_ui_separator_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\separator.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_separator_tsx", "target": "react_separator", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\separator.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_separator_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\separator.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_separator_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\separator.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_separator_tsx", "target": "ui_separator_separator", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\separator.tsx", "source_location": "L8", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_components_idinput_tsx", "label": "IdInput.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\IdInput.tsx", "source_location": "L1"}, {"id": "components_idinput_idinput", "label": "IdInput()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\IdInput.tsx", "source_location": "L8"}], "edges": [{"source": "d_documents_github_nutriscan_app_components_idinput_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\IdInput.tsx", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_idinput_tsx", "target": "navigation", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\IdInput.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_idinput_tsx", "target": "d_documents_github_nutriscan_components_ui_input_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\IdInput.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_idinput_tsx", "target": "ui_input_input", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\IdInput.tsx", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_idinput_tsx", "target": "d_documents_github_nutriscan_components_ui_button_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\IdInput.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_idinput_tsx", "target": "ui_button_button", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\IdInput.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_idinput_tsx", "target": "d_documents_github_nutriscan_app_actions_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\IdInput.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_idinput_tsx", "target": "app_actions_verificarlista", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\IdInput.tsx", "source_location": "L6", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_components_idinput_tsx", "target": "components_idinput_idinput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\IdInput.tsx", "source_location": "L8", "weight": 1.0}], "raw_calls": [{"caller_nid": "components_idinput_idinput", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\IdInput.tsx", "source_location": "L9"}, {"caller_nid": "components_idinput_idinput", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\IdInput.tsx", "source_location": "L10"}, {"caller_nid": "components_idinput_idinput", "callee": "useState", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\IdInput.tsx", "source_location": "L11"}, {"caller_nid": "components_idinput_idinput", "callee": "useRouter", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\components\\IdInput.tsx", "source_location": "L12"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_api_cache_sync_route_ts", "label": "route.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\cache\\sync\\route.ts", "source_location": "L1"}, {"id": "sync_route_post", "label": "POST()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\cache\\sync\\route.ts", "source_location": "L4"}], "edges": [{"source": "d_documents_github_nutriscan_app_api_cache_sync_route_ts", "target": "server", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\cache\\sync\\route.ts", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_api_cache_sync_route_ts", "target": "d_documents_github_nutriscan_lib_jsoncachemanager_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\cache\\sync\\route.ts", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_api_cache_sync_route_ts", "target": "lib_jsoncachemanager_jsoncachemanager", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\cache\\sync\\route.ts", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_api_cache_sync_route_ts", "target": "sync_route_post", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\cache\\sync\\route.ts", "source_location": "L4", "weight": 1.0}], "raw_calls": [{"caller_nid": "sync_route_post", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\cache\\sync\\route.ts", "source_location": "L6"}, {"caller_nid": "sync_route_post", "callee": "isArray", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\cache\\sync\\route.ts", "source_location": "L8"}, {"caller_nid": "sync_route_post", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\cache\\sync\\route.ts", "source_location": "L9"}, {"caller_nid": "sync_route_post", "callee": "saveProducts", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\cache\\sync\\route.ts", "source_location": "L16"}, {"caller_nid": "sync_route_post", "callee": "log", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\cache\\sync\\route.ts", "source_location": "L18"}, {"caller_nid": "sync_route_post", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\cache\\sync\\route.ts", "source_location": "L20"}, {"caller_nid": "sync_route_post", "callee": "error", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\cache\\sync\\route.ts", "source_location": "L26"}, {"caller_nid": "sync_route_post", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\cache\\sync\\route.ts", "source_location": "L27"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_robots_ts", "label": "robots.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\robots.ts", "source_location": "L1"}, {"id": "app_robots_robots", "label": "robots()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\robots.ts", "source_location": "L3"}], "edges": [{"source": "d_documents_github_nutriscan_app_robots_ts", "target": "next", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\robots.ts", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_robots_ts", "target": "app_robots_robots", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\robots.ts", "source_location": "L3", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_app_api_search_route_ts", "label": "route.ts", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L1"}, {"id": "search_route_get", "label": "GET()", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L8"}], "edges": [{"source": "d_documents_github_nutriscan_app_api_search_route_ts", "target": "server", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_api_search_route_ts", "target": "d_documents_github_nutriscan_lib_jsoncachemanager_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_api_search_route_ts", "target": "lib_jsoncachemanager_jsoncachemanager", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L2", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_api_search_route_ts", "target": "d_documents_github_nutriscan_lib_openfoodfactsapi_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_api_search_route_ts", "target": "lib_openfoodfactsapi_product", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_api_search_route_ts", "target": "d_documents_github_nutriscan_lib_searchutils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_api_search_route_ts", "target": "lib_searchutils_sortbyrelevance", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L4", "weight": 1.0}, {"source": "d_documents_github_nutriscan_app_api_search_route_ts", "target": "search_route_get", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L8", "weight": 1.0}], "raw_calls": [{"caller_nid": "search_route_get", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L17"}, {"caller_nid": "search_route_get", "callee": "parseInt", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L24"}, {"caller_nid": "search_route_get", "callee": "parseInt", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L25"}, {"caller_nid": "search_route_get", "callee": "isNaN", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L27"}, {"caller_nid": "search_route_get", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L28"}, {"caller_nid": "search_route_get", "callee": "isNaN", "is_member_call": false, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L34"}, {"caller_nid": "search_route_get", "callee": "json", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L35"}, {"caller_nid": "search_route_get", "callee": "max", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L42"}, {"caller_nid": "search_route_get", "callee": "toString", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L46"}, {"caller_nid": "search_route_get", "callee": "join", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L49"}, {"caller_nid": "search_route_get", "callee": "append", "is_member_call": true, "source_file": "D:\\Documents\\Github\\nutriscan\\app\\api\\search\\route.ts", "source_location": "L71"}, {"caller_nid": "search_route_get", "callee": "append", "is_member_call": true, "source_file": "D:\\DocumLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "d_documents_github_nutriscan_components_ui_card_tsx", "label": "card.tsx", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\card.tsx", "source_location": "L1"}, {"id": "ui_card_card", "label": "Card", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\card.tsx", "source_location": "L5"}, {"id": "ui_card_cardheader", "label": "CardHeader", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\card.tsx", "source_location": "L20"}, {"id": "ui_card_cardtitle", "label": "CardTitle", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\card.tsx", "source_location": "L32"}, {"id": "ui_card_carddescription", "label": "CardDescription", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\card.tsx", "source_location": "L44"}, {"id": "ui_card_cardcontent", "label": "CardContent", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\card.tsx", "source_location": "L56"}, {"id": "ui_card_cardfooter", "label": "CardFooter", "file_type": "code", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\card.tsx", "source_location": "L64"}], "edges": [{"source": "d_documents_github_nutriscan_components_ui_card_tsx", "target": "react", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\card.tsx", "source_location": "L1", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_card_tsx", "target": "d_documents_github_nutriscan_lib_utils_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\card.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_card_tsx", "target": "lib_utils_cn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\card.tsx", "source_location": "L3", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_card_tsx", "target": "ui_card_card", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\card.tsx", "source_location": "L5", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_card_tsx", "target": "ui_card_cardheader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\card.tsx", "source_location": "L20", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_card_tsx", "target": "ui_card_cardtitle", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\card.tsx", "source_location": "L32", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_card_tsx", "target": "ui_card_carddescription", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\card.tsx", "source_location": "L44", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_card_tsx", "target": "ui_card_cardcontent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\card.tsx", "source_location": "L56", "weight": 1.0}, {"source": "d_documents_github_nutriscan_components_ui_card_tsx", "target": "ui_card_cardfooter", "relation": "contains", "confidence": "EXTRACTED", "source_file": "D:\\Documents\\Github\\nutriscan\\components\\ui\\card.tsx", "source_location": "L64", "weight": 1.0}], "raw_calls": []}
Loaded 100 of 139 files, more files were not shown because too many files have changed in this diff. Show more