@undefineds.co/xpod 0.3.52 → 0.3.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/config/cli.json +72 -0
  2. package/config/components-ignore.json +21 -0
  3. package/config/extensions.local.initializer.json +77 -8
  4. package/config/resolver.json +72 -4
  5. package/dist/api/ApiServer.d.ts +12 -0
  6. package/dist/api/ApiServer.js +14 -3
  7. package/dist/api/ApiServer.js.map +1 -1
  8. package/dist/api/auth/NodeTokenAuthenticator.d.ts +0 -8
  9. package/dist/api/auth/NodeTokenAuthenticator.js +3 -46
  10. package/dist/api/auth/NodeTokenAuthenticator.js.map +1 -1
  11. package/dist/api/container/local.js +5 -36
  12. package/dist/api/container/local.js.map +1 -1
  13. package/dist/api/container/routes.js +6 -0
  14. package/dist/api/container/routes.js.map +1 -1
  15. package/dist/api/handlers/EdgeNodeSignalHandler.js +25 -3
  16. package/dist/api/handlers/EdgeNodeSignalHandler.js.map +1 -1
  17. package/dist/api/handlers/ReachabilityHandler.d.ts +13 -0
  18. package/dist/api/handlers/ReachabilityHandler.js +388 -0
  19. package/dist/api/handlers/ReachabilityHandler.js.map +1 -0
  20. package/dist/api/runs/InngestRunExecutionBackend.d.ts +2 -2
  21. package/dist/api/tasks/InngestTaskScheduler.d.ts +4 -4
  22. package/dist/cli/lib/oidc-auth.js +27 -3
  23. package/dist/cli/lib/oidc-auth.js.map +1 -1
  24. package/dist/components/components.jsonld +14 -2
  25. package/dist/components/context.jsonld +439 -3
  26. package/dist/edge/EdgeNodeAgent.d.ts +43 -0
  27. package/dist/edge/EdgeNodeAgent.js +208 -1
  28. package/dist/edge/EdgeNodeAgent.js.map +1 -1
  29. package/dist/edge/EdgeNodeAgent.jsonld +166 -0
  30. package/dist/edge/EdgeNodeAgentInitializer.d.ts +20 -2
  31. package/dist/edge/EdgeNodeAgentInitializer.js +53 -2
  32. package/dist/edge/EdgeNodeAgentInitializer.js.map +1 -1
  33. package/dist/edge/EdgeNodeAgentInitializer.jsonld +409 -0
  34. package/dist/edge/reachability/CanonicalFetch.d.ts +7 -0
  35. package/dist/edge/reachability/CanonicalFetch.js +49 -0
  36. package/dist/edge/reachability/CanonicalFetch.js.map +1 -0
  37. package/dist/edge/reachability/CanonicalFetch.jsonld +25 -0
  38. package/dist/edge/reachability/ManagedClientFetch.d.ts +26 -0
  39. package/dist/edge/reachability/ManagedClientFetch.js +155 -0
  40. package/dist/edge/reachability/ManagedClientFetch.js.map +1 -0
  41. package/dist/edge/reachability/ManagedClientFetch.jsonld +83 -0
  42. package/dist/edge/reachability/ManagedClientP2PSmoke.d.ts +16 -0
  43. package/dist/edge/reachability/ManagedClientP2PSmoke.js +31 -0
  44. package/dist/edge/reachability/ManagedClientP2PSmoke.js.map +1 -0
  45. package/dist/edge/reachability/ManagedClientP2PSmoke.jsonld +65 -0
  46. package/dist/edge/reachability/ManagedRouteSelector.d.ts +7 -0
  47. package/dist/edge/reachability/ManagedRouteSelector.js +43 -0
  48. package/dist/edge/reachability/ManagedRouteSelector.js.map +1 -0
  49. package/dist/edge/reachability/ManagedRouteSelector.jsonld +29 -0
  50. package/dist/edge/reachability/P2PDataPlane.d.ts +37 -0
  51. package/dist/edge/reachability/P2PDataPlane.js +160 -0
  52. package/dist/edge/reachability/P2PDataPlane.js.map +1 -0
  53. package/dist/edge/reachability/P2PDataPlane.jsonld +134 -0
  54. package/dist/edge/reachability/P2PRealnetAcceptance.d.ts +74 -0
  55. package/dist/edge/reachability/P2PRealnetAcceptance.js +240 -0
  56. package/dist/edge/reachability/P2PRealnetAcceptance.js.map +1 -0
  57. package/dist/edge/reachability/P2PRealnetAcceptance.jsonld +283 -0
  58. package/dist/edge/reachability/P2PSignalingClient.d.ts +24 -0
  59. package/dist/edge/reachability/P2PSignalingClient.js +138 -0
  60. package/dist/edge/reachability/P2PSignalingClient.js.map +1 -0
  61. package/dist/edge/reachability/P2PSignalingClient.jsonld +79 -0
  62. package/dist/edge/reachability/ReachabilitySessionService.d.ts +55 -0
  63. package/dist/edge/reachability/ReachabilitySessionService.js +439 -0
  64. package/dist/edge/reachability/ReachabilitySessionService.js.map +1 -0
  65. package/dist/edge/reachability/ReachabilitySessionService.jsonld +196 -0
  66. package/dist/edge/reachability/RouteSetBuilder.d.ts +2 -0
  67. package/dist/edge/reachability/RouteSetBuilder.js +205 -0
  68. package/dist/edge/reachability/RouteSetBuilder.js.map +1 -0
  69. package/dist/edge/reachability/TcpP2PDataPlaneTransport.d.ts +47 -0
  70. package/dist/edge/reachability/TcpP2PDataPlaneTransport.js +281 -0
  71. package/dist/edge/reachability/TcpP2PDataPlaneTransport.js.map +1 -0
  72. package/dist/edge/reachability/TcpP2PDataPlaneTransport.jsonld +183 -0
  73. package/dist/edge/reachability/TcpP2PSignalingSession.d.ts +149 -0
  74. package/dist/edge/reachability/TcpP2PSignalingSession.js +699 -0
  75. package/dist/edge/reachability/TcpP2PSignalingSession.js.map +1 -0
  76. package/dist/edge/reachability/TcpP2PSignalingSession.jsonld +474 -0
  77. package/dist/edge/reachability/index.d.ts +12 -0
  78. package/dist/edge/reachability/index.js +29 -0
  79. package/dist/edge/reachability/index.js.map +1 -0
  80. package/dist/edge/reachability/types.d.ts +114 -0
  81. package/dist/edge/reachability/types.js +3 -0
  82. package/dist/edge/reachability/types.js.map +1 -0
  83. package/dist/edge/reachability/types.jsonld +457 -0
  84. package/dist/http/EdgeNodeProxyHttpHandler.d.ts +2 -0
  85. package/dist/http/EdgeNodeProxyHttpHandler.js +19 -1
  86. package/dist/http/EdgeNodeProxyHttpHandler.js.map +1 -1
  87. package/dist/http/EdgeNodeProxyHttpHandler.jsonld +8 -0
  88. package/dist/identity/drizzle/EdgeNodeRepository.js +1 -1
  89. package/dist/identity/drizzle/EdgeNodeRepository.js.map +1 -1
  90. package/dist/index.d.ts +4 -1
  91. package/dist/index.js +5 -2
  92. package/dist/index.js.map +1 -1
  93. package/dist/runtime/bootstrap.js +8 -0
  94. package/dist/runtime/bootstrap.js.map +1 -1
  95. package/dist/service/EdgeNodeSignalClient.js +5 -1
  96. package/dist/service/EdgeNodeSignalClient.js.map +1 -1
  97. package/dist/storage/rdf/PostgresRdfEngine.d.ts +1 -0
  98. package/dist/storage/rdf/PostgresRdfEngine.js +53 -37
  99. package/dist/storage/rdf/PostgresRdfEngine.js.map +1 -1
  100. package/dist/storage/rdf/PostgresRdfEngine.jsonld +4 -0
  101. package/dist/test-utils/index.d.ts +2 -0
  102. package/dist/test-utils/index.js +3 -1
  103. package/dist/test-utils/index.js.map +1 -1
  104. package/dist/test-utils/local-managed-client-p2p-e2e-smoke.d.ts +63 -0
  105. package/dist/test-utils/local-managed-client-p2p-e2e-smoke.js +478 -0
  106. package/dist/test-utils/local-managed-client-p2p-e2e-smoke.js.map +1 -0
  107. package/package.json +11 -4
  108. package/static/app/assets/_commonjsHelpers-B-UnjaXt.js +1 -0
  109. package/static/app/assets/index-AaQ1qxhy.js +171 -0
  110. package/static/app/assets/inrupt-smoke.js +131 -0
  111. package/static/app/assets/main.css +1 -0
  112. package/static/app/assets/main.js +6 -6
  113. package/static/app/index.html +2 -1
  114. package/static/app/inrupt-smoke.html +14 -0
  115. package/static/app/reachability.html +221 -0
  116. package/static/app/reachability.svg +7 -0
  117. package/static/app/reachability.webmanifest +18 -0
  118. package/static/app/signal-pod.html +293 -0
  119. package/static/app/assets/index.css +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-managed-client-p2p-e2e-smoke.js","sourceRoot":"","sources":["../../src/test-utils/local-managed-client-p2p-e2e-smoke.ts"],"names":[],"mappings":"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","sourcesContent":["import { createServer as createHttpServer, type Server as HttpServer } from 'node:http';\nimport { createConnection, createServer as createTcpServer, type AddressInfo, type Socket } from 'node:net';\nimport { ApiServer } from '../api/ApiServer';\nimport { MultiAuthenticator } from '../api/auth/MultiAuthenticator';\nimport { NodeTokenAuthenticator } from '../api/auth/NodeTokenAuthenticator';\nimport { ServiceTokenAuthenticator } from '../api/auth/ServiceTokenAuthenticator';\nimport { registerEdgeNodeSignalRoutes } from '../api/handlers/EdgeNodeSignalHandler';\nimport { registerReachabilityRoutes } from '../api/handlers/ReachabilityHandler';\nimport { AuthMiddleware } from '../api/middleware/AuthMiddleware';\nimport { EdgeNodeAgent } from '../edge/EdgeNodeAgent';\nimport {\n createNodeRawTcpP2PConnectSocket,\n createP2PDataPlaneHandler,\n createP2PSignalingClient,\n createRawTcpHolePunchCandidates,\n createTcpP2PDataPlaneServer,\n runManagedClientP2PSmoke,\n type AccessRoute,\n type ManagedClientP2PSmokeResult,\n type NodeRawTcpP2PConnectSocketEvent,\n type RawTcpP2PConnectAttempt,\n} from '../edge/reachability';\nimport { EdgeNodeRepository } from '../identity/drizzle/EdgeNodeRepository';\nimport { closeAllIdentityConnections, getIdentityDatabase } from '../identity/drizzle/db';\nimport { ServiceTokenRepository } from '../identity/drizzle/ServiceTokenRepository';\n\nexport type LocalManagedClientP2PSocketMode = 'deterministic-injection' | 'real-tcp-listener';\n\nexport interface LocalManagedClientP2PPlan {\n bucket: number;\n boundary: number;\n rendezvousTimeSeconds: number;\n ports: number[];\n}\n\nexport interface LocalManagedClientP2PE2ESmokeOptions {\n nodeName?: string;\n clientId?: string;\n baseStorageDomain?: string;\n resourcePath?: string;\n targetBody?: string;\n p2pHost?: string;\n advertiseClientHost?: boolean;\n advertiseNodeHost?: boolean;\n routeWaitTimeoutMs?: number;\n pollIntervalMs?: number;\n connectTimeoutMs?: number;\n requestTimeoutMs?: number;\n socketMode?: LocalManagedClientP2PSocketMode;\n}\n\nexport interface LocalManagedClientP2PE2ESmokeResult {\n smokeOk: boolean;\n nodeId: string;\n apiBaseUrl: string;\n targetBaseUrl: string;\n resourceUrl: string;\n plan: LocalManagedClientP2PPlan;\n clientPlan: LocalManagedClientP2PPlan;\n nodePlan: LocalManagedClientP2PPlan;\n smoke: ManagedClientP2PSmokeResult;\n p2pAttempts: {\n client: RawTcpP2PConnectAttempt[];\n node: RawTcpP2PConnectAttempt[];\n };\n connectorEvents: {\n client: LocalManagedClientP2PConnectorEvent[];\n node: LocalManagedClientP2PConnectorEvent[];\n };\n targetRequests: Array<{\n method: string;\n url: string;\n headers: Record<string, string | string[] | undefined>;\n }>;\n evidence: {\n routeDiscovery: 'p2p-route-published';\n signaling: 'repository-backed-api';\n dataPlane: 'deterministic-socket-injection' | 'real-local-tcp-listener';\n canonicalFetch: 'xpod-p2p-http/1';\n clientAddress: 'explicit-host' | 'signal-observed';\n nodeAddress: 'explicit-host' | 'signal-observed';\n };\n caveats: string[];\n}\n\nexport interface LocalManagedClientP2PConnectorEvent {\n type: NodeRawTcpP2PConnectSocketEvent['type'];\n localPort?: number;\n remotePort: number;\n message?: string;\n}\n\nexport async function runLocalManagedClientP2PE2ESmoke(\n options: LocalManagedClientP2PE2ESmokeOptions = {},\n): Promise<LocalManagedClientP2PE2ESmokeResult> {\n const cleanupStack: Array<() => Promise<void> | void> = [];\n const nodeName = options.nodeName ?? 'local-p2p-node';\n const clientId = options.clientId ?? `managed-client-${process.pid}`;\n const baseStorageDomain = options.baseStorageDomain ?? 'pods.example';\n const resourcePath = normalizeResourcePath(options.resourcePath ?? '/alice/local-p2p-e2e.txt?version=1');\n const targetBody = options.targetBody ?? 'local p2p e2e response';\n const p2pHost = options.p2pHost ?? '127.0.0.1';\n const advertiseClientHost = options.advertiseClientHost ?? true;\n const advertiseNodeHost = options.advertiseNodeHost ?? true;\n const routeWaitTimeoutMs = options.routeWaitTimeoutMs ?? 2_000;\n const pollIntervalMs = options.pollIntervalMs ?? 10;\n const connectTimeoutMs = options.connectTimeoutMs ?? 1_000;\n const requestTimeoutMs = options.requestTimeoutMs ?? 2_000;\n const socketMode = options.socketMode ?? 'deterministic-injection';\n\n try {\n const db = getIdentityDatabase(`sqlite::memory:p2p-local-e2e-${Date.now()}-${Math.random()}`);\n const nodeRepo = new EdgeNodeRepository(db);\n const serviceTokenRepo = new ServiceTokenRepository(db);\n const { nodeId, token: nodeToken } = await nodeRepo.createNode(nodeName);\n const { token: serviceToken } = await serviceTokenRepo.createToken({\n serviceType: 'cloud',\n serviceId: 'managed-client-smoke',\n scopes: ['reachability:read', 'reachability:write'],\n });\n const signalApi = await startSignalApi({\n nodeRepo,\n serviceTokenRepo,\n baseStorageDomain,\n });\n cleanupStack.push(() => signalApi.close());\n const target = await startTargetServer({ resourcePath, targetBody });\n cleanupStack.push(() => target.close());\n const p2pAttempts: LocalManagedClientP2PE2ESmokeResult['p2pAttempts'] = { client: [], node: [] };\n const connectorEvents: LocalManagedClientP2PE2ESmokeResult['connectorEvents'] = { client: [], node: [] };\n const clientPort = await reserveTcpPort();\n const plan: LocalManagedClientP2PPlan = {\n bucket: 9_001,\n boundary: 9_001,\n rendezvousTimeSeconds: 0,\n ports: [clientPort],\n };\n let nodePlan = plan;\n let clientConnectSocket: Parameters<typeof runManagedClientP2PSmoke>[0]['connectSocket'];\n let responderDebug: (() => unknown) | undefined;\n\n if (socketMode === 'real-tcp-listener') {\n await publishP2PRoute({\n repository: nodeRepo,\n nodeId,\n baseUrl: `https://${nodeId}.${baseStorageDomain}/`,\n });\n const dataPlaneServer = createTcpP2PDataPlaneServer({\n handler: createP2PDataPlaneHandler({ targetBaseUrl: target.baseUrl }),\n host: p2pHost,\n });\n await dataPlaneServer.listen(0);\n nodePlan = {\n ...plan,\n ports: [dataPlaneServer.address().port],\n };\n cleanupStack.push(() => dataPlaneServer.close());\n const responder = startRealTcpNodeCandidateResponder({\n apiBaseUrl: signalApi.baseUrl,\n nodeId,\n nodeToken,\n host: advertiseNodeHost ? p2pHost : undefined,\n clientPlan: plan,\n nodePlan,\n });\n responderDebug = responder.diagnostics;\n cleanupStack.push(() => responder.stop());\n const nodeConnector = createNodeRawTcpP2PConnectSocket({\n onEvent: (event) => connectorEvents.client.push(summarizeConnectorEvent(event)),\n });\n clientConnectSocket = async (attempt) => {\n p2pAttempts.client.push(attempt);\n return nodeConnector(attempt);\n };\n } else {\n const socketPair = await createSocketPair();\n cleanupStack.push(() => socketPair.close());\n const agent = new EdgeNodeAgent();\n cleanupStack.push(() => agent.stop());\n const initialHeartbeat = createDeferred<void>();\n let heartbeatResponseSeen = false;\n await agent.start({\n signalEndpoint: `${signalApi.baseUrl}/v1/signal`,\n nodeId,\n nodeToken,\n baseUrl: `https://${nodeId}.${baseStorageDomain}/`,\n enableNetworkDetection: false,\n onHeartbeatResponse: () => {\n heartbeatResponseSeen = true;\n initialHeartbeat.resolve();\n },\n p2p: {\n enabled: true,\n targetBaseUrl: target.baseUrl,\n ...(advertiseNodeHost ? { host: p2pHost } : {}),\n acceptIntervalMs: 20,\n connectTimeoutMs,\n winnerSelectionWindowMs: 0,\n connectSocket: async (attempt) => {\n p2pAttempts.node.push(attempt);\n return socketPair.serverSocket;\n },\n },\n });\n clientConnectSocket = async (attempt) => {\n p2pAttempts.client.push(attempt);\n return socketPair.clientSocket;\n };\n try {\n await initialHeartbeat.wait(routeWaitTimeoutMs, 'initial P2P heartbeat was not acknowledged before route discovery');\n } catch (error) {\n const metadata = await nodeRepo.getNodeMetadata(nodeId);\n throw new Error(`${error instanceof Error ? error.message : String(error)}; heartbeatResponseSeen=${heartbeatResponseSeen}; signalApi=${signalApi.baseUrl}; nodeMetadata=${JSON.stringify(metadata?.metadata ?? null)}`);\n }\n }\n\n await waitForRoute({\n apiBaseUrl: signalApi.baseUrl,\n nodeId,\n token: serviceToken,\n predicate: (route) => route.kind === 'p2p' && route.targetUrl.startsWith('tcp-punch://'),\n timeoutMs: routeWaitTimeoutMs,\n });\n\n const resourceUrl = `https://${nodeId}.${baseStorageDomain}${resourcePath}`;\n let smoke: ManagedClientP2PSmokeResult;\n try {\n smoke = await runManagedClientP2PSmoke({\n apiBaseUrl: signalApi.baseUrl,\n nodeId,\n token: serviceToken,\n clientId,\n resourceUrl,\n plan,\n pollIntervalMs,\n waitTimeoutMs: routeWaitTimeoutMs,\n connectTimeoutMs,\n timeoutMs: requestTimeoutMs,\n ...(advertiseClientHost ? { host: p2pHost } : {}),\n ...(clientConnectSocket ? { connectSocket: clientConnectSocket } : {}),\n });\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new Error(`${message}; responder=${JSON.stringify(responderDebug?.() ?? null)}`);\n }\n\n return {\n smokeOk: smoke.ok && smoke.route.kind === 'p2p',\n nodeId,\n apiBaseUrl: signalApi.baseUrl,\n targetBaseUrl: target.baseUrl,\n resourceUrl,\n plan,\n clientPlan: plan,\n nodePlan,\n smoke,\n p2pAttempts,\n connectorEvents,\n targetRequests: target.requests,\n evidence: {\n routeDiscovery: 'p2p-route-published',\n signaling: 'repository-backed-api',\n dataPlane: socketMode === 'real-tcp-listener' ? 'real-local-tcp-listener' : 'deterministic-socket-injection',\n canonicalFetch: 'xpod-p2p-http/1',\n clientAddress: advertiseClientHost ? 'explicit-host' : 'signal-observed',\n nodeAddress: advertiseNodeHost ? 'explicit-host' : 'signal-observed',\n },\n caveats: [\n socketMode === 'real-tcp-listener'\n ? 'This local smoke uses a real loopback TCP listener, but still does not prove cross-NAT TCP simultaneous open.'\n : 'This local smoke does not prove real cross-NAT TCP simultaneous open.',\n 'Cloudflare Tunnel and FRP/SakuraFRP remain independent user-tunnel fallback routes.',\n ],\n };\n } finally {\n while (cleanupStack.length > 0) {\n const cleanup = cleanupStack.pop()!;\n await cleanup();\n }\n await closeAllIdentityConnections();\n }\n}\n\nfunction summarizeConnectorEvent(event: NodeRawTcpP2PConnectSocketEvent): LocalManagedClientP2PConnectorEvent {\n return {\n type: event.type,\n ...(event.attempt.localPort ? { localPort: event.attempt.localPort } : {}),\n remotePort: event.attempt.remotePort,\n ...(event.error ? { message: event.error.message } : {}),\n };\n}\n\n\nasync function publishP2PRoute(options: {\n repository: EdgeNodeRepository;\n nodeId: string;\n baseUrl: string;\n}): Promise<void> {\n await options.repository.updateNodeHeartbeat(options.nodeId, {\n baseUrl: options.baseUrl,\n routes: [\n {\n id: 'p2p-raw-tcp',\n nodeId: options.nodeId,\n canonicalUrl: options.baseUrl,\n kind: 'p2p',\n targetUrl: `tcp-punch://node/${encodeURIComponent(options.nodeId)}`,\n priority: 40,\n requiresManagedClient: true,\n visibility: 'authorized-client',\n health: 'healthy',\n metadata: {\n protocols: {\n 'raw-tcp-hole-punch': { enabled: true },\n },\n },\n },\n ],\n }, new Date());\n}\n\nfunction startRealTcpNodeCandidateResponder(options: {\n apiBaseUrl: string;\n nodeId: string;\n nodeToken: string;\n host?: string;\n clientPlan: LocalManagedClientP2PPlan;\n nodePlan: LocalManagedClientP2PPlan;\n}): { stop: () => Promise<void>; diagnostics: () => unknown } {\n const signaling = createP2PSignalingClient({\n apiBaseUrl: options.apiBaseUrl,\n nodeId: options.nodeId,\n token: options.nodeToken,\n });\n let stopped = false;\n const debugState = { listCount: 0, sessionCount: 0, addCount: 0, lastError: '', lastSessions: [] as unknown[] };\n const run = async (): Promise<void> => {\n while (!stopped) {\n try {\n const sessions = await signaling.listP2PSessions();\n debugState.listCount += 1;\n debugState.sessionCount = sessions.length;\n debugState.lastSessions = sessions.map((session) => ({ sessionId: session.sessionId, signalingUrl: session.signalingUrl, candidates: session.candidates.map((candidate) => ({ role: candidate.role, sourceId: candidate.sourceId, port: candidate.port, host: candidate.host, address: candidate.address, url: candidate.url, metadata: candidate.metadata })) }));\n for (const session of sessions) {\n const hasClientCandidate = session.candidates.some((candidate) => candidate.role === 'client'\n && candidate.metadata?.bucket === options.clientPlan.bucket);\n const hasNodeCandidate = session.candidates.some((candidate) => candidate.role === 'node'\n && candidate.sourceId === options.nodeId\n && candidate.metadata?.bucket === options.nodePlan.bucket);\n if (!hasClientCandidate || hasNodeCandidate) {\n continue;\n }\n const candidates = createRawTcpHolePunchCandidates({\n role: 'node',\n sourceId: options.nodeId,\n host: options.host,\n plan: options.nodePlan,\n });\n const answered = await signaling.addP2PCandidates(session.signalingUrl || session.sessionId, {\n role: 'node',\n sourceId: options.nodeId,\n candidates,\n });\n debugState.addCount += 1;\n debugState.lastSessions = [{ sessionId: answered.sessionId, signalingUrl: answered.signalingUrl, candidates: answered.candidates.map((candidate) => ({ role: candidate.role, sourceId: candidate.sourceId, port: candidate.port, host: candidate.host, address: candidate.address, url: candidate.url, metadata: candidate.metadata })) }];\n }\n } catch (error) {\n debugState.lastError = error instanceof Error ? `${error.name}: ${error.message}` : String(error);\n }\n await sleep(10);\n }\n };\n const done = run();\n return {\n async stop(): Promise<void> {\n stopped = true;\n await done;\n },\n diagnostics: () => ({ ...debugState }),\n };\n}\n\nasync function startSignalApi(options: {\n nodeRepo: EdgeNodeRepository;\n serviceTokenRepo: ServiceTokenRepository;\n baseStorageDomain: string;\n}): Promise<{ baseUrl: string; close: () => Promise<void> }> {\n const authenticator = new MultiAuthenticator({\n authenticators: [\n new ServiceTokenAuthenticator({ repository: options.serviceTokenRepo }),\n new NodeTokenAuthenticator({ repository: options.nodeRepo }),\n ],\n });\n const server = new ApiServer({\n port: 0,\n host: '127.0.0.1',\n authMiddleware: new AuthMiddleware({ authenticator }),\n });\n let baseUrl = 'http://127.0.0.1:0';\n registerEdgeNodeSignalRoutes(server, { repository: options.nodeRepo });\n registerReachabilityRoutes(server, {\n repository: options.nodeRepo,\n baseStorageDomain: options.baseStorageDomain,\n apiBaseUrl: () => baseUrl,\n });\n await server.start();\n const address = server.address();\n if (!address || typeof address === 'string') {\n await server.stop();\n throw new Error('Expected signal API TCP address info');\n }\n baseUrl = `http://127.0.0.1:${address.port}`;\n return {\n baseUrl,\n close: () => server.stop(),\n };\n}\n\nasync function startTargetServer(options: {\n resourcePath: string;\n targetBody: string;\n}): Promise<{\n baseUrl: string;\n requests: Array<{ method: string; url: string; headers: Record<string, string | string[] | undefined> }>;\n close: () => Promise<void>;\n}> {\n const requests: Array<{ method: string; url: string; headers: Record<string, string | string[] | undefined> }> = [];\n const server = createHttpServer((request, response) => {\n requests.push({\n method: request.method ?? 'GET',\n url: request.url ?? '/',\n headers: request.headers,\n });\n if (request.url === options.resourcePath) {\n response.statusCode = 200;\n response.setHeader('content-type', 'text/plain');\n response.end(options.targetBody);\n return;\n }\n response.statusCode = 404;\n response.end('not found');\n });\n await new Promise<void>((resolve, reject) => {\n server.once('error', reject);\n server.listen(0, '127.0.0.1', resolve);\n });\n const address = server.address();\n if (!address || typeof address === 'string') {\n throw new Error('Expected target HTTP server address info');\n }\n return {\n baseUrl: `http://127.0.0.1:${address.port}/`,\n requests,\n close: () => closeHttpServer(server),\n };\n}\n\nasync function waitForRoute(options: {\n apiBaseUrl: string;\n nodeId: string;\n token: string;\n predicate: (route: AccessRoute) => boolean;\n timeoutMs: number;\n}): Promise<AccessRoute> {\n const startedAt = Date.now();\n let lastError = '';\n while (Date.now() - startedAt < options.timeoutMs) {\n try {\n const response = await fetch(new URL(`/v1/signal/nodes/${encodeURIComponent(options.nodeId)}/routes`, options.apiBaseUrl), {\n headers: {\n authorization: `Bearer ${options.token}`,\n accept: 'application/json',\n },\n });\n if (!response.ok) {\n lastError = `${response.status} ${await response.text()}`;\n } else {\n const body = await response.json() as { routes?: AccessRoute[] };\n const route = body.routes?.find(options.predicate);\n if (route) {\n return route;\n }\n lastError = JSON.stringify(body);\n }\n } catch (error) {\n lastError = error instanceof Error ? error.message : String(error);\n }\n await sleep(20);\n }\n throw new Error(`Timed out waiting for P2P route: ${lastError}`);\n}\n\nasync function reserveTcpPort(): Promise<number> {\n const server = createTcpServer();\n await new Promise<void>((resolve, reject) => {\n server.once('error', reject);\n server.listen(0, '127.0.0.1', resolve);\n });\n const address = server.address();\n if (!address || typeof address === 'string') {\n throw new Error('Expected TCP address info');\n }\n await closeTcpServer(server);\n return address.port;\n}\n\nasync function createSocketPair(): Promise<{\n clientSocket: Socket;\n serverSocket: Socket;\n close: () => Promise<void>;\n}> {\n const server = createTcpServer();\n const serverSocketPromise = new Promise<Socket>((resolve) => {\n server.once('connection', resolve);\n });\n await new Promise<void>((resolve, reject) => {\n server.once('error', reject);\n server.listen(0, '127.0.0.1', resolve);\n });\n const address = server.address() as AddressInfo;\n const clientSocket = await new Promise<Socket>((resolve, reject) => {\n const socket = createConnection({ host: '127.0.0.1', port: address.port });\n socket.once('connect', () => resolve(socket));\n socket.once('error', reject);\n });\n const serverSocket = await serverSocketPromise;\n return {\n clientSocket,\n serverSocket,\n async close(): Promise<void> {\n clientSocket.destroy();\n serverSocket.destroy();\n await closeTcpServer(server);\n },\n };\n}\n\nfunction normalizeResourcePath(value: string): string {\n if (!value.startsWith('/')) {\n return `/${value}`;\n }\n return value;\n}\n\nfunction closeHttpServer(server: HttpServer): Promise<void> {\n return new Promise((resolve, reject) => {\n server.close((error) => error ? reject(error) : resolve());\n });\n}\n\nfunction closeTcpServer(server: ReturnType<typeof createTcpServer>): Promise<void> {\n return new Promise((resolve, reject) => {\n server.close((error) => error ? reject(error) : resolve());\n });\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nfunction createDeferred<T>(): {\n resolve: (value: T | PromiseLike<T>) => void;\n reject: (reason?: unknown) => void;\n wait: (timeoutMs: number, timeoutMessage: string) => Promise<T>;\n} {\n let settled = false;\n let resolve!: (value: T | PromiseLike<T>) => void;\n let reject!: (reason?: unknown) => void;\n const promise = new Promise<T>((promiseResolve, promiseReject) => {\n resolve = (value) => {\n settled = true;\n promiseResolve(value);\n };\n reject = (reason) => {\n settled = true;\n promiseReject(reason);\n };\n });\n return {\n resolve,\n reject,\n wait: async (timeoutMs, timeoutMessage) => {\n if (settled) {\n return promise;\n }\n let timeout: NodeJS.Timeout | undefined;\n try {\n return await Promise.race([\n promise,\n new Promise<T>((_, timeoutReject) => {\n timeout = setTimeout(() => timeoutReject(new Error(timeoutMessage)), timeoutMs);\n }),\n ]);\n } finally {\n if (timeout) {\n clearTimeout(timeout);\n }\n }\n },\n };\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@undefineds.co/xpod",
3
- "version": "0.3.52",
3
+ "version": "0.3.54",
4
4
  "description": "Xpod is an extended Community Solid Server, offering rich-feature, production-level Solid Pod and identity management.",
5
5
  "repository": "https://github.com/undefinedsco/xpod",
6
6
  "author": "developer@undefineds.co",
@@ -60,7 +60,7 @@
60
60
  "scripts": {
61
61
  "build": "bun run build:ts && bun run build:components && bun run build:ui",
62
62
  "build:ts": "tsc",
63
- "build:components": "componentsjs-generator -s src -c dist/components -r undefineds",
63
+ "build:components": "componentsjs-generator -s src -c dist/components -r undefineds -i config/components-ignore.json",
64
64
  "build:ui": "cd ui && bun install --frozen-lockfile && bun run build",
65
65
  "prepare.": "bun run build",
66
66
  "release": "node scripts/publish-release.cjs",
@@ -112,6 +112,12 @@
112
112
  "build:single:bun": "node scripts/build-bun-single.js",
113
113
  "build:single:bun:package": "node scripts/build-platform-package.cjs --current",
114
114
  "build:single:standalone": "bun run build && node scripts/build-single-file.js",
115
+ "smoke:p2p:managed": "bun scripts/managed-client-p2p-smoke.ts",
116
+ "smoke:p2p:node-accept": "bun scripts/edge-node-p2p-accept-smoke.ts",
117
+ "smoke:p2p:local-e2e": "bun scripts/local-managed-p2p-e2e-smoke.ts",
118
+ "smoke:p2p:realnet": "bun scripts/p2p-realnet-acceptance.ts",
119
+ "smoke:p2p:android-realnet": "bun scripts/p2p-android-realnet-smoke.ts",
120
+ "smoke:p2p:docker-e2e": "bun scripts/docker-managed-p2p-e2e-smoke.ts",
115
121
  "check:abi": "node scripts/check-native-abi.cjs",
116
122
  "check:platform-package-version": "node scripts/check-platform-package-version.cjs",
117
123
  "sync:platform-package-version": "node scripts/sync-platform-package-version.cjs",
@@ -121,7 +127,8 @@
121
127
  "publish:release": "node scripts/publish-release.cjs",
122
128
  "publish:release:dry": "node scripts/publish-release.cjs --dry-run",
123
129
  "test:setup": "dotenv -e .env.local -- bun scripts/setup-test-credentials.ts",
124
- "version": "node scripts/sync-platform-package-version.cjs --stage"
130
+ "version": "node scripts/sync-platform-package-version.cjs --stage",
131
+ "build:harmony:p2p-smoke": "node scripts/build-harmony-p2p-smoke.cjs"
125
132
  },
126
133
  "devDependencies": {
127
134
  "@playwright/test": "^1.57.0",
@@ -158,6 +165,7 @@
158
165
  "@comunica/types": "^4.5.0",
159
166
  "@comunica/utils-metadata": "^4.5.0",
160
167
  "@electric-sql/pglite": "^0.3.14",
168
+ "@inrupt/solid-client-authn-core": "^3.1.0",
161
169
  "@inrupt/solid-client-authn-node": "^3.1.0",
162
170
  "@mariozechner/pi-coding-agent": "^0.55.1",
163
171
  "@solid/community-server": "8.0.0-alpha.1",
@@ -189,7 +197,6 @@
189
197
  "react-router-dom": "^6.22.3",
190
198
  "sqlite-vec": "^0.1.7-alpha.2",
191
199
  "tree-kill": "^1.2.2",
192
- "werift": "^0.22.2",
193
200
  "winston": "^3.17.0",
194
201
  "winston-daily-rotate-file": "^5.0.0",
195
202
  "yaml": "^2.8.2",
@@ -0,0 +1 @@
1
+ (function(){const o=document.createElement("link").relList;if(o&&o.supports&&o.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))i(e);new MutationObserver(e=>{for(const t of e)if(t.type==="childList")for(const s of t.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&i(s)}).observe(document,{childList:!0,subtree:!0});function n(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?t.credentials="include":e.crossOrigin==="anonymous"?t.credentials="omit":t.credentials="same-origin",t}function i(e){if(e.ep)return;e.ep=!0;const t=n(e);fetch(e.href,t)}})();function c(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}export{c as g};