@elqnt/kg 3.0.0 → 3.0.1
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/api/index.d.mts +2 -2
- package/dist/api/index.d.ts +2 -2
- package/dist/api/index.js.map +1 -1
- package/dist/api/server.d.mts +3 -3
- package/dist/api/server.d.ts +3 -3
- package/dist/api/server.js.map +1 -1
- package/dist/chunk-2TJCYLTP.js.map +1 -1
- package/dist/chunk-67SUELDR.js.map +1 -1
- package/dist/chunk-7RW5MHP5.js.map +1 -1
- package/dist/chunk-ADIKUMMI.js.map +1 -1
- package/dist/chunk-UCKE66GB.js.map +1 -1
- package/dist/chunk-W4XVBGE7.js.map +1 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/models/index.js.map +1 -1
- package/dist/models/kg-designer.js.map +1 -1
- package/dist/models/kg.js.map +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +15 -13
package/dist/api/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ApiClientOptions, ApiResponse } from '@elqnt/api-client';
|
|
2
2
|
import { ResponseMetadata } from '@elqnt/types';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { CreateGraphRequest, CreateGraphResult, DeleteGraphResult, DeleteDocumentResponse, GetGraphResult, KGLabelInfo, KGNode, KGNodeIngestRequest, KGSyncIngestResponse, ListGraphsResult, KGQuery, KGQueryResult, Graph, UpdateGraphResult } from '../models/kg.mjs';
|
|
4
|
+
import { GraphEdgeDefinition, GraphEdgeResponse, GraphNodeDefinition, GraphNodeResponse } from '../models/kg-designer.mjs';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Knowledge Graph Browser API
|
package/dist/api/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ApiClientOptions, ApiResponse } from '@elqnt/api-client';
|
|
2
2
|
import { ResponseMetadata } from '@elqnt/types';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { CreateGraphRequest, CreateGraphResult, DeleteGraphResult, DeleteDocumentResponse, GetGraphResult, KGLabelInfo, KGNode, KGNodeIngestRequest, KGSyncIngestResponse, ListGraphsResult, KGQuery, KGQueryResult, Graph, UpdateGraphResult } from '../models/kg.js';
|
|
4
|
+
import { GraphEdgeDefinition, GraphEdgeResponse, GraphNodeDefinition, GraphNodeResponse } from '../models/kg-designer.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Knowledge Graph Browser API
|
package/dist/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eloquent
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/api/index.js"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,q1DAAC","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/api/index.js"}
|
package/dist/api/server.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ApiResponse } from '@elqnt/api-client';
|
|
2
2
|
import { ResponseMetadata } from '@elqnt/types';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { CreateGraphRequest, CreateGraphResult, DeleteGraphResult, DeleteDocumentResponse, KGLabelInfo, GetGraphResult, KGNode, KGNodeIngestRequest, KGSyncIngestResponse, ListGraphsResult, KGQuery, KGQueryResult, Graph, UpdateGraphResult } from '../models/kg.mjs';
|
|
4
|
+
import { GraphEdgeDefinition, GraphEdgeResponse, GraphNodeDefinition, GraphNodeResponse } from '../models/kg-designer.mjs';
|
|
5
|
+
import { CrawlJobStatusResponse, CrawledPagesResponse, CrawlJobsListResponse, CrawlJobStartResponse } from './index.mjs';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Knowledge Graph Server API
|
package/dist/api/server.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ApiResponse } from '@elqnt/api-client';
|
|
2
2
|
import { ResponseMetadata } from '@elqnt/types';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { CreateGraphRequest, CreateGraphResult, DeleteGraphResult, DeleteDocumentResponse, KGLabelInfo, GetGraphResult, KGNode, KGNodeIngestRequest, KGSyncIngestResponse, ListGraphsResult, KGQuery, KGQueryResult, Graph, UpdateGraphResult } from '../models/kg.js';
|
|
4
|
+
import { GraphEdgeDefinition, GraphEdgeResponse, GraphNodeDefinition, GraphNodeResponse } from '../models/kg-designer.js';
|
|
5
|
+
import { CrawlJobStatusResponse, CrawledPagesResponse, CrawlJobsListResponse, CrawlJobStartResponse } from './index.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Knowledge Graph Server API
|
package/dist/api/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eloquent-packages/eloquent-packages/packages/kg/dist/api/server.js","../../api/server.ts"],"names":[],"mappings":"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CJ,IAAA;AACC,IAAA;AACG,IAAA;AACF,IAAA;AACF,IAAA;AAChB,EAAA;AACH;AAME;AAGwB,EAAA;AACd,IAAA;AACF,IAAA;AACc,IAAA;AACD,IAAA;AACJ,IAAA;AACC,IAAA;AACG,IAAA;AACW,IAAA;AACb,IAAA;AACF,IAAA;AAChB,EAAA;AACH;AAME;AAGqC,EAAA;AACb,EAAA;AACd,IAAA;AACY,IAAA;AACD,IAAA;AACJ,IAAA;AACC,IAAA;AACG,IAAA;AACF,IAAA;AACF,IAAA;AAChB,EAAA;AACH;AAME;AAGwB,EAAA;AACd,IAAA;AACD,IAAA;AACa,IAAA;AACD,IAAA;AACJ,IAAA;AACC,IAAA;AACG,IAAA;AACW,IAAA;AACb,IAAA;AACF,IAAA;AAChB,EAAA;AACH;AAME;AAGqC,EAAA;AACb,EAAA;AACd,IAAA;AACY,IAAA;AACD,IAAA;AACJ,IAAA;AACC,IAAA;AACG,IAAA;AACF,IAAA;AACF,IAAA;AAChB,EAAA;AACH;AD1UuC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/eloquent-packages/eloquent-packages/packages/kg/dist/api/server.js","sourcesContent":[null,"/**\n * Knowledge Graph Server API\n *\n * Server-side API client for KG operations in server actions and SSR.\n * Uses @elqnt/api-client/server for HTTP requests with JWT token generation.\n *\n * @example\n * ```ts\n * // In a server action\n * import { listGraphsServer } from \"@elqnt/kg/api/server\";\n *\n * const graphs = await listGraphsServer({\n * gatewayUrl: process.env.API_GATEWAY_URL!,\n * jwtSecret: process.env.JWT_SECRET!,\n * orgId: orgId,\n * });\n * ```\n *\n * @packageDocumentation\n */\n\nimport { serverApiRequest } from \"@elqnt/api-client/server\";\nimport type { ApiResponse } from \"@elqnt/api-client\";\nimport type { ResponseMetadata } from \"@elqnt/types\";\nimport type {\n Graph,\n ListGraphsResult,\n GetGraphResult,\n CreateGraphResult,\n CreateGraphRequest,\n UpdateGraphResult,\n DeleteGraphResult,\n KGNode,\n KGQuery,\n KGQueryResult,\n KGLabelInfo,\n KGNodeIngestRequest,\n KGSyncIngestResponse,\n DeleteDocumentResponse,\n GraphNodeDefinition,\n GraphNodeResponse,\n GraphEdgeDefinition,\n GraphEdgeResponse,\n} from \"../models\";\nimport type {\n CrawlJob,\n CrawlJobsListResponse,\n CrawlJobStatusResponse,\n CrawlJobStartResponse,\n CrawledPagesResponse,\n} from \"./index\";\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\n/**\n * Options for server-side KG API calls\n */\nexport interface ServerApiOptions {\n /** API Gateway URL */\n gatewayUrl: string;\n /** JWT secret for token generation */\n jwtSecret: string;\n /** Organization ID */\n orgId: string;\n /** Optional user ID (defaults to \"system\") */\n userId?: string;\n /** Optional user email */\n userEmail?: string;\n /** Optional graph ID for graph-scoped operations */\n graphId?: string;\n /** Request timeout in ms */\n timeout?: number;\n /** Request cache mode */\n cache?: RequestCache;\n}\n\n/**\n * Build query string from parameters, filtering out undefined values\n */\nfunction buildQueryString(params: Record<string, string | undefined>): string {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined) {\n searchParams.set(key, value);\n }\n }\n const queryString = searchParams.toString();\n return queryString ? `?${queryString}` : \"\";\n}\n\n/**\n * Build headers including X-Graph-ID if provided\n */\nfunction buildHeaders(graphId?: string): Record<string, string> | undefined {\n return graphId ? { \"X-Graph-ID\": graphId } : undefined;\n}\n\n// =============================================================================\n// GRAPHS\n// =============================================================================\n\n/**\n * List all knowledge graphs for the organization\n *\n * @example\n * ```ts\n * const response = await listGraphsServer({\n * gatewayUrl: \"http://api-gateway:80\",\n * jwtSecret: process.env.JWT_SECRET!,\n * orgId: \"org-123\",\n * });\n * if (response.data?.graphs) {\n * console.log(\"Graphs:\", response.data.graphs);\n * }\n * ```\n */\nexport async function listGraphsServer(\n options: ServerApiOptions\n): Promise<ApiResponse<ListGraphsResult>> {\n return serverApiRequest(\"/api/v1/kg/graphs\", {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Get a specific knowledge graph by ID\n */\nexport async function getGraphServer(\n graphId: string,\n options: ServerApiOptions\n): Promise<ApiResponse<GetGraphResult>> {\n return serverApiRequest(`/api/v1/kg/graphs/${graphId}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Create a new knowledge graph\n */\nexport async function createGraphServer(\n graph: CreateGraphRequest,\n options: ServerApiOptions\n): Promise<ApiResponse<CreateGraphResult>> {\n return serverApiRequest(\"/api/v1/kg/graphs\", {\n method: \"POST\",\n body: graph,\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Update an existing knowledge graph\n */\nexport async function updateGraphServer(\n graphId: string,\n updates: Partial<Graph>,\n options: ServerApiOptions\n): Promise<ApiResponse<UpdateGraphResult>> {\n return serverApiRequest(`/api/v1/kg/graphs/${graphId}`, {\n method: \"PUT\",\n body: updates,\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Delete a knowledge graph\n */\nexport async function deleteGraphServer(\n graphId: string,\n options: ServerApiOptions\n): Promise<ApiResponse<DeleteGraphResult>> {\n return serverApiRequest(`/api/v1/kg/graphs/${graphId}`, {\n method: \"DELETE\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n// =============================================================================\n// QUERY & LABELS\n// =============================================================================\n\n/**\n * Query knowledge graph nodes\n *\n * @example\n * ```ts\n * const response = await queryGraphServer(\n * { label: \"Person\", fields: [], limit: 10, depth: 1, sortBy: \"\", sortOrder: \"\" },\n * { gatewayUrl, jwtSecret, orgId, graphId }\n * );\n * ```\n */\nexport async function queryGraphServer(\n query: KGQuery,\n options: ServerApiOptions\n): Promise<ApiResponse<KGQueryResult>> {\n return serverApiRequest(\"/api/v1/kg/query\", {\n method: \"POST\",\n body: query,\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout ?? 30000,\n cache: options.cache,\n });\n}\n\n/**\n * Get all node labels in the knowledge graph\n */\nexport async function getGraphLabelsServer(\n options: ServerApiOptions\n): Promise<ApiResponse<{ labels: KGLabelInfo[] }>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/labels${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n// =============================================================================\n// NODES\n// =============================================================================\n\n/**\n * Get a specific KG node by ID\n */\nexport async function getKGNodeServer(\n nodeId: string,\n options: ServerApiOptions\n): Promise<ApiResponse<{ node: KGNode }>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/nodes/${nodeId}${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Ingest a new node into the knowledge graph\n */\nexport async function ingestKGNodeServer(\n node: KGNodeIngestRequest,\n options: ServerApiOptions\n): Promise<ApiResponse<KGSyncIngestResponse>> {\n return serverApiRequest(\"/api/v1/kg/nodes\", {\n method: \"POST\",\n body: node,\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Update an existing KG node\n */\nexport async function updateKGNodeServer(\n nodeId: string,\n updates: Partial<KGNode>,\n options: ServerApiOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return serverApiRequest(`/api/v1/kg/nodes/${nodeId}`, {\n method: \"PUT\",\n body: updates,\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Get connection statistics for a node\n */\nexport async function getNodeConnectionStatsServer(\n nodeId: string,\n edgeLabel: string,\n options: ServerApiOptions\n): Promise<ApiResponse<Record<string, number>>> {\n const queryString = buildQueryString({\n edgeLabel,\n graphId: options.graphId,\n });\n return serverApiRequest(`/api/v1/kg/nodes/${nodeId}/connections${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n// =============================================================================\n// DOCUMENTS\n// =============================================================================\n\n/**\n * Ingest a document into the knowledge graph\n */\nexport async function ingestDocumentServer(\n document: { id: string; title: string; content: string; docUrl?: string; lang?: string },\n options: ServerApiOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return serverApiRequest(\"/api/v1/kg/ingest\", {\n method: \"POST\",\n body: document,\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout ?? 120000,\n cache: options.cache,\n });\n}\n\n/**\n * Delete a document from the knowledge graph\n */\nexport async function deleteKGDocumentServer(\n documentId: string,\n options: ServerApiOptions\n): Promise<ApiResponse<DeleteDocumentResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/documents/${documentId}${queryString}`, {\n method: \"DELETE\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Optimize the knowledge graph\n */\nexport async function optimizeGraphServer(\n options: ServerApiOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return serverApiRequest(\"/api/v1/kg/graph/optimize\", {\n method: \"POST\",\n body: {},\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n// =============================================================================\n// DESIGNER - NODES\n// =============================================================================\n\n/**\n * List all node definitions in the graph designer\n */\nexport async function listDesignerNodesServer(\n options: ServerApiOptions\n): Promise<ApiResponse<GraphNodeResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/designer/nodes${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Get a specific node definition by label\n */\nexport async function getDesignerNodeServer(\n label: string,\n options: ServerApiOptions\n): Promise<ApiResponse<GraphNodeResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/designer/nodes/${label}${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Create a new node definition\n */\nexport async function createDesignerNodeServer(\n node: Omit<GraphNodeDefinition, \"createdAt\" | \"updatedAt\">,\n options: ServerApiOptions\n): Promise<ApiResponse<GraphNodeResponse>> {\n return serverApiRequest(\"/api/v1/kg/designer/nodes\", {\n method: \"POST\",\n body: { node },\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Update an existing node definition\n */\nexport async function updateDesignerNodeServer(\n label: string,\n node: Partial<GraphNodeDefinition>,\n options: ServerApiOptions\n): Promise<ApiResponse<GraphNodeResponse>> {\n return serverApiRequest(`/api/v1/kg/designer/nodes/${label}`, {\n method: \"PUT\",\n body: { node },\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Delete a node definition\n */\nexport async function deleteDesignerNodeServer(\n label: string,\n options: ServerApiOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/designer/nodes/${label}${queryString}`, {\n method: \"DELETE\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n// =============================================================================\n// DESIGNER - EDGES\n// =============================================================================\n\n/**\n * List all edge definitions in the graph designer\n */\nexport async function listDesignerEdgesServer(\n options: ServerApiOptions\n): Promise<ApiResponse<GraphEdgeResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/designer/edges${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Get a specific edge definition by label\n */\nexport async function getDesignerEdgeServer(\n label: string,\n options: ServerApiOptions\n): Promise<ApiResponse<GraphEdgeResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/designer/edges/${label}${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Create a new edge definition\n */\nexport async function createDesignerEdgeServer(\n edge: Omit<GraphEdgeDefinition, \"createdAt\" | \"updatedAt\">,\n options: ServerApiOptions\n): Promise<ApiResponse<GraphEdgeResponse>> {\n return serverApiRequest(\"/api/v1/kg/designer/edges\", {\n method: \"POST\",\n body: { edge },\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Update an existing edge definition\n */\nexport async function updateDesignerEdgeServer(\n label: string,\n edge: Partial<GraphEdgeDefinition>,\n options: ServerApiOptions\n): Promise<ApiResponse<GraphEdgeResponse>> {\n return serverApiRequest(`/api/v1/kg/designer/edges/${label}`, {\n method: \"PUT\",\n body: { edge },\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Delete an edge definition\n */\nexport async function deleteDesignerEdgeServer(\n label: string,\n options: ServerApiOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/designer/edges/${label}${queryString}`, {\n method: \"DELETE\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n// =============================================================================\n// CRAWL JOBS\n// =============================================================================\n\n/**\n * List crawl jobs\n */\nexport async function listCrawlJobsServer(\n options: ServerApiOptions & { limit?: number; offset?: number; status?: string }\n): Promise<ApiResponse<CrawlJobsListResponse>> {\n const queryString = buildQueryString({\n graphId: options.graphId,\n limit: options.limit?.toString(),\n offset: options.offset?.toString(),\n status: options.status,\n });\n return serverApiRequest(`/api/v1/kg/crawl/jobs${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Start a new crawl job\n */\nexport async function startCrawlJobServer(\n params: { baseUrl: string; depth: number; maxPages: number },\n options: ServerApiOptions\n): Promise<ApiResponse<CrawlJobStartResponse>> {\n return serverApiRequest(\"/api/v1/kg/crawl/jobs\", {\n method: \"POST\",\n body: params,\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Get crawl job status\n */\nexport async function getCrawlJobStatusServer(\n jobId: string,\n options: ServerApiOptions\n): Promise<ApiResponse<CrawlJobStatusResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/crawl/jobs/${jobId}${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Cancel a crawl job\n */\nexport async function cancelCrawlJobServer(\n jobId: string,\n options: ServerApiOptions\n): Promise<ApiResponse<CrawlJobStatusResponse>> {\n return serverApiRequest(`/api/v1/kg/crawl/jobs/${jobId}/cancel`, {\n method: \"POST\",\n body: {},\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Get pages crawled by a job\n */\nexport async function getCrawledPagesServer(\n jobId: string,\n options: ServerApiOptions\n): Promise<ApiResponse<CrawledPagesResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/crawl/jobs/${jobId}/pages${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/api/server.js","../../api/server.ts"],"names":[],"mappings":"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CJ,IAAA;AACC,IAAA;AACG,IAAA;AACF,IAAA;AACF,IAAA;AAChB,EAAA;AACH;AAME;AAGwB,EAAA;AACd,IAAA;AACF,IAAA;AACc,IAAA;AACD,IAAA;AACJ,IAAA;AACC,IAAA;AACG,IAAA;AACW,IAAA;AACb,IAAA;AACF,IAAA;AAChB,EAAA;AACH;AAME;AAGqC,EAAA;AACb,EAAA;AACd,IAAA;AACY,IAAA;AACD,IAAA;AACJ,IAAA;AACC,IAAA;AACG,IAAA;AACF,IAAA;AACF,IAAA;AAChB,EAAA;AACH;AAME;AAGwB,EAAA;AACd,IAAA;AACD,IAAA;AACa,IAAA;AACD,IAAA;AACJ,IAAA;AACC,IAAA;AACG,IAAA;AACW,IAAA;AACb,IAAA;AACF,IAAA;AAChB,EAAA;AACH;AAME;AAGqC,EAAA;AACb,EAAA;AACd,IAAA;AACY,IAAA;AACD,IAAA;AACJ,IAAA;AACC,IAAA;AACG,IAAA;AACF,IAAA;AACF,IAAA;AAChB,EAAA;AACH;AD1UuC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/api/server.js","sourcesContent":[null,"/**\n * Knowledge Graph Server API\n *\n * Server-side API client for KG operations in server actions and SSR.\n * Uses @elqnt/api-client/server for HTTP requests with JWT token generation.\n *\n * @example\n * ```ts\n * // In a server action\n * import { listGraphsServer } from \"@elqnt/kg/api/server\";\n *\n * const graphs = await listGraphsServer({\n * gatewayUrl: process.env.API_GATEWAY_URL!,\n * jwtSecret: process.env.JWT_SECRET!,\n * orgId: orgId,\n * });\n * ```\n *\n * @packageDocumentation\n */\n\nimport { serverApiRequest } from \"@elqnt/api-client/server\";\nimport type { ApiResponse } from \"@elqnt/api-client\";\nimport type { ResponseMetadata } from \"@elqnt/types\";\nimport type {\n Graph,\n ListGraphsResult,\n GetGraphResult,\n CreateGraphResult,\n CreateGraphRequest,\n UpdateGraphResult,\n DeleteGraphResult,\n KGNode,\n KGQuery,\n KGQueryResult,\n KGLabelInfo,\n KGNodeIngestRequest,\n KGSyncIngestResponse,\n DeleteDocumentResponse,\n GraphNodeDefinition,\n GraphNodeResponse,\n GraphEdgeDefinition,\n GraphEdgeResponse,\n} from \"../models\";\nimport type {\n CrawlJob,\n CrawlJobsListResponse,\n CrawlJobStatusResponse,\n CrawlJobStartResponse,\n CrawledPagesResponse,\n} from \"./index\";\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\n/**\n * Options for server-side KG API calls\n */\nexport interface ServerApiOptions {\n /** API Gateway URL */\n gatewayUrl: string;\n /** JWT secret for token generation */\n jwtSecret: string;\n /** Organization ID */\n orgId: string;\n /** Optional user ID (defaults to \"system\") */\n userId?: string;\n /** Optional user email */\n userEmail?: string;\n /** Optional graph ID for graph-scoped operations */\n graphId?: string;\n /** Request timeout in ms */\n timeout?: number;\n /** Request cache mode */\n cache?: RequestCache;\n}\n\n/**\n * Build query string from parameters, filtering out undefined values\n */\nfunction buildQueryString(params: Record<string, string | undefined>): string {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined) {\n searchParams.set(key, value);\n }\n }\n const queryString = searchParams.toString();\n return queryString ? `?${queryString}` : \"\";\n}\n\n/**\n * Build headers including X-Graph-ID if provided\n */\nfunction buildHeaders(graphId?: string): Record<string, string> | undefined {\n return graphId ? { \"X-Graph-ID\": graphId } : undefined;\n}\n\n// =============================================================================\n// GRAPHS\n// =============================================================================\n\n/**\n * List all knowledge graphs for the organization\n *\n * @example\n * ```ts\n * const response = await listGraphsServer({\n * gatewayUrl: \"http://api-gateway:80\",\n * jwtSecret: process.env.JWT_SECRET!,\n * orgId: \"org-123\",\n * });\n * if (response.data?.graphs) {\n * console.log(\"Graphs:\", response.data.graphs);\n * }\n * ```\n */\nexport async function listGraphsServer(\n options: ServerApiOptions\n): Promise<ApiResponse<ListGraphsResult>> {\n return serverApiRequest(\"/api/v1/kg/graphs\", {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Get a specific knowledge graph by ID\n */\nexport async function getGraphServer(\n graphId: string,\n options: ServerApiOptions\n): Promise<ApiResponse<GetGraphResult>> {\n return serverApiRequest(`/api/v1/kg/graphs/${graphId}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Create a new knowledge graph\n */\nexport async function createGraphServer(\n graph: CreateGraphRequest,\n options: ServerApiOptions\n): Promise<ApiResponse<CreateGraphResult>> {\n return serverApiRequest(\"/api/v1/kg/graphs\", {\n method: \"POST\",\n body: graph,\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Update an existing knowledge graph\n */\nexport async function updateGraphServer(\n graphId: string,\n updates: Partial<Graph>,\n options: ServerApiOptions\n): Promise<ApiResponse<UpdateGraphResult>> {\n return serverApiRequest(`/api/v1/kg/graphs/${graphId}`, {\n method: \"PUT\",\n body: updates,\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Delete a knowledge graph\n */\nexport async function deleteGraphServer(\n graphId: string,\n options: ServerApiOptions\n): Promise<ApiResponse<DeleteGraphResult>> {\n return serverApiRequest(`/api/v1/kg/graphs/${graphId}`, {\n method: \"DELETE\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n// =============================================================================\n// QUERY & LABELS\n// =============================================================================\n\n/**\n * Query knowledge graph nodes\n *\n * @example\n * ```ts\n * const response = await queryGraphServer(\n * { label: \"Person\", fields: [], limit: 10, depth: 1, sortBy: \"\", sortOrder: \"\" },\n * { gatewayUrl, jwtSecret, orgId, graphId }\n * );\n * ```\n */\nexport async function queryGraphServer(\n query: KGQuery,\n options: ServerApiOptions\n): Promise<ApiResponse<KGQueryResult>> {\n return serverApiRequest(\"/api/v1/kg/query\", {\n method: \"POST\",\n body: query,\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout ?? 30000,\n cache: options.cache,\n });\n}\n\n/**\n * Get all node labels in the knowledge graph\n */\nexport async function getGraphLabelsServer(\n options: ServerApiOptions\n): Promise<ApiResponse<{ labels: KGLabelInfo[] }>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/labels${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n// =============================================================================\n// NODES\n// =============================================================================\n\n/**\n * Get a specific KG node by ID\n */\nexport async function getKGNodeServer(\n nodeId: string,\n options: ServerApiOptions\n): Promise<ApiResponse<{ node: KGNode }>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/nodes/${nodeId}${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Ingest a new node into the knowledge graph\n */\nexport async function ingestKGNodeServer(\n node: KGNodeIngestRequest,\n options: ServerApiOptions\n): Promise<ApiResponse<KGSyncIngestResponse>> {\n return serverApiRequest(\"/api/v1/kg/nodes\", {\n method: \"POST\",\n body: node,\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Update an existing KG node\n */\nexport async function updateKGNodeServer(\n nodeId: string,\n updates: Partial<KGNode>,\n options: ServerApiOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return serverApiRequest(`/api/v1/kg/nodes/${nodeId}`, {\n method: \"PUT\",\n body: updates,\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Get connection statistics for a node\n */\nexport async function getNodeConnectionStatsServer(\n nodeId: string,\n edgeLabel: string,\n options: ServerApiOptions\n): Promise<ApiResponse<Record<string, number>>> {\n const queryString = buildQueryString({\n edgeLabel,\n graphId: options.graphId,\n });\n return serverApiRequest(`/api/v1/kg/nodes/${nodeId}/connections${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n// =============================================================================\n// DOCUMENTS\n// =============================================================================\n\n/**\n * Ingest a document into the knowledge graph\n */\nexport async function ingestDocumentServer(\n document: { id: string; title: string; content: string; docUrl?: string; lang?: string },\n options: ServerApiOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return serverApiRequest(\"/api/v1/kg/ingest\", {\n method: \"POST\",\n body: document,\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout ?? 120000,\n cache: options.cache,\n });\n}\n\n/**\n * Delete a document from the knowledge graph\n */\nexport async function deleteKGDocumentServer(\n documentId: string,\n options: ServerApiOptions\n): Promise<ApiResponse<DeleteDocumentResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/documents/${documentId}${queryString}`, {\n method: \"DELETE\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Optimize the knowledge graph\n */\nexport async function optimizeGraphServer(\n options: ServerApiOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return serverApiRequest(\"/api/v1/kg/graph/optimize\", {\n method: \"POST\",\n body: {},\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n// =============================================================================\n// DESIGNER - NODES\n// =============================================================================\n\n/**\n * List all node definitions in the graph designer\n */\nexport async function listDesignerNodesServer(\n options: ServerApiOptions\n): Promise<ApiResponse<GraphNodeResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/designer/nodes${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Get a specific node definition by label\n */\nexport async function getDesignerNodeServer(\n label: string,\n options: ServerApiOptions\n): Promise<ApiResponse<GraphNodeResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/designer/nodes/${label}${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Create a new node definition\n */\nexport async function createDesignerNodeServer(\n node: Omit<GraphNodeDefinition, \"createdAt\" | \"updatedAt\">,\n options: ServerApiOptions\n): Promise<ApiResponse<GraphNodeResponse>> {\n return serverApiRequest(\"/api/v1/kg/designer/nodes\", {\n method: \"POST\",\n body: { node },\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Update an existing node definition\n */\nexport async function updateDesignerNodeServer(\n label: string,\n node: Partial<GraphNodeDefinition>,\n options: ServerApiOptions\n): Promise<ApiResponse<GraphNodeResponse>> {\n return serverApiRequest(`/api/v1/kg/designer/nodes/${label}`, {\n method: \"PUT\",\n body: { node },\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Delete a node definition\n */\nexport async function deleteDesignerNodeServer(\n label: string,\n options: ServerApiOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/designer/nodes/${label}${queryString}`, {\n method: \"DELETE\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n// =============================================================================\n// DESIGNER - EDGES\n// =============================================================================\n\n/**\n * List all edge definitions in the graph designer\n */\nexport async function listDesignerEdgesServer(\n options: ServerApiOptions\n): Promise<ApiResponse<GraphEdgeResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/designer/edges${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Get a specific edge definition by label\n */\nexport async function getDesignerEdgeServer(\n label: string,\n options: ServerApiOptions\n): Promise<ApiResponse<GraphEdgeResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/designer/edges/${label}${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Create a new edge definition\n */\nexport async function createDesignerEdgeServer(\n edge: Omit<GraphEdgeDefinition, \"createdAt\" | \"updatedAt\">,\n options: ServerApiOptions\n): Promise<ApiResponse<GraphEdgeResponse>> {\n return serverApiRequest(\"/api/v1/kg/designer/edges\", {\n method: \"POST\",\n body: { edge },\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Update an existing edge definition\n */\nexport async function updateDesignerEdgeServer(\n label: string,\n edge: Partial<GraphEdgeDefinition>,\n options: ServerApiOptions\n): Promise<ApiResponse<GraphEdgeResponse>> {\n return serverApiRequest(`/api/v1/kg/designer/edges/${label}`, {\n method: \"PUT\",\n body: { edge },\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Delete an edge definition\n */\nexport async function deleteDesignerEdgeServer(\n label: string,\n options: ServerApiOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/designer/edges/${label}${queryString}`, {\n method: \"DELETE\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n// =============================================================================\n// CRAWL JOBS\n// =============================================================================\n\n/**\n * List crawl jobs\n */\nexport async function listCrawlJobsServer(\n options: ServerApiOptions & { limit?: number; offset?: number; status?: string }\n): Promise<ApiResponse<CrawlJobsListResponse>> {\n const queryString = buildQueryString({\n graphId: options.graphId,\n limit: options.limit?.toString(),\n offset: options.offset?.toString(),\n status: options.status,\n });\n return serverApiRequest(`/api/v1/kg/crawl/jobs${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Start a new crawl job\n */\nexport async function startCrawlJobServer(\n params: { baseUrl: string; depth: number; maxPages: number },\n options: ServerApiOptions\n): Promise<ApiResponse<CrawlJobStartResponse>> {\n return serverApiRequest(\"/api/v1/kg/crawl/jobs\", {\n method: \"POST\",\n body: params,\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Get crawl job status\n */\nexport async function getCrawlJobStatusServer(\n jobId: string,\n options: ServerApiOptions\n): Promise<ApiResponse<CrawlJobStatusResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/crawl/jobs/${jobId}${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Cancel a crawl job\n */\nexport async function cancelCrawlJobServer(\n jobId: string,\n options: ServerApiOptions\n): Promise<ApiResponse<CrawlJobStatusResponse>> {\n return serverApiRequest(`/api/v1/kg/crawl/jobs/${jobId}/cancel`, {\n method: \"POST\",\n body: {},\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n headers: buildHeaders(options.graphId),\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n\n/**\n * Get pages crawled by a job\n */\nexport async function getCrawledPagesServer(\n jobId: string,\n options: ServerApiOptions\n): Promise<ApiResponse<CrawledPagesResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return serverApiRequest(`/api/v1/kg/crawl/jobs/${jobId}/pages${queryString}`, {\n method: \"GET\",\n gatewayUrl: options.gatewayUrl,\n jwtSecret: options.jwtSecret,\n orgId: options.orgId,\n userId: options.userId,\n userEmail: options.userEmail,\n timeout: options.timeout,\n cache: options.cache,\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eloquent-packages/eloquent-packages/packages/kg/dist/chunk-2TJCYLTP.js","../api/index.ts"],"names":[],"mappings":"AAAA,ylBAAY;AACZ;AACA;ACeA,oDAAkC;AA8FlC,SAAS,gBAAA,CAAiB,MAAA,EAAoD;AAC5E,EAAA,MAAM,aAAA,EAAe,IAAI,eAAA,CAAgB,CAAA;AACzC,EAAA,IAAA,CAAA,MAAW,CAAC,GAAA,EAAK,KAAK,EAAA,GAAK,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,EAAG;AACjD,IAAA,GAAA,CAAI,MAAA,IAAU,KAAA,CAAA,EAAW;AACvB,MAAA,YAAA,CAAa,GAAA,CAAI,GAAA,EAAK,KAAK,CAAA;AAAA,IAC7B;AAAA,EACF;AACA,EAAA,MAAM,YAAA,EAAc,YAAA,CAAa,QAAA,CAAS,CAAA;AAC1C,EAAA,OAAO,YAAA,EAAc,CAAA,CAAA,EAAI,WAAW,CAAA,EAAA;AACtC;AAK4E;AACzC,EAAA;AACnC;AAoBuG;AAC5E,EAAA;AAC3B;AASmD;AACxB,EAAA;AAC3B;AASgE;AACrC,EAAA;AAC3B;AAYE;AAGyB,EAAA;AAC3B;AASsD;AAC3B,EAAA;AAC3B;AAqBoD;AACzB,EAAA;AACf,IAAA;AACF,IAAA;AACG,IAAA;AACqB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAQwC;AACD,EAAA;AACZ,EAAA;AAC3B;AAeE;AAEqC,EAAA;AACZ,EAAA;AAC3B;AAWE;AAEyB,EAAA;AACf,IAAA;AACF,IAAA;AACwB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAYE;AAGyB,EAAA;AACf,IAAA;AACF,IAAA;AACwB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAUsB;AAKiB,EAAA;AACZ,EAAA;AAC3B;AAcE;AAGyB,EAAA;AACf,IAAA;AACF,IAAA;AACG,IAAA;AACqB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAUE;AAGqC,EAAA;AACZ,EAAA;AAC3B;AAQuC;AACZ,EAAA;AACf,IAAA;AACD,IAAA;AACuB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAY2C;AACJ,EAAA;AACZ,EAAA;AAC3B;AASyC;AACF,EAAA;AACZ,EAAA;AAC3B;AAUE;AAGyB,EAAA;AACf,IAAA;AACK,IAAA;AACiB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAWE;AAIyB,EAAA;AACf,IAAA;AACK,IAAA;AACiB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAUE;AAGqC,EAAA;AACZ,EAAA;AAC3B;AAY2C;AACJ,EAAA;AACZ,EAAA;AAC3B;AASyC;AACF,EAAA;AACZ,EAAA;AAC3B;AAUE;AAGyB,EAAA;AACf,IAAA;AACK,IAAA;AACiB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAWE;AAIyB,EAAA;AACf,IAAA;AACK,IAAA;AACiB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAUE;AAGqC,EAAA;AACZ,EAAA;AAC3B;AAaE;AAEqC,EAAA;AAClB,IAAA;AACc,IAAA;AACE,IAAA;AACjB,IAAA;AACjB,EAAA;AACwB,EAAA;AAC3B;AAUE;AAGyB,EAAA;AACf,IAAA;AACF,IAAA;AACwB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAUE;AAGqC,EAAA;AACZ,EAAA;AAC3B;AAUE;AAGyB,EAAA;AACf,IAAA;AACD,IAAA;AACuB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAUE;AAGqC,EAAA;AACZ,EAAA;AAC3B;AD3buC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/eloquent-packages/eloquent-packages/packages/kg/dist/chunk-2TJCYLTP.js","sourcesContent":[null,"/**\n * Knowledge Graph Browser API\n *\n * Browser-side API client for KG operations.\n * Uses @elqnt/api-client for HTTP requests with automatic token management.\n *\n * @example\n * ```ts\n * import { listGraphsApi, queryGraphApi } from \"@elqnt/kg/api\";\n *\n * const graphs = await listGraphsApi({ baseUrl, orgId });\n * const result = await queryGraphApi(query, { baseUrl, orgId, graphId });\n * ```\n *\n * @packageDocumentation\n */\n\nimport { browserApiRequest } from \"@elqnt/api-client/browser\";\nimport type { ApiResponse, ApiClientOptions } from \"@elqnt/api-client\";\nimport type { ResponseMetadata } from \"@elqnt/types\";\nimport type {\n Graph,\n ListGraphsResult,\n GetGraphResult,\n CreateGraphResult,\n CreateGraphRequest,\n UpdateGraphResult,\n DeleteGraphResult,\n KGNode,\n KGQuery,\n KGQueryResult,\n KGLabelInfo,\n KGNodeIngestRequest,\n KGSyncIngestResponse,\n DeleteDocumentResponse,\n GraphNodeDefinition,\n GraphNodeResponse,\n GraphEdgeDefinition,\n GraphEdgeResponse,\n} from \"../models\";\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\n/**\n * Options for KG API calls that may include a graph ID\n */\nexport interface KGApiOptions extends ApiClientOptions {\n /** Optional graph ID for graph-scoped operations */\n graphId?: string;\n}\n\n/**\n * Crawl job information\n */\nexport interface CrawlJob {\n id: string;\n baseUrl: string;\n depth: number;\n maxPages: number;\n status: string;\n pagesProcessed: number;\n createdAt: string;\n updatedAt: string;\n}\n\n/**\n * Response for listing crawl jobs\n */\nexport interface CrawlJobsListResponse {\n jobs: CrawlJob[];\n total: number;\n}\n\n/**\n * Response for crawl job status\n */\nexport interface CrawlJobStatusResponse {\n job: CrawlJob;\n success: boolean;\n}\n\n/**\n * Response for starting a crawl job\n */\nexport interface CrawlJobStartResponse {\n jobId: string;\n success: boolean;\n}\n\n/**\n * Response for listing crawled pages\n */\nexport interface CrawledPagesResponse {\n pages: Array<{\n url: string;\n title: string;\n status: string;\n processedAt: string;\n }>;\n total: number;\n}\n\n// =============================================================================\n// UTILITIES\n// =============================================================================\n\n/**\n * Build query string from parameters, filtering out undefined values\n */\nfunction buildQueryString(params: Record<string, string | undefined>): string {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined) {\n searchParams.set(key, value);\n }\n }\n const queryString = searchParams.toString();\n return queryString ? `?${queryString}` : \"\";\n}\n\n/**\n * Build headers including X-Graph-ID if provided\n */\nfunction buildHeaders(graphId?: string): Record<string, string> | undefined {\n return graphId ? { \"X-Graph-ID\": graphId } : undefined;\n}\n\n// =============================================================================\n// GRAPHS\n// =============================================================================\n\n/**\n * List all knowledge graphs for the organization\n *\n * @param options - API client options (baseUrl, orgId)\n * @returns List of graphs\n *\n * @example\n * ```ts\n * const response = await listGraphsApi({ baseUrl: \"http://api-gateway:80\", orgId: \"org-123\" });\n * if (response.data?.graphs) {\n * console.log(\"Graphs:\", response.data.graphs);\n * }\n * ```\n */\nexport async function listGraphsApi(options: ApiClientOptions): Promise<ApiResponse<ListGraphsResult>> {\n return browserApiRequest(\"/api/v1/kg/graphs\", { method: \"GET\", ...options });\n}\n\n/**\n * Get a specific knowledge graph by ID\n *\n * @param graphId - The graph ID\n * @param options - API client options\n * @returns The graph details\n */\nexport async function getGraphApi(graphId: string, options: ApiClientOptions): Promise<ApiResponse<GetGraphResult>> {\n return browserApiRequest(`/api/v1/kg/graphs/${graphId}`, { method: \"GET\", ...options });\n}\n\n/**\n * Create a new knowledge graph\n *\n * @param graph - Graph creation request\n * @param options - API client options\n * @returns The created graph\n */\nexport async function createGraphApi(graph: CreateGraphRequest, options: ApiClientOptions): Promise<ApiResponse<CreateGraphResult>> {\n return browserApiRequest(\"/api/v1/kg/graphs\", { method: \"POST\", body: graph, ...options });\n}\n\n/**\n * Update an existing knowledge graph\n *\n * @param graphId - The graph ID to update\n * @param updates - Partial graph updates\n * @param options - API client options\n * @returns The updated graph\n */\nexport async function updateGraphApi(\n graphId: string,\n updates: Partial<Graph>,\n options: ApiClientOptions\n): Promise<ApiResponse<UpdateGraphResult>> {\n return browserApiRequest(`/api/v1/kg/graphs/${graphId}`, { method: \"PUT\", body: updates, ...options });\n}\n\n/**\n * Delete a knowledge graph\n *\n * @param graphId - The graph ID to delete\n * @param options - API client options\n * @returns Success/failure result\n */\nexport async function deleteGraphApi(graphId: string, options: ApiClientOptions): Promise<ApiResponse<DeleteGraphResult>> {\n return browserApiRequest(`/api/v1/kg/graphs/${graphId}`, { method: \"DELETE\", ...options });\n}\n\n// =============================================================================\n// QUERY & LABELS\n// =============================================================================\n\n/**\n * Query knowledge graph nodes\n *\n * @param query - The KG query parameters\n * @param options - API options including optional graphId\n * @returns Query results with matching nodes and edges\n *\n * @example\n * ```ts\n * const result = await queryGraphApi(\n * { label: \"Person\", fields: [], limit: 10, depth: 1, sortBy: \"\", sortOrder: \"\" },\n * { baseUrl, orgId, graphId }\n * );\n * ```\n */\nexport async function queryGraphApi(query: KGQuery, options: KGApiOptions): Promise<ApiResponse<KGQueryResult>> {\n return browserApiRequest(\"/api/v1/kg/query\", {\n method: \"POST\",\n body: query,\n timeout: 30000,\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Get all node labels in the knowledge graph\n *\n * @param options - API options including optional graphId\n * @returns List of labels with counts\n */\nexport async function getGraphLabelsApi(options: KGApiOptions): Promise<ApiResponse<{ labels: KGLabelInfo[] }>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/labels${queryString}`, { method: \"GET\", ...options });\n}\n\n// =============================================================================\n// NODES\n// =============================================================================\n\n/**\n * Get a specific KG node by ID\n *\n * @param nodeId - The node ID\n * @param options - API options including optional graphId\n * @returns The node details\n */\nexport async function getKGNodeApi(\n nodeId: string,\n options: KGApiOptions\n): Promise<ApiResponse<{ node: KGNode }>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/nodes/${nodeId}${queryString}`, { method: \"GET\", ...options });\n}\n\n/**\n * Ingest a new node into the knowledge graph\n *\n * @param node - Node ingest request\n * @param options - API options including optional graphId\n * @returns The created node ID\n */\nexport async function ingestKGNodeApi(\n node: KGNodeIngestRequest,\n options: KGApiOptions\n): Promise<ApiResponse<KGSyncIngestResponse>> {\n return browserApiRequest(\"/api/v1/kg/nodes\", {\n method: \"POST\",\n body: node,\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Update an existing KG node\n *\n * @param nodeId - The node ID to update\n * @param updates - Partial node updates\n * @param options - API options including optional graphId\n * @returns Success/failure result\n */\nexport async function updateKGNodeApi(\n nodeId: string,\n updates: Partial<KGNode>,\n options: KGApiOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/kg/nodes/${nodeId}`, {\n method: \"PUT\",\n body: updates,\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Get connection statistics for a node\n *\n * @param nodeId - The node ID\n * @param edgeLabel - The edge label to filter by\n * @param options - API options including optional graphId\n * @returns Connection counts by label\n */\nexport async function getNodeConnectionStatsApi(\n nodeId: string,\n edgeLabel: string,\n options: KGApiOptions\n): Promise<ApiResponse<Record<string, number>>> {\n const queryString = buildQueryString({ edgeLabel, graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/nodes/${nodeId}/connections${queryString}`, { method: \"GET\", ...options });\n}\n\n// =============================================================================\n// DOCUMENTS\n// =============================================================================\n\n/**\n * Ingest a document into the knowledge graph\n *\n * @param document - Document to ingest\n * @param options - API options including optional graphId\n * @returns Success/failure result\n */\nexport async function ingestDocumentApi(\n document: { id: string; title: string; content: string; docUrl?: string; lang?: string },\n options: KGApiOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(\"/api/v1/kg/ingest\", {\n method: \"POST\",\n body: document,\n timeout: 120000,\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Delete a document from the knowledge graph\n *\n * @param documentId - The document ID to delete\n * @param options - API options including optional graphId\n * @returns Deletion result with counts\n */\nexport async function deleteKGDocumentApi(\n documentId: string,\n options: KGApiOptions\n): Promise<ApiResponse<DeleteDocumentResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/documents/${documentId}${queryString}`, { method: \"DELETE\", ...options });\n}\n\n/**\n * Optimize the knowledge graph\n *\n * @param options - API options including optional graphId\n * @returns Success/failure result\n */\nexport async function optimizeGraphApi(options: KGApiOptions): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(\"/api/v1/kg/graph/optimize\", {\n method: \"POST\",\n body: {},\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n// =============================================================================\n// DESIGNER - NODES\n// =============================================================================\n\n/**\n * List all node definitions in the graph designer\n *\n * @param options - API options including optional graphId\n * @returns List of node definitions\n */\nexport async function listDesignerNodesApi(options: KGApiOptions): Promise<ApiResponse<GraphNodeResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/designer/nodes${queryString}`, { method: \"GET\", ...options });\n}\n\n/**\n * Get a specific node definition by label\n *\n * @param label - The node label\n * @param options - API options including optional graphId\n * @returns The node definition\n */\nexport async function getDesignerNodeApi(label: string, options: KGApiOptions): Promise<ApiResponse<GraphNodeResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/designer/nodes/${label}${queryString}`, { method: \"GET\", ...options });\n}\n\n/**\n * Create a new node definition\n *\n * @param node - Node definition to create\n * @param options - API options including optional graphId\n * @returns The created node definition\n */\nexport async function createDesignerNodeApi(\n node: Omit<GraphNodeDefinition, \"createdAt\" | \"updatedAt\">,\n options: KGApiOptions\n): Promise<ApiResponse<GraphNodeResponse>> {\n return browserApiRequest(\"/api/v1/kg/designer/nodes\", {\n method: \"POST\",\n body: { node },\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Update an existing node definition\n *\n * @param label - The node label to update\n * @param node - Partial node definition updates\n * @param options - API options including optional graphId\n * @returns The updated node definition\n */\nexport async function updateDesignerNodeApi(\n label: string,\n node: Partial<GraphNodeDefinition>,\n options: KGApiOptions\n): Promise<ApiResponse<GraphNodeResponse>> {\n return browserApiRequest(`/api/v1/kg/designer/nodes/${label}`, {\n method: \"PUT\",\n body: { node },\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Delete a node definition\n *\n * @param label - The node label to delete\n * @param options - API options including optional graphId\n * @returns Success/failure result\n */\nexport async function deleteDesignerNodeApi(\n label: string,\n options: KGApiOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/designer/nodes/${label}${queryString}`, { method: \"DELETE\", ...options });\n}\n\n// =============================================================================\n// DESIGNER - EDGES\n// =============================================================================\n\n/**\n * List all edge definitions in the graph designer\n *\n * @param options - API options including optional graphId\n * @returns List of edge definitions\n */\nexport async function listDesignerEdgesApi(options: KGApiOptions): Promise<ApiResponse<GraphEdgeResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/designer/edges${queryString}`, { method: \"GET\", ...options });\n}\n\n/**\n * Get a specific edge definition by label\n *\n * @param label - The edge label\n * @param options - API options including optional graphId\n * @returns The edge definition\n */\nexport async function getDesignerEdgeApi(label: string, options: KGApiOptions): Promise<ApiResponse<GraphEdgeResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/designer/edges/${label}${queryString}`, { method: \"GET\", ...options });\n}\n\n/**\n * Create a new edge definition\n *\n * @param edge - Edge definition to create\n * @param options - API options including optional graphId\n * @returns The created edge definition\n */\nexport async function createDesignerEdgeApi(\n edge: Omit<GraphEdgeDefinition, \"createdAt\" | \"updatedAt\">,\n options: KGApiOptions\n): Promise<ApiResponse<GraphEdgeResponse>> {\n return browserApiRequest(\"/api/v1/kg/designer/edges\", {\n method: \"POST\",\n body: { edge },\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Update an existing edge definition\n *\n * @param label - The edge label to update\n * @param edge - Partial edge definition updates\n * @param options - API options including optional graphId\n * @returns The updated edge definition\n */\nexport async function updateDesignerEdgeApi(\n label: string,\n edge: Partial<GraphEdgeDefinition>,\n options: KGApiOptions\n): Promise<ApiResponse<GraphEdgeResponse>> {\n return browserApiRequest(`/api/v1/kg/designer/edges/${label}`, {\n method: \"PUT\",\n body: { edge },\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Delete an edge definition\n *\n * @param label - The edge label to delete\n * @param options - API options including optional graphId\n * @returns Success/failure result\n */\nexport async function deleteDesignerEdgeApi(\n label: string,\n options: KGApiOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/designer/edges/${label}${queryString}`, { method: \"DELETE\", ...options });\n}\n\n// =============================================================================\n// CRAWL JOBS\n// =============================================================================\n\n/**\n * List crawl jobs\n *\n * @param options - API options including optional graphId, limit, offset, status\n * @returns List of crawl jobs with total count\n */\nexport async function listCrawlJobsApi(\n options: KGApiOptions & { limit?: number; offset?: number; status?: string }\n): Promise<ApiResponse<CrawlJobsListResponse>> {\n const queryString = buildQueryString({\n graphId: options.graphId,\n limit: options.limit?.toString(),\n offset: options.offset?.toString(),\n status: options.status,\n });\n return browserApiRequest(`/api/v1/kg/crawl/jobs${queryString}`, { method: \"GET\", ...options });\n}\n\n/**\n * Start a new crawl job\n *\n * @param params - Crawl job parameters\n * @param options - API options including optional graphId\n * @returns The created job ID\n */\nexport async function startCrawlJobApi(\n params: { baseUrl: string; depth: number; maxPages: number },\n options: KGApiOptions\n): Promise<ApiResponse<CrawlJobStartResponse>> {\n return browserApiRequest(\"/api/v1/kg/crawl/jobs\", {\n method: \"POST\",\n body: params,\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Get crawl job status\n *\n * @param jobId - The job ID\n * @param options - API options including optional graphId\n * @returns The job status\n */\nexport async function getCrawlJobStatusApi(\n jobId: string,\n options: KGApiOptions\n): Promise<ApiResponse<CrawlJobStatusResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/crawl/jobs/${jobId}${queryString}`, { method: \"GET\", ...options });\n}\n\n/**\n * Cancel a crawl job\n *\n * @param jobId - The job ID to cancel\n * @param options - API options including optional graphId\n * @returns The updated job status\n */\nexport async function cancelCrawlJobApi(\n jobId: string,\n options: KGApiOptions\n): Promise<ApiResponse<CrawlJobStatusResponse>> {\n return browserApiRequest(`/api/v1/kg/crawl/jobs/${jobId}/cancel`, {\n method: \"POST\",\n body: {},\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Get pages crawled by a job\n *\n * @param jobId - The job ID\n * @param options - API options including optional graphId\n * @returns List of crawled pages\n */\nexport async function getCrawledPagesApi(\n jobId: string,\n options: KGApiOptions\n): Promise<ApiResponse<CrawledPagesResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/crawl/jobs/${jobId}/pages${queryString}`, { method: \"GET\", ...options });\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/chunk-2TJCYLTP.js","../api/index.ts"],"names":[],"mappings":"AAAA,ylBAAY;AACZ;AACA;ACeA,oDAAkC;AA8FlC,SAAS,gBAAA,CAAiB,MAAA,EAAoD;AAC5E,EAAA,MAAM,aAAA,EAAe,IAAI,eAAA,CAAgB,CAAA;AACzC,EAAA,IAAA,CAAA,MAAW,CAAC,GAAA,EAAK,KAAK,EAAA,GAAK,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,EAAG;AACjD,IAAA,GAAA,CAAI,MAAA,IAAU,KAAA,CAAA,EAAW;AACvB,MAAA,YAAA,CAAa,GAAA,CAAI,GAAA,EAAK,KAAK,CAAA;AAAA,IAC7B;AAAA,EACF;AACA,EAAA,MAAM,YAAA,EAAc,YAAA,CAAa,QAAA,CAAS,CAAA;AAC1C,EAAA,OAAO,YAAA,EAAc,CAAA,CAAA,EAAI,WAAW,CAAA,EAAA;AACtC;AAK4E;AACzC,EAAA;AACnC;AAoBuG;AAC5E,EAAA;AAC3B;AASmD;AACxB,EAAA;AAC3B;AASgE;AACrC,EAAA;AAC3B;AAYE;AAGyB,EAAA;AAC3B;AASsD;AAC3B,EAAA;AAC3B;AAqBoD;AACzB,EAAA;AACf,IAAA;AACF,IAAA;AACG,IAAA;AACqB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAQwC;AACD,EAAA;AACZ,EAAA;AAC3B;AAeE;AAEqC,EAAA;AACZ,EAAA;AAC3B;AAWE;AAEyB,EAAA;AACf,IAAA;AACF,IAAA;AACwB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAYE;AAGyB,EAAA;AACf,IAAA;AACF,IAAA;AACwB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAUsB;AAKiB,EAAA;AACZ,EAAA;AAC3B;AAcE;AAGyB,EAAA;AACf,IAAA;AACF,IAAA;AACG,IAAA;AACqB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAUE;AAGqC,EAAA;AACZ,EAAA;AAC3B;AAQuC;AACZ,EAAA;AACf,IAAA;AACD,IAAA;AACuB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAY2C;AACJ,EAAA;AACZ,EAAA;AAC3B;AASyC;AACF,EAAA;AACZ,EAAA;AAC3B;AAUE;AAGyB,EAAA;AACf,IAAA;AACK,IAAA;AACiB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAWE;AAIyB,EAAA;AACf,IAAA;AACK,IAAA;AACiB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAUE;AAGqC,EAAA;AACZ,EAAA;AAC3B;AAY2C;AACJ,EAAA;AACZ,EAAA;AAC3B;AASyC;AACF,EAAA;AACZ,EAAA;AAC3B;AAUE;AAGyB,EAAA;AACf,IAAA;AACK,IAAA;AACiB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAWE;AAIyB,EAAA;AACf,IAAA;AACK,IAAA;AACiB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAUE;AAGqC,EAAA;AACZ,EAAA;AAC3B;AAaE;AAEqC,EAAA;AAClB,IAAA;AACc,IAAA;AACE,IAAA;AACjB,IAAA;AACjB,EAAA;AACwB,EAAA;AAC3B;AAUE;AAGyB,EAAA;AACf,IAAA;AACF,IAAA;AACwB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAUE;AAGqC,EAAA;AACZ,EAAA;AAC3B;AAUE;AAGyB,EAAA;AACf,IAAA;AACD,IAAA;AACuB,IAAA;AAC3B,IAAA;AACJ,EAAA;AACH;AAUE;AAGqC,EAAA;AACZ,EAAA;AAC3B;AD3buC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/chunk-2TJCYLTP.js","sourcesContent":[null,"/**\n * Knowledge Graph Browser API\n *\n * Browser-side API client for KG operations.\n * Uses @elqnt/api-client for HTTP requests with automatic token management.\n *\n * @example\n * ```ts\n * import { listGraphsApi, queryGraphApi } from \"@elqnt/kg/api\";\n *\n * const graphs = await listGraphsApi({ baseUrl, orgId });\n * const result = await queryGraphApi(query, { baseUrl, orgId, graphId });\n * ```\n *\n * @packageDocumentation\n */\n\nimport { browserApiRequest } from \"@elqnt/api-client/browser\";\nimport type { ApiResponse, ApiClientOptions } from \"@elqnt/api-client\";\nimport type { ResponseMetadata } from \"@elqnt/types\";\nimport type {\n Graph,\n ListGraphsResult,\n GetGraphResult,\n CreateGraphResult,\n CreateGraphRequest,\n UpdateGraphResult,\n DeleteGraphResult,\n KGNode,\n KGQuery,\n KGQueryResult,\n KGLabelInfo,\n KGNodeIngestRequest,\n KGSyncIngestResponse,\n DeleteDocumentResponse,\n GraphNodeDefinition,\n GraphNodeResponse,\n GraphEdgeDefinition,\n GraphEdgeResponse,\n} from \"../models\";\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\n/**\n * Options for KG API calls that may include a graph ID\n */\nexport interface KGApiOptions extends ApiClientOptions {\n /** Optional graph ID for graph-scoped operations */\n graphId?: string;\n}\n\n/**\n * Crawl job information\n */\nexport interface CrawlJob {\n id: string;\n baseUrl: string;\n depth: number;\n maxPages: number;\n status: string;\n pagesProcessed: number;\n createdAt: string;\n updatedAt: string;\n}\n\n/**\n * Response for listing crawl jobs\n */\nexport interface CrawlJobsListResponse {\n jobs: CrawlJob[];\n total: number;\n}\n\n/**\n * Response for crawl job status\n */\nexport interface CrawlJobStatusResponse {\n job: CrawlJob;\n success: boolean;\n}\n\n/**\n * Response for starting a crawl job\n */\nexport interface CrawlJobStartResponse {\n jobId: string;\n success: boolean;\n}\n\n/**\n * Response for listing crawled pages\n */\nexport interface CrawledPagesResponse {\n pages: Array<{\n url: string;\n title: string;\n status: string;\n processedAt: string;\n }>;\n total: number;\n}\n\n// =============================================================================\n// UTILITIES\n// =============================================================================\n\n/**\n * Build query string from parameters, filtering out undefined values\n */\nfunction buildQueryString(params: Record<string, string | undefined>): string {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined) {\n searchParams.set(key, value);\n }\n }\n const queryString = searchParams.toString();\n return queryString ? `?${queryString}` : \"\";\n}\n\n/**\n * Build headers including X-Graph-ID if provided\n */\nfunction buildHeaders(graphId?: string): Record<string, string> | undefined {\n return graphId ? { \"X-Graph-ID\": graphId } : undefined;\n}\n\n// =============================================================================\n// GRAPHS\n// =============================================================================\n\n/**\n * List all knowledge graphs for the organization\n *\n * @param options - API client options (baseUrl, orgId)\n * @returns List of graphs\n *\n * @example\n * ```ts\n * const response = await listGraphsApi({ baseUrl: \"http://api-gateway:80\", orgId: \"org-123\" });\n * if (response.data?.graphs) {\n * console.log(\"Graphs:\", response.data.graphs);\n * }\n * ```\n */\nexport async function listGraphsApi(options: ApiClientOptions): Promise<ApiResponse<ListGraphsResult>> {\n return browserApiRequest(\"/api/v1/kg/graphs\", { method: \"GET\", ...options });\n}\n\n/**\n * Get a specific knowledge graph by ID\n *\n * @param graphId - The graph ID\n * @param options - API client options\n * @returns The graph details\n */\nexport async function getGraphApi(graphId: string, options: ApiClientOptions): Promise<ApiResponse<GetGraphResult>> {\n return browserApiRequest(`/api/v1/kg/graphs/${graphId}`, { method: \"GET\", ...options });\n}\n\n/**\n * Create a new knowledge graph\n *\n * @param graph - Graph creation request\n * @param options - API client options\n * @returns The created graph\n */\nexport async function createGraphApi(graph: CreateGraphRequest, options: ApiClientOptions): Promise<ApiResponse<CreateGraphResult>> {\n return browserApiRequest(\"/api/v1/kg/graphs\", { method: \"POST\", body: graph, ...options });\n}\n\n/**\n * Update an existing knowledge graph\n *\n * @param graphId - The graph ID to update\n * @param updates - Partial graph updates\n * @param options - API client options\n * @returns The updated graph\n */\nexport async function updateGraphApi(\n graphId: string,\n updates: Partial<Graph>,\n options: ApiClientOptions\n): Promise<ApiResponse<UpdateGraphResult>> {\n return browserApiRequest(`/api/v1/kg/graphs/${graphId}`, { method: \"PUT\", body: updates, ...options });\n}\n\n/**\n * Delete a knowledge graph\n *\n * @param graphId - The graph ID to delete\n * @param options - API client options\n * @returns Success/failure result\n */\nexport async function deleteGraphApi(graphId: string, options: ApiClientOptions): Promise<ApiResponse<DeleteGraphResult>> {\n return browserApiRequest(`/api/v1/kg/graphs/${graphId}`, { method: \"DELETE\", ...options });\n}\n\n// =============================================================================\n// QUERY & LABELS\n// =============================================================================\n\n/**\n * Query knowledge graph nodes\n *\n * @param query - The KG query parameters\n * @param options - API options including optional graphId\n * @returns Query results with matching nodes and edges\n *\n * @example\n * ```ts\n * const result = await queryGraphApi(\n * { label: \"Person\", fields: [], limit: 10, depth: 1, sortBy: \"\", sortOrder: \"\" },\n * { baseUrl, orgId, graphId }\n * );\n * ```\n */\nexport async function queryGraphApi(query: KGQuery, options: KGApiOptions): Promise<ApiResponse<KGQueryResult>> {\n return browserApiRequest(\"/api/v1/kg/query\", {\n method: \"POST\",\n body: query,\n timeout: 30000,\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Get all node labels in the knowledge graph\n *\n * @param options - API options including optional graphId\n * @returns List of labels with counts\n */\nexport async function getGraphLabelsApi(options: KGApiOptions): Promise<ApiResponse<{ labels: KGLabelInfo[] }>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/labels${queryString}`, { method: \"GET\", ...options });\n}\n\n// =============================================================================\n// NODES\n// =============================================================================\n\n/**\n * Get a specific KG node by ID\n *\n * @param nodeId - The node ID\n * @param options - API options including optional graphId\n * @returns The node details\n */\nexport async function getKGNodeApi(\n nodeId: string,\n options: KGApiOptions\n): Promise<ApiResponse<{ node: KGNode }>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/nodes/${nodeId}${queryString}`, { method: \"GET\", ...options });\n}\n\n/**\n * Ingest a new node into the knowledge graph\n *\n * @param node - Node ingest request\n * @param options - API options including optional graphId\n * @returns The created node ID\n */\nexport async function ingestKGNodeApi(\n node: KGNodeIngestRequest,\n options: KGApiOptions\n): Promise<ApiResponse<KGSyncIngestResponse>> {\n return browserApiRequest(\"/api/v1/kg/nodes\", {\n method: \"POST\",\n body: node,\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Update an existing KG node\n *\n * @param nodeId - The node ID to update\n * @param updates - Partial node updates\n * @param options - API options including optional graphId\n * @returns Success/failure result\n */\nexport async function updateKGNodeApi(\n nodeId: string,\n updates: Partial<KGNode>,\n options: KGApiOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/kg/nodes/${nodeId}`, {\n method: \"PUT\",\n body: updates,\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Get connection statistics for a node\n *\n * @param nodeId - The node ID\n * @param edgeLabel - The edge label to filter by\n * @param options - API options including optional graphId\n * @returns Connection counts by label\n */\nexport async function getNodeConnectionStatsApi(\n nodeId: string,\n edgeLabel: string,\n options: KGApiOptions\n): Promise<ApiResponse<Record<string, number>>> {\n const queryString = buildQueryString({ edgeLabel, graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/nodes/${nodeId}/connections${queryString}`, { method: \"GET\", ...options });\n}\n\n// =============================================================================\n// DOCUMENTS\n// =============================================================================\n\n/**\n * Ingest a document into the knowledge graph\n *\n * @param document - Document to ingest\n * @param options - API options including optional graphId\n * @returns Success/failure result\n */\nexport async function ingestDocumentApi(\n document: { id: string; title: string; content: string; docUrl?: string; lang?: string },\n options: KGApiOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(\"/api/v1/kg/ingest\", {\n method: \"POST\",\n body: document,\n timeout: 120000,\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Delete a document from the knowledge graph\n *\n * @param documentId - The document ID to delete\n * @param options - API options including optional graphId\n * @returns Deletion result with counts\n */\nexport async function deleteKGDocumentApi(\n documentId: string,\n options: KGApiOptions\n): Promise<ApiResponse<DeleteDocumentResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/documents/${documentId}${queryString}`, { method: \"DELETE\", ...options });\n}\n\n/**\n * Optimize the knowledge graph\n *\n * @param options - API options including optional graphId\n * @returns Success/failure result\n */\nexport async function optimizeGraphApi(options: KGApiOptions): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(\"/api/v1/kg/graph/optimize\", {\n method: \"POST\",\n body: {},\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n// =============================================================================\n// DESIGNER - NODES\n// =============================================================================\n\n/**\n * List all node definitions in the graph designer\n *\n * @param options - API options including optional graphId\n * @returns List of node definitions\n */\nexport async function listDesignerNodesApi(options: KGApiOptions): Promise<ApiResponse<GraphNodeResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/designer/nodes${queryString}`, { method: \"GET\", ...options });\n}\n\n/**\n * Get a specific node definition by label\n *\n * @param label - The node label\n * @param options - API options including optional graphId\n * @returns The node definition\n */\nexport async function getDesignerNodeApi(label: string, options: KGApiOptions): Promise<ApiResponse<GraphNodeResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/designer/nodes/${label}${queryString}`, { method: \"GET\", ...options });\n}\n\n/**\n * Create a new node definition\n *\n * @param node - Node definition to create\n * @param options - API options including optional graphId\n * @returns The created node definition\n */\nexport async function createDesignerNodeApi(\n node: Omit<GraphNodeDefinition, \"createdAt\" | \"updatedAt\">,\n options: KGApiOptions\n): Promise<ApiResponse<GraphNodeResponse>> {\n return browserApiRequest(\"/api/v1/kg/designer/nodes\", {\n method: \"POST\",\n body: { node },\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Update an existing node definition\n *\n * @param label - The node label to update\n * @param node - Partial node definition updates\n * @param options - API options including optional graphId\n * @returns The updated node definition\n */\nexport async function updateDesignerNodeApi(\n label: string,\n node: Partial<GraphNodeDefinition>,\n options: KGApiOptions\n): Promise<ApiResponse<GraphNodeResponse>> {\n return browserApiRequest(`/api/v1/kg/designer/nodes/${label}`, {\n method: \"PUT\",\n body: { node },\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Delete a node definition\n *\n * @param label - The node label to delete\n * @param options - API options including optional graphId\n * @returns Success/failure result\n */\nexport async function deleteDesignerNodeApi(\n label: string,\n options: KGApiOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/designer/nodes/${label}${queryString}`, { method: \"DELETE\", ...options });\n}\n\n// =============================================================================\n// DESIGNER - EDGES\n// =============================================================================\n\n/**\n * List all edge definitions in the graph designer\n *\n * @param options - API options including optional graphId\n * @returns List of edge definitions\n */\nexport async function listDesignerEdgesApi(options: KGApiOptions): Promise<ApiResponse<GraphEdgeResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/designer/edges${queryString}`, { method: \"GET\", ...options });\n}\n\n/**\n * Get a specific edge definition by label\n *\n * @param label - The edge label\n * @param options - API options including optional graphId\n * @returns The edge definition\n */\nexport async function getDesignerEdgeApi(label: string, options: KGApiOptions): Promise<ApiResponse<GraphEdgeResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/designer/edges/${label}${queryString}`, { method: \"GET\", ...options });\n}\n\n/**\n * Create a new edge definition\n *\n * @param edge - Edge definition to create\n * @param options - API options including optional graphId\n * @returns The created edge definition\n */\nexport async function createDesignerEdgeApi(\n edge: Omit<GraphEdgeDefinition, \"createdAt\" | \"updatedAt\">,\n options: KGApiOptions\n): Promise<ApiResponse<GraphEdgeResponse>> {\n return browserApiRequest(\"/api/v1/kg/designer/edges\", {\n method: \"POST\",\n body: { edge },\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Update an existing edge definition\n *\n * @param label - The edge label to update\n * @param edge - Partial edge definition updates\n * @param options - API options including optional graphId\n * @returns The updated edge definition\n */\nexport async function updateDesignerEdgeApi(\n label: string,\n edge: Partial<GraphEdgeDefinition>,\n options: KGApiOptions\n): Promise<ApiResponse<GraphEdgeResponse>> {\n return browserApiRequest(`/api/v1/kg/designer/edges/${label}`, {\n method: \"PUT\",\n body: { edge },\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Delete an edge definition\n *\n * @param label - The edge label to delete\n * @param options - API options including optional graphId\n * @returns Success/failure result\n */\nexport async function deleteDesignerEdgeApi(\n label: string,\n options: KGApiOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/designer/edges/${label}${queryString}`, { method: \"DELETE\", ...options });\n}\n\n// =============================================================================\n// CRAWL JOBS\n// =============================================================================\n\n/**\n * List crawl jobs\n *\n * @param options - API options including optional graphId, limit, offset, status\n * @returns List of crawl jobs with total count\n */\nexport async function listCrawlJobsApi(\n options: KGApiOptions & { limit?: number; offset?: number; status?: string }\n): Promise<ApiResponse<CrawlJobsListResponse>> {\n const queryString = buildQueryString({\n graphId: options.graphId,\n limit: options.limit?.toString(),\n offset: options.offset?.toString(),\n status: options.status,\n });\n return browserApiRequest(`/api/v1/kg/crawl/jobs${queryString}`, { method: \"GET\", ...options });\n}\n\n/**\n * Start a new crawl job\n *\n * @param params - Crawl job parameters\n * @param options - API options including optional graphId\n * @returns The created job ID\n */\nexport async function startCrawlJobApi(\n params: { baseUrl: string; depth: number; maxPages: number },\n options: KGApiOptions\n): Promise<ApiResponse<CrawlJobStartResponse>> {\n return browserApiRequest(\"/api/v1/kg/crawl/jobs\", {\n method: \"POST\",\n body: params,\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Get crawl job status\n *\n * @param jobId - The job ID\n * @param options - API options including optional graphId\n * @returns The job status\n */\nexport async function getCrawlJobStatusApi(\n jobId: string,\n options: KGApiOptions\n): Promise<ApiResponse<CrawlJobStatusResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/crawl/jobs/${jobId}${queryString}`, { method: \"GET\", ...options });\n}\n\n/**\n * Cancel a crawl job\n *\n * @param jobId - The job ID to cancel\n * @param options - API options including optional graphId\n * @returns The updated job status\n */\nexport async function cancelCrawlJobApi(\n jobId: string,\n options: KGApiOptions\n): Promise<ApiResponse<CrawlJobStatusResponse>> {\n return browserApiRequest(`/api/v1/kg/crawl/jobs/${jobId}/cancel`, {\n method: \"POST\",\n body: {},\n headers: buildHeaders(options.graphId),\n ...options,\n });\n}\n\n/**\n * Get pages crawled by a job\n *\n * @param jobId - The job ID\n * @param options - API options including optional graphId\n * @returns List of crawled pages\n */\nexport async function getCrawledPagesApi(\n jobId: string,\n options: KGApiOptions\n): Promise<ApiResponse<CrawledPagesResponse>> {\n const queryString = buildQueryString({ graphId: options.graphId });\n return browserApiRequest(`/api/v1/kg/crawl/jobs/${jobId}/pages${queryString}`, { method: \"GET\", ...options });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eloquent
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/chunk-67SUELDR.js","../models/kg-designer.ts"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACA;ACqDO,IAAM,cAAA,EAAgB,iBAAA;AACtB,IAAM,cAAA,EAAgB,mBAAA;AACtB,IAAM,cAAA,EAAgB,mBAAA;AACtB,IAAM,WAAA,EAAa,gBAAA;AACnB,IAAM,YAAA,EAAc,eAAA;AAIpB,IAAM,qBAAA,EAAuB,yBAAA;AAC7B,IAAM,qBAAA,EAAuB,2BAAA;AAC7B,IAAM,qBAAA,EAAuB,2BAAA;AAC7B,IAAM,kBAAA,EAAoB,wBAAA;AAC1B,IAAM,mBAAA,EAAqB,uBAAA;AAI3B,IAAM,qBAAA,EAAuB,yBAAA;AAC7B,IAAM,qBAAA,EAAuB,2BAAA;AAC7B,IAAM,qBAAA,EAAuB,2BAAA;AAC7B,IAAM,kBAAA,EAAoB,wBAAA;AAC1B,IAAM,mBAAA,EAAqB,uBAAA;AAI3B,IAAM,WAAA,EAAa,cAAA;AAInB,IAAM,iBAAA,EAAmB,2BAAA;AAIzB,IAAM,gBAAA,EAAkB,oBAAA;AACxB,IAAM,cAAA,EAAgB,kBAAA;AAItB,IAAM,gBAAA,EAAkB,mBAAA;AAKxB,IAAM,iBAAA,EAAmB,cAAA;AACzB,IAAM,kBAAA,EAAoB,eAAA;ADzEjC;AACA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,69BAAC","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/chunk-67SUELDR.js","sourcesContent":[null,"// Code generated by tygo. DO NOT EDIT.\n\n//////////\n// source: designer-models.go\n\n/**\n * GraphNodeDefinition represents a node type in the knowledge graph\n */\nexport interface GraphNodeDefinition {\n label: string;\n description: string;\n schema: { [key: string]: any};\n createdAt: string /* RFC3339 */;\n updatedAt: string /* RFC3339 */;\n}\n/**\n * GraphEdgeDefinition represents an edge type in the knowledge graph\n */\nexport interface GraphEdgeDefinition {\n label: string;\n description: string;\n fromNode: string;\n toNode: string;\n schema: { [key: string]: any};\n createdAt: string /* RFC3339 */;\n updatedAt: string /* RFC3339 */;\n}\n/**\n * Request/Response types\n */\nexport interface GraphNodeRequest {\n node: GraphNodeDefinition;\n}\nexport interface GraphNodeResponse {\n node?: GraphNodeDefinition;\n nodes?: GraphNodeDefinition[];\n success: boolean;\n error?: string;\n}\nexport interface GraphEdgeRequest {\n edge: GraphEdgeDefinition;\n}\nexport interface GraphEdgeResponse {\n edge?: GraphEdgeDefinition;\n edges?: GraphEdgeDefinition[];\n success: boolean;\n error?: string;\n}\n\n//////////\n// source: subjects.go\n\n/**\n * KG Graph management subjects (multi-graph support)\n */\nexport const KGGraphCreate = \"kg.graph.create\";\nexport const KGGraphUpdate = \"kg.graph.update.*\";\nexport const KGGraphDelete = \"kg.graph.delete.*\";\nexport const KGGraphGet = \"kg.graph.get.*\";\nexport const KGGraphList = \"kg.graph.list\";\n/**\n * KG Designer Node subjects\n */\nexport const KGDesignerNodeCreate = \"kg.designer.node.create\";\nexport const KGDesignerNodeUpdate = \"kg.designer.node.update.*\";\nexport const KGDesignerNodeDelete = \"kg.designer.node.delete.*\";\nexport const KGDesignerNodeGet = \"kg.designer.node.get.*\";\nexport const KGDesignerNodeList = \"kg.designer.node.list\";\n/**\n * KG Designer Edge subjects\n */\nexport const KGDesignerEdgeCreate = \"kg.designer.edge.create\";\nexport const KGDesignerEdgeUpdate = \"kg.designer.edge.update.*\";\nexport const KGDesignerEdgeDelete = \"kg.designer.edge.delete.*\";\nexport const KGDesignerEdgeGet = \"kg.designer.edge.get.*\";\nexport const KGDesignerEdgeList = \"kg.designer.edge.list\";\n/**\n * KG Database subjects\n */\nexport const KGDBCreate = \"kg.db.create\";\n/**\n * KG Document subjects\n */\nexport const KGDocumentDelete = \"kg_ingest.document.delete\";\n/**\n * KG Sync Job subjects\n */\nexport const KGSyncJobUpdate = \"kg.sync.job.update\";\nexport const KGSyncJobList = \"kg.sync.job.list\";\n/**\n * KG Optimization subjects\n */\nexport const KGGraphOptimize = \"kg.graph.optimize\";\n/**\n * Synchronous ingest subjects (bypass JetStream for direct ClickHouse insertion)\n * Use kg.sync.* pattern to avoid overlap with kg.ingest.> JetStream stream\n */\nexport const KGIngestNodeSync = \"kg.sync.node\";\nexport const KGIngestBatchSync = \"kg.sync.batch\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eloquent-packages/eloquent-packages/packages/kg/dist/chunk-7RW5MHP5.js","../hooks/index.ts","../hooks/use-async.ts","../hooks/use-options-ref.ts"],"names":["useRef","useCallback"],"mappings":"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","file":"/home/runner/work/eloquent-packages/eloquent-packages/packages/kg/dist/chunk-7RW5MHP5.js","sourcesContent":[null,"\"use client\";\n\n/**\n * Knowledge Graph React Hooks\n *\n * Provides React hooks for KG operations with loading/error states.\n * All hooks use the useOptionsRef pattern to always access the latest options.\n *\n * @packageDocumentation\n */\n\nimport { useCallback, useMemo } from \"react\";\nimport type { ApiClientOptions } from \"@elqnt/api-client\";\nimport type {\n Graph,\n CreateGraphRequest,\n KGNode,\n KGQuery,\n KGQueryResult,\n KGLabelInfo,\n KGNodeIngestRequest,\n GraphNodeDefinition,\n GraphEdgeDefinition,\n} from \"../models\";\nimport {\n listGraphsApi,\n getGraphApi,\n createGraphApi,\n updateGraphApi,\n deleteGraphApi,\n queryGraphApi,\n getGraphLabelsApi,\n getKGNodeApi,\n ingestKGNodeApi,\n updateKGNodeApi,\n listDesignerNodesApi,\n getDesignerNodeApi,\n createDesignerNodeApi,\n updateDesignerNodeApi,\n deleteDesignerNodeApi,\n listDesignerEdgesApi,\n createDesignerEdgeApi,\n updateDesignerEdgeApi,\n deleteDesignerEdgeApi,\n listCrawlJobsApi,\n startCrawlJobApi,\n getCrawlJobStatusApi,\n cancelCrawlJobApi,\n getCrawledPagesApi,\n type KGApiOptions,\n type CrawlJob,\n} from \"../api\";\nimport { useApiAsync } from \"./use-async\";\nimport { useOptionsRef } from \"./use-options-ref\";\n\n// Re-export utilities for external use\nexport { useApiAsync, useAsync } from \"./use-async\";\nexport type { UseAsyncOptions, UseAsyncReturn } from \"./use-async\";\nexport { useOptionsRef } from \"./use-options-ref\";\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\n/** Options for KG hooks that require a graph ID */\nexport type UseKGOptions = ApiClientOptions & { graphId?: string };\n\n// =============================================================================\n// USE GRAPHS HOOK\n// =============================================================================\n\n/**\n * Hook for knowledge graph CRUD operations\n *\n * @example\n * ```tsx\n * const { loading, error, listGraphs, createGraph } = useGraphs({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * });\n *\n * const graphs = await listGraphs();\n * ```\n */\nexport function useGraphs(options: ApiClientOptions) {\n const optionsRef = useOptionsRef(options);\n\n const {\n execute: listGraphs,\n loading: listLoading,\n error: listError,\n } = useApiAsync(\n () => listGraphsApi(optionsRef.current),\n (data) => data.graphs || [],\n []\n );\n\n const {\n execute: getGraphInternal,\n loading: getLoading,\n error: getError,\n } = useApiAsync(\n (graphId: string) => getGraphApi(graphId, optionsRef.current),\n (data) => data.graph || null,\n null\n );\n const getGraph = useCallback((graphId: string) => getGraphInternal(graphId), [getGraphInternal]);\n\n const {\n execute: createGraphInternal,\n loading: createLoading,\n error: createError,\n } = useApiAsync(\n (graph: CreateGraphRequest) => createGraphApi(graph, optionsRef.current),\n (data) => data.graph || null,\n null\n );\n const createGraph = useCallback(\n (graph: CreateGraphRequest) => createGraphInternal(graph),\n [createGraphInternal]\n );\n\n const {\n execute: updateGraphInternal,\n loading: updateLoading,\n error: updateError,\n } = useApiAsync(\n (graphId: string, updates: Partial<Graph>) => updateGraphApi(graphId, updates, optionsRef.current),\n (data) => data.graph || null,\n null\n );\n const updateGraph = useCallback(\n (graphId: string, updates: Partial<Graph>) => updateGraphInternal(graphId, updates),\n [updateGraphInternal]\n );\n\n const {\n execute: deleteGraphInternal,\n loading: deleteLoading,\n error: deleteError,\n } = useApiAsync(\n (graphId: string) => deleteGraphApi(graphId, optionsRef.current),\n (data) => data.success ?? true,\n false\n );\n const deleteGraph = useCallback(\n (graphId: string) => deleteGraphInternal(graphId),\n [deleteGraphInternal]\n );\n\n // Combine loading and error states\n const loading = listLoading || getLoading || createLoading || updateLoading || deleteLoading;\n const error = listError || getError || createError || updateError || deleteError;\n\n return useMemo(\n () => ({\n loading,\n error,\n listGraphs,\n getGraph,\n createGraph,\n updateGraph,\n deleteGraph,\n }),\n [loading, error, listGraphs, getGraph, createGraph, updateGraph, deleteGraph]\n );\n}\n\n// =============================================================================\n// USE KG QUERY HOOK\n// =============================================================================\n\n/**\n * Hook for querying knowledge graph nodes\n *\n * @example\n * ```tsx\n * const { query, getLabels, loading, error } = useKGQuery({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * graphId: selectedGraphId,\n * });\n *\n * const result = await query({ label: \"Person\", fields: [], limit: 10 });\n * ```\n */\nexport function useKGQuery(options: UseKGOptions) {\n const optionsRef = useOptionsRef(options);\n\n const {\n execute: queryInternal,\n loading: queryLoading,\n error: queryError,\n } = useApiAsync(\n (queryParams: KGQuery) => queryGraphApi(queryParams, optionsRef.current),\n (data) => data,\n null\n );\n const query = useCallback(\n (queryParams: KGQuery): Promise<KGQueryResult | null> => queryInternal(queryParams),\n [queryInternal]\n );\n\n const {\n execute: getLabels,\n loading: labelsLoading,\n error: labelsError,\n } = useApiAsync(\n () => getGraphLabelsApi(optionsRef.current),\n (data) => data.labels || [],\n []\n );\n\n const {\n execute: getNodeInternal,\n loading: nodeLoading,\n error: nodeError,\n } = useApiAsync(\n (nodeId: string) => getKGNodeApi(nodeId, optionsRef.current),\n (data) => data.node || null,\n null\n );\n const getNode = useCallback((nodeId: string) => getNodeInternal(nodeId), [getNodeInternal]);\n\n const {\n execute: ingestNodeInternal,\n loading: ingestLoading,\n error: ingestError,\n } = useApiAsync(\n (node: KGNodeIngestRequest) => ingestKGNodeApi(node, optionsRef.current),\n (data) => data.nodeId || null,\n null\n );\n const ingestNode = useCallback(\n (node: KGNodeIngestRequest) => ingestNodeInternal(node),\n [ingestNodeInternal]\n );\n\n const {\n execute: updateNodeInternal,\n loading: updateLoading,\n error: updateError,\n } = useApiAsync(\n (nodeId: string, updates: Partial<KGNode>) => updateKGNodeApi(nodeId, updates, optionsRef.current),\n (data) => data.success ?? true,\n false\n );\n const updateNode = useCallback(\n (nodeId: string, updates: Partial<KGNode>) => updateNodeInternal(nodeId, updates),\n [updateNodeInternal]\n );\n\n const loading = queryLoading || labelsLoading || nodeLoading || ingestLoading || updateLoading;\n const error = queryError || labelsError || nodeError || ingestError || updateError;\n\n return useMemo(\n () => ({\n loading,\n error,\n query,\n getLabels,\n getNode,\n ingestNode,\n updateNode,\n }),\n [loading, error, query, getLabels, getNode, ingestNode, updateNode]\n );\n}\n\n// =============================================================================\n// USE KG DESIGNER HOOK\n// =============================================================================\n\n/**\n * Hook for KG designer operations (node and edge definitions)\n *\n * @example\n * ```tsx\n * const { listNodes, createNode, listEdges, createEdge } = useKGDesigner({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * graphId: selectedGraphId,\n * });\n *\n * const nodes = await listNodes();\n * ```\n */\nexport function useKGDesigner(options: UseKGOptions) {\n const optionsRef = useOptionsRef(options);\n\n // Node operations\n const {\n execute: listNodes,\n loading: listNodesLoading,\n error: listNodesError,\n } = useApiAsync(\n () => listDesignerNodesApi(optionsRef.current),\n (data) => data.nodes || [],\n []\n );\n\n const {\n execute: getNodeInternal,\n loading: getNodeLoading,\n error: getNodeError,\n } = useApiAsync(\n (label: string) => getDesignerNodeApi(label, optionsRef.current),\n (data) => data.node || null,\n null\n );\n const getNode = useCallback((label: string) => getNodeInternal(label), [getNodeInternal]);\n\n const {\n execute: createNodeInternal,\n loading: createNodeLoading,\n error: createNodeError,\n } = useApiAsync(\n (node: Omit<GraphNodeDefinition, \"createdAt\" | \"updatedAt\">) =>\n createDesignerNodeApi(node, optionsRef.current),\n (data) => data.node || null,\n null\n );\n const createNode = useCallback(\n (node: Omit<GraphNodeDefinition, \"createdAt\" | \"updatedAt\">) => createNodeInternal(node),\n [createNodeInternal]\n );\n\n const {\n execute: updateNodeInternal,\n loading: updateNodeLoading,\n error: updateNodeError,\n } = useApiAsync(\n (label: string, updates: Partial<GraphNodeDefinition>) =>\n updateDesignerNodeApi(label, updates, optionsRef.current),\n (data) => data.node || null,\n null\n );\n const updateNode = useCallback(\n (label: string, updates: Partial<GraphNodeDefinition>) => updateNodeInternal(label, updates),\n [updateNodeInternal]\n );\n\n const {\n execute: deleteNodeInternal,\n loading: deleteNodeLoading,\n error: deleteNodeError,\n } = useApiAsync(\n (label: string) => deleteDesignerNodeApi(label, optionsRef.current),\n (data) => data.success ?? true,\n false\n );\n const deleteNode = useCallback((label: string) => deleteNodeInternal(label), [deleteNodeInternal]);\n\n // Edge operations\n const {\n execute: listEdges,\n loading: listEdgesLoading,\n error: listEdgesError,\n } = useApiAsync(\n () => listDesignerEdgesApi(optionsRef.current),\n (data) => data.edges || [],\n []\n );\n\n const {\n execute: createEdgeInternal,\n loading: createEdgeLoading,\n error: createEdgeError,\n } = useApiAsync(\n (edge: Omit<GraphEdgeDefinition, \"createdAt\" | \"updatedAt\">) =>\n createDesignerEdgeApi(edge, optionsRef.current),\n (data) => data.edge || null,\n null\n );\n const createEdge = useCallback(\n (edge: Omit<GraphEdgeDefinition, \"createdAt\" | \"updatedAt\">) => createEdgeInternal(edge),\n [createEdgeInternal]\n );\n\n const {\n execute: updateEdgeInternal,\n loading: updateEdgeLoading,\n error: updateEdgeError,\n } = useApiAsync(\n (label: string, updates: Partial<GraphEdgeDefinition>) =>\n updateDesignerEdgeApi(label, updates, optionsRef.current),\n (data) => data.edge || null,\n null\n );\n const updateEdge = useCallback(\n (label: string, updates: Partial<GraphEdgeDefinition>) => updateEdgeInternal(label, updates),\n [updateEdgeInternal]\n );\n\n const {\n execute: deleteEdgeInternal,\n loading: deleteEdgeLoading,\n error: deleteEdgeError,\n } = useApiAsync(\n (label: string) => deleteDesignerEdgeApi(label, optionsRef.current),\n (data) => data.success ?? true,\n false\n );\n const deleteEdge = useCallback((label: string) => deleteEdgeInternal(label), [deleteEdgeInternal]);\n\n const loading =\n listNodesLoading ||\n getNodeLoading ||\n createNodeLoading ||\n updateNodeLoading ||\n deleteNodeLoading ||\n listEdgesLoading ||\n createEdgeLoading ||\n updateEdgeLoading ||\n deleteEdgeLoading;\n\n const error =\n listNodesError ||\n getNodeError ||\n createNodeError ||\n updateNodeError ||\n deleteNodeError ||\n listEdgesError ||\n createEdgeError ||\n updateEdgeError ||\n deleteEdgeError;\n\n return useMemo(\n () => ({\n loading,\n error,\n // Nodes\n listNodes,\n getNode,\n createNode,\n updateNode,\n deleteNode,\n // Edges\n listEdges,\n createEdge,\n updateEdge,\n deleteEdge,\n }),\n [\n loading,\n error,\n listNodes,\n getNode,\n createNode,\n updateNode,\n deleteNode,\n listEdges,\n createEdge,\n updateEdge,\n deleteEdge,\n ]\n );\n}\n\n// =============================================================================\n// USE CRAWL JOBS HOOK\n// =============================================================================\n\n/**\n * Hook for web crawl job operations\n *\n * @example\n * ```tsx\n * const { listJobs, startJob, getJobStatus } = useCrawlJobs({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * graphId: selectedGraphId,\n * });\n *\n * const jobId = await startJob({ baseUrl: \"https://example.com\", depth: 2, maxPages: 100 });\n * ```\n */\nexport function useCrawlJobs(options: UseKGOptions) {\n const optionsRef = useOptionsRef(options);\n\n const {\n execute: listJobsInternal,\n loading: listLoading,\n error: listError,\n } = useApiAsync(\n (params?: { limit?: number; offset?: number; status?: string }) =>\n listCrawlJobsApi({ ...optionsRef.current, ...params }),\n (data) => ({ jobs: data.jobs || [], total: data.total || 0 }),\n { jobs: [], total: 0 }\n );\n const listJobs = useCallback(\n (params?: { limit?: number; offset?: number; status?: string }) => listJobsInternal(params),\n [listJobsInternal]\n );\n\n const {\n execute: startJobInternal,\n loading: startLoading,\n error: startError,\n } = useApiAsync(\n (params: { baseUrl: string; depth: number; maxPages: number }) =>\n startCrawlJobApi(params, optionsRef.current),\n (data) => data.jobId || null,\n null\n );\n const startJob = useCallback(\n (params: { baseUrl: string; depth: number; maxPages: number }) => startJobInternal(params),\n [startJobInternal]\n );\n\n const {\n execute: getJobStatusInternal,\n loading: statusLoading,\n error: statusError,\n } = useApiAsync(\n (jobId: string) => getCrawlJobStatusApi(jobId, optionsRef.current),\n (data) => data.job || null,\n null\n );\n const getJobStatus = useCallback(\n (jobId: string): Promise<CrawlJob | null> => getJobStatusInternal(jobId),\n [getJobStatusInternal]\n );\n\n const {\n execute: cancelJobInternal,\n loading: cancelLoading,\n error: cancelError,\n } = useApiAsync(\n (jobId: string) => cancelCrawlJobApi(jobId, optionsRef.current),\n (data) => data.success ?? true,\n false\n );\n const cancelJob = useCallback((jobId: string) => cancelJobInternal(jobId), [cancelJobInternal]);\n\n const {\n execute: getCrawledPagesInternal,\n loading: pagesLoading,\n error: pagesError,\n } = useApiAsync(\n (jobId: string) => getCrawledPagesApi(jobId, optionsRef.current),\n (data) => data.pages || [],\n []\n );\n const getCrawledPages = useCallback(\n (jobId: string) => getCrawledPagesInternal(jobId),\n [getCrawledPagesInternal]\n );\n\n const loading = listLoading || startLoading || statusLoading || cancelLoading || pagesLoading;\n const error = listError || startError || statusError || cancelError || pagesError;\n\n return useMemo(\n () => ({\n loading,\n error,\n listJobs,\n startJob,\n getJobStatus,\n cancelJob,\n getCrawledPages,\n }),\n [loading, error, listJobs, startJob, getJobStatus, cancelJob, getCrawledPages]\n );\n}\n","\"use client\";\n\n/**\n * Generic async operation hook with loading/error state management\n *\n * Reduces boilerplate for async operations by handling:\n * - Loading state with request counter (handles concurrent calls correctly)\n * - Error state management\n * - Automatic error extraction from ApiResponse or Error objects\n */\n\nimport { useState, useCallback, useRef } from \"react\";\nimport type { ApiResponse } from \"@elqnt/api-client\";\n\nexport interface UseAsyncOptions {\n /** Custom error handler - called in addition to setting error state */\n onError?: (error: string) => void;\n}\n\nexport interface UseAsyncReturn<TResult, TArgs extends unknown[]> {\n /** Execute the async function */\n execute: (...args: TArgs) => Promise<TResult>;\n /** Whether any request is currently in flight */\n loading: boolean;\n /** Last error message, or null if no error */\n error: string | null;\n /** Clear the current error */\n clearError: () => void;\n}\n\n/**\n * Extract data from an ApiResponse, handling errors\n * @returns [data, errorMessage]\n */\nfunction extractFromResponse<T, TResult>(\n response: ApiResponse<T>,\n extractor: (data: T) => TResult,\n defaultValue: TResult\n): [TResult, string | null] {\n if (response.error) {\n return [defaultValue, response.error];\n }\n if (!response.data) {\n return [defaultValue, null];\n }\n return [extractor(response.data), null];\n}\n\n/**\n * Create an async operation handler with loading and error states\n *\n * This hook wraps async functions to automatically manage:\n * - Loading state (using request counter for concurrent calls)\n * - Error state (extracted from ApiResponse or Error)\n *\n * @example\n * ```tsx\n * const { execute: fetchGraphs, loading, error } = useAsync(\n * async () => {\n * const response = await listGraphsApi(options);\n * if (response.error) throw new Error(response.error);\n * return response.data?.graphs || [];\n * }\n * );\n * ```\n */\nexport function useAsync<TResult, TArgs extends unknown[] = []>(\n asyncFn: (...args: TArgs) => Promise<TResult>,\n options?: UseAsyncOptions\n): UseAsyncReturn<TResult, TArgs> {\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const requestCount = useRef(0);\n\n const execute = useCallback(\n async (...args: TArgs): Promise<TResult> => {\n requestCount.current += 1;\n setLoading(true);\n setError(null);\n\n try {\n const result = await asyncFn(...args);\n return result;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"An error occurred\";\n setError(message);\n options?.onError?.(message);\n throw err;\n } finally {\n requestCount.current -= 1;\n if (requestCount.current === 0) {\n setLoading(false);\n }\n }\n },\n [asyncFn, options]\n );\n\n const clearError = useCallback(() => {\n setError(null);\n }, []);\n\n return { execute, loading, error, clearError };\n}\n\n/**\n * Create an async operation handler specifically for ApiResponse-returning functions\n *\n * Unlike useAsync, this handles the ApiResponse unwrapping automatically:\n * - Extracts data using the provided extractor\n * - Sets error state from response.error\n * - Returns default value on error\n *\n * @example\n * ```tsx\n * const { execute: fetchGraphs, loading, error } = useApiAsync(\n * () => listGraphsApi(optionsRef.current),\n * (data) => data.graphs || [],\n * []\n * );\n * ```\n */\nexport function useApiAsync<TResponse, TResult, TArgs extends unknown[] = []>(\n asyncFn: (...args: TArgs) => Promise<ApiResponse<TResponse>>,\n extractor: (data: TResponse) => TResult,\n defaultValue: TResult,\n options?: UseAsyncOptions\n): UseAsyncReturn<TResult, TArgs> {\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const requestCount = useRef(0);\n\n const execute = useCallback(\n async (...args: TArgs): Promise<TResult> => {\n requestCount.current += 1;\n setLoading(true);\n setError(null);\n\n try {\n const response = await asyncFn(...args);\n const [result, errorMessage] = extractFromResponse(response, extractor, defaultValue);\n\n if (errorMessage) {\n setError(errorMessage);\n options?.onError?.(errorMessage);\n return defaultValue;\n }\n\n return result;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"An error occurred\";\n setError(message);\n options?.onError?.(message);\n return defaultValue;\n } finally {\n requestCount.current -= 1;\n if (requestCount.current === 0) {\n setLoading(false);\n }\n }\n },\n [asyncFn, extractor, defaultValue, options]\n );\n\n const clearError = useCallback(() => {\n setError(null);\n }, []);\n\n return { execute, loading, error, clearError };\n}\n","\"use client\";\n\n/**\n * Hook to keep a mutable ref of options in sync\n *\n * This pattern allows callbacks created with useCallback to always access\n * the latest options without needing to re-create the callback when options change.\n *\n * This is useful for API hooks where:\n * - Options (baseUrl, orgId, graphId) may change over time\n * - Callbacks are memoized and shouldn't be recreated on every options change\n * - The callback should always use the current options when called\n */\n\nimport { useRef, useEffect } from \"react\";\n\n/**\n * Keep a mutable ref synchronized with the latest value\n *\n * @example\n * ```tsx\n * function useGraphs(options: ApiClientOptions) {\n * const optionsRef = useOptionsRef(options);\n *\n * const listGraphs = useCallback(async () => {\n * // Always uses latest options\n * return listGraphsApi(optionsRef.current);\n * }, []); // No dependency on options - callback never changes\n *\n * return { listGraphs };\n * }\n * ```\n */\nexport function useOptionsRef<T>(options: T): React.MutableRefObject<T> {\n const ref = useRef(options);\n\n useEffect(() => {\n ref.current = options;\n }, [options]);\n\n return ref;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/chunk-7RW5MHP5.js","../hooks/index.ts","../hooks/use-async.ts","../hooks/use-options-ref.ts"],"names":["useRef","useCallback"],"mappings":"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","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/chunk-7RW5MHP5.js","sourcesContent":[null,"\"use client\";\n\n/**\n * Knowledge Graph React Hooks\n *\n * Provides React hooks for KG operations with loading/error states.\n * All hooks use the useOptionsRef pattern to always access the latest options.\n *\n * @packageDocumentation\n */\n\nimport { useCallback, useMemo } from \"react\";\nimport type { ApiClientOptions } from \"@elqnt/api-client\";\nimport type {\n Graph,\n CreateGraphRequest,\n KGNode,\n KGQuery,\n KGQueryResult,\n KGLabelInfo,\n KGNodeIngestRequest,\n GraphNodeDefinition,\n GraphEdgeDefinition,\n} from \"../models\";\nimport {\n listGraphsApi,\n getGraphApi,\n createGraphApi,\n updateGraphApi,\n deleteGraphApi,\n queryGraphApi,\n getGraphLabelsApi,\n getKGNodeApi,\n ingestKGNodeApi,\n updateKGNodeApi,\n listDesignerNodesApi,\n getDesignerNodeApi,\n createDesignerNodeApi,\n updateDesignerNodeApi,\n deleteDesignerNodeApi,\n listDesignerEdgesApi,\n createDesignerEdgeApi,\n updateDesignerEdgeApi,\n deleteDesignerEdgeApi,\n listCrawlJobsApi,\n startCrawlJobApi,\n getCrawlJobStatusApi,\n cancelCrawlJobApi,\n getCrawledPagesApi,\n type KGApiOptions,\n type CrawlJob,\n} from \"../api\";\nimport { useApiAsync } from \"./use-async\";\nimport { useOptionsRef } from \"./use-options-ref\";\n\n// Re-export utilities for external use\nexport { useApiAsync, useAsync } from \"./use-async\";\nexport type { UseAsyncOptions, UseAsyncReturn } from \"./use-async\";\nexport { useOptionsRef } from \"./use-options-ref\";\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\n/** Options for KG hooks that require a graph ID */\nexport type UseKGOptions = ApiClientOptions & { graphId?: string };\n\n// =============================================================================\n// USE GRAPHS HOOK\n// =============================================================================\n\n/**\n * Hook for knowledge graph CRUD operations\n *\n * @example\n * ```tsx\n * const { loading, error, listGraphs, createGraph } = useGraphs({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * });\n *\n * const graphs = await listGraphs();\n * ```\n */\nexport function useGraphs(options: ApiClientOptions) {\n const optionsRef = useOptionsRef(options);\n\n const {\n execute: listGraphs,\n loading: listLoading,\n error: listError,\n } = useApiAsync(\n () => listGraphsApi(optionsRef.current),\n (data) => data.graphs || [],\n []\n );\n\n const {\n execute: getGraphInternal,\n loading: getLoading,\n error: getError,\n } = useApiAsync(\n (graphId: string) => getGraphApi(graphId, optionsRef.current),\n (data) => data.graph || null,\n null\n );\n const getGraph = useCallback((graphId: string) => getGraphInternal(graphId), [getGraphInternal]);\n\n const {\n execute: createGraphInternal,\n loading: createLoading,\n error: createError,\n } = useApiAsync(\n (graph: CreateGraphRequest) => createGraphApi(graph, optionsRef.current),\n (data) => data.graph || null,\n null\n );\n const createGraph = useCallback(\n (graph: CreateGraphRequest) => createGraphInternal(graph),\n [createGraphInternal]\n );\n\n const {\n execute: updateGraphInternal,\n loading: updateLoading,\n error: updateError,\n } = useApiAsync(\n (graphId: string, updates: Partial<Graph>) => updateGraphApi(graphId, updates, optionsRef.current),\n (data) => data.graph || null,\n null\n );\n const updateGraph = useCallback(\n (graphId: string, updates: Partial<Graph>) => updateGraphInternal(graphId, updates),\n [updateGraphInternal]\n );\n\n const {\n execute: deleteGraphInternal,\n loading: deleteLoading,\n error: deleteError,\n } = useApiAsync(\n (graphId: string) => deleteGraphApi(graphId, optionsRef.current),\n (data) => data.success ?? true,\n false\n );\n const deleteGraph = useCallback(\n (graphId: string) => deleteGraphInternal(graphId),\n [deleteGraphInternal]\n );\n\n // Combine loading and error states\n const loading = listLoading || getLoading || createLoading || updateLoading || deleteLoading;\n const error = listError || getError || createError || updateError || deleteError;\n\n return useMemo(\n () => ({\n loading,\n error,\n listGraphs,\n getGraph,\n createGraph,\n updateGraph,\n deleteGraph,\n }),\n [loading, error, listGraphs, getGraph, createGraph, updateGraph, deleteGraph]\n );\n}\n\n// =============================================================================\n// USE KG QUERY HOOK\n// =============================================================================\n\n/**\n * Hook for querying knowledge graph nodes\n *\n * @example\n * ```tsx\n * const { query, getLabels, loading, error } = useKGQuery({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * graphId: selectedGraphId,\n * });\n *\n * const result = await query({ label: \"Person\", fields: [], limit: 10 });\n * ```\n */\nexport function useKGQuery(options: UseKGOptions) {\n const optionsRef = useOptionsRef(options);\n\n const {\n execute: queryInternal,\n loading: queryLoading,\n error: queryError,\n } = useApiAsync(\n (queryParams: KGQuery) => queryGraphApi(queryParams, optionsRef.current),\n (data) => data,\n null\n );\n const query = useCallback(\n (queryParams: KGQuery): Promise<KGQueryResult | null> => queryInternal(queryParams),\n [queryInternal]\n );\n\n const {\n execute: getLabels,\n loading: labelsLoading,\n error: labelsError,\n } = useApiAsync(\n () => getGraphLabelsApi(optionsRef.current),\n (data) => data.labels || [],\n []\n );\n\n const {\n execute: getNodeInternal,\n loading: nodeLoading,\n error: nodeError,\n } = useApiAsync(\n (nodeId: string) => getKGNodeApi(nodeId, optionsRef.current),\n (data) => data.node || null,\n null\n );\n const getNode = useCallback((nodeId: string) => getNodeInternal(nodeId), [getNodeInternal]);\n\n const {\n execute: ingestNodeInternal,\n loading: ingestLoading,\n error: ingestError,\n } = useApiAsync(\n (node: KGNodeIngestRequest) => ingestKGNodeApi(node, optionsRef.current),\n (data) => data.nodeId || null,\n null\n );\n const ingestNode = useCallback(\n (node: KGNodeIngestRequest) => ingestNodeInternal(node),\n [ingestNodeInternal]\n );\n\n const {\n execute: updateNodeInternal,\n loading: updateLoading,\n error: updateError,\n } = useApiAsync(\n (nodeId: string, updates: Partial<KGNode>) => updateKGNodeApi(nodeId, updates, optionsRef.current),\n (data) => data.success ?? true,\n false\n );\n const updateNode = useCallback(\n (nodeId: string, updates: Partial<KGNode>) => updateNodeInternal(nodeId, updates),\n [updateNodeInternal]\n );\n\n const loading = queryLoading || labelsLoading || nodeLoading || ingestLoading || updateLoading;\n const error = queryError || labelsError || nodeError || ingestError || updateError;\n\n return useMemo(\n () => ({\n loading,\n error,\n query,\n getLabels,\n getNode,\n ingestNode,\n updateNode,\n }),\n [loading, error, query, getLabels, getNode, ingestNode, updateNode]\n );\n}\n\n// =============================================================================\n// USE KG DESIGNER HOOK\n// =============================================================================\n\n/**\n * Hook for KG designer operations (node and edge definitions)\n *\n * @example\n * ```tsx\n * const { listNodes, createNode, listEdges, createEdge } = useKGDesigner({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * graphId: selectedGraphId,\n * });\n *\n * const nodes = await listNodes();\n * ```\n */\nexport function useKGDesigner(options: UseKGOptions) {\n const optionsRef = useOptionsRef(options);\n\n // Node operations\n const {\n execute: listNodes,\n loading: listNodesLoading,\n error: listNodesError,\n } = useApiAsync(\n () => listDesignerNodesApi(optionsRef.current),\n (data) => data.nodes || [],\n []\n );\n\n const {\n execute: getNodeInternal,\n loading: getNodeLoading,\n error: getNodeError,\n } = useApiAsync(\n (label: string) => getDesignerNodeApi(label, optionsRef.current),\n (data) => data.node || null,\n null\n );\n const getNode = useCallback((label: string) => getNodeInternal(label), [getNodeInternal]);\n\n const {\n execute: createNodeInternal,\n loading: createNodeLoading,\n error: createNodeError,\n } = useApiAsync(\n (node: Omit<GraphNodeDefinition, \"createdAt\" | \"updatedAt\">) =>\n createDesignerNodeApi(node, optionsRef.current),\n (data) => data.node || null,\n null\n );\n const createNode = useCallback(\n (node: Omit<GraphNodeDefinition, \"createdAt\" | \"updatedAt\">) => createNodeInternal(node),\n [createNodeInternal]\n );\n\n const {\n execute: updateNodeInternal,\n loading: updateNodeLoading,\n error: updateNodeError,\n } = useApiAsync(\n (label: string, updates: Partial<GraphNodeDefinition>) =>\n updateDesignerNodeApi(label, updates, optionsRef.current),\n (data) => data.node || null,\n null\n );\n const updateNode = useCallback(\n (label: string, updates: Partial<GraphNodeDefinition>) => updateNodeInternal(label, updates),\n [updateNodeInternal]\n );\n\n const {\n execute: deleteNodeInternal,\n loading: deleteNodeLoading,\n error: deleteNodeError,\n } = useApiAsync(\n (label: string) => deleteDesignerNodeApi(label, optionsRef.current),\n (data) => data.success ?? true,\n false\n );\n const deleteNode = useCallback((label: string) => deleteNodeInternal(label), [deleteNodeInternal]);\n\n // Edge operations\n const {\n execute: listEdges,\n loading: listEdgesLoading,\n error: listEdgesError,\n } = useApiAsync(\n () => listDesignerEdgesApi(optionsRef.current),\n (data) => data.edges || [],\n []\n );\n\n const {\n execute: createEdgeInternal,\n loading: createEdgeLoading,\n error: createEdgeError,\n } = useApiAsync(\n (edge: Omit<GraphEdgeDefinition, \"createdAt\" | \"updatedAt\">) =>\n createDesignerEdgeApi(edge, optionsRef.current),\n (data) => data.edge || null,\n null\n );\n const createEdge = useCallback(\n (edge: Omit<GraphEdgeDefinition, \"createdAt\" | \"updatedAt\">) => createEdgeInternal(edge),\n [createEdgeInternal]\n );\n\n const {\n execute: updateEdgeInternal,\n loading: updateEdgeLoading,\n error: updateEdgeError,\n } = useApiAsync(\n (label: string, updates: Partial<GraphEdgeDefinition>) =>\n updateDesignerEdgeApi(label, updates, optionsRef.current),\n (data) => data.edge || null,\n null\n );\n const updateEdge = useCallback(\n (label: string, updates: Partial<GraphEdgeDefinition>) => updateEdgeInternal(label, updates),\n [updateEdgeInternal]\n );\n\n const {\n execute: deleteEdgeInternal,\n loading: deleteEdgeLoading,\n error: deleteEdgeError,\n } = useApiAsync(\n (label: string) => deleteDesignerEdgeApi(label, optionsRef.current),\n (data) => data.success ?? true,\n false\n );\n const deleteEdge = useCallback((label: string) => deleteEdgeInternal(label), [deleteEdgeInternal]);\n\n const loading =\n listNodesLoading ||\n getNodeLoading ||\n createNodeLoading ||\n updateNodeLoading ||\n deleteNodeLoading ||\n listEdgesLoading ||\n createEdgeLoading ||\n updateEdgeLoading ||\n deleteEdgeLoading;\n\n const error =\n listNodesError ||\n getNodeError ||\n createNodeError ||\n updateNodeError ||\n deleteNodeError ||\n listEdgesError ||\n createEdgeError ||\n updateEdgeError ||\n deleteEdgeError;\n\n return useMemo(\n () => ({\n loading,\n error,\n // Nodes\n listNodes,\n getNode,\n createNode,\n updateNode,\n deleteNode,\n // Edges\n listEdges,\n createEdge,\n updateEdge,\n deleteEdge,\n }),\n [\n loading,\n error,\n listNodes,\n getNode,\n createNode,\n updateNode,\n deleteNode,\n listEdges,\n createEdge,\n updateEdge,\n deleteEdge,\n ]\n );\n}\n\n// =============================================================================\n// USE CRAWL JOBS HOOK\n// =============================================================================\n\n/**\n * Hook for web crawl job operations\n *\n * @example\n * ```tsx\n * const { listJobs, startJob, getJobStatus } = useCrawlJobs({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * graphId: selectedGraphId,\n * });\n *\n * const jobId = await startJob({ baseUrl: \"https://example.com\", depth: 2, maxPages: 100 });\n * ```\n */\nexport function useCrawlJobs(options: UseKGOptions) {\n const optionsRef = useOptionsRef(options);\n\n const {\n execute: listJobsInternal,\n loading: listLoading,\n error: listError,\n } = useApiAsync(\n (params?: { limit?: number; offset?: number; status?: string }) =>\n listCrawlJobsApi({ ...optionsRef.current, ...params }),\n (data) => ({ jobs: data.jobs || [], total: data.total || 0 }),\n { jobs: [], total: 0 }\n );\n const listJobs = useCallback(\n (params?: { limit?: number; offset?: number; status?: string }) => listJobsInternal(params),\n [listJobsInternal]\n );\n\n const {\n execute: startJobInternal,\n loading: startLoading,\n error: startError,\n } = useApiAsync(\n (params: { baseUrl: string; depth: number; maxPages: number }) =>\n startCrawlJobApi(params, optionsRef.current),\n (data) => data.jobId || null,\n null\n );\n const startJob = useCallback(\n (params: { baseUrl: string; depth: number; maxPages: number }) => startJobInternal(params),\n [startJobInternal]\n );\n\n const {\n execute: getJobStatusInternal,\n loading: statusLoading,\n error: statusError,\n } = useApiAsync(\n (jobId: string) => getCrawlJobStatusApi(jobId, optionsRef.current),\n (data) => data.job || null,\n null\n );\n const getJobStatus = useCallback(\n (jobId: string): Promise<CrawlJob | null> => getJobStatusInternal(jobId),\n [getJobStatusInternal]\n );\n\n const {\n execute: cancelJobInternal,\n loading: cancelLoading,\n error: cancelError,\n } = useApiAsync(\n (jobId: string) => cancelCrawlJobApi(jobId, optionsRef.current),\n (data) => data.success ?? true,\n false\n );\n const cancelJob = useCallback((jobId: string) => cancelJobInternal(jobId), [cancelJobInternal]);\n\n const {\n execute: getCrawledPagesInternal,\n loading: pagesLoading,\n error: pagesError,\n } = useApiAsync(\n (jobId: string) => getCrawledPagesApi(jobId, optionsRef.current),\n (data) => data.pages || [],\n []\n );\n const getCrawledPages = useCallback(\n (jobId: string) => getCrawledPagesInternal(jobId),\n [getCrawledPagesInternal]\n );\n\n const loading = listLoading || startLoading || statusLoading || cancelLoading || pagesLoading;\n const error = listError || startError || statusError || cancelError || pagesError;\n\n return useMemo(\n () => ({\n loading,\n error,\n listJobs,\n startJob,\n getJobStatus,\n cancelJob,\n getCrawledPages,\n }),\n [loading, error, listJobs, startJob, getJobStatus, cancelJob, getCrawledPages]\n );\n}\n","\"use client\";\n\n/**\n * Generic async operation hook with loading/error state management\n *\n * Reduces boilerplate for async operations by handling:\n * - Loading state with request counter (handles concurrent calls correctly)\n * - Error state management\n * - Automatic error extraction from ApiResponse or Error objects\n */\n\nimport { useState, useCallback, useRef } from \"react\";\nimport type { ApiResponse } from \"@elqnt/api-client\";\n\nexport interface UseAsyncOptions {\n /** Custom error handler - called in addition to setting error state */\n onError?: (error: string) => void;\n}\n\nexport interface UseAsyncReturn<TResult, TArgs extends unknown[]> {\n /** Execute the async function */\n execute: (...args: TArgs) => Promise<TResult>;\n /** Whether any request is currently in flight */\n loading: boolean;\n /** Last error message, or null if no error */\n error: string | null;\n /** Clear the current error */\n clearError: () => void;\n}\n\n/**\n * Extract data from an ApiResponse, handling errors\n * @returns [data, errorMessage]\n */\nfunction extractFromResponse<T, TResult>(\n response: ApiResponse<T>,\n extractor: (data: T) => TResult,\n defaultValue: TResult\n): [TResult, string | null] {\n if (response.error) {\n return [defaultValue, response.error];\n }\n if (!response.data) {\n return [defaultValue, null];\n }\n return [extractor(response.data), null];\n}\n\n/**\n * Create an async operation handler with loading and error states\n *\n * This hook wraps async functions to automatically manage:\n * - Loading state (using request counter for concurrent calls)\n * - Error state (extracted from ApiResponse or Error)\n *\n * @example\n * ```tsx\n * const { execute: fetchGraphs, loading, error } = useAsync(\n * async () => {\n * const response = await listGraphsApi(options);\n * if (response.error) throw new Error(response.error);\n * return response.data?.graphs || [];\n * }\n * );\n * ```\n */\nexport function useAsync<TResult, TArgs extends unknown[] = []>(\n asyncFn: (...args: TArgs) => Promise<TResult>,\n options?: UseAsyncOptions\n): UseAsyncReturn<TResult, TArgs> {\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const requestCount = useRef(0);\n\n const execute = useCallback(\n async (...args: TArgs): Promise<TResult> => {\n requestCount.current += 1;\n setLoading(true);\n setError(null);\n\n try {\n const result = await asyncFn(...args);\n return result;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"An error occurred\";\n setError(message);\n options?.onError?.(message);\n throw err;\n } finally {\n requestCount.current -= 1;\n if (requestCount.current === 0) {\n setLoading(false);\n }\n }\n },\n [asyncFn, options]\n );\n\n const clearError = useCallback(() => {\n setError(null);\n }, []);\n\n return { execute, loading, error, clearError };\n}\n\n/**\n * Create an async operation handler specifically for ApiResponse-returning functions\n *\n * Unlike useAsync, this handles the ApiResponse unwrapping automatically:\n * - Extracts data using the provided extractor\n * - Sets error state from response.error\n * - Returns default value on error\n *\n * @example\n * ```tsx\n * const { execute: fetchGraphs, loading, error } = useApiAsync(\n * () => listGraphsApi(optionsRef.current),\n * (data) => data.graphs || [],\n * []\n * );\n * ```\n */\nexport function useApiAsync<TResponse, TResult, TArgs extends unknown[] = []>(\n asyncFn: (...args: TArgs) => Promise<ApiResponse<TResponse>>,\n extractor: (data: TResponse) => TResult,\n defaultValue: TResult,\n options?: UseAsyncOptions\n): UseAsyncReturn<TResult, TArgs> {\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const requestCount = useRef(0);\n\n const execute = useCallback(\n async (...args: TArgs): Promise<TResult> => {\n requestCount.current += 1;\n setLoading(true);\n setError(null);\n\n try {\n const response = await asyncFn(...args);\n const [result, errorMessage] = extractFromResponse(response, extractor, defaultValue);\n\n if (errorMessage) {\n setError(errorMessage);\n options?.onError?.(errorMessage);\n return defaultValue;\n }\n\n return result;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"An error occurred\";\n setError(message);\n options?.onError?.(message);\n return defaultValue;\n } finally {\n requestCount.current -= 1;\n if (requestCount.current === 0) {\n setLoading(false);\n }\n }\n },\n [asyncFn, extractor, defaultValue, options]\n );\n\n const clearError = useCallback(() => {\n setError(null);\n }, []);\n\n return { execute, loading, error, clearError };\n}\n","\"use client\";\n\n/**\n * Hook to keep a mutable ref of options in sync\n *\n * This pattern allows callbacks created with useCallback to always access\n * the latest options without needing to re-create the callback when options change.\n *\n * This is useful for API hooks where:\n * - Options (baseUrl, orgId, graphId) may change over time\n * - Callbacks are memoized and shouldn't be recreated on every options change\n * - The callback should always use the current options when called\n */\n\nimport { useRef, useEffect } from \"react\";\n\n/**\n * Keep a mutable ref synchronized with the latest value\n *\n * @example\n * ```tsx\n * function useGraphs(options: ApiClientOptions) {\n * const optionsRef = useOptionsRef(options);\n *\n * const listGraphs = useCallback(async () => {\n * // Always uses latest options\n * return listGraphsApi(optionsRef.current);\n * }, []); // No dependency on options - callback never changes\n *\n * return { listGraphs };\n * }\n * ```\n */\nexport function useOptionsRef<T>(options: T): React.MutableRefObject<T> {\n const ref = useRef(options);\n\n useEffect(() => {\n ref.current = options;\n }, [options]);\n\n return ref;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eloquent-packages/eloquent-packages/packages/kg/dist/chunk-ADIKUMMI.js","../utils/query-builder.ts"],"names":[],"mappings":"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","file":"/home/runner/work/eloquent-packages/eloquent-packages/packages/kg/dist/chunk-ADIKUMMI.js","sourcesContent":[null,"/**\n * Knowledge Graph Query Builder\n *\n * Fluent API for building KGQuery objects programmatically.\n *\n * @example\n * ```ts\n * import { KGQueryBuilder, createNodeQuery } from \"@elqnt/kg/utils\";\n *\n * // Using the builder\n * const query = new KGQueryBuilder()\n * .label(\"Person\")\n * .field(\"age\", \"gt\", 21)\n * .field(\"status\", \"eq\", \"active\")\n * .edge(\"WORKS_AT\", \"outgoing\", \"Company\")\n * .limit(50)\n * .sortBy(\"name\", \"asc\")\n * .build();\n *\n * // Using helper functions\n * const simpleQuery = createNodeQuery(\"Product\", { category: \"electronics\" });\n * ```\n *\n * @packageDocumentation\n */\n\nimport type {\n KGQuery,\n KGFieldQuery,\n KGFieldQueryOperator,\n KGEdgeQuery,\n KGRelationshipDirection,\n} from \"../models\";\n\n// Re-export operator and direction constants for convenience\nexport {\n KGFieldQueryOperatorEqual,\n KGFieldQueryOperatorNotEqual,\n KGFieldQueryOperatorGreater,\n KGFieldQueryOperatorLess,\n KGFieldQueryOperatorGreaterOrEqual,\n KGFieldQueryOperatorLessOrEqual,\n KGFieldQueryOperatorLike,\n KGFieldQueryOperatorSimilar,\n KGFieldQueryOperatorIn,\n KGFieldQueryOperatorArrayContains,\n KGRelationshipDirectionIncoming,\n KGRelationshipDirectionOutgoing,\n} from \"../models\";\n\n/**\n * Fluent builder for KGQuery objects\n *\n * Provides a chainable API for constructing knowledge graph queries.\n * All methods return `this` to allow chaining.\n *\n * @example\n * ```ts\n * const query = new KGQueryBuilder()\n * .label(\"Person\")\n * .field(\"age\", \"gt\", 21)\n * .field(\"department\", \"eq\", \"Engineering\")\n * .edge(\"REPORTS_TO\", \"outgoing\", \"Person\")\n * .limit(100)\n * .offset(0)\n * .sortBy(\"name\", \"asc\")\n * .summaryOnly()\n * .build();\n * ```\n */\nexport class KGQueryBuilder {\n private _label: string = \"\";\n private _fields: KGFieldQuery[] = [];\n private _edges: KGEdgeQuery[] = [];\n private _limit: number = 100;\n private _depth: number = 1;\n private _offset: number = 0;\n private _sortBy: string = \"\";\n private _sortOrder: string = \"\";\n private _embeddingsSource?: string;\n private _skipEmbedding: boolean = false;\n private _summaryOnly: boolean = false;\n\n /**\n * Set the node label to query\n *\n * @param label - The node label (e.g., \"Person\", \"Product\")\n */\n label(label: string): this {\n this._label = label;\n return this;\n }\n\n /**\n * Add a field filter to the query\n *\n * @param name - Field name\n * @param operator - Comparison operator (eq, neq, gt, lt, gte, lte, like, similar, in, arrayContains)\n * @param value - Value to compare against\n *\n * @example\n * ```ts\n * builder.field(\"age\", \"gt\", 21);\n * builder.field(\"status\", \"in\", [\"active\", \"pending\"]);\n * builder.field(\"name\", \"like\", \"John%\");\n * ```\n */\n field(name: string, operator: KGFieldQueryOperator, value: unknown): this {\n this._fields.push({ name, operator, value });\n return this;\n }\n\n /**\n * Add an equality field filter (shorthand for field(name, \"eq\", value))\n *\n * @param name - Field name\n * @param value - Value to match\n */\n where(name: string, value: unknown): this {\n return this.field(name, \"eq\", value);\n }\n\n /**\n * Add multiple equality filters at once\n *\n * @param fields - Object with field names as keys and values to match\n *\n * @example\n * ```ts\n * builder.whereAll({ status: \"active\", type: \"premium\" });\n * ```\n */\n whereAll(fields: Record<string, unknown>): this {\n for (const [name, value] of Object.entries(fields)) {\n this.where(name, value);\n }\n return this;\n }\n\n /**\n * Add an edge traversal to the query\n *\n * @param label - Edge label (e.g., \"WORKS_AT\", \"REPORTS_TO\")\n * @param direction - Traversal direction (\"incoming\" or \"outgoing\")\n * @param toLabel - Target node label (optional)\n * @param options - Additional edge query options\n *\n * @example\n * ```ts\n * builder.edge(\"WORKS_AT\", \"outgoing\", \"Company\");\n * builder.edge(\"REPORTS_TO\", \"incoming\", \"Person\", {\n * toFieldKey: \"id\",\n * toFieldValue: \"manager-123\"\n * });\n * ```\n */\n edge(\n label: string,\n direction: \"incoming\" | \"outgoing\",\n toLabel: string = \"\",\n options: {\n toFieldKey?: string;\n toFieldValue?: unknown;\n fields?: Record<string, unknown>;\n } = {}\n ): this {\n this._edges.push({\n label,\n direction,\n toLabel,\n toFieldKey: options.toFieldKey || \"\",\n toFieldValue: options.toFieldValue,\n fields: options.fields,\n });\n return this;\n }\n\n /**\n * Add an outgoing edge traversal\n *\n * @param label - Edge label\n * @param toLabel - Target node label\n */\n outgoing(label: string, toLabel: string = \"\"): this {\n return this.edge(label, \"outgoing\", toLabel);\n }\n\n /**\n * Add an incoming edge traversal\n *\n * @param label - Edge label\n * @param toLabel - Source node label\n */\n incoming(label: string, toLabel: string = \"\"): this {\n return this.edge(label, \"incoming\", toLabel);\n }\n\n /**\n * Set the maximum number of results\n *\n * @param n - Maximum number of results (default: 100)\n */\n limit(n: number): this {\n this._limit = n;\n return this;\n }\n\n /**\n * Set the traversal depth\n *\n * @param n - Depth of edge traversal (default: 1)\n */\n depth(n: number): this {\n this._depth = n;\n return this;\n }\n\n /**\n * Set the result offset for pagination\n *\n * @param n - Number of results to skip\n */\n offset(n: number): this {\n this._offset = n;\n return this;\n }\n\n /**\n * Set the sort field and order\n *\n * @param field - Field name to sort by\n * @param order - Sort order (\"asc\" or \"desc\")\n */\n sortBy(field: string, order: \"asc\" | \"desc\" = \"asc\"): this {\n this._sortBy = field;\n this._sortOrder = order;\n return this;\n }\n\n /**\n * Set the embeddings source for similarity search\n *\n * @param source - Embeddings source identifier\n */\n embeddingsSource(source: string): this {\n this._embeddingsSource = source;\n return this;\n }\n\n /**\n * Skip embedding generation for this query\n */\n skipEmbedding(): this {\n this._skipEmbedding = true;\n return this;\n }\n\n /**\n * Return only summary fields (excludes heavy fields like text, embeddings)\n */\n summaryOnly(): this {\n this._summaryOnly = true;\n return this;\n }\n\n /**\n * Build the final KGQuery object\n *\n * @returns The constructed KGQuery\n * @throws Error if no label is set\n */\n build(): KGQuery {\n if (!this._label) {\n throw new Error(\"KGQueryBuilder: label is required\");\n }\n\n return {\n label: this._label,\n fields: this._fields,\n edges: this._edges.length > 0 ? this._edges : undefined,\n limit: this._limit,\n depth: this._depth,\n sortBy: this._sortBy,\n sortOrder: this._sortOrder,\n embeddingsSource: this._embeddingsSource,\n skipEmbedding: this._skipEmbedding || undefined,\n summaryOnly: this._summaryOnly || undefined,\n };\n }\n}\n\n// =============================================================================\n// HELPER FUNCTIONS\n// =============================================================================\n\n/**\n * Create a simple node query with equality filters\n *\n * @param label - Node label to query\n * @param fields - Optional field equality filters\n * @param options - Additional query options\n * @returns KGQuery object\n *\n * @example\n * ```ts\n * // Query all Person nodes\n * const allPeople = createNodeQuery(\"Person\");\n *\n * // Query with filters\n * const activeUsers = createNodeQuery(\"User\", { status: \"active\", role: \"admin\" });\n *\n * // With options\n * const recentProducts = createNodeQuery(\n * \"Product\",\n * { inStock: true },\n * { limit: 10, sortBy: \"createdAt\", sortOrder: \"desc\" }\n * );\n * ```\n */\nexport function createNodeQuery(\n label: string,\n fields?: Record<string, unknown>,\n options?: {\n limit?: number;\n depth?: number;\n sortBy?: string;\n sortOrder?: \"asc\" | \"desc\";\n summaryOnly?: boolean;\n }\n): KGQuery {\n const builder = new KGQueryBuilder().label(label);\n\n if (fields) {\n builder.whereAll(fields);\n }\n\n if (options?.limit !== undefined) builder.limit(options.limit);\n if (options?.depth !== undefined) builder.depth(options.depth);\n if (options?.sortBy) builder.sortBy(options.sortBy, options.sortOrder);\n if (options?.summaryOnly) builder.summaryOnly();\n\n return builder.build();\n}\n\n/**\n * Create an edge query object\n *\n * @param label - Edge label\n * @param direction - Traversal direction\n * @param options - Additional edge options\n * @returns KGEdgeQuery object\n *\n * @example\n * ```ts\n * const worksAtEdge = createEdgeQuery(\"WORKS_AT\", \"outgoing\", {\n * toLabel: \"Company\",\n * toFieldKey: \"name\",\n * toFieldValue: \"Acme Corp\"\n * });\n * ```\n */\nexport function createEdgeQuery(\n label: string,\n direction: \"incoming\" | \"outgoing\" = \"outgoing\",\n options?: {\n toLabel?: string;\n toFieldKey?: string;\n toFieldValue?: unknown;\n fields?: Record<string, unknown>;\n }\n): KGEdgeQuery {\n return {\n label,\n direction,\n toLabel: options?.toLabel || \"\",\n toFieldKey: options?.toFieldKey || \"\",\n toFieldValue: options?.toFieldValue,\n fields: options?.fields,\n };\n}\n\n/**\n * Create a field query object\n *\n * @param name - Field name\n * @param operator - Comparison operator\n * @param value - Value to compare against\n * @returns KGFieldQuery object\n *\n * @example\n * ```ts\n * const ageFilter = createFieldQuery(\"age\", \"gt\", 21);\n * const statusFilter = createFieldQuery(\"status\", \"in\", [\"active\", \"pending\"]);\n * ```\n */\nexport function createFieldQuery(\n name: string,\n operator: KGFieldQueryOperator,\n value: unknown\n): KGFieldQuery {\n return { name, operator, value };\n}\n\n/**\n * Create a similarity search query\n *\n * @param label - Node label to search\n * @param searchText - Text to find similar nodes for\n * @param options - Additional query options\n * @returns KGQuery object configured for similarity search\n *\n * @example\n * ```ts\n * const similarDocs = createSimilarityQuery(\n * \"Document\",\n * \"machine learning algorithms\",\n * { limit: 10, embeddingsSource: \"openai\" }\n * );\n * ```\n */\nexport function createSimilarityQuery(\n label: string,\n searchText: string,\n options?: {\n embeddingsSource?: string;\n limit?: number;\n summaryOnly?: boolean;\n }\n): KGQuery {\n const builder = new KGQueryBuilder()\n .label(label)\n .field(\"_search\", \"similar\", searchText);\n\n if (options?.embeddingsSource) builder.embeddingsSource(options.embeddingsSource);\n if (options?.limit !== undefined) builder.limit(options.limit);\n if (options?.summaryOnly) builder.summaryOnly();\n\n return builder.build();\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/chunk-ADIKUMMI.js","../utils/query-builder.ts"],"names":[],"mappings":"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","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/chunk-ADIKUMMI.js","sourcesContent":[null,"/**\n * Knowledge Graph Query Builder\n *\n * Fluent API for building KGQuery objects programmatically.\n *\n * @example\n * ```ts\n * import { KGQueryBuilder, createNodeQuery } from \"@elqnt/kg/utils\";\n *\n * // Using the builder\n * const query = new KGQueryBuilder()\n * .label(\"Person\")\n * .field(\"age\", \"gt\", 21)\n * .field(\"status\", \"eq\", \"active\")\n * .edge(\"WORKS_AT\", \"outgoing\", \"Company\")\n * .limit(50)\n * .sortBy(\"name\", \"asc\")\n * .build();\n *\n * // Using helper functions\n * const simpleQuery = createNodeQuery(\"Product\", { category: \"electronics\" });\n * ```\n *\n * @packageDocumentation\n */\n\nimport type {\n KGQuery,\n KGFieldQuery,\n KGFieldQueryOperator,\n KGEdgeQuery,\n KGRelationshipDirection,\n} from \"../models\";\n\n// Re-export operator and direction constants for convenience\nexport {\n KGFieldQueryOperatorEqual,\n KGFieldQueryOperatorNotEqual,\n KGFieldQueryOperatorGreater,\n KGFieldQueryOperatorLess,\n KGFieldQueryOperatorGreaterOrEqual,\n KGFieldQueryOperatorLessOrEqual,\n KGFieldQueryOperatorLike,\n KGFieldQueryOperatorSimilar,\n KGFieldQueryOperatorIn,\n KGFieldQueryOperatorArrayContains,\n KGRelationshipDirectionIncoming,\n KGRelationshipDirectionOutgoing,\n} from \"../models\";\n\n/**\n * Fluent builder for KGQuery objects\n *\n * Provides a chainable API for constructing knowledge graph queries.\n * All methods return `this` to allow chaining.\n *\n * @example\n * ```ts\n * const query = new KGQueryBuilder()\n * .label(\"Person\")\n * .field(\"age\", \"gt\", 21)\n * .field(\"department\", \"eq\", \"Engineering\")\n * .edge(\"REPORTS_TO\", \"outgoing\", \"Person\")\n * .limit(100)\n * .offset(0)\n * .sortBy(\"name\", \"asc\")\n * .summaryOnly()\n * .build();\n * ```\n */\nexport class KGQueryBuilder {\n private _label: string = \"\";\n private _fields: KGFieldQuery[] = [];\n private _edges: KGEdgeQuery[] = [];\n private _limit: number = 100;\n private _depth: number = 1;\n private _offset: number = 0;\n private _sortBy: string = \"\";\n private _sortOrder: string = \"\";\n private _embeddingsSource?: string;\n private _skipEmbedding: boolean = false;\n private _summaryOnly: boolean = false;\n\n /**\n * Set the node label to query\n *\n * @param label - The node label (e.g., \"Person\", \"Product\")\n */\n label(label: string): this {\n this._label = label;\n return this;\n }\n\n /**\n * Add a field filter to the query\n *\n * @param name - Field name\n * @param operator - Comparison operator (eq, neq, gt, lt, gte, lte, like, similar, in, arrayContains)\n * @param value - Value to compare against\n *\n * @example\n * ```ts\n * builder.field(\"age\", \"gt\", 21);\n * builder.field(\"status\", \"in\", [\"active\", \"pending\"]);\n * builder.field(\"name\", \"like\", \"John%\");\n * ```\n */\n field(name: string, operator: KGFieldQueryOperator, value: unknown): this {\n this._fields.push({ name, operator, value });\n return this;\n }\n\n /**\n * Add an equality field filter (shorthand for field(name, \"eq\", value))\n *\n * @param name - Field name\n * @param value - Value to match\n */\n where(name: string, value: unknown): this {\n return this.field(name, \"eq\", value);\n }\n\n /**\n * Add multiple equality filters at once\n *\n * @param fields - Object with field names as keys and values to match\n *\n * @example\n * ```ts\n * builder.whereAll({ status: \"active\", type: \"premium\" });\n * ```\n */\n whereAll(fields: Record<string, unknown>): this {\n for (const [name, value] of Object.entries(fields)) {\n this.where(name, value);\n }\n return this;\n }\n\n /**\n * Add an edge traversal to the query\n *\n * @param label - Edge label (e.g., \"WORKS_AT\", \"REPORTS_TO\")\n * @param direction - Traversal direction (\"incoming\" or \"outgoing\")\n * @param toLabel - Target node label (optional)\n * @param options - Additional edge query options\n *\n * @example\n * ```ts\n * builder.edge(\"WORKS_AT\", \"outgoing\", \"Company\");\n * builder.edge(\"REPORTS_TO\", \"incoming\", \"Person\", {\n * toFieldKey: \"id\",\n * toFieldValue: \"manager-123\"\n * });\n * ```\n */\n edge(\n label: string,\n direction: \"incoming\" | \"outgoing\",\n toLabel: string = \"\",\n options: {\n toFieldKey?: string;\n toFieldValue?: unknown;\n fields?: Record<string, unknown>;\n } = {}\n ): this {\n this._edges.push({\n label,\n direction,\n toLabel,\n toFieldKey: options.toFieldKey || \"\",\n toFieldValue: options.toFieldValue,\n fields: options.fields,\n });\n return this;\n }\n\n /**\n * Add an outgoing edge traversal\n *\n * @param label - Edge label\n * @param toLabel - Target node label\n */\n outgoing(label: string, toLabel: string = \"\"): this {\n return this.edge(label, \"outgoing\", toLabel);\n }\n\n /**\n * Add an incoming edge traversal\n *\n * @param label - Edge label\n * @param toLabel - Source node label\n */\n incoming(label: string, toLabel: string = \"\"): this {\n return this.edge(label, \"incoming\", toLabel);\n }\n\n /**\n * Set the maximum number of results\n *\n * @param n - Maximum number of results (default: 100)\n */\n limit(n: number): this {\n this._limit = n;\n return this;\n }\n\n /**\n * Set the traversal depth\n *\n * @param n - Depth of edge traversal (default: 1)\n */\n depth(n: number): this {\n this._depth = n;\n return this;\n }\n\n /**\n * Set the result offset for pagination\n *\n * @param n - Number of results to skip\n */\n offset(n: number): this {\n this._offset = n;\n return this;\n }\n\n /**\n * Set the sort field and order\n *\n * @param field - Field name to sort by\n * @param order - Sort order (\"asc\" or \"desc\")\n */\n sortBy(field: string, order: \"asc\" | \"desc\" = \"asc\"): this {\n this._sortBy = field;\n this._sortOrder = order;\n return this;\n }\n\n /**\n * Set the embeddings source for similarity search\n *\n * @param source - Embeddings source identifier\n */\n embeddingsSource(source: string): this {\n this._embeddingsSource = source;\n return this;\n }\n\n /**\n * Skip embedding generation for this query\n */\n skipEmbedding(): this {\n this._skipEmbedding = true;\n return this;\n }\n\n /**\n * Return only summary fields (excludes heavy fields like text, embeddings)\n */\n summaryOnly(): this {\n this._summaryOnly = true;\n return this;\n }\n\n /**\n * Build the final KGQuery object\n *\n * @returns The constructed KGQuery\n * @throws Error if no label is set\n */\n build(): KGQuery {\n if (!this._label) {\n throw new Error(\"KGQueryBuilder: label is required\");\n }\n\n return {\n label: this._label,\n fields: this._fields,\n edges: this._edges.length > 0 ? this._edges : undefined,\n limit: this._limit,\n depth: this._depth,\n sortBy: this._sortBy,\n sortOrder: this._sortOrder,\n embeddingsSource: this._embeddingsSource,\n skipEmbedding: this._skipEmbedding || undefined,\n summaryOnly: this._summaryOnly || undefined,\n };\n }\n}\n\n// =============================================================================\n// HELPER FUNCTIONS\n// =============================================================================\n\n/**\n * Create a simple node query with equality filters\n *\n * @param label - Node label to query\n * @param fields - Optional field equality filters\n * @param options - Additional query options\n * @returns KGQuery object\n *\n * @example\n * ```ts\n * // Query all Person nodes\n * const allPeople = createNodeQuery(\"Person\");\n *\n * // Query with filters\n * const activeUsers = createNodeQuery(\"User\", { status: \"active\", role: \"admin\" });\n *\n * // With options\n * const recentProducts = createNodeQuery(\n * \"Product\",\n * { inStock: true },\n * { limit: 10, sortBy: \"createdAt\", sortOrder: \"desc\" }\n * );\n * ```\n */\nexport function createNodeQuery(\n label: string,\n fields?: Record<string, unknown>,\n options?: {\n limit?: number;\n depth?: number;\n sortBy?: string;\n sortOrder?: \"asc\" | \"desc\";\n summaryOnly?: boolean;\n }\n): KGQuery {\n const builder = new KGQueryBuilder().label(label);\n\n if (fields) {\n builder.whereAll(fields);\n }\n\n if (options?.limit !== undefined) builder.limit(options.limit);\n if (options?.depth !== undefined) builder.depth(options.depth);\n if (options?.sortBy) builder.sortBy(options.sortBy, options.sortOrder);\n if (options?.summaryOnly) builder.summaryOnly();\n\n return builder.build();\n}\n\n/**\n * Create an edge query object\n *\n * @param label - Edge label\n * @param direction - Traversal direction\n * @param options - Additional edge options\n * @returns KGEdgeQuery object\n *\n * @example\n * ```ts\n * const worksAtEdge = createEdgeQuery(\"WORKS_AT\", \"outgoing\", {\n * toLabel: \"Company\",\n * toFieldKey: \"name\",\n * toFieldValue: \"Acme Corp\"\n * });\n * ```\n */\nexport function createEdgeQuery(\n label: string,\n direction: \"incoming\" | \"outgoing\" = \"outgoing\",\n options?: {\n toLabel?: string;\n toFieldKey?: string;\n toFieldValue?: unknown;\n fields?: Record<string, unknown>;\n }\n): KGEdgeQuery {\n return {\n label,\n direction,\n toLabel: options?.toLabel || \"\",\n toFieldKey: options?.toFieldKey || \"\",\n toFieldValue: options?.toFieldValue,\n fields: options?.fields,\n };\n}\n\n/**\n * Create a field query object\n *\n * @param name - Field name\n * @param operator - Comparison operator\n * @param value - Value to compare against\n * @returns KGFieldQuery object\n *\n * @example\n * ```ts\n * const ageFilter = createFieldQuery(\"age\", \"gt\", 21);\n * const statusFilter = createFieldQuery(\"status\", \"in\", [\"active\", \"pending\"]);\n * ```\n */\nexport function createFieldQuery(\n name: string,\n operator: KGFieldQueryOperator,\n value: unknown\n): KGFieldQuery {\n return { name, operator, value };\n}\n\n/**\n * Create a similarity search query\n *\n * @param label - Node label to search\n * @param searchText - Text to find similar nodes for\n * @param options - Additional query options\n * @returns KGQuery object configured for similarity search\n *\n * @example\n * ```ts\n * const similarDocs = createSimilarityQuery(\n * \"Document\",\n * \"machine learning algorithms\",\n * { limit: 10, embeddingsSource: \"openai\" }\n * );\n * ```\n */\nexport function createSimilarityQuery(\n label: string,\n searchText: string,\n options?: {\n embeddingsSource?: string;\n limit?: number;\n summaryOnly?: boolean;\n }\n): KGQuery {\n const builder = new KGQueryBuilder()\n .label(label)\n .field(\"_search\", \"similar\", searchText);\n\n if (options?.embeddingsSource) builder.embeddingsSource(options.embeddingsSource);\n if (options?.limit !== undefined) builder.limit(options.limit);\n if (options?.summaryOnly) builder.summaryOnly();\n\n return builder.build();\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eloquent
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/chunk-UCKE66GB.js","../models/kg.ts"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACA;ACiGO,IAAM,wBAAA,EAA2C,kBAAA;AACjD,IAAM,sBAAA,EAAyC,QAAA;AAC/C,IAAM,uBAAA,EAA0C,SAAA;AAChD,IAAM,oBAAA,EAAuC,MAAA;AAC7C,IAAM,sBAAA,EAAyC,QAAA;AAiC/C,IAAM,0BAAA,EAAkD,IAAA;AACxD,IAAM,6BAAA,EAAqD,KAAA;AAC3D,IAAM,4BAAA,EAAoD,IAAA;AAC1D,IAAM,yBAAA,EAAiD,IAAA;AACvD,IAAM,mCAAA,EAA2D,KAAA;AACjE,IAAM,gCAAA,EAAwD,KAAA;AAC9D,IAAM,yBAAA,EAAiD,MAAA;AACvD,IAAM,4BAAA,EAAoD,SAAA;AAK1D,IAAM,uBAAA,EAA+C,IAAA;AACrD,IAAM,kCAAA,EAA0D,eAAA;AAEhE,IAAM,gCAAA,EAA2D,UAAA;AACjE,IAAM,gCAAA,EAA2D,UAAA;ADpIxE;AACA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,klCAAC","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/chunk-UCKE66GB.js","sourcesContent":[null,"// Code generated by tygo. DO NOT EDIT.\nimport { ResponseMetadata } from \"@elqnt/types\";\n\n//////////\n// source: kg-models.go\n\n/**\n * Graph represents a knowledge graph within an organization\n */\nexport interface Graph {\n id: string;\n name: string;\n description: string;\n isDefault: boolean;\n createdAt: string /* RFC3339 */;\n updatedAt: string /* RFC3339 */;\n}\n/**\n * CreateGraphRequest is the request to create a new graph\n */\nexport interface CreateGraphRequest {\n id?: string; // Optional: if provided, use as graph ID (must be valid UUID)\n name: string;\n description: string;\n}\n/**\n * CreateGraphResult is the response for creating a graph\n */\nexport interface CreateGraphResult {\n graph?: Graph;\n success: boolean;\n error?: string;\n metadata?: ResponseMetadata;\n}\n/**\n * GetGraphResult is the response for getting a single graph\n */\nexport interface GetGraphResult {\n graph?: Graph;\n success: boolean;\n error?: string;\n metadata?: ResponseMetadata;\n}\n/**\n * ListGraphsResult is the response for listing graphs\n */\nexport interface ListGraphsResult {\n graphs?: Graph[];\n success: boolean;\n error?: string;\n metadata?: ResponseMetadata;\n}\n/**\n * UpdateGraphResult is the response for updating a graph\n */\nexport interface UpdateGraphResult {\n graph?: Graph;\n success: boolean;\n error?: string;\n metadata?: ResponseMetadata;\n}\n/**\n * DeleteGraphResult is the response for deleting a graph\n */\nexport interface DeleteGraphResult {\n success: boolean;\n error?: string;\n metadata?: ResponseMetadata;\n}\nexport interface KGNode {\n id: string;\n label: string;\n fields: { [key: string]: any};\n relationships?: KGEdge[];\n score?: number /* float64 */;\n}\nexport interface KGEdge {\n id: string;\n label: string;\n fields: { [key: string]: any};\n from: string;\n to: string;\n}\n/**\n * KGNodeIngestRequest represents a request to ingest a node into the knowledge graph.\n * Note: graphId should be passed via NATS header, not in the body.\n */\nexport interface KGNodeIngestRequest {\n label: string;\n keyField?: string;\n reverseEdgeLabel?: string;\n fields: { [key: string]: any};\n edges?: KGEdgeIngestRequest[];\n duplicatePolicy?: DuplicatePolicy;\n generateEmbeddings?: boolean;\n embeddingsSource?: string;\n embeddingsFields?: string[];\n}\nexport type DuplicatePolicy = string;\nexport const DuplicatePolicyCreateIf: DuplicatePolicy = \"createIfNotExist\";\nexport const DuplicatePolicyIgnore: DuplicatePolicy = \"ignore\";\nexport const DuplicatePolicyReplace: DuplicatePolicy = \"replace\";\nexport const DuplicatePolicyFail: DuplicatePolicy = \"fail\";\nexport const DuplicatePolicyCreate: DuplicatePolicy = \"create\";\nexport interface KGEdgeIngestRequest {\n label: string;\n fields: { [key: string]: any};\n toLabel: string;\n toFieldKey: string;\n toFieldValue: any;\n createReciprocal: boolean;\n reciprocalLabel: string;\n allowEmbeddingsSearch?: boolean;\n}\n/**\n * KGQuery represents a query to the knowledge graph.\n * Note: graphId should be passed via NATS header, not in the body.\n */\nexport interface KGQuery {\n label: string;\n fields: KGFieldQuery[];\n limit: number /* int */;\n depth: number /* int */;\n sortBy: string;\n sortOrder: string;\n edges?: KGEdgeQuery[];\n embeddingsSource?: string;\n skipEmbedding?: boolean;\n summaryOnly?: boolean; // Filter out heavy fields (text, embeddings, etc.) for UI performance\n}\nexport interface KGFieldQuery {\n name: string;\n value: any;\n operator: KGFieldQueryOperator;\n}\nexport type KGFieldQueryOperator = string;\nexport const KGFieldQueryOperatorEqual: KGFieldQueryOperator = \"eq\";\nexport const KGFieldQueryOperatorNotEqual: KGFieldQueryOperator = \"neq\";\nexport const KGFieldQueryOperatorGreater: KGFieldQueryOperator = \"gt\";\nexport const KGFieldQueryOperatorLess: KGFieldQueryOperator = \"lt\";\nexport const KGFieldQueryOperatorGreaterOrEqual: KGFieldQueryOperator = \"gte\";\nexport const KGFieldQueryOperatorLessOrEqual: KGFieldQueryOperator = \"lte\";\nexport const KGFieldQueryOperatorLike: KGFieldQueryOperator = \"like\";\nexport const KGFieldQueryOperatorSimilar: KGFieldQueryOperator = \"similar\";\n/**\n * KGFieldQueryOperatorGreaterOrEqual KGFieldQueryOperator = \"gte\"\n * KGFieldQueryOperatorLessOrEqual KGFieldQueryOperator = \"lte\"\n */\nexport const KGFieldQueryOperatorIn: KGFieldQueryOperator = \"in\";\nexport const KGFieldQueryOperatorArrayContains: KGFieldQueryOperator = \"arrayContains\";\nexport type KGRelationshipDirection = string;\nexport const KGRelationshipDirectionIncoming: KGRelationshipDirection = \"incoming\";\nexport const KGRelationshipDirectionOutgoing: KGRelationshipDirection = \"outgoing\";\nexport interface KGEdgeQuery {\n label: string;\n direction: 'incoming' | 'outgoing';\n fields?: { [key: string]: any};\n /**\n * FromLabel string `json:\"fromLabel\"`\n * FromFieldKey string `json:\"fromFieldKey\"`\n * FromValue interface{} `json:\"fromValue\"`\n */\n toLabel: string;\n toFieldKey: string;\n toFieldValue: any;\n}\nexport interface KGQueryResult {\n nodes: KGNode[];\n edges: KGEdge[];\n}\nexport interface KGLabelInfo {\n label: string;\n count: number /* uint64 */;\n}\nexport interface KGPropertyInfo {\n property: string;\n count: number /* uint64 */;\n}\nexport interface KGPLabelSchema {\n label: string;\n keys: string[];\n}\nexport interface KGArticle {\n id: string;\n title: string;\n content: string;\n lang?: string;\n docUrl?: string;\n paragraphs?: string;\n}\nexport interface KGPropertyFilter {\n property: string;\n value: string;\n}\nexport interface KGPropertyFilterRequest {\n label: string;\n filters: KGPropertyFilter[];\n}\nexport interface DeleteDocumentRequest {\n documentId: string;\n}\nexport interface DeleteDocumentResponse {\n success: boolean;\n deletedNodes: { [key: string]: number /* int */};\n totalDeleted: number /* int */;\n error?: string;\n}\n/**\n * KGSyncJob represents a sync job record in the database\n */\nexport interface KGSyncJob {\n id: string;\n title: string;\n stats: { [key: string]: any};\n startTime: string;\n endTime: string;\n updatedAt?: string;\n}\n/**\n * KGSyncJobUpdateRequest is used to insert or update a sync job\n */\nexport interface KGSyncJobUpdateRequest {\n id: string;\n title: string;\n stats: { [key: string]: any};\n startTime: string;\n endTime: string;\n}\nexport interface KGSyncJobUpdateResponse {\n jobId: string;\n metadata: ResponseMetadata;\n}\nexport interface KGSyncJobListResponse {\n jobs: KGSyncJob[];\n metadata: ResponseMetadata;\n}\n/**\n * KGSyncJobListRequest is used to list sync jobs with filters\n */\nexport interface KGSyncJobListRequest {\n limit?: number /* int */;\n offset?: number /* int */;\n startFrom?: string;\n endTo?: string;\n}\n/**\n * KGSyncIngestResponse is the response for synchronous single node ingestion\n */\nexport interface KGSyncIngestResponse {\n success: boolean;\n nodeId?: string;\n error?: string;\n metadata: ResponseMetadata;\n}\n/**\n * KGBatchSyncIngestResponse is the response for synchronous batch node ingestion\n */\nexport interface KGBatchSyncIngestResponse {\n success: boolean;\n ingestedCount: number /* int */;\n nodeIds?: string[];\n errors?: string[];\n metadata: ResponseMetadata;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eloquent
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/chunk-W4XVBGE7.js"],"names":[],"mappings":"AAAA,yBAAY","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/chunk-W4XVBGE7.js"}
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eloquent
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/hooks/index.js"],"names":[],"mappings":"AAAA,qFAAY;AACZ,YAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yWAAC","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/hooks/index.js"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eloquent
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/index.js","../consts.ts"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;AC7FO,IAAM,KAAA,EAAO,IAAA;AD+FpB;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,otKAAC","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/index.js","sourcesContent":[null,"export const Test = \"hi\";"]}
|
package/dist/models/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eloquent
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/models/index.js"],"names":[],"mappings":"AAAA,qFAAY;AACZ,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,usFAAC","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/models/index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eloquent
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/models/kg-designer.js"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,m1CAAC","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/models/kg-designer.js"}
|
package/dist/models/kg.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eloquent
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/models/kg.js"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,m3CAAC","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/models/kg.js"}
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eloquent
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/utils/index.js"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,i0CAAC","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/kg/dist/utils/index.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elqnt/kg",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "Knowledge graph SDK for Eloquent platform - types, browser & server APIs, React hooks, and query utilities",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -47,30 +47,32 @@
|
|
|
47
47
|
"require": "./dist/utils/index.js"
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
|
-
"files": [
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"dev": "tsup --watch",
|
|
54
|
-
"clean": "rm -rf dist",
|
|
55
|
-
"typecheck": "tsc --noEmit"
|
|
56
|
-
},
|
|
50
|
+
"files": [
|
|
51
|
+
"dist"
|
|
52
|
+
],
|
|
57
53
|
"repository": {
|
|
58
54
|
"type": "git",
|
|
59
55
|
"url": "git+https://github.com/Blazi-Commerce/eloquent-packages.git",
|
|
60
56
|
"directory": "packages/kg"
|
|
61
57
|
},
|
|
62
58
|
"dependencies": {
|
|
63
|
-
"@elqnt/types": "
|
|
64
|
-
"@elqnt/api-client": "
|
|
59
|
+
"@elqnt/types": "2.0.13",
|
|
60
|
+
"@elqnt/api-client": "1.0.4"
|
|
65
61
|
},
|
|
66
62
|
"peerDependencies": {
|
|
67
63
|
"react": "^18.0.0 || ^19.0.0"
|
|
68
64
|
},
|
|
69
65
|
"devDependencies": {
|
|
70
|
-
"@elqnt/api-client": "^1.0.2",
|
|
71
66
|
"@types/react": "^19.0.0",
|
|
72
67
|
"react": "^19.0.0",
|
|
73
68
|
"tsup": "^8.0.0",
|
|
74
|
-
"typescript": "^5.0.0"
|
|
69
|
+
"typescript": "^5.0.0",
|
|
70
|
+
"@elqnt/api-client": "1.0.4"
|
|
71
|
+
},
|
|
72
|
+
"scripts": {
|
|
73
|
+
"build": "tsup",
|
|
74
|
+
"dev": "tsup --watch",
|
|
75
|
+
"clean": "rm -rf dist",
|
|
76
|
+
"typecheck": "tsc --noEmit"
|
|
75
77
|
}
|
|
76
|
-
}
|
|
78
|
+
}
|