@secondlayer/shared 0.10.1 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/src/db/index.d.ts +181 -2
  2. package/dist/src/db/queries/accounts.d.ts +158 -2
  3. package/dist/src/db/queries/accounts.js +17 -1
  4. package/dist/src/db/queries/accounts.js.map +3 -3
  5. package/dist/src/db/queries/integrity.d.ts +151 -1
  6. package/dist/src/db/queries/marketplace.d.ts +463 -0
  7. package/dist/src/db/queries/marketplace.js +142 -0
  8. package/dist/src/db/queries/marketplace.js.map +10 -0
  9. package/dist/src/db/queries/metrics.d.ts +151 -1
  10. package/dist/src/db/queries/projects.d.ts +423 -0
  11. package/dist/src/db/queries/projects.js +47 -0
  12. package/dist/src/db/queries/projects.js.map +10 -0
  13. package/dist/src/db/queries/subgraph-gaps.d.ts +151 -1
  14. package/dist/src/db/queries/subgraphs.d.ts +158 -6
  15. package/dist/src/db/queries/subgraphs.js +16 -13
  16. package/dist/src/db/queries/subgraphs.js.map +3 -3
  17. package/dist/src/db/queries/usage.d.ts +151 -1
  18. package/dist/src/db/queries/workflows.d.ts +439 -0
  19. package/dist/src/db/queries/workflows.js +115 -0
  20. package/dist/src/db/queries/workflows.js.map +11 -0
  21. package/dist/src/db/schema.d.ts +181 -2
  22. package/dist/src/index.d.ts +251 -10
  23. package/dist/src/index.js +91 -72
  24. package/dist/src/index.js.map +4 -3
  25. package/dist/src/node/hiro-pg-client.js +5 -3
  26. package/dist/src/node/hiro-pg-client.js.map +3 -3
  27. package/dist/src/node/local-client.d.ts +155 -1
  28. package/dist/src/node/local-client.js +19 -9
  29. package/dist/src/node/local-client.js.map +3 -3
  30. package/dist/src/schemas/index.d.ts +71 -9
  31. package/dist/src/schemas/index.js +93 -74
  32. package/dist/src/schemas/index.js.map +4 -3
  33. package/dist/src/schemas/marketplace.d.ts +63 -0
  34. package/dist/src/schemas/marketplace.js +39 -0
  35. package/dist/src/schemas/marketplace.js.map +10 -0
  36. package/dist/src/schemas/workflows.d.ts +66 -0
  37. package/dist/src/schemas/workflows.js +39 -0
  38. package/dist/src/schemas/workflows.js.map +10 -0
  39. package/dist/src/types.d.ts +3 -0
  40. package/migrations/0021_tx_function_args_result.ts +27 -0
  41. package/migrations/0022_marketplace.ts +88 -0
  42. package/migrations/0023_projects.ts +149 -0
  43. package/migrations/0024_chat_sessions.ts +51 -0
  44. package/migrations/0025_chat_session_summary.ts +15 -0
  45. package/migrations/0026_workflows.ts +204 -0
  46. package/migrations/0027_workflow_cursors.ts +16 -0
  47. package/migrations/0028_subgraph_account_scoping.ts +116 -0
  48. package/package.json +22 -2
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/schemas/filters.ts", "../src/schemas/subgraphs.ts", "../src/schemas/stream.ts"],
3
+ "sources": ["../src/schemas/filters.ts", "../src/schemas/marketplace.ts", "../src/schemas/subgraphs.ts", "../src/schemas/stream.ts"],
4
4
  "sourcesContent": [
5
5
  "import { isValidAddress as _isValidAddress } from \"@secondlayer/stacks\";\nimport { z } from \"zod/v4\";\n\nconst isValidAddress = _isValidAddress as (addr: string) => boolean;\n\n/** Validate a Stacks principal (standard or contract, e.g. SP2J...ABC or SP2J...ABC.contract-name) */\nconst stacksPrincipal = z.string().refine((val) => {\n\tconst parts = val.split(\".\");\n\tif (parts.length > 2) return false;\n\treturn isValidAddress(parts[0]!);\n}, \"Invalid Stacks principal address\");\n\n// Base filter with common fields\nconst baseFilter = {\n\t// Optional: filter by sender\n\tsender: stacksPrincipal.optional(),\n\t// Optional: filter by recipient\n\trecipient: stacksPrincipal.optional(),\n};\n\n// Type exports — defined first so they can annotate schemas\nexport interface StxTransferFilter {\n\ttype: \"stx_transfer\";\n\tsender?: string;\n\trecipient?: string;\n\tminAmount?: number;\n\tmaxAmount?: number;\n}\n\nexport interface StxMintFilter {\n\ttype: \"stx_mint\";\n\trecipient?: string;\n\tminAmount?: number;\n}\n\nexport interface StxBurnFilter {\n\ttype: \"stx_burn\";\n\tsender?: string;\n\tminAmount?: number;\n}\n\nexport interface StxLockFilter {\n\ttype: \"stx_lock\";\n\tlockedAddress?: string;\n\tminAmount?: number;\n}\n\nexport interface FtTransferFilter {\n\ttype: \"ft_transfer\";\n\tsender?: string;\n\trecipient?: string;\n\tassetIdentifier?: string;\n\tminAmount?: number;\n}\n\nexport interface FtMintFilter {\n\ttype: \"ft_mint\";\n\trecipient?: string;\n\tassetIdentifier?: string;\n\tminAmount?: number;\n}\n\nexport interface FtBurnFilter {\n\ttype: \"ft_burn\";\n\tsender?: string;\n\tassetIdentifier?: string;\n\tminAmount?: number;\n}\n\nexport interface NftTransferFilter {\n\ttype: \"nft_transfer\";\n\tsender?: string;\n\trecipient?: string;\n\tassetIdentifier?: string;\n\ttokenId?: string;\n}\n\nexport interface NftMintFilter {\n\ttype: \"nft_mint\";\n\trecipient?: string;\n\tassetIdentifier?: string;\n\ttokenId?: string;\n}\n\nexport interface NftBurnFilter {\n\ttype: \"nft_burn\";\n\tsender?: string;\n\tassetIdentifier?: string;\n\ttokenId?: string;\n}\n\nexport interface ContractCallFilter {\n\ttype: \"contract_call\";\n\tcontractId?: string;\n\tfunctionName?: string;\n\tcaller?: string;\n}\n\nexport interface ContractDeployFilter {\n\ttype: \"contract_deploy\";\n\tdeployer?: string;\n\tcontractName?: string;\n}\n\nexport interface PrintEventFilter {\n\ttype: \"print_event\";\n\tcontractId?: string;\n\ttopic?: string;\n\tcontains?: string;\n}\n\nexport type StreamFilter =\n\t| StxTransferFilter\n\t| StxMintFilter\n\t| StxBurnFilter\n\t| StxLockFilter\n\t| FtTransferFilter\n\t| FtMintFilter\n\t| FtBurnFilter\n\t| NftTransferFilter\n\t| NftMintFilter\n\t| NftBurnFilter\n\t| ContractCallFilter\n\t| ContractDeployFilter\n\t| PrintEventFilter;\n\n// STX Transfer Filter\nexport const StxTransferFilterSchema: z.ZodType<StxTransferFilter> = z.object({\n\ttype: z.literal(\"stx_transfer\"),\n\t...baseFilter,\n\t// Optional: minimum amount in microSTX\n\tminAmount: z.coerce.number().int().positive().optional(),\n\t// Optional: maximum amount in microSTX\n\tmaxAmount: z.coerce.number().int().positive().optional(),\n});\n\n// STX Mint Filter\nexport const StxMintFilterSchema: z.ZodType<StxMintFilter> = z.object({\n\ttype: z.literal(\"stx_mint\"),\n\trecipient: stacksPrincipal.optional(),\n\tminAmount: z.coerce.number().int().positive().optional(),\n});\n\n// STX Burn Filter\nexport const StxBurnFilterSchema: z.ZodType<StxBurnFilter> = z.object({\n\ttype: z.literal(\"stx_burn\"),\n\tsender: stacksPrincipal.optional(),\n\tminAmount: z.coerce.number().int().positive().optional(),\n});\n\n// STX Lock Filter\nexport const StxLockFilterSchema: z.ZodType<StxLockFilter> = z.object({\n\ttype: z.literal(\"stx_lock\"),\n\tlockedAddress: stacksPrincipal.optional(),\n\tminAmount: z.coerce.number().int().positive().optional(),\n});\n\n// FT Transfer Filter\nexport const FtTransferFilterSchema: z.ZodType<FtTransferFilter> = z.object({\n\ttype: z.literal(\"ft_transfer\"),\n\t...baseFilter,\n\t// Contract that defines the token (e.g., SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-wstx)\n\tassetIdentifier: z.string().optional(),\n\tminAmount: z.coerce.number().int().positive().optional(),\n});\n\n// FT Mint Filter\nexport const FtMintFilterSchema: z.ZodType<FtMintFilter> = z.object({\n\ttype: z.literal(\"ft_mint\"),\n\trecipient: stacksPrincipal.optional(),\n\tassetIdentifier: z.string().optional(),\n\tminAmount: z.coerce.number().int().positive().optional(),\n});\n\n// FT Burn Filter\nexport const FtBurnFilterSchema: z.ZodType<FtBurnFilter> = z.object({\n\ttype: z.literal(\"ft_burn\"),\n\tsender: stacksPrincipal.optional(),\n\tassetIdentifier: z.string().optional(),\n\tminAmount: z.coerce.number().int().positive().optional(),\n});\n\n// NFT Transfer Filter\nexport const NftTransferFilterSchema: z.ZodType<NftTransferFilter> = z.object({\n\ttype: z.literal(\"nft_transfer\"),\n\t...baseFilter,\n\tassetIdentifier: z.string().optional(),\n\t// Optional: filter by specific token ID (Clarity value as hex)\n\ttokenId: z.string().optional(),\n});\n\n// NFT Mint Filter\nexport const NftMintFilterSchema: z.ZodType<NftMintFilter> = z.object({\n\ttype: z.literal(\"nft_mint\"),\n\trecipient: stacksPrincipal.optional(),\n\tassetIdentifier: z.string().optional(),\n\ttokenId: z.string().optional(),\n});\n\n// NFT Burn Filter\nexport const NftBurnFilterSchema: z.ZodType<NftBurnFilter> = z.object({\n\ttype: z.literal(\"nft_burn\"),\n\tsender: stacksPrincipal.optional(),\n\tassetIdentifier: z.string().optional(),\n\ttokenId: z.string().optional(),\n});\n\n// Contract Call Filter\nexport const ContractCallFilterSchema: z.ZodType<ContractCallFilter> = z.object(\n\t{\n\t\ttype: z.literal(\"contract_call\"),\n\t\t// Contract being called\n\t\tcontractId: stacksPrincipal.optional(),\n\t\t// Function name (supports wildcards with *)\n\t\tfunctionName: z.string().optional(),\n\t\t// Caller address\n\t\tcaller: stacksPrincipal.optional(),\n\t},\n);\n\n// Contract Deploy Filter\nexport const ContractDeployFilterSchema: z.ZodType<ContractDeployFilter> =\n\tz.object({\n\t\ttype: z.literal(\"contract_deploy\"),\n\t\t// Deployer address\n\t\tdeployer: stacksPrincipal.optional(),\n\t\t// Contract name pattern (supports wildcards)\n\t\tcontractName: z.string().optional(),\n\t});\n\n// Print Event Filter (smart contract events)\nexport const PrintEventFilterSchema: z.ZodType<PrintEventFilter> = z.object({\n\ttype: z.literal(\"print_event\"),\n\t// Contract emitting the event\n\tcontractId: stacksPrincipal.optional(),\n\t// Topic/name of the event\n\ttopic: z.string().optional(),\n\t// Search for substring in event data\n\tcontains: z.string().optional(),\n});\n\n// Union of all filter types\nexport const StreamFilterSchema: z.ZodType<StreamFilter> = z.discriminatedUnion(\n\t\"type\",\n\t[\n\t\tStxTransferFilterSchema as any,\n\t\tStxMintFilterSchema as any,\n\t\tStxBurnFilterSchema as any,\n\t\tStxLockFilterSchema as any,\n\t\tFtTransferFilterSchema as any,\n\t\tFtMintFilterSchema as any,\n\t\tFtBurnFilterSchema as any,\n\t\tNftTransferFilterSchema as any,\n\t\tNftMintFilterSchema as any,\n\t\tNftBurnFilterSchema as any,\n\t\tContractCallFilterSchema as any,\n\t\tContractDeployFilterSchema as any,\n\t\tPrintEventFilterSchema as any,\n\t],\n);\n",
6
+ "import { z } from \"zod/v4\";\n\n// ── Request Types ────────────────────────────────────────────────────\n\nexport interface PublishSubgraphRequest {\n\ttags?: string[];\n\tdescription?: string;\n}\n\nexport interface UpdateProfileRequest {\n\tdisplay_name?: string;\n\tbio?: string;\n\tslug?: string;\n}\n\nexport interface ForkSubgraphRequest {\n\tsourceSubgraphName: string;\n\tnewName?: string;\n}\n\n// ── Request Schemas ───────────────────────────────────────────────────\n\nexport const PublishSubgraphRequestSchema: z.ZodType<PublishSubgraphRequest> =\n\tz.object({\n\t\ttags: z.array(z.string().max(30)).max(5).optional(),\n\t\tdescription: z.string().max(500).optional(),\n\t});\n\nexport const UpdateProfileRequestSchema: z.ZodType<UpdateProfileRequest> =\n\tz.object({\n\t\tdisplay_name: z.string().max(50).optional(),\n\t\tbio: z.string().max(300).optional(),\n\t\tslug: z\n\t\t\t.string()\n\t\t\t.regex(/^[a-z0-9-]+$/, \"lowercase alphanumeric + hyphens only\")\n\t\t\t.min(3)\n\t\t\t.max(30)\n\t\t\t.optional(),\n\t});\n\nexport const ForkSubgraphRequestSchema: z.ZodType<ForkSubgraphRequest> =\n\tz.object({\n\t\tsourceSubgraphName: z.string(),\n\t\tnewName: z\n\t\t\t.string()\n\t\t\t.regex(/^[a-z0-9-]+$/, \"lowercase alphanumeric + hyphens only\")\n\t\t\t.max(63)\n\t\t\t.optional(),\n\t});\n\n// ── Response Types ────────────────────────────────────────────────────\n\nexport interface MarketplaceCreator {\n\tdisplayName: string | null;\n\tslug: string | null;\n}\n\nexport interface MarketplaceSubgraphSummary {\n\tname: string;\n\tdescription: string | null;\n\ttags: string[];\n\tcreator: MarketplaceCreator;\n\tstatus: string;\n\tversion: string;\n\ttables: string[];\n\ttotalQueries7d: number;\n\tprogress: number;\n\tcreatedAt: string;\n}\n\nexport interface MarketplaceSubgraphDetail extends MarketplaceSubgraphSummary {\n\ttableSchemas: Record<\n\t\tstring,\n\t\t{\n\t\t\tcolumns: Record<string, { type: string; nullable?: boolean }>;\n\t\t\trowCount: number;\n\t\t\tendpoint: string;\n\t\t}\n\t>;\n\tsources: Record<string, unknown>;\n\tstartBlock: number;\n\tlastProcessedBlock: number;\n\tforkedFrom: string | null;\n\tusage: {\n\t\ttotalQueries7d: number;\n\t\ttotalQueries30d: number;\n\t\tdaily: Array<{ date: string; count: number }>;\n\t};\n}\n\nexport interface CreatorProfile {\n\tdisplayName: string | null;\n\tbio: string | null;\n\tavatarUrl: string | null;\n\tslug: string | null;\n\tsubgraphs: MarketplaceSubgraphSummary[];\n}\n",
6
7
  "import { z } from \"zod/v4\";\n\n// ── Deploy Subgraph Request ─────────────────────────────────────────────────\n\nexport interface DeploySubgraphRequest {\n\tname: string;\n\tversion?: string;\n\tdescription?: string;\n\tsources: Record<string, Record<string, unknown>>;\n\tschema: Record<string, unknown>;\n\thandlerCode: string;\n\treindex?: boolean;\n}\n\nexport const DeploySubgraphRequestSchema: z.ZodType<DeploySubgraphRequest> =\n\tz.object({\n\t\tname: z\n\t\t\t.string()\n\t\t\t.regex(/^[a-z0-9-]+$/, \"lowercase alphanumeric + hyphens only\")\n\t\t\t.max(63),\n\t\tversion: z.string().optional(),\n\t\tdescription: z.string().optional(),\n\t\tsources: z.record(z.string(), z.record(z.string(), z.unknown())).refine(\n\t\t\t(s) => Object.keys(s).length > 0,\n\t\t\t\"Must have at least one source\",\n\t\t),\n\t\tschema: z.record(z.string(), z.unknown()),\n\t\thandlerCode: z.string().max(1_048_576, \"handler code exceeds 1MB limit\"),\n\t\treindex: z.boolean().optional(),\n\t});\n\nexport interface DeploySubgraphResponse {\n\taction: \"created\" | \"unchanged\" | \"updated\" | \"reindexed\";\n\tsubgraphId: string;\n\tmessage: string;\n}\n\n// Subgraph API response types\n\nexport interface SubgraphSummary {\n\tname: string;\n\tversion: string;\n\tstatus: string;\n\tlastProcessedBlock: number;\n\ttotalProcessed: number;\n\ttotalErrors: number;\n\ttables: string[];\n\tchainTip: number;\n\tprogress: number;\n\tgapCount: number;\n\tintegrity: \"complete\" | \"gaps_detected\";\n\tcreatedAt: string;\n}\n\nexport interface SubgraphGapRange {\n\tstart: number;\n\tend: number;\n\tsize: number;\n\treason: string;\n}\n\nexport interface SubgraphSyncInfo {\n\tstatus: \"synced\" | \"catching_up\" | \"reindexing\" | \"error\";\n\tstartBlock: number;\n\tlastProcessedBlock: number;\n\tchainTip: number;\n\tblocksRemaining: number;\n\tprogress: number;\n\tgaps: {\n\t\tcount: number;\n\t\ttotalMissingBlocks: number;\n\t\tranges: SubgraphGapRange[];\n\t};\n\tintegrity: \"complete\" | \"gaps_detected\";\n}\n\nexport interface SubgraphDetail {\n\tname: string;\n\tversion: string;\n\tstatus: string;\n\tlastProcessedBlock: number;\n\thealth: {\n\t\ttotalProcessed: number;\n\t\ttotalErrors: number;\n\t\terrorRate: number;\n\t\tlastError: string | null;\n\t\tlastErrorAt: string | null;\n\t};\n\tsync: SubgraphSyncInfo;\n\ttables: Record<\n\t\tstring,\n\t\t{\n\t\t\tendpoint: string;\n\t\t\tcolumns: Record<string, { type: string; nullable?: boolean }>;\n\t\t\trowCount: number;\n\t\t\texample: string;\n\t\t}\n\t>;\n\tcreatedAt: string;\n\tupdatedAt: string;\n}\n\nexport interface SubgraphGapEntry {\n\tstart: number;\n\tend: number;\n\tsize: number;\n\treason: string;\n\tdetectedAt: string;\n\tresolvedAt: string | null;\n}\n\nexport interface SubgraphGapsResponse {\n\tdata: SubgraphGapEntry[];\n\tmeta: {\n\t\ttotal: number;\n\t\ttotalMissingBlocks: number;\n\t\tlimit: number;\n\t\toffset: number;\n\t};\n}\n\nexport interface ReindexResponse {\n\tmessage: string;\n\tfromBlock: number;\n\ttoBlock: number | string;\n}\n\nexport interface SubgraphQueryParams {\n\tsort?: string;\n\torder?: string;\n\tlimit?: number;\n\toffset?: number;\n\tfields?: string;\n\tfilters?: Record<string, string>;\n}\n",
7
8
  "import { z } from \"zod/v4\";\nimport { type StreamFilter, StreamFilterSchema } from \"./filters.ts\";\n\n// ── Type interfaces ──────────────────────────────────────────────────\n\nexport interface StreamOptions {\n\tdecodeClarityValues: boolean;\n\tincludeRawTx: boolean;\n\tincludeBlockMetadata: boolean;\n\trateLimit: number;\n\ttimeoutMs: number;\n\tmaxRetries: number;\n}\n\nexport interface CreateStream {\n\tname: string;\n\tendpointUrl: string;\n\tfilters: StreamFilter[];\n\toptions?: StreamOptions;\n\tstartBlock?: number;\n\tendBlock?: number;\n}\n\nexport interface UpdateStream {\n\tname?: string;\n\tendpointUrl?: string;\n\tfilters?: StreamFilter[];\n\toptions?: Partial<StreamOptions>;\n}\n\nexport interface DeliveryPayload {\n\tstreamId: string;\n\tstreamName: string;\n\tblock: {\n\t\theight: number;\n\t\thash: string;\n\t\tparentHash: string;\n\t\tburnBlockHeight: number;\n\t\ttimestamp: number;\n\t};\n\tmatches: {\n\t\ttransactions: Array<{\n\t\t\ttxId: string;\n\t\t\ttype: string;\n\t\t\tsender: string;\n\t\t\tstatus: string;\n\t\t\tcontractId: string | null;\n\t\t\tfunctionName: string | null;\n\t\t\trawTx?: string;\n\t\t}>;\n\t\tevents: Array<{\n\t\t\ttxId: string;\n\t\t\teventIndex: number;\n\t\t\ttype: string;\n\t\t\tdata?: any;\n\t\t}>;\n\t};\n\tisBackfill: boolean;\n\tdeliveredAt: string;\n}\n\nexport interface StreamMetricsResponse {\n\ttotalDeliveries: number;\n\tfailedDeliveries: number;\n\tlastTriggeredAt: string | null;\n\tlastTriggeredBlock: number | null;\n\terrorMessage: string | null;\n}\n\nexport interface StreamResponse {\n\tid: string;\n\tname: string;\n\tstatus: \"inactive\" | \"active\" | \"paused\" | \"failed\";\n\tendpointUrl: string;\n\tfilters: StreamFilter[];\n\toptions: StreamOptions;\n\ttotalDeliveries: number;\n\tfailedDeliveries: number;\n\tlastTriggeredAt?: string | null;\n\tlastTriggeredBlock?: number | null;\n\terrorMessage?: string | null;\n\tcreatedAt: string;\n\tupdatedAt: string;\n}\n\n// ── Zod schemas ──────────────────────────────────────────────────────\n\n// Stream options schema (internal, keeps ZodObject methods like .partial())\nconst streamOptionsShape = z.object({\n\tdecodeClarityValues: z.boolean().default(true),\n\tincludeRawTx: z.boolean().default(false),\n\tincludeBlockMetadata: z.boolean().default(true),\n\trateLimit: z.number().int().positive().max(100).default(10),\n\ttimeoutMs: z.number().int().positive().max(30000).default(10000),\n\tmaxRetries: z.number().int().min(0).max(10).default(3),\n});\n\n// Cast: .default() makes _input fields optional, but output type matches StreamOptions\nexport const StreamOptionsSchema: z.ZodType<StreamOptions> =\n\tstreamOptionsShape as unknown as z.ZodType<StreamOptions>;\n\nexport const CreateStreamSchema: z.ZodType<CreateStream> = z.object({\n\tname: z.string().min(1).max(255),\n\tendpointUrl: z.string().url(),\n\tfilters: z.array(StreamFilterSchema).min(1),\n\toptions: streamOptionsShape.optional(),\n\tstartBlock: z.number().int().positive().optional(),\n\tendBlock: z.number().int().positive().optional(),\n}) as unknown as z.ZodType<CreateStream>;\n\nexport const UpdateStreamSchema: z.ZodType<UpdateStream> = z\n\t.object({\n\t\tname: z.string().min(1).max(255).optional(),\n\t\tendpointUrl: z.string().url().optional(),\n\t\tfilters: z.array(StreamFilterSchema).min(1).optional(),\n\t\toptions: streamOptionsShape.partial().optional(),\n\t})\n\t.refine((data) => Object.keys(data).length > 0, {\n\t\tmessage: \"At least one field must be provided for update\",\n\t}) as unknown as z.ZodType<UpdateStream>;\n\nexport const DeliveryPayloadSchema: z.ZodType<DeliveryPayload> = z.object({\n\tstreamId: z.string().uuid(),\n\tstreamName: z.string(),\n\tblock: z.object({\n\t\theight: z.number(),\n\t\thash: z.string(),\n\t\tparentHash: z.string(),\n\t\tburnBlockHeight: z.number(),\n\t\ttimestamp: z.number(),\n\t}),\n\tmatches: z.object({\n\t\ttransactions: z.array(\n\t\t\tz.object({\n\t\t\t\ttxId: z.string(),\n\t\t\t\ttype: z.string(),\n\t\t\t\tsender: z.string(),\n\t\t\t\tstatus: z.string(),\n\t\t\t\tcontractId: z.string().nullable(),\n\t\t\t\tfunctionName: z.string().nullable(),\n\t\t\t\trawTx: z.string().optional(),\n\t\t\t}),\n\t\t),\n\t\tevents: z.array(\n\t\t\tz.object({\n\t\t\t\ttxId: z.string(),\n\t\t\t\teventIndex: z.number(),\n\t\t\t\ttype: z.string(),\n\t\t\t\tdata: z.any(),\n\t\t\t}),\n\t\t),\n\t}),\n\tisBackfill: z.boolean(),\n\tdeliveredAt: z.string().datetime(),\n}) as unknown as z.ZodType<DeliveryPayload>;\n\nexport const StreamMetricsSchema: z.ZodType<StreamMetricsResponse> = z.object({\n\ttotalDeliveries: z.number(),\n\tfailedDeliveries: z.number(),\n\tlastTriggeredAt: z.string().datetime().nullable(),\n\tlastTriggeredBlock: z.number().nullable(),\n\terrorMessage: z.string().nullable(),\n});\n\nexport const StreamResponseSchema: z.ZodType<StreamResponse> = z.object({\n\tid: z.string().uuid(),\n\tname: z.string(),\n\tstatus: z.enum([\"inactive\", \"active\", \"paused\", \"failed\"]),\n\tendpointUrl: z.string().url(),\n\tfilters: z.array(StreamFilterSchema),\n\toptions: streamOptionsShape,\n\ttotalDeliveries: z.number().int().default(0),\n\tfailedDeliveries: z.number().int().default(0),\n\tlastTriggeredAt: z.string().datetime().nullable().optional(),\n\tlastTriggeredBlock: z.number().int().nullable().optional(),\n\terrorMessage: z.string().nullable().optional(),\n\tcreatedAt: z.string().datetime(),\n\tupdatedAt: z.string().datetime(),\n}) as unknown as z.ZodType<StreamResponse>;\n\n// API response types\nexport interface CreateStreamResponse {\n\tstream: StreamResponse;\n\tsigningSecret: string;\n}\n\nexport interface ListStreamsResponse {\n\tstreams: StreamResponse[];\n\ttotal: number;\n}\n\nexport interface BulkPauseResponse {\n\tpaused: number;\n\tstreams: StreamResponse[];\n}\n\nexport interface BulkResumeResponse {\n\tresumed: number;\n\tstreams: StreamResponse[];\n}\n"
8
9
  ],
9
- "mappings": "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",
10
- "debugId": "AF4FC3872A86085264756E2164756E21",
10
+ "mappings": "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",
11
+ "debugId": "3A109ACDE2A4A6BF64756E2164756E21",
11
12
  "names": []
12
13
  }
@@ -0,0 +1,63 @@
1
+ import { z } from "zod/v4";
2
+ interface PublishSubgraphRequest {
3
+ tags?: string[];
4
+ description?: string;
5
+ }
6
+ interface UpdateProfileRequest {
7
+ display_name?: string;
8
+ bio?: string;
9
+ slug?: string;
10
+ }
11
+ interface ForkSubgraphRequest {
12
+ sourceSubgraphName: string;
13
+ newName?: string;
14
+ }
15
+ declare const PublishSubgraphRequestSchema: z.ZodType<PublishSubgraphRequest>;
16
+ declare const UpdateProfileRequestSchema: z.ZodType<UpdateProfileRequest>;
17
+ declare const ForkSubgraphRequestSchema: z.ZodType<ForkSubgraphRequest>;
18
+ interface MarketplaceCreator {
19
+ displayName: string | null;
20
+ slug: string | null;
21
+ }
22
+ interface MarketplaceSubgraphSummary {
23
+ name: string;
24
+ description: string | null;
25
+ tags: string[];
26
+ creator: MarketplaceCreator;
27
+ status: string;
28
+ version: string;
29
+ tables: string[];
30
+ totalQueries7d: number;
31
+ progress: number;
32
+ createdAt: string;
33
+ }
34
+ interface MarketplaceSubgraphDetail extends MarketplaceSubgraphSummary {
35
+ tableSchemas: Record<string, {
36
+ columns: Record<string, {
37
+ type: string
38
+ nullable?: boolean
39
+ }>
40
+ rowCount: number
41
+ endpoint: string
42
+ }>;
43
+ sources: Record<string, unknown>;
44
+ startBlock: number;
45
+ lastProcessedBlock: number;
46
+ forkedFrom: string | null;
47
+ usage: {
48
+ totalQueries7d: number
49
+ totalQueries30d: number
50
+ daily: Array<{
51
+ date: string
52
+ count: number
53
+ }>
54
+ };
55
+ }
56
+ interface CreatorProfile {
57
+ displayName: string | null;
58
+ bio: string | null;
59
+ avatarUrl: string | null;
60
+ slug: string | null;
61
+ subgraphs: MarketplaceSubgraphSummary[];
62
+ }
63
+ export { UpdateProfileRequestSchema, UpdateProfileRequest, PublishSubgraphRequestSchema, PublishSubgraphRequest, MarketplaceSubgraphSummary, MarketplaceSubgraphDetail, MarketplaceCreator, ForkSubgraphRequestSchema, ForkSubgraphRequest, CreatorProfile };
@@ -0,0 +1,39 @@
1
+ import { createRequire } from "node:module";
2
+ var __defProp = Object.defineProperty;
3
+ var __returnValue = (v) => v;
4
+ function __exportSetter(name, newValue) {
5
+ this[name] = __returnValue.bind(null, newValue);
6
+ }
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true,
12
+ configurable: true,
13
+ set: __exportSetter.bind(all, name)
14
+ });
15
+ };
16
+
17
+ // src/schemas/marketplace.ts
18
+ import { z } from "zod/v4";
19
+ var PublishSubgraphRequestSchema = z.object({
20
+ tags: z.array(z.string().max(30)).max(5).optional(),
21
+ description: z.string().max(500).optional()
22
+ });
23
+ var UpdateProfileRequestSchema = z.object({
24
+ display_name: z.string().max(50).optional(),
25
+ bio: z.string().max(300).optional(),
26
+ slug: z.string().regex(/^[a-z0-9-]+$/, "lowercase alphanumeric + hyphens only").min(3).max(30).optional()
27
+ });
28
+ var ForkSubgraphRequestSchema = z.object({
29
+ sourceSubgraphName: z.string(),
30
+ newName: z.string().regex(/^[a-z0-9-]+$/, "lowercase alphanumeric + hyphens only").max(63).optional()
31
+ });
32
+ export {
33
+ UpdateProfileRequestSchema,
34
+ PublishSubgraphRequestSchema,
35
+ ForkSubgraphRequestSchema
36
+ };
37
+
38
+ //# debugId=14EEEDD6D32C5A5A64756E2164756E21
39
+ //# sourceMappingURL=marketplace.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/schemas/marketplace.ts"],
4
+ "sourcesContent": [
5
+ "import { z } from \"zod/v4\";\n\n// ── Request Types ────────────────────────────────────────────────────\n\nexport interface PublishSubgraphRequest {\n\ttags?: string[];\n\tdescription?: string;\n}\n\nexport interface UpdateProfileRequest {\n\tdisplay_name?: string;\n\tbio?: string;\n\tslug?: string;\n}\n\nexport interface ForkSubgraphRequest {\n\tsourceSubgraphName: string;\n\tnewName?: string;\n}\n\n// ── Request Schemas ───────────────────────────────────────────────────\n\nexport const PublishSubgraphRequestSchema: z.ZodType<PublishSubgraphRequest> =\n\tz.object({\n\t\ttags: z.array(z.string().max(30)).max(5).optional(),\n\t\tdescription: z.string().max(500).optional(),\n\t});\n\nexport const UpdateProfileRequestSchema: z.ZodType<UpdateProfileRequest> =\n\tz.object({\n\t\tdisplay_name: z.string().max(50).optional(),\n\t\tbio: z.string().max(300).optional(),\n\t\tslug: z\n\t\t\t.string()\n\t\t\t.regex(/^[a-z0-9-]+$/, \"lowercase alphanumeric + hyphens only\")\n\t\t\t.min(3)\n\t\t\t.max(30)\n\t\t\t.optional(),\n\t});\n\nexport const ForkSubgraphRequestSchema: z.ZodType<ForkSubgraphRequest> =\n\tz.object({\n\t\tsourceSubgraphName: z.string(),\n\t\tnewName: z\n\t\t\t.string()\n\t\t\t.regex(/^[a-z0-9-]+$/, \"lowercase alphanumeric + hyphens only\")\n\t\t\t.max(63)\n\t\t\t.optional(),\n\t});\n\n// ── Response Types ────────────────────────────────────────────────────\n\nexport interface MarketplaceCreator {\n\tdisplayName: string | null;\n\tslug: string | null;\n}\n\nexport interface MarketplaceSubgraphSummary {\n\tname: string;\n\tdescription: string | null;\n\ttags: string[];\n\tcreator: MarketplaceCreator;\n\tstatus: string;\n\tversion: string;\n\ttables: string[];\n\ttotalQueries7d: number;\n\tprogress: number;\n\tcreatedAt: string;\n}\n\nexport interface MarketplaceSubgraphDetail extends MarketplaceSubgraphSummary {\n\ttableSchemas: Record<\n\t\tstring,\n\t\t{\n\t\t\tcolumns: Record<string, { type: string; nullable?: boolean }>;\n\t\t\trowCount: number;\n\t\t\tendpoint: string;\n\t\t}\n\t>;\n\tsources: Record<string, unknown>;\n\tstartBlock: number;\n\tlastProcessedBlock: number;\n\tforkedFrom: string | null;\n\tusage: {\n\t\ttotalQueries7d: number;\n\t\ttotalQueries30d: number;\n\t\tdaily: Array<{ date: string; count: number }>;\n\t};\n}\n\nexport interface CreatorProfile {\n\tdisplayName: string | null;\n\tbio: string | null;\n\tavatarUrl: string | null;\n\tslug: string | null;\n\tsubgraphs: MarketplaceSubgraphSummary[];\n}\n"
6
+ ],
7
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAsBO,IAAM,+BACZ,EAAE,OAAO;AAAA,EACR,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAClD,aAAa,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS;AAC3C,CAAC;AAEK,IAAM,6BACZ,EAAE,OAAO;AAAA,EACR,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,EAC1C,KAAK,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EAClC,MAAM,EACJ,OAAO,EACP,MAAM,gBAAgB,uCAAuC,EAC7D,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AACZ,CAAC;AAEK,IAAM,4BACZ,EAAE,OAAO;AAAA,EACR,oBAAoB,EAAE,OAAO;AAAA,EAC7B,SAAS,EACP,OAAO,EACP,MAAM,gBAAgB,uCAAuC,EAC7D,IAAI,EAAE,EACN,SAAS;AACZ,CAAC;",
8
+ "debugId": "14EEEDD6D32C5A5A64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,66 @@
1
+ import { z } from "zod/v4";
2
+ interface DeployWorkflowRequest {
3
+ name: string;
4
+ trigger: Record<string, unknown>;
5
+ handlerCode: string;
6
+ retries?: {
7
+ maxAttempts?: number
8
+ backoffMs?: number
9
+ backoffMultiplier?: number
10
+ };
11
+ timeout?: number;
12
+ }
13
+ declare const DeployWorkflowRequestSchema: z.ZodType<DeployWorkflowRequest>;
14
+ interface DeployWorkflowResponse {
15
+ action: "created" | "updated";
16
+ workflowId: string;
17
+ message: string;
18
+ }
19
+ interface WorkflowSummaryResponse {
20
+ name: string;
21
+ version: string;
22
+ status: string;
23
+ triggerType: string;
24
+ totalRuns: number;
25
+ lastRunAt: string | null;
26
+ createdAt: string;
27
+ updatedAt: string;
28
+ }
29
+ interface WorkflowDetailResponse extends WorkflowSummaryResponse {
30
+ triggerConfig: Record<string, unknown>;
31
+ retriesConfig: Record<string, unknown> | null;
32
+ timeoutMs: number | null;
33
+ }
34
+ interface WorkflowRunResponse {
35
+ id: string;
36
+ workflowName: string;
37
+ status: string;
38
+ triggerType: string;
39
+ triggerData: Record<string, unknown> | null;
40
+ error: string | null;
41
+ startedAt: string | null;
42
+ completedAt: string | null;
43
+ durationMs: number | null;
44
+ totalAiTokens: number;
45
+ createdAt: string;
46
+ steps: WorkflowStepResponse[];
47
+ }
48
+ interface WorkflowStepResponse {
49
+ id: string;
50
+ stepIndex: number;
51
+ stepId: string;
52
+ stepType: string;
53
+ status: string;
54
+ output: unknown | null;
55
+ error: string | null;
56
+ retryCount: number;
57
+ aiTokensUsed: number;
58
+ startedAt: string | null;
59
+ completedAt: string | null;
60
+ durationMs: number | null;
61
+ }
62
+ interface TriggerWorkflowRequest {
63
+ input?: Record<string, unknown>;
64
+ }
65
+ declare const TriggerWorkflowRequestSchema: z.ZodType<TriggerWorkflowRequest>;
66
+ export { WorkflowSummaryResponse, WorkflowStepResponse, WorkflowRunResponse, WorkflowDetailResponse, TriggerWorkflowRequestSchema, TriggerWorkflowRequest, DeployWorkflowResponse, DeployWorkflowRequestSchema, DeployWorkflowRequest };
@@ -0,0 +1,39 @@
1
+ import { createRequire } from "node:module";
2
+ var __defProp = Object.defineProperty;
3
+ var __returnValue = (v) => v;
4
+ function __exportSetter(name, newValue) {
5
+ this[name] = __returnValue.bind(null, newValue);
6
+ }
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true,
12
+ configurable: true,
13
+ set: __exportSetter.bind(all, name)
14
+ });
15
+ };
16
+
17
+ // src/schemas/workflows.ts
18
+ import { z } from "zod/v4";
19
+ var DeployWorkflowRequestSchema = z.object({
20
+ name: z.string().regex(/^[a-z][a-z0-9-]*$/, "lowercase alphanumeric + hyphens, must start with letter").max(63),
21
+ trigger: z.record(z.string(), z.unknown()),
22
+ handlerCode: z.string().max(1048576, "handler code exceeds 1MB limit"),
23
+ retries: z.object({
24
+ maxAttempts: z.number().int().positive().optional(),
25
+ backoffMs: z.number().int().nonnegative().optional(),
26
+ backoffMultiplier: z.number().positive().optional()
27
+ }).optional(),
28
+ timeout: z.number().int().positive().optional()
29
+ });
30
+ var TriggerWorkflowRequestSchema = z.object({
31
+ input: z.record(z.string(), z.unknown()).optional()
32
+ });
33
+ export {
34
+ TriggerWorkflowRequestSchema,
35
+ DeployWorkflowRequestSchema
36
+ };
37
+
38
+ //# debugId=C5C0F7222546009064756E2164756E21
39
+ //# sourceMappingURL=workflows.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/schemas/workflows.ts"],
4
+ "sourcesContent": [
5
+ "import { z } from \"zod/v4\";\n\n// ── Deploy Workflow Request ──────────────────────────────────────────\n\nexport interface DeployWorkflowRequest {\n\tname: string;\n\ttrigger: Record<string, unknown>;\n\thandlerCode: string;\n\tretries?: { maxAttempts?: number; backoffMs?: number; backoffMultiplier?: number };\n\ttimeout?: number;\n}\n\nexport const DeployWorkflowRequestSchema: z.ZodType<DeployWorkflowRequest> =\n\tz.object({\n\t\tname: z\n\t\t\t.string()\n\t\t\t.regex(/^[a-z][a-z0-9-]*$/, \"lowercase alphanumeric + hyphens, must start with letter\")\n\t\t\t.max(63),\n\t\ttrigger: z.record(z.string(), z.unknown()),\n\t\thandlerCode: z.string().max(1_048_576, \"handler code exceeds 1MB limit\"),\n\t\tretries: z\n\t\t\t.object({\n\t\t\t\tmaxAttempts: z.number().int().positive().optional(),\n\t\t\t\tbackoffMs: z.number().int().nonnegative().optional(),\n\t\t\t\tbackoffMultiplier: z.number().positive().optional(),\n\t\t\t})\n\t\t\t.optional(),\n\t\ttimeout: z.number().int().positive().optional(),\n\t});\n\nexport interface DeployWorkflowResponse {\n\taction: \"created\" | \"updated\";\n\tworkflowId: string;\n\tmessage: string;\n}\n\n// ── API Response Types ───────────────────────────────────────────────\n\nexport interface WorkflowSummaryResponse {\n\tname: string;\n\tversion: string;\n\tstatus: string;\n\ttriggerType: string;\n\ttotalRuns: number;\n\tlastRunAt: string | null;\n\tcreatedAt: string;\n\tupdatedAt: string;\n}\n\nexport interface WorkflowDetailResponse extends WorkflowSummaryResponse {\n\ttriggerConfig: Record<string, unknown>;\n\tretriesConfig: Record<string, unknown> | null;\n\ttimeoutMs: number | null;\n}\n\nexport interface WorkflowRunResponse {\n\tid: string;\n\tworkflowName: string;\n\tstatus: string;\n\ttriggerType: string;\n\ttriggerData: Record<string, unknown> | null;\n\terror: string | null;\n\tstartedAt: string | null;\n\tcompletedAt: string | null;\n\tdurationMs: number | null;\n\ttotalAiTokens: number;\n\tcreatedAt: string;\n\tsteps: WorkflowStepResponse[];\n}\n\nexport interface WorkflowStepResponse {\n\tid: string;\n\tstepIndex: number;\n\tstepId: string;\n\tstepType: string;\n\tstatus: string;\n\toutput: unknown | null;\n\terror: string | null;\n\tretryCount: number;\n\taiTokensUsed: number;\n\tstartedAt: string | null;\n\tcompletedAt: string | null;\n\tdurationMs: number | null;\n}\n\nexport interface TriggerWorkflowRequest {\n\tinput?: Record<string, unknown>;\n}\n\nexport const TriggerWorkflowRequestSchema: z.ZodType<TriggerWorkflowRequest> =\n\tz.object({\n\t\tinput: z.record(z.string(), z.unknown()).optional(),\n\t});\n"
6
+ ],
7
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAYO,IAAM,8BACZ,EAAE,OAAO;AAAA,EACR,MAAM,EACJ,OAAO,EACP,MAAM,qBAAqB,0DAA0D,EACrF,IAAI,EAAE;AAAA,EACR,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC;AAAA,EACzC,aAAa,EAAE,OAAO,EAAE,IAAI,SAAW,gCAAgC;AAAA,EACvE,SAAS,EACP,OAAO;AAAA,IACP,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,IAClD,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,IACnD,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACnD,CAAC,EACA,SAAS;AAAA,EACX,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAC/C,CAAC;AA6DK,IAAM,+BACZ,EAAE,OAAO;AAAA,EACR,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,EAAE,SAAS;AACnD,CAAC;",
8
+ "debugId": "C5C0F7222546009064756E2164756E21",
9
+ "names": []
10
+ }
@@ -17,6 +17,8 @@ interface TransactionsTable {
17
17
  status: string;
18
18
  contract_id: string | null;
19
19
  function_name: string | null;
20
+ function_args: Generated<unknown | null>;
21
+ raw_result: Generated<string | null>;
20
22
  raw_tx: string;
21
23
  created_at: Generated<Date>;
22
24
  }
@@ -38,6 +40,7 @@ interface StreamsTable {
38
40
  endpoint_url: string;
39
41
  signing_secret: string | null;
40
42
  api_key_id: string;
43
+ project_id: string | null;
41
44
  created_at: Generated<Date>;
42
45
  updated_at: Generated<Date>;
43
46
  }
@@ -0,0 +1,27 @@
1
+ import type { Kysely } from "kysely";
2
+
3
+ /**
4
+ * Add function_args and raw_result columns to transactions table.
5
+ * Enables contract_call arg decoding and tx result access in subgraph handlers.
6
+ */
7
+ export async function up(db: Kysely<any>): Promise<void> {
8
+ await db.schema
9
+ .alterTable("transactions")
10
+ .addColumn("function_args", "jsonb")
11
+ .execute();
12
+ await db.schema
13
+ .alterTable("transactions")
14
+ .addColumn("raw_result", "text")
15
+ .execute();
16
+ }
17
+
18
+ export async function down(db: Kysely<any>): Promise<void> {
19
+ await db.schema
20
+ .alterTable("transactions")
21
+ .dropColumn("function_args")
22
+ .execute();
23
+ await db.schema
24
+ .alterTable("transactions")
25
+ .dropColumn("raw_result")
26
+ .execute();
27
+ }
@@ -0,0 +1,88 @@
1
+ import { sql, type Kysely } from "kysely";
2
+
3
+ /**
4
+ * Add marketplace columns to subgraphs and accounts.
5
+ * Create per-subgraph usage tracking table.
6
+ */
7
+ export async function up(db: Kysely<any>): Promise<void> {
8
+ // Subgraph marketplace columns
9
+ await db.schema
10
+ .alterTable("subgraphs")
11
+ .addColumn("is_public", "boolean", (c) => c.notNull().defaultTo(false))
12
+ .execute();
13
+ await db.schema
14
+ .alterTable("subgraphs")
15
+ .addColumn("tags", sql`text[]`, (c) => c.notNull().defaultTo(sql`'{}'`))
16
+ .execute();
17
+ await db.schema
18
+ .alterTable("subgraphs")
19
+ .addColumn("description", "text")
20
+ .execute();
21
+ await db.schema
22
+ .alterTable("subgraphs")
23
+ .addColumn("forked_from_id", "uuid", (c) =>
24
+ c.references("subgraphs.id").onDelete("set null"),
25
+ )
26
+ .execute();
27
+
28
+ // Account profile columns
29
+ await db.schema
30
+ .alterTable("accounts")
31
+ .addColumn("display_name", "text")
32
+ .execute();
33
+ await db.schema.alterTable("accounts").addColumn("bio", "text").execute();
34
+ await db.schema
35
+ .alterTable("accounts")
36
+ .addColumn("avatar_url", "text")
37
+ .execute();
38
+ await db.schema
39
+ .alterTable("accounts")
40
+ .addColumn("slug", "text", (c) => c.unique())
41
+ .execute();
42
+
43
+ // Per-subgraph usage tracking
44
+ await db.schema
45
+ .createTable("subgraph_usage_daily")
46
+ .addColumn("subgraph_id", "uuid", (c) =>
47
+ c.notNull().references("subgraphs.id").onDelete("cascade"),
48
+ )
49
+ .addColumn("date", "date", (c) => c.notNull())
50
+ .addColumn("query_count", "integer", (c) => c.notNull().defaultTo(0))
51
+ .addPrimaryKeyConstraint("subgraph_usage_daily_pk", [
52
+ "subgraph_id",
53
+ "date",
54
+ ])
55
+ .execute();
56
+
57
+ // Indexes
58
+ await sql`CREATE INDEX subgraphs_is_public_idx ON subgraphs (is_public) WHERE is_public = true`.execute(
59
+ db,
60
+ );
61
+ await sql`CREATE INDEX subgraphs_tags_idx ON subgraphs USING gin (tags)`.execute(
62
+ db,
63
+ );
64
+ await sql`CREATE INDEX accounts_slug_idx ON accounts (slug) WHERE slug IS NOT NULL`.execute(
65
+ db,
66
+ );
67
+ }
68
+
69
+ export async function down(db: Kysely<any>): Promise<void> {
70
+ await db.schema.dropTable("subgraph_usage_daily").execute();
71
+
72
+ await sql`DROP INDEX IF EXISTS accounts_slug_idx`.execute(db);
73
+ await sql`DROP INDEX IF EXISTS subgraphs_tags_idx`.execute(db);
74
+ await sql`DROP INDEX IF EXISTS subgraphs_is_public_idx`.execute(db);
75
+
76
+ await db.schema.alterTable("accounts").dropColumn("slug").execute();
77
+ await db.schema.alterTable("accounts").dropColumn("avatar_url").execute();
78
+ await db.schema.alterTable("accounts").dropColumn("bio").execute();
79
+ await db.schema.alterTable("accounts").dropColumn("display_name").execute();
80
+
81
+ await db.schema
82
+ .alterTable("subgraphs")
83
+ .dropColumn("forked_from_id")
84
+ .execute();
85
+ await db.schema.alterTable("subgraphs").dropColumn("description").execute();
86
+ await db.schema.alterTable("subgraphs").dropColumn("tags").execute();
87
+ await db.schema.alterTable("subgraphs").dropColumn("is_public").execute();
88
+ }
@@ -0,0 +1,149 @@
1
+ import { sql, type Kysely } from "kysely";
2
+
3
+ /**
4
+ * Add projects, team_members, and team_invitations tables.
5
+ * Add project_id to streams and subgraphs.
6
+ * Backfill: create a default project per account and assign existing resources.
7
+ */
8
+ export async function up(db: Kysely<any>): Promise<void> {
9
+ // Projects table
10
+ await db.schema
11
+ .createTable("projects")
12
+ .addColumn("id", "uuid", (c) =>
13
+ c.primaryKey().defaultTo(sql`gen_random_uuid()`),
14
+ )
15
+ .addColumn("name", "text", (c) => c.notNull())
16
+ .addColumn("slug", "text", (c) => c.notNull())
17
+ .addColumn("account_id", "uuid", (c) =>
18
+ c.notNull().references("accounts.id").onDelete("cascade"),
19
+ )
20
+ .addColumn("settings", "jsonb", (c) => c.notNull().defaultTo(sql`'{}'`))
21
+ .addColumn("network", "varchar(20)", (c) =>
22
+ c.notNull().defaultTo("mainnet"),
23
+ )
24
+ .addColumn("node_rpc", "text")
25
+ .addColumn("created_at", "timestamptz", (c) =>
26
+ c.notNull().defaultTo(sql`now()`),
27
+ )
28
+ .addColumn("updated_at", "timestamptz", (c) =>
29
+ c.notNull().defaultTo(sql`now()`),
30
+ )
31
+ .execute();
32
+
33
+ // Unique slug per account
34
+ await sql`CREATE UNIQUE INDEX projects_account_slug_idx ON projects (account_id, slug)`.execute(
35
+ db,
36
+ );
37
+
38
+ // Team members table
39
+ await db.schema
40
+ .createTable("team_members")
41
+ .addColumn("id", "uuid", (c) =>
42
+ c.primaryKey().defaultTo(sql`gen_random_uuid()`),
43
+ )
44
+ .addColumn("project_id", "uuid", (c) =>
45
+ c.notNull().references("projects.id").onDelete("cascade"),
46
+ )
47
+ .addColumn("account_id", "uuid", (c) =>
48
+ c.notNull().references("accounts.id").onDelete("cascade"),
49
+ )
50
+ .addColumn("role", "varchar(20)", (c) => c.notNull().defaultTo("member"))
51
+ .addColumn("invited_by", "uuid", (c) =>
52
+ c.references("accounts.id").onDelete("set null"),
53
+ )
54
+ .addColumn("created_at", "timestamptz", (c) =>
55
+ c.notNull().defaultTo(sql`now()`),
56
+ )
57
+ .execute();
58
+
59
+ await sql`CREATE UNIQUE INDEX team_members_project_account_idx ON team_members (project_id, account_id)`.execute(
60
+ db,
61
+ );
62
+
63
+ // Team invitations table
64
+ await db.schema
65
+ .createTable("team_invitations")
66
+ .addColumn("id", "uuid", (c) =>
67
+ c.primaryKey().defaultTo(sql`gen_random_uuid()`),
68
+ )
69
+ .addColumn("project_id", "uuid", (c) =>
70
+ c.notNull().references("projects.id").onDelete("cascade"),
71
+ )
72
+ .addColumn("email", "text", (c) => c.notNull())
73
+ .addColumn("role", "varchar(20)", (c) => c.notNull().defaultTo("member"))
74
+ .addColumn("token", "varchar(64)", (c) => c.notNull())
75
+ .addColumn("invited_by", "uuid", (c) =>
76
+ c.references("accounts.id").onDelete("set null"),
77
+ )
78
+ .addColumn("expires_at", "timestamptz", (c) => c.notNull())
79
+ .addColumn("accepted_at", "timestamptz")
80
+ .addColumn("created_at", "timestamptz", (c) =>
81
+ c.notNull().defaultTo(sql`now()`),
82
+ )
83
+ .execute();
84
+
85
+ // Add project_id to streams and subgraphs
86
+ await db.schema
87
+ .alterTable("streams")
88
+ .addColumn("project_id", "uuid", (c) =>
89
+ c.references("projects.id").onDelete("set null"),
90
+ )
91
+ .execute();
92
+
93
+ await db.schema
94
+ .alterTable("subgraphs")
95
+ .addColumn("project_id", "uuid", (c) =>
96
+ c.references("projects.id").onDelete("set null"),
97
+ )
98
+ .execute();
99
+
100
+ // Backfill: create default project per account, assign resources
101
+ await sql`
102
+ INSERT INTO projects (id, name, slug, account_id)
103
+ SELECT gen_random_uuid(), 'my-project', 'my-project', id
104
+ FROM accounts
105
+ `.execute(db);
106
+
107
+ await sql`
108
+ UPDATE streams SET project_id = p.id
109
+ FROM api_keys ak
110
+ JOIN projects p ON p.account_id = ak.account_id
111
+ WHERE streams.api_key_id = ak.id AND streams.project_id IS NULL
112
+ `.execute(db);
113
+
114
+ await sql`
115
+ UPDATE subgraphs SET project_id = p.id
116
+ FROM api_keys ak
117
+ JOIN projects p ON p.account_id = ak.account_id
118
+ WHERE subgraphs.api_key_id = ak.id AND subgraphs.project_id IS NULL
119
+ `.execute(db);
120
+
121
+ // Add owner team_member for each project
122
+ await sql`
123
+ INSERT INTO team_members (id, project_id, account_id, role)
124
+ SELECT gen_random_uuid(), id, account_id, 'owner'
125
+ FROM projects
126
+ `.execute(db);
127
+
128
+ // Indexes
129
+ await sql`CREATE INDEX streams_project_id_idx ON streams (project_id) WHERE project_id IS NOT NULL`.execute(
130
+ db,
131
+ );
132
+ await sql`CREATE INDEX subgraphs_project_id_idx ON subgraphs (project_id) WHERE project_id IS NOT NULL`.execute(
133
+ db,
134
+ );
135
+ }
136
+
137
+ export async function down(db: Kysely<any>): Promise<void> {
138
+ await sql`DROP INDEX IF EXISTS subgraphs_project_id_idx`.execute(db);
139
+ await sql`DROP INDEX IF EXISTS streams_project_id_idx`.execute(db);
140
+
141
+ await db.schema.alterTable("subgraphs").dropColumn("project_id").execute();
142
+ await db.schema.alterTable("streams").dropColumn("project_id").execute();
143
+
144
+ await db.schema.dropTable("team_invitations").execute();
145
+ await db.schema.dropTable("team_members").execute();
146
+
147
+ await sql`DROP INDEX IF EXISTS projects_account_slug_idx`.execute(db);
148
+ await db.schema.dropTable("projects").execute();
149
+ }
@@ -0,0 +1,51 @@
1
+ import { sql, type Kysely } from "kysely";
2
+
3
+ export async function up(db: Kysely<any>): Promise<void> {
4
+ await db.schema
5
+ .createTable("chat_sessions")
6
+ .addColumn("id", "uuid", (c) =>
7
+ c.primaryKey().defaultTo(sql`gen_random_uuid()`),
8
+ )
9
+ .addColumn("account_id", "uuid", (c) =>
10
+ c.notNull().references("accounts.id").onDelete("cascade"),
11
+ )
12
+ .addColumn("title", "text")
13
+ .addColumn("created_at", "timestamptz", (c) =>
14
+ c.notNull().defaultTo(sql`now()`),
15
+ )
16
+ .addColumn("updated_at", "timestamptz", (c) =>
17
+ c.notNull().defaultTo(sql`now()`),
18
+ )
19
+ .execute();
20
+
21
+ await sql`CREATE INDEX chat_sessions_account_idx ON chat_sessions (account_id, created_at DESC)`.execute(
22
+ db,
23
+ );
24
+
25
+ await db.schema
26
+ .createTable("chat_messages")
27
+ .addColumn("id", "uuid", (c) =>
28
+ c.primaryKey().defaultTo(sql`gen_random_uuid()`),
29
+ )
30
+ .addColumn("chat_session_id", "uuid", (c) =>
31
+ c.notNull().references("chat_sessions.id").onDelete("cascade"),
32
+ )
33
+ .addColumn("role", "varchar(20)", (c) => c.notNull())
34
+ .addColumn("parts", "jsonb", (c) => c.notNull())
35
+ .addColumn("metadata", "jsonb")
36
+ .addColumn("created_at", "timestamptz", (c) =>
37
+ c.notNull().defaultTo(sql`now()`),
38
+ )
39
+ .execute();
40
+
41
+ await sql`CREATE INDEX chat_messages_session_idx ON chat_messages (chat_session_id, created_at)`.execute(
42
+ db,
43
+ );
44
+ }
45
+
46
+ export async function down(db: Kysely<any>): Promise<void> {
47
+ await sql`DROP INDEX IF EXISTS chat_messages_session_idx`.execute(db);
48
+ await db.schema.dropTable("chat_messages").execute();
49
+ await sql`DROP INDEX IF EXISTS chat_sessions_account_idx`.execute(db);
50
+ await db.schema.dropTable("chat_sessions").execute();
51
+ }