@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.
- package/dist/src/db/index.d.ts +181 -2
- package/dist/src/db/queries/accounts.d.ts +158 -2
- package/dist/src/db/queries/accounts.js +17 -1
- package/dist/src/db/queries/accounts.js.map +3 -3
- package/dist/src/db/queries/integrity.d.ts +151 -1
- package/dist/src/db/queries/marketplace.d.ts +463 -0
- package/dist/src/db/queries/marketplace.js +142 -0
- package/dist/src/db/queries/marketplace.js.map +10 -0
- package/dist/src/db/queries/metrics.d.ts +151 -1
- package/dist/src/db/queries/projects.d.ts +423 -0
- package/dist/src/db/queries/projects.js +47 -0
- package/dist/src/db/queries/projects.js.map +10 -0
- package/dist/src/db/queries/subgraph-gaps.d.ts +151 -1
- package/dist/src/db/queries/subgraphs.d.ts +158 -6
- package/dist/src/db/queries/subgraphs.js +16 -13
- package/dist/src/db/queries/subgraphs.js.map +3 -3
- package/dist/src/db/queries/usage.d.ts +151 -1
- package/dist/src/db/queries/workflows.d.ts +439 -0
- package/dist/src/db/queries/workflows.js +115 -0
- package/dist/src/db/queries/workflows.js.map +11 -0
- package/dist/src/db/schema.d.ts +181 -2
- package/dist/src/index.d.ts +251 -10
- package/dist/src/index.js +91 -72
- package/dist/src/index.js.map +4 -3
- package/dist/src/node/hiro-pg-client.js +5 -3
- package/dist/src/node/hiro-pg-client.js.map +3 -3
- package/dist/src/node/local-client.d.ts +155 -1
- package/dist/src/node/local-client.js +19 -9
- package/dist/src/node/local-client.js.map +3 -3
- package/dist/src/schemas/index.d.ts +71 -9
- package/dist/src/schemas/index.js +93 -74
- package/dist/src/schemas/index.js.map +4 -3
- package/dist/src/schemas/marketplace.d.ts +63 -0
- package/dist/src/schemas/marketplace.js +39 -0
- package/dist/src/schemas/marketplace.js.map +10 -0
- package/dist/src/schemas/workflows.d.ts +66 -0
- package/dist/src/schemas/workflows.js +39 -0
- package/dist/src/schemas/workflows.js.map +10 -0
- package/dist/src/types.d.ts +3 -0
- package/migrations/0021_tx_function_args_result.ts +27 -0
- package/migrations/0022_marketplace.ts +88 -0
- package/migrations/0023_projects.ts +149 -0
- package/migrations/0024_chat_sessions.ts +51 -0
- package/migrations/0025_chat_session_summary.ts +15 -0
- package/migrations/0026_workflows.ts +204 -0
- package/migrations/0027_workflow_cursors.ts +16 -0
- package/migrations/0028_subgraph_account_scoping.ts +116 -0
- 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": "
|
|
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
|
+
}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -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
|
+
}
|