diff --git a/explorer-ui/src/gql/graphql.ts b/explorer-ui/src/gql/graphql.ts index c3dc9d9..5efecb8 100644 --- a/explorer-ui/src/gql/graphql.ts +++ b/explorer-ui/src/gql/graphql.ts @@ -2109,6 +2109,14 @@ export type GetProductQueryVariables = Exact<{ export type GetProductQuery = { __typename?: 'Query', Product?: Array<{ __typename?: 'Product_Type', mint_account: string, mint_authority?: string | null, devices_count: any, metadata?: { __typename?: 'TokenMetadata_Type', name?: string | null, symbol?: string | null, uri?: string | null, additional: Array } | null, vendor: { __typename?: 'Vendor_Type', pubkey: string }, devices?: Array<{ __typename?: 'Device_Type', pubkey: string, signing_alg?: DeviceSigningAlgorithm | null, token_account?: string | null, tx: { __typename?: 'Transaction_Type', block_ts?: string | null }, did?: { __typename?: 'DID_Type', token_account?: string | null, mint_account: string, metadata?: { __typename?: 'TokenMetadata_Type', name?: string | null, symbol?: string | null, uri?: string | null, additional: Array } | null, owner?: { __typename?: 'User_Type', pubkey: string } | null } | null }> | null }> | null }; +export type GetVendorsQueryVariables = Exact<{ + limit?: InputMaybe; + offset?: InputMaybe; +}>; + + +export type GetVendorsQuery = { __typename?: 'Query', Vendor?: Array<{ __typename?: 'Vendor_Type', pubkey: string, products_count: any, devices_count: any, products?: Array<{ __typename?: 'Product_Type', mint_account: string, mint_authority?: string | null, devices_count: any, metadata?: { __typename?: 'TokenMetadata_Type', name?: string | null, symbol?: string | null, uri?: string | null, additional: Array } | null, tx: { __typename?: 'Transaction_Type', block_ts?: string | null } }> | null }> | null }; + export type GetVendorQueryVariables = Exact<{ vendor_pubkey?: InputMaybe; }>; @@ -2131,6 +2139,7 @@ export type GetProgramsQuery = { __typename?: 'Query', Program?: Array<{ __typen export const GetProductsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"getProducts"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"limit"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"offset"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"Product"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"limit"}}},{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"offset"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"mint_account"}},{"kind":"Field","name":{"kind":"Name","value":"mint_authority"}},{"kind":"Field","name":{"kind":"Name","value":"devices_count"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"symbol"}},{"kind":"Field","name":{"kind":"Name","value":"uri"}},{"kind":"Field","name":{"kind":"Name","value":"additional"}}]}},{"kind":"Field","name":{"kind":"Name","value":"vendor"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pubkey"}}]}}]}}]}}]} as unknown as DocumentNode; export const GetProductDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"getProduct"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"mint_account"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"limit"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"offset"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"Product"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"filter"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"mint_account"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"eq"},"value":{"kind":"Variable","name":{"kind":"Name","value":"mint_account"}}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"mint_account"}},{"kind":"Field","name":{"kind":"Name","value":"mint_authority"}},{"kind":"Field","name":{"kind":"Name","value":"devices_count"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"symbol"}},{"kind":"Field","name":{"kind":"Name","value":"uri"}},{"kind":"Field","name":{"kind":"Name","value":"additional"}}]}},{"kind":"Field","name":{"kind":"Name","value":"vendor"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pubkey"}}]}},{"kind":"Field","name":{"kind":"Name","value":"devices"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"order"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"tx"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"slot"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"dir"},"value":{"kind":"EnumValue","value":"ASC"}}]}}]}}]}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"limit"}}},{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"offset"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pubkey"}},{"kind":"Field","name":{"kind":"Name","value":"signing_alg"}},{"kind":"Field","name":{"kind":"Name","value":"token_account"}},{"kind":"Field","name":{"kind":"Name","value":"tx"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"block_ts"}}]}},{"kind":"Field","name":{"kind":"Name","value":"did"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"token_account"}},{"kind":"Field","name":{"kind":"Name","value":"mint_account"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"symbol"}},{"kind":"Field","name":{"kind":"Name","value":"uri"}},{"kind":"Field","name":{"kind":"Name","value":"additional"}}]}},{"kind":"Field","name":{"kind":"Name","value":"owner"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pubkey"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; +export const GetVendorsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"getVendors"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"limit"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"offset"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"Vendor"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"limit"}}},{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"offset"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pubkey"}},{"kind":"Field","name":{"kind":"Name","value":"products_count"}},{"kind":"Field","name":{"kind":"Name","value":"devices_count"}},{"kind":"Field","name":{"kind":"Name","value":"products"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"mint_account"}},{"kind":"Field","name":{"kind":"Name","value":"mint_authority"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"symbol"}},{"kind":"Field","name":{"kind":"Name","value":"uri"}},{"kind":"Field","name":{"kind":"Name","value":"additional"}}]}},{"kind":"Field","name":{"kind":"Name","value":"devices_count"}},{"kind":"Field","name":{"kind":"Name","value":"tx"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"block_ts"}}]}}]}}]}}]}}]} as unknown as DocumentNode; export const GetVendorDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"getVendor"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"vendor_pubkey"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"Vendor"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"filter"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"pubkey"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"eq"},"value":{"kind":"Variable","name":{"kind":"Name","value":"vendor_pubkey"}}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pubkey"}},{"kind":"Field","name":{"kind":"Name","value":"products_count"}},{"kind":"Field","name":{"kind":"Name","value":"devices_count"}},{"kind":"Field","name":{"kind":"Name","value":"products"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"mint_account"}},{"kind":"Field","name":{"kind":"Name","value":"mint_authority"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"symbol"}},{"kind":"Field","name":{"kind":"Name","value":"uri"}},{"kind":"Field","name":{"kind":"Name","value":"additional"}}]}},{"kind":"Field","name":{"kind":"Name","value":"devices_count"}},{"kind":"Field","name":{"kind":"Name","value":"tx"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"block_ts"}}]}}]}}]}}]}}]} as unknown as DocumentNode; export const GetDeviceDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"getDevice"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"device_pubkey"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"Device"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"filter"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"pubkey"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"eq"},"value":{"kind":"Variable","name":{"kind":"Name","value":"device_pubkey"}}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pubkey"}},{"kind":"Field","name":{"kind":"Name","value":"signing_alg"}},{"kind":"Field","name":{"kind":"Name","value":"token_account"}},{"kind":"Field","name":{"kind":"Name","value":"tx"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"block_ts"}}]}},{"kind":"Field","name":{"kind":"Name","value":"product"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"mint_account"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"symbol"}},{"kind":"Field","name":{"kind":"Name","value":"uri"}},{"kind":"Field","name":{"kind":"Name","value":"additional"}}]}},{"kind":"Field","name":{"kind":"Name","value":"vendor"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pubkey"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"did"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"mint_account"}},{"kind":"Field","name":{"kind":"Name","value":"mint_authority"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"symbol"}},{"kind":"Field","name":{"kind":"Name","value":"uri"}},{"kind":"Field","name":{"kind":"Name","value":"additional"}}]}},{"kind":"Field","name":{"kind":"Name","value":"owner"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pubkey"}}]}}]}}]}}]}}]} as unknown as DocumentNode; export const GetProgramsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"getPrograms"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"Program"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pubkey"}},{"kind":"Field","name":{"kind":"Name","value":"authority"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pubkey"}}]}},{"kind":"Field","name":{"kind":"Name","value":"vendors_count"}},{"kind":"Field","name":{"kind":"Name","value":"products_count"}},{"kind":"Field","name":{"kind":"Name","value":"devices_count"}}]}}]}}]} as unknown as DocumentNode; \ No newline at end of file diff --git a/explorer-ui/src/pages/index.tsx b/explorer-ui/src/pages/index.tsx index 5dd96f4..393e4ae 100644 --- a/explorer-ui/src/pages/index.tsx +++ b/explorer-ui/src/pages/index.tsx @@ -37,11 +37,16 @@ export default function Home() { -
+ {programData.Program[0]?.vendors_count} -
+ +
+ @@ -58,6 +63,7 @@ export default function Home() { + diff --git a/explorer-ui/src/pages/product/[id].tsx b/explorer-ui/src/pages/product/[id].tsx index 30c3f3e..a5cd9c2 100644 --- a/explorer-ui/src/pages/product/[id].tsx +++ b/explorer-ui/src/pages/product/[id].tsx @@ -129,7 +129,7 @@ export default function Product() { Devices -
+
*/} {pubkey} - {did?.metadata?.name} + + {did?.metadata?.name} + {/* {did?.metadata?.owner?.pubkey} */} ))} diff --git a/explorer-ui/src/pages/vendors.tsx b/explorer-ui/src/pages/vendors.tsx new file mode 100644 index 0000000..6d5bda7 --- /dev/null +++ b/explorer-ui/src/pages/vendors.tsx @@ -0,0 +1,106 @@ +/* eslint-disable @typescript-eslint/no-floating-promises */ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import Head from "next/head"; +import { useQuery } from "@tanstack/react-query"; +import { Link2 } from "lucide-react"; + +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, + CardFooter, +} from "@/components/ui/card"; +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@/components/ui/table"; + +import { getVendors } from "@/queries"; + +const limit = 50; + +export default function Vendors() { + const page = 0; + + const { data } = useQuery({ + queryKey: ["vendors"], + queryFn: async () => getVendors(), + }); + + return ( + <> + + Vendors - Dephy Explorer + + + +
+
+ {data ? ( + + + + Products + + + {data.Vendor?.length} vendors + + + + + + + # + Pubkey + Products Count + Devices Count + + + + {data.Vendor?.map((vendor, i) => ( + + {page * limit + i + 1} + + + {vendor.pubkey} + + + + + {vendor.products_count} + + + {vendor.devices_count} + + + ))} + +
+
+ {/* +
+ Showing + + {page * limit + 1}-{(page + 1) * limit} + + of {data.Product?.length} devices +
+
*/} +
+ ) : null} +
+
+ + ); +} diff --git a/explorer-ui/src/queries.ts b/explorer-ui/src/queries.ts index f65b0be..9a146a6 100644 --- a/explorer-ui/src/queries.ts +++ b/explorer-ui/src/queries.ts @@ -10,7 +10,9 @@ import type { GetDeviceQuery, GetDeviceQueryVariables, GetProgramsQuery, - GetProductsQueryVariables + GetProductsQueryVariables, + GetVendorsQuery, + GetVendorsQueryVariables } from './gql/graphql' import { env } from '@/env'; @@ -98,6 +100,39 @@ export async function getProduct(mint_account: string, offset: number, limit: nu return await gqlClient.request(query, variables) } +export async function getVendors(offset = 0, limit = 50) { + const query: TypedDocumentNode = parse(gql` + query getVendors ($limit: Int, $offset: String) { + Vendor(first: $limit, after: $offset) { + pubkey + products_count + devices_count + products { + mint_account + mint_authority + metadata { + name + symbol + uri + additional + } + devices_count + tx { + block_ts + } + } + } + } + `) + + const variables: GetVendorsQueryVariables = { + offset: `${offset - 1}`, + limit + } + + return await gqlClient.request(query, variables) +} + export async function getVendor(vendor_pubkey: string) { const query: TypedDocumentNode = parse(gql` query getVendor($vendor_pubkey: String) { diff --git a/indexer/dbschema/queries/getDevice.query.ts b/indexer/dbschema/queries/getDevice.query.ts index 8f50701..2612c51 100644 --- a/indexer/dbschema/queries/getDevice.query.ts +++ b/indexer/dbschema/queries/getDevice.query.ts @@ -8,7 +8,7 @@ export type GetDeviceArgs = { export type GetDeviceReturns = { "pubkey": string; - "signing_alg": ("Ed25519" | "Secp256k1"); + "signing_alg": ("Ed25519" | "Secp256k1") | null; "token_account": string; "block_ts": Date | null; "did": { diff --git a/indexer/dbschema/queries/getDeviceCount.query.ts b/indexer/dbschema/queries/getDeviceCount.query.ts new file mode 100644 index 0000000..74bc18e --- /dev/null +++ b/indexer/dbschema/queries/getDeviceCount.query.ts @@ -0,0 +1,12 @@ +// GENERATED by @edgedb/generate v0.5.3 + +import type {Executor} from "edgedb"; + + +export type GetDeviceCountReturns = number; + +export function getDeviceCount(client: Executor): Promise { + return client.queryRequiredSingle(`\ +select count(Device);`); + +} diff --git a/indexer/dbschema/queries/getProduct.query.ts b/indexer/dbschema/queries/getProduct.query.ts index ea14516..8a21f26 100644 --- a/indexer/dbschema/queries/getProduct.query.ts +++ b/indexer/dbschema/queries/getProduct.query.ts @@ -15,7 +15,7 @@ export type GetProductReturns = { "devices": Array<{ "id": string; "pubkey": string; - "signing_alg": ("Ed25519" | "Secp256k1"); + "signing_alg": ("Ed25519" | "Secp256k1") | null; "token_account": string; "block_ts": Date | null; "did": { diff --git a/indexer/dbschema/queries/getVendors.edgeql b/indexer/dbschema/queries/getVendors.edgeql new file mode 100644 index 0000000..744c0c2 --- /dev/null +++ b/indexer/dbschema/queries/getVendors.edgeql @@ -0,0 +1,19 @@ +select default::Vendor { + pubkey, + products_count := count(.products), + products: { + mint_authority, + mint_account, + metadata: { + name, + symbol, + uri, + additional + }, + block_ts := .tx.block_ts, + device_count := count(.devices) + } +} +offset $offset +limit $limit + diff --git a/indexer/dbschema/queries/getVendors.query.ts b/indexer/dbschema/queries/getVendors.query.ts new file mode 100644 index 0000000..f9ff447 --- /dev/null +++ b/indexer/dbschema/queries/getVendors.query.ts @@ -0,0 +1,48 @@ +// GENERATED by @edgedb/generate v0.5.3 + +import type {Executor} from "edgedb"; + +export type GetVendorsArgs = { + readonly "offset": number; + readonly "limit": number; +}; + +export type GetVendorsReturns = Array<{ + "pubkey": string; + "products_count": number; + "products": Array<{ + "mint_authority": string | null; + "mint_account": string; + "metadata": { + "name": string | null; + "symbol": string | null; + "uri": string | null; + "additional": Array<[string, string]>; + } | null; + "block_ts": Date | null; + "device_count": number; + }>; +}>; + +export function getVendors(client: Executor, args: GetVendorsArgs): Promise { + return client.query(`\ +select default::Vendor { + pubkey, + products_count := count(.products), + products: { + mint_authority, + mint_account, + metadata: { + name, + symbol, + uri, + additional + }, + block_ts := .tx.block_ts, + device_count := count(.devices) + } +} +offset $offset +limit $limit`, args); + +} diff --git a/indexer/dbschema/queries/index.ts b/indexer/dbschema/queries/index.ts index 4a2b34e..6eca6d9 100644 --- a/indexer/dbschema/queries/index.ts +++ b/indexer/dbschema/queries/index.ts @@ -3,3 +3,4 @@ export * from './getVendor.query' export * from './getProduct.query' export * from './getProducts.query' export * from './getDevice.query' +export * from './getVendors.query' diff --git a/indexer/package.json b/indexer/package.json index 94e7a53..042d4e8 100644 --- a/indexer/package.json +++ b/indexer/package.json @@ -1,6 +1,7 @@ { "scripts": { "generate:edgeql": "generate edgeql-js --target ts", + "generate:queries": "generate queries", "dephy-indexer": "bun run ./main.ts", "dephy-ui": "imba -w --esm ui/app.imba" },