@undefineds.co/xpod 0.1.0-local.202602081751

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 (970) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +146 -0
  3. package/components/components.jsonld +72 -0
  4. package/components/context.jsonld +1635 -0
  5. package/config/bun.json +90 -0
  6. package/config/cli.json +260 -0
  7. package/config/cloud.json +469 -0
  8. package/config/extensions.local.initializer.json +23 -0
  9. package/config/local.json +261 -0
  10. package/config/logging/configurable.json +18 -0
  11. package/config/main.json +200 -0
  12. package/config/main.vanilla.json +6 -0
  13. package/config/resolver.json +347 -0
  14. package/config/search.json +66 -0
  15. package/config/seed.dev.json +29 -0
  16. package/config/seeds/admin.example.json +11 -0
  17. package/config/seeds/test.json +11 -0
  18. package/config/terminal.json +22 -0
  19. package/config/vector.json +35 -0
  20. package/config/xpod.base.json +155 -0
  21. package/config/xpod.cluster.json +419 -0
  22. package/config/xpod.json +233 -0
  23. package/dist/agents/AgentExecutorFactory.d.ts +67 -0
  24. package/dist/agents/AgentExecutorFactory.js +193 -0
  25. package/dist/agents/AgentExecutorFactory.js.map +1 -0
  26. package/dist/agents/AgentManager.d.ts +114 -0
  27. package/dist/agents/AgentManager.js +289 -0
  28. package/dist/agents/AgentManager.js.map +1 -0
  29. package/dist/agents/BaseAgentExecutor.d.ts +67 -0
  30. package/dist/agents/BaseAgentExecutor.js +101 -0
  31. package/dist/agents/BaseAgentExecutor.js.map +1 -0
  32. package/dist/agents/ClaudeExecutor.d.ts +63 -0
  33. package/dist/agents/ClaudeExecutor.js +335 -0
  34. package/dist/agents/ClaudeExecutor.js.map +1 -0
  35. package/dist/agents/CodeBuddyExecutor.d.ts +54 -0
  36. package/dist/agents/CodeBuddyExecutor.js +273 -0
  37. package/dist/agents/CodeBuddyExecutor.js.map +1 -0
  38. package/dist/agents/IndexAgent.d.ts +70 -0
  39. package/dist/agents/IndexAgent.js +417 -0
  40. package/dist/agents/IndexAgent.js.map +1 -0
  41. package/dist/agents/index.d.ts +22 -0
  42. package/dist/agents/index.js +48 -0
  43. package/dist/agents/index.js.map +1 -0
  44. package/dist/agents/schema/agent-config.d.ts +58 -0
  45. package/dist/agents/schema/agent-config.js +74 -0
  46. package/dist/agents/schema/agent-config.js.map +1 -0
  47. package/dist/agents/schema/tables.d.ts +46 -0
  48. package/dist/agents/schema/tables.js +64 -0
  49. package/dist/agents/schema/tables.js.map +1 -0
  50. package/dist/agents/types.d.ts +266 -0
  51. package/dist/agents/types.js +9 -0
  52. package/dist/agents/types.js.map +1 -0
  53. package/dist/ai/index.d.ts +5 -0
  54. package/dist/ai/index.js +22 -0
  55. package/dist/ai/index.js.map +1 -0
  56. package/dist/ai/schema/config.d.ts +27 -0
  57. package/dist/ai/schema/config.js +36 -0
  58. package/dist/ai/schema/config.js.map +1 -0
  59. package/dist/ai/schema/index.d.ts +8 -0
  60. package/dist/ai/schema/index.js +27 -0
  61. package/dist/ai/schema/index.js.map +1 -0
  62. package/dist/ai/schema/model.d.ts +40 -0
  63. package/dist/ai/schema/model.js +60 -0
  64. package/dist/ai/schema/model.js.map +1 -0
  65. package/dist/ai/schema/provider.d.ts +21 -0
  66. package/dist/ai/schema/provider.js +30 -0
  67. package/dist/ai/schema/provider.js.map +1 -0
  68. package/dist/ai/schema/types.d.ts +52 -0
  69. package/dist/ai/schema/types.js +62 -0
  70. package/dist/ai/schema/types.js.map +1 -0
  71. package/dist/ai/schema/vector-store.d.ts +53 -0
  72. package/dist/ai/schema/vector-store.js +65 -0
  73. package/dist/ai/schema/vector-store.js.map +1 -0
  74. package/dist/ai/service/CredentialReader.d.ts +7 -0
  75. package/dist/ai/service/CredentialReader.js +10 -0
  76. package/dist/ai/service/CredentialReader.js.map +1 -0
  77. package/dist/ai/service/CredentialReaderImpl.d.ts +6 -0
  78. package/dist/ai/service/CredentialReaderImpl.js +55 -0
  79. package/dist/ai/service/CredentialReaderImpl.js.map +1 -0
  80. package/dist/ai/service/EmbeddingService.d.ts +8 -0
  81. package/dist/ai/service/EmbeddingService.js +10 -0
  82. package/dist/ai/service/EmbeddingService.js.map +1 -0
  83. package/dist/ai/service/EmbeddingServiceImpl.d.ts +11 -0
  84. package/dist/ai/service/EmbeddingServiceImpl.js +73 -0
  85. package/dist/ai/service/EmbeddingServiceImpl.js.map +1 -0
  86. package/dist/ai/service/ProviderRegistry.d.ts +26 -0
  87. package/dist/ai/service/ProviderRegistry.js +10 -0
  88. package/dist/ai/service/ProviderRegistry.js.map +1 -0
  89. package/dist/ai/service/ProviderRegistryImpl.d.ts +14 -0
  90. package/dist/ai/service/ProviderRegistryImpl.js +112 -0
  91. package/dist/ai/service/ProviderRegistryImpl.js.map +1 -0
  92. package/dist/ai/service/index.d.ts +10 -0
  93. package/dist/ai/service/index.js +29 -0
  94. package/dist/ai/service/index.js.map +1 -0
  95. package/dist/ai/service/types.d.ts +12 -0
  96. package/dist/ai/service/types.js +6 -0
  97. package/dist/ai/service/types.js.map +1 -0
  98. package/dist/api/ApiServer.d.ts +77 -0
  99. package/dist/api/ApiServer.js +191 -0
  100. package/dist/api/ApiServer.js.map +1 -0
  101. package/dist/api/auth/AuthContext.d.ts +41 -0
  102. package/dist/api/auth/AuthContext.js +44 -0
  103. package/dist/api/auth/AuthContext.js.map +1 -0
  104. package/dist/api/auth/Authenticator.d.ts +23 -0
  105. package/dist/api/auth/Authenticator.js +3 -0
  106. package/dist/api/auth/Authenticator.js.map +1 -0
  107. package/dist/api/auth/ClientCredentialsAuthenticator.d.ts +56 -0
  108. package/dist/api/auth/ClientCredentialsAuthenticator.js +191 -0
  109. package/dist/api/auth/ClientCredentialsAuthenticator.js.map +1 -0
  110. package/dist/api/auth/MultiAuthenticator.d.ts +15 -0
  111. package/dist/api/auth/MultiAuthenticator.js +36 -0
  112. package/dist/api/auth/MultiAuthenticator.js.map +1 -0
  113. package/dist/api/auth/NodeTokenAuthenticator.d.ts +21 -0
  114. package/dist/api/auth/NodeTokenAuthenticator.js +124 -0
  115. package/dist/api/auth/NodeTokenAuthenticator.js.map +1 -0
  116. package/dist/api/auth/SolidTokenAuthenticator.d.ts +27 -0
  117. package/dist/api/auth/SolidTokenAuthenticator.js +144 -0
  118. package/dist/api/auth/SolidTokenAuthenticator.js.map +1 -0
  119. package/dist/api/auth/index.d.ts +5 -0
  120. package/dist/api/auth/index.js +23 -0
  121. package/dist/api/auth/index.js.map +1 -0
  122. package/dist/api/chatkit/ai-provider.d.ts +44 -0
  123. package/dist/api/chatkit/ai-provider.js +157 -0
  124. package/dist/api/chatkit/ai-provider.js.map +1 -0
  125. package/dist/api/chatkit/index.d.ts +11 -0
  126. package/dist/api/chatkit/index.js +44 -0
  127. package/dist/api/chatkit/index.js.map +1 -0
  128. package/dist/api/chatkit/pod-store.d.ts +154 -0
  129. package/dist/api/chatkit/pod-store.js +794 -0
  130. package/dist/api/chatkit/pod-store.js.map +1 -0
  131. package/dist/api/chatkit/schema.d.ts +139 -0
  132. package/dist/api/chatkit/schema.js +168 -0
  133. package/dist/api/chatkit/schema.js.map +1 -0
  134. package/dist/api/chatkit/service.d.ts +143 -0
  135. package/dist/api/chatkit/service.js +442 -0
  136. package/dist/api/chatkit/service.js.map +1 -0
  137. package/dist/api/chatkit/store.d.ts +63 -0
  138. package/dist/api/chatkit/store.js +178 -0
  139. package/dist/api/chatkit/store.js.map +1 -0
  140. package/dist/api/chatkit/types.d.ts +461 -0
  141. package/dist/api/chatkit/types.js +50 -0
  142. package/dist/api/chatkit/types.js.map +1 -0
  143. package/dist/api/container/cloud.d.ts +12 -0
  144. package/dist/api/container/cloud.js +97 -0
  145. package/dist/api/container/cloud.js.map +1 -0
  146. package/dist/api/container/common.d.ts +11 -0
  147. package/dist/api/container/common.js +82 -0
  148. package/dist/api/container/common.js.map +1 -0
  149. package/dist/api/container/index.d.ts +16 -0
  150. package/dist/api/container/index.js +90 -0
  151. package/dist/api/container/index.js.map +1 -0
  152. package/dist/api/container/local.d.ts +13 -0
  153. package/dist/api/container/local.js +197 -0
  154. package/dist/api/container/local.js.map +1 -0
  155. package/dist/api/container/routes.d.ts +11 -0
  156. package/dist/api/container/routes.js +129 -0
  157. package/dist/api/container/routes.js.map +1 -0
  158. package/dist/api/container/types.d.ts +92 -0
  159. package/dist/api/container/types.js +8 -0
  160. package/dist/api/container/types.js.map +1 -0
  161. package/dist/api/handlers/AdminHandler.d.ts +6 -0
  162. package/dist/api/handlers/AdminHandler.js +330 -0
  163. package/dist/api/handlers/AdminHandler.js.map +1 -0
  164. package/dist/api/handlers/ApiKeyHandler.d.ts +15 -0
  165. package/dist/api/handlers/ApiKeyHandler.js +159 -0
  166. package/dist/api/handlers/ApiKeyHandler.js.map +1 -0
  167. package/dist/api/handlers/ChatHandler.d.ts +60 -0
  168. package/dist/api/handlers/ChatHandler.js +230 -0
  169. package/dist/api/handlers/ChatHandler.js.map +1 -0
  170. package/dist/api/handlers/ChatKitHandler.d.ts +18 -0
  171. package/dist/api/handlers/ChatKitHandler.js +151 -0
  172. package/dist/api/handlers/ChatKitHandler.js.map +1 -0
  173. package/dist/api/handlers/DashboardHandler.d.ts +14 -0
  174. package/dist/api/handlers/DashboardHandler.js +117 -0
  175. package/dist/api/handlers/DashboardHandler.js.map +1 -0
  176. package/dist/api/handlers/DdnsHandler.d.ts +19 -0
  177. package/dist/api/handlers/DdnsHandler.js +306 -0
  178. package/dist/api/handlers/DdnsHandler.js.map +1 -0
  179. package/dist/api/handlers/DevHandler.d.ts +18 -0
  180. package/dist/api/handlers/DevHandler.js +276 -0
  181. package/dist/api/handlers/DevHandler.js.map +1 -0
  182. package/dist/api/handlers/NodeHandler.d.ts +16 -0
  183. package/dist/api/handlers/NodeHandler.js +190 -0
  184. package/dist/api/handlers/NodeHandler.js.map +1 -0
  185. package/dist/api/handlers/PodManagementHandler.d.ts +39 -0
  186. package/dist/api/handlers/PodManagementHandler.js +294 -0
  187. package/dist/api/handlers/PodManagementHandler.js.map +1 -0
  188. package/dist/api/handlers/QuotaHandler.d.ts +21 -0
  189. package/dist/api/handlers/QuotaHandler.js +209 -0
  190. package/dist/api/handlers/QuotaHandler.js.map +1 -0
  191. package/dist/api/handlers/SignalHandler.d.ts +13 -0
  192. package/dist/api/handlers/SignalHandler.js +122 -0
  193. package/dist/api/handlers/SignalHandler.js.map +1 -0
  194. package/dist/api/handlers/SubdomainClientHandler.d.ts +24 -0
  195. package/dist/api/handlers/SubdomainClientHandler.js +169 -0
  196. package/dist/api/handlers/SubdomainClientHandler.js.map +1 -0
  197. package/dist/api/handlers/SubdomainHandler.d.ts +17 -0
  198. package/dist/api/handlers/SubdomainHandler.js +312 -0
  199. package/dist/api/handlers/SubdomainHandler.js.map +1 -0
  200. package/dist/api/handlers/VectorHandler.d.ts +15 -0
  201. package/dist/api/handlers/VectorHandler.js +293 -0
  202. package/dist/api/handlers/VectorHandler.js.map +1 -0
  203. package/dist/api/handlers/VectorStoreHandler.d.ts +20 -0
  204. package/dist/api/handlers/VectorStoreHandler.js +348 -0
  205. package/dist/api/handlers/VectorStoreHandler.js.map +1 -0
  206. package/dist/api/handlers/VectorStoreWebhookHandler.d.ts +74 -0
  207. package/dist/api/handlers/VectorStoreWebhookHandler.js +121 -0
  208. package/dist/api/handlers/VectorStoreWebhookHandler.js.map +1 -0
  209. package/dist/api/handlers/WebIdProfileHandler.d.ts +14 -0
  210. package/dist/api/handlers/WebIdProfileHandler.js +204 -0
  211. package/dist/api/handlers/WebIdProfileHandler.js.map +1 -0
  212. package/dist/api/handlers/index.d.ts +11 -0
  213. package/dist/api/handlers/index.js +28 -0
  214. package/dist/api/handlers/index.js.map +1 -0
  215. package/dist/api/index.d.ts +12 -0
  216. package/dist/api/index.js +29 -0
  217. package/dist/api/index.js.map +1 -0
  218. package/dist/api/main.d.ts +14 -0
  219. package/dist/api/main.js +106 -0
  220. package/dist/api/main.js.map +1 -0
  221. package/dist/api/middleware/AuthMiddleware.d.ts +35 -0
  222. package/dist/api/middleware/AuthMiddleware.js +51 -0
  223. package/dist/api/middleware/AuthMiddleware.js.map +1 -0
  224. package/dist/api/middleware/index.d.ts +1 -0
  225. package/dist/api/middleware/index.js +18 -0
  226. package/dist/api/middleware/index.js.map +1 -0
  227. package/dist/api/models/model-provider.schema.d.ts +12 -0
  228. package/dist/api/models/model-provider.schema.js +21 -0
  229. package/dist/api/models/model-provider.schema.js.map +1 -0
  230. package/dist/api/models/namespaces.d.ts +9 -0
  231. package/dist/api/models/namespaces.js +34 -0
  232. package/dist/api/models/namespaces.js.map +1 -0
  233. package/dist/api/service/InternalPodService.d.ts +19 -0
  234. package/dist/api/service/InternalPodService.js +82 -0
  235. package/dist/api/service/InternalPodService.js.map +1 -0
  236. package/dist/api/service/VectorService.d.ts +156 -0
  237. package/dist/api/service/VectorService.js +202 -0
  238. package/dist/api/service/VectorService.js.map +1 -0
  239. package/dist/api/service/VectorStoreService.d.ts +262 -0
  240. package/dist/api/service/VectorStoreService.js +985 -0
  241. package/dist/api/service/VectorStoreService.js.map +1 -0
  242. package/dist/api/service/VercelChatService.d.ts +28 -0
  243. package/dist/api/service/VercelChatService.js +289 -0
  244. package/dist/api/service/VercelChatService.js.map +1 -0
  245. package/dist/api/store/DrizzleClientCredentialsStore.d.ts +56 -0
  246. package/dist/api/store/DrizzleClientCredentialsStore.js +145 -0
  247. package/dist/api/store/DrizzleClientCredentialsStore.js.map +1 -0
  248. package/dist/api/store/index.d.ts +1 -0
  249. package/dist/api/store/index.js +18 -0
  250. package/dist/api/store/index.js.map +1 -0
  251. package/dist/components/components.jsonld +88 -0
  252. package/dist/components/context.jsonld +1962 -0
  253. package/dist/credential/index.d.ts +1 -0
  254. package/dist/credential/index.js +18 -0
  255. package/dist/credential/index.js.map +1 -0
  256. package/dist/credential/schema/index.d.ts +2 -0
  257. package/dist/credential/schema/index.js +19 -0
  258. package/dist/credential/schema/index.js.map +1 -0
  259. package/dist/credential/schema/tables.d.ts +31 -0
  260. package/dist/credential/schema/tables.js +42 -0
  261. package/dist/credential/schema/tables.js.map +1 -0
  262. package/dist/credential/schema/types.d.ts +20 -0
  263. package/dist/credential/schema/types.js +26 -0
  264. package/dist/credential/schema/types.js.map +1 -0
  265. package/dist/dns/DnsProvider.d.ts +46 -0
  266. package/dist/dns/DnsProvider.js +3 -0
  267. package/dist/dns/DnsProvider.js.map +1 -0
  268. package/dist/dns/DnsProvider.jsonld +161 -0
  269. package/dist/dns/cloudflare/CloudflareDnsProvider.d.ts +51 -0
  270. package/dist/dns/cloudflare/CloudflareDnsProvider.js +227 -0
  271. package/dist/dns/cloudflare/CloudflareDnsProvider.js.map +1 -0
  272. package/dist/dns/cloudflare/index.d.ts +1 -0
  273. package/dist/dns/cloudflare/index.js +18 -0
  274. package/dist/dns/cloudflare/index.js.map +1 -0
  275. package/dist/dns/tencent/TencentDnsProvider.d.ts +42 -0
  276. package/dist/dns/tencent/TencentDnsProvider.js +221 -0
  277. package/dist/dns/tencent/TencentDnsProvider.js.map +1 -0
  278. package/dist/dns/tencent/TencentDnsProvider.jsonld +239 -0
  279. package/dist/document/Chunker.d.ts +64 -0
  280. package/dist/document/Chunker.js +8 -0
  281. package/dist/document/Chunker.js.map +1 -0
  282. package/dist/document/DocumentParser.d.ts +58 -0
  283. package/dist/document/DocumentParser.js +8 -0
  284. package/dist/document/DocumentParser.js.map +1 -0
  285. package/dist/document/HeadingChunker.d.ts +34 -0
  286. package/dist/document/HeadingChunker.js +182 -0
  287. package/dist/document/HeadingChunker.js.map +1 -0
  288. package/dist/document/JinaDocumentParser.d.ts +40 -0
  289. package/dist/document/JinaDocumentParser.js +129 -0
  290. package/dist/document/JinaDocumentParser.js.map +1 -0
  291. package/dist/document/index.d.ts +7 -0
  292. package/dist/document/index.js +26 -0
  293. package/dist/document/index.js.map +1 -0
  294. package/dist/edge/DdnsManager.d.ts +53 -0
  295. package/dist/edge/DdnsManager.js +153 -0
  296. package/dist/edge/DdnsManager.js.map +1 -0
  297. package/dist/edge/Dns01CertificateProvisioner.d.ts +27 -0
  298. package/dist/edge/Dns01CertificateProvisioner.js +160 -0
  299. package/dist/edge/Dns01CertificateProvisioner.js.map +1 -0
  300. package/dist/edge/Dns01CertificateProvisioner.jsonld +148 -0
  301. package/dist/edge/EdgeNodeAgent.d.ts +56 -0
  302. package/dist/edge/EdgeNodeAgent.js +230 -0
  303. package/dist/edge/EdgeNodeAgent.js.map +1 -0
  304. package/dist/edge/EdgeNodeAgent.jsonld +89 -0
  305. package/dist/edge/EdgeNodeAgentInitializer.d.ts +25 -0
  306. package/dist/edge/EdgeNodeAgentInitializer.js +64 -0
  307. package/dist/edge/EdgeNodeAgentInitializer.js.map +1 -0
  308. package/dist/edge/EdgeNodeCapabilityDetector.d.ts +98 -0
  309. package/dist/edge/EdgeNodeCapabilityDetector.js +425 -0
  310. package/dist/edge/EdgeNodeCapabilityDetector.js.map +1 -0
  311. package/dist/edge/EdgeNodeCertificateProvisioner.d.ts +3 -0
  312. package/dist/edge/EdgeNodeCertificateProvisioner.js +3 -0
  313. package/dist/edge/EdgeNodeCertificateProvisioner.js.map +1 -0
  314. package/dist/edge/EdgeNodeCertificateProvisioner.jsonld +21 -0
  315. package/dist/edge/EdgeNodeDnsCoordinator.d.ts +38 -0
  316. package/dist/edge/EdgeNodeDnsCoordinator.js +201 -0
  317. package/dist/edge/EdgeNodeDnsCoordinator.js.map +1 -0
  318. package/dist/edge/EdgeNodeDnsCoordinator.jsonld +212 -0
  319. package/dist/edge/EdgeNodeHealthProbeService.d.ts +25 -0
  320. package/dist/edge/EdgeNodeHealthProbeService.js +208 -0
  321. package/dist/edge/EdgeNodeHealthProbeService.js.map +1 -0
  322. package/dist/edge/EdgeNodeHealthProbeService.jsonld +176 -0
  323. package/dist/edge/EdgeNodeModeDetector.d.ts +50 -0
  324. package/dist/edge/EdgeNodeModeDetector.js +194 -0
  325. package/dist/edge/EdgeNodeModeDetector.js.map +1 -0
  326. package/dist/edge/EdgeNodeModeDetector.jsonld +114 -0
  327. package/dist/edge/EdgeNodeTunnelManager.d.ts +23 -0
  328. package/dist/edge/EdgeNodeTunnelManager.js +99 -0
  329. package/dist/edge/EdgeNodeTunnelManager.js.map +1 -0
  330. package/dist/edge/EdgeNodeTunnelManager.jsonld +128 -0
  331. package/dist/edge/FrpTunnelManager.d.ts +30 -0
  332. package/dist/edge/FrpTunnelManager.js +151 -0
  333. package/dist/edge/FrpTunnelManager.js.map +1 -0
  334. package/dist/edge/FrpTunnelManager.jsonld +192 -0
  335. package/dist/edge/LocalNetworkManager.d.ts +41 -0
  336. package/dist/edge/LocalNetworkManager.js +115 -0
  337. package/dist/edge/LocalNetworkManager.js.map +1 -0
  338. package/dist/edge/acme/AcmeCertificateManager.d.ts +65 -0
  339. package/dist/edge/acme/AcmeCertificateManager.js +233 -0
  340. package/dist/edge/acme/AcmeCertificateManager.js.map +1 -0
  341. package/dist/edge/acme/AcmeCertificateManager.jsonld +373 -0
  342. package/dist/edge/acme/ClusterCertificateManager.d.ts +40 -0
  343. package/dist/edge/acme/ClusterCertificateManager.js +184 -0
  344. package/dist/edge/acme/ClusterCertificateManager.js.map +1 -0
  345. package/dist/edge/acme/DnsChallengeClient.d.ts +15 -0
  346. package/dist/edge/acme/DnsChallengeClient.js +40 -0
  347. package/dist/edge/acme/DnsChallengeClient.js.map +1 -0
  348. package/dist/edge/acme/utils.d.ts +4 -0
  349. package/dist/edge/acme/utils.js +17 -0
  350. package/dist/edge/acme/utils.js.map +1 -0
  351. package/dist/edge/frp/FrpRelay.d.ts +11 -0
  352. package/dist/edge/frp/FrpRelay.js +29 -0
  353. package/dist/edge/frp/FrpRelay.js.map +1 -0
  354. package/dist/edge/frp/FrpcProcessManager.d.ts +51 -0
  355. package/dist/edge/frp/FrpcProcessManager.js +174 -0
  356. package/dist/edge/frp/FrpcProcessManager.js.map +1 -0
  357. package/dist/edge/interfaces/EdgeNodeTunnelManager.d.ts +6 -0
  358. package/dist/edge/interfaces/EdgeNodeTunnelManager.js +3 -0
  359. package/dist/edge/interfaces/EdgeNodeTunnelManager.js.map +1 -0
  360. package/dist/edge/interfaces/EdgeNodeTunnelManager.jsonld +21 -0
  361. package/dist/embedding/CredentialReader.d.ts +7 -0
  362. package/dist/embedding/CredentialReader.js +10 -0
  363. package/dist/embedding/CredentialReader.js.map +1 -0
  364. package/dist/embedding/CredentialReader.jsonld +22 -0
  365. package/dist/embedding/CredentialReaderImpl.d.ts +6 -0
  366. package/dist/embedding/CredentialReaderImpl.js +55 -0
  367. package/dist/embedding/CredentialReaderImpl.js.map +1 -0
  368. package/dist/embedding/CredentialReaderImpl.jsonld +31 -0
  369. package/dist/embedding/EmbeddingService.d.ts +8 -0
  370. package/dist/embedding/EmbeddingService.js +10 -0
  371. package/dist/embedding/EmbeddingService.js.map +1 -0
  372. package/dist/embedding/EmbeddingService.jsonld +26 -0
  373. package/dist/embedding/EmbeddingServiceImpl.d.ts +11 -0
  374. package/dist/embedding/EmbeddingServiceImpl.js +73 -0
  375. package/dist/embedding/EmbeddingServiceImpl.js.map +1 -0
  376. package/dist/embedding/EmbeddingServiceImpl.jsonld +53 -0
  377. package/dist/embedding/ProviderRegistry.d.ts +26 -0
  378. package/dist/embedding/ProviderRegistry.js +10 -0
  379. package/dist/embedding/ProviderRegistry.js.map +1 -0
  380. package/dist/embedding/ProviderRegistry.jsonld +30 -0
  381. package/dist/embedding/ProviderRegistryImpl.d.ts +14 -0
  382. package/dist/embedding/ProviderRegistryImpl.js +112 -0
  383. package/dist/embedding/ProviderRegistryImpl.js.map +1 -0
  384. package/dist/embedding/ProviderRegistryImpl.jsonld +40 -0
  385. package/dist/embedding/index.d.ts +5 -0
  386. package/dist/embedding/index.js +22 -0
  387. package/dist/embedding/index.js.map +1 -0
  388. package/dist/embedding/schema/index.d.ts +1 -0
  389. package/dist/embedding/schema/index.js +18 -0
  390. package/dist/embedding/schema/index.js.map +1 -0
  391. package/dist/embedding/schema/tables.d.ts +70 -0
  392. package/dist/embedding/schema/tables.js +102 -0
  393. package/dist/embedding/schema/tables.js.map +1 -0
  394. package/dist/embedding/types.d.ts +12 -0
  395. package/dist/embedding/types.js +6 -0
  396. package/dist/embedding/types.js.map +1 -0
  397. package/dist/gateway/port-finder.d.ts +4 -0
  398. package/dist/gateway/port-finder.js +15 -0
  399. package/dist/gateway/port-finder.js.map +1 -0
  400. package/dist/gateway/proxy.d.ts +22 -0
  401. package/dist/gateway/proxy.js +149 -0
  402. package/dist/gateway/proxy.js.map +1 -0
  403. package/dist/gateway/supervisor.d.ts +2 -0
  404. package/dist/gateway/supervisor.js +7 -0
  405. package/dist/gateway/supervisor.js.map +1 -0
  406. package/dist/gateway/types.d.ts +1 -0
  407. package/dist/gateway/types.js +3 -0
  408. package/dist/gateway/types.js.map +1 -0
  409. package/dist/http/AppStaticAssetHandler.d.ts +8 -0
  410. package/dist/http/AppStaticAssetHandler.js +27 -0
  411. package/dist/http/AppStaticAssetHandler.js.map +1 -0
  412. package/dist/http/AppStaticAssetHandler.jsonld +26 -0
  413. package/dist/http/ClusterIngressRouter.d.ts +93 -0
  414. package/dist/http/ClusterIngressRouter.js +355 -0
  415. package/dist/http/ClusterIngressRouter.js.map +1 -0
  416. package/dist/http/ClusterIngressRouter.jsonld +227 -0
  417. package/dist/http/ClusterWebSocketConfigurator.d.ts +59 -0
  418. package/dist/http/ClusterWebSocketConfigurator.js +226 -0
  419. package/dist/http/ClusterWebSocketConfigurator.js.map +1 -0
  420. package/dist/http/ClusterWebSocketConfigurator.jsonld +145 -0
  421. package/dist/http/EdgeNodeDirectDebugHttpHandler.d.ts +25 -0
  422. package/dist/http/EdgeNodeDirectDebugHttpHandler.js +126 -0
  423. package/dist/http/EdgeNodeDirectDebugHttpHandler.js.map +1 -0
  424. package/dist/http/EdgeNodeDirectDebugHttpHandler.jsonld +151 -0
  425. package/dist/http/EdgeNodeProxyHttpHandler.d.ts +28 -0
  426. package/dist/http/EdgeNodeProxyHttpHandler.js +190 -0
  427. package/dist/http/EdgeNodeProxyHttpHandler.js.map +1 -0
  428. package/dist/http/EdgeNodeProxyHttpHandler.jsonld +162 -0
  429. package/dist/http/PodRoutingHttpHandler.d.ts +64 -0
  430. package/dist/http/PodRoutingHttpHandler.js +233 -0
  431. package/dist/http/PodRoutingHttpHandler.js.map +1 -0
  432. package/dist/http/PodRoutingHttpHandler.jsonld +171 -0
  433. package/dist/http/RequestIdHttpHandler.d.ts +15 -0
  434. package/dist/http/RequestIdHttpHandler.js +59 -0
  435. package/dist/http/RequestIdHttpHandler.js.map +1 -0
  436. package/dist/http/RouterHttpHandler.d.ts +21 -0
  437. package/dist/http/RouterHttpHandler.js +49 -0
  438. package/dist/http/RouterHttpHandler.js.map +1 -0
  439. package/dist/http/RouterHttpHandler.jsonld +80 -0
  440. package/dist/http/RouterHttpRoute.d.ts +6 -0
  441. package/dist/http/RouterHttpRoute.js +11 -0
  442. package/dist/http/RouterHttpRoute.js.map +1 -0
  443. package/dist/http/RouterHttpRoute.jsonld +48 -0
  444. package/dist/http/SignalInterceptHttpHandler.d.ts +24 -0
  445. package/dist/http/SignalInterceptHttpHandler.js +47 -0
  446. package/dist/http/SignalInterceptHttpHandler.js.map +1 -0
  447. package/dist/http/SignalInterceptHttpHandler.jsonld +103 -0
  448. package/dist/http/SubgraphSparqlHttpHandler.d.ts +70 -0
  449. package/dist/http/SubgraphSparqlHttpHandler.js +640 -0
  450. package/dist/http/SubgraphSparqlHttpHandler.js.map +1 -0
  451. package/dist/http/SubgraphSparqlHttpHandler.jsonld +363 -0
  452. package/dist/http/TracingHandler.d.ts +19 -0
  453. package/dist/http/TracingHandler.js +60 -0
  454. package/dist/http/TracingHandler.js.map +1 -0
  455. package/dist/http/TracingHandler.jsonld +37 -0
  456. package/dist/http/admin/EdgeNodeAdminHttpHandler.d.ts +45 -0
  457. package/dist/http/admin/EdgeNodeAdminHttpHandler.js +292 -0
  458. package/dist/http/admin/EdgeNodeAdminHttpHandler.js.map +1 -0
  459. package/dist/http/admin/EdgeNodeCertificateHttpHandler.d.ts +33 -0
  460. package/dist/http/admin/EdgeNodeCertificateHttpHandler.js +172 -0
  461. package/dist/http/admin/EdgeNodeCertificateHttpHandler.js.map +1 -0
  462. package/dist/http/admin/EdgeNodeCertificateHttpHandler.jsonld +182 -0
  463. package/dist/http/admin/EdgeNodeSignalHttpHandler.d.ts +71 -0
  464. package/dist/http/admin/EdgeNodeSignalHttpHandler.js +674 -0
  465. package/dist/http/admin/EdgeNodeSignalHttpHandler.js.map +1 -0
  466. package/dist/http/admin/EdgeNodeSignalHttpHandler.jsonld +406 -0
  467. package/dist/http/cluster/PodMigrationHttpHandler.d.ts +52 -0
  468. package/dist/http/cluster/PodMigrationHttpHandler.js +208 -0
  469. package/dist/http/cluster/PodMigrationHttpHandler.js.map +1 -0
  470. package/dist/http/cluster/PodMigrationHttpHandler.jsonld +169 -0
  471. package/dist/http/quota/QuotaAdminHttpHandler.d.ts +34 -0
  472. package/dist/http/quota/QuotaAdminHttpHandler.js +241 -0
  473. package/dist/http/quota/QuotaAdminHttpHandler.js.map +1 -0
  474. package/dist/http/quota/QuotaAdminHttpHandler.jsonld +171 -0
  475. package/dist/http/search/SearchHttpHandler.d.ts +59 -0
  476. package/dist/http/search/SearchHttpHandler.js +312 -0
  477. package/dist/http/search/SearchHttpHandler.js.map +1 -0
  478. package/dist/http/search/index.d.ts +1 -0
  479. package/dist/http/search/index.js +18 -0
  480. package/dist/http/search/index.js.map +1 -0
  481. package/dist/http/terminal/TerminalHttpHandler.d.ts +45 -0
  482. package/dist/http/terminal/TerminalHttpHandler.js +306 -0
  483. package/dist/http/terminal/TerminalHttpHandler.js.map +1 -0
  484. package/dist/http/terminal/TerminalHttpHandler.jsonld +232 -0
  485. package/dist/http/terminal/index.d.ts +1 -0
  486. package/dist/http/terminal/index.js +18 -0
  487. package/dist/http/terminal/index.js.map +1 -0
  488. package/dist/http/vector/VectorHttpHandler.d.ts +42 -0
  489. package/dist/http/vector/VectorHttpHandler.js +301 -0
  490. package/dist/http/vector/VectorHttpHandler.js.map +1 -0
  491. package/dist/http/vector/VectorHttpHandler.jsonld +157 -0
  492. package/dist/http/vector/index.d.ts +1 -0
  493. package/dist/http/vector/index.js +18 -0
  494. package/dist/http/vector/index.js.map +1 -0
  495. package/dist/ice/IceServerProvider.d.ts +85 -0
  496. package/dist/ice/IceServerProvider.js +122 -0
  497. package/dist/ice/IceServerProvider.js.map +1 -0
  498. package/dist/ice/index.d.ts +8 -0
  499. package/dist/ice/index.js +25 -0
  500. package/dist/ice/index.js.map +1 -0
  501. package/dist/identity/CenterNodeRegistrationService.d.ts +102 -0
  502. package/dist/identity/CenterNodeRegistrationService.js +266 -0
  503. package/dist/identity/CenterNodeRegistrationService.js.map +1 -0
  504. package/dist/identity/CenterNodeRegistrationService.jsonld +251 -0
  505. package/dist/identity/ReactAppViewHandler.d.ts +31 -0
  506. package/dist/identity/ReactAppViewHandler.js +79 -0
  507. package/dist/identity/ReactAppViewHandler.js.map +1 -0
  508. package/dist/identity/ReactAppViewHandler.jsonld +99 -0
  509. package/dist/identity/drizzle/AccountRepository.d.ts +31 -0
  510. package/dist/identity/drizzle/AccountRepository.js +130 -0
  511. package/dist/identity/drizzle/AccountRepository.js.map +1 -0
  512. package/dist/identity/drizzle/AccountRoleRepository.d.ts +23 -0
  513. package/dist/identity/drizzle/AccountRoleRepository.js +233 -0
  514. package/dist/identity/drizzle/AccountRoleRepository.js.map +1 -0
  515. package/dist/identity/drizzle/DdnsRepository.d.ts +87 -0
  516. package/dist/identity/drizzle/DdnsRepository.js +284 -0
  517. package/dist/identity/drizzle/DdnsRepository.js.map +1 -0
  518. package/dist/identity/drizzle/DrizzleIndexedStorage.d.ts +26 -0
  519. package/dist/identity/drizzle/DrizzleIndexedStorage.js +159 -0
  520. package/dist/identity/drizzle/DrizzleIndexedStorage.js.map +1 -0
  521. package/dist/identity/drizzle/DrizzleIndexedStorage.jsonld +130 -0
  522. package/dist/identity/drizzle/EdgeNodeRepository.d.ts +155 -0
  523. package/dist/identity/drizzle/EdgeNodeRepository.js +555 -0
  524. package/dist/identity/drizzle/EdgeNodeRepository.js.map +1 -0
  525. package/dist/identity/drizzle/PodLookupRepository.d.ts +59 -0
  526. package/dist/identity/drizzle/PodLookupRepository.js +153 -0
  527. package/dist/identity/drizzle/PodLookupRepository.js.map +1 -0
  528. package/dist/identity/drizzle/WebIdProfileRepository.d.ts +58 -0
  529. package/dist/identity/drizzle/WebIdProfileRepository.js +157 -0
  530. package/dist/identity/drizzle/WebIdProfileRepository.js.map +1 -0
  531. package/dist/identity/drizzle/db.d.ts +60 -0
  532. package/dist/identity/drizzle/db.js +269 -0
  533. package/dist/identity/drizzle/db.js.map +1 -0
  534. package/dist/identity/drizzle/schema.d.ts +1 -0
  535. package/dist/identity/drizzle/schema.js +20 -0
  536. package/dist/identity/drizzle/schema.js.map +1 -0
  537. package/dist/identity/drizzle/schema.pg.d.ts +20 -0
  538. package/dist/identity/drizzle/schema.pg.js +103 -0
  539. package/dist/identity/drizzle/schema.pg.js.map +1 -0
  540. package/dist/identity/drizzle/schema.sqlite.d.ts +872 -0
  541. package/dist/identity/drizzle/schema.sqlite.js +100 -0
  542. package/dist/identity/drizzle/schema.sqlite.js.map +1 -0
  543. package/dist/identity/oidc/AutoDetectIdentityProviderHandler.d.ts +43 -0
  544. package/dist/identity/oidc/AutoDetectIdentityProviderHandler.js +92 -0
  545. package/dist/identity/oidc/AutoDetectIdentityProviderHandler.js.map +1 -0
  546. package/dist/identity/oidc/AutoDetectIdentityProviderHandler.jsonld +122 -0
  547. package/dist/identity/oidc/AutoDetectOidcHandler.d.ts +55 -0
  548. package/dist/identity/oidc/AutoDetectOidcHandler.js +137 -0
  549. package/dist/identity/oidc/AutoDetectOidcHandler.js.map +1 -0
  550. package/dist/identity/oidc/AutoDetectOidcHandler.jsonld +138 -0
  551. package/dist/identity/oidc/DisabledIdentityProviderHandler.d.ts +51 -0
  552. package/dist/identity/oidc/DisabledIdentityProviderHandler.js +104 -0
  553. package/dist/identity/oidc/DisabledIdentityProviderHandler.js.map +1 -0
  554. package/dist/identity/oidc/DisabledIdentityProviderHandler.jsonld +111 -0
  555. package/dist/identity/oidc/DisabledOidcHandler.d.ts +55 -0
  556. package/dist/identity/oidc/DisabledOidcHandler.js +132 -0
  557. package/dist/identity/oidc/DisabledOidcHandler.js.map +1 -0
  558. package/dist/identity/oidc/DisabledOidcHandler.jsonld +157 -0
  559. package/dist/index.d.ts +80 -0
  560. package/dist/index.js +155 -0
  561. package/dist/index.js.map +1 -0
  562. package/dist/legacy/DrizzleClientCredentialsStore.d.ts +51 -0
  563. package/dist/legacy/DrizzleClientCredentialsStore.js +142 -0
  564. package/dist/legacy/DrizzleClientCredentialsStore.js.map +1 -0
  565. package/dist/legacy/DrizzleIndexedStorage.d.ts +26 -0
  566. package/dist/legacy/DrizzleIndexedStorage.js +159 -0
  567. package/dist/legacy/DrizzleIndexedStorage.js.map +1 -0
  568. package/dist/legacy/DrizzleQuotaService.d.ts +16 -0
  569. package/dist/legacy/DrizzleQuotaService.js +37 -0
  570. package/dist/legacy/DrizzleQuotaService.js.map +1 -0
  571. package/dist/libs/backends/index.d.ts +6 -0
  572. package/dist/libs/backends/index.js +31 -0
  573. package/dist/libs/backends/index.js.map +1 -0
  574. package/dist/libs/backends/sqlup.d.ts +44 -0
  575. package/dist/libs/backends/sqlup.js +437 -0
  576. package/dist/libs/backends/sqlup.js.map +1 -0
  577. package/dist/logging/ConfigurableLoggerFactory.d.ts +24 -0
  578. package/dist/logging/ConfigurableLoggerFactory.js +77 -0
  579. package/dist/logging/ConfigurableLoggerFactory.js.map +1 -0
  580. package/dist/logging/ConfigurableLoggerFactory.jsonld +169 -0
  581. package/dist/logging/LogContext.d.ts +5 -0
  582. package/dist/logging/LogContext.js +6 -0
  583. package/dist/logging/LogContext.js.map +1 -0
  584. package/dist/main.d.ts +2 -0
  585. package/dist/main.js +148 -0
  586. package/dist/main.js.map +1 -0
  587. package/dist/network/LocalNetworkDetector.d.ts +65 -0
  588. package/dist/network/LocalNetworkDetector.js +185 -0
  589. package/dist/network/LocalNetworkDetector.js.map +1 -0
  590. package/dist/network/index.d.ts +4 -0
  591. package/dist/network/index.js +21 -0
  592. package/dist/network/index.js.map +1 -0
  593. package/dist/pods/ReservedSuffixIdentifierGenerator.d.ts +13 -0
  594. package/dist/pods/ReservedSuffixIdentifierGenerator.js +26 -0
  595. package/dist/pods/ReservedSuffixIdentifierGenerator.js.map +1 -0
  596. package/dist/pods/ReservedSuffixIdentifierGenerator.jsonld +75 -0
  597. package/dist/quota/DefaultQuotaService.d.ts +16 -0
  598. package/dist/quota/DefaultQuotaService.js +37 -0
  599. package/dist/quota/DefaultQuotaService.js.map +1 -0
  600. package/dist/quota/DefaultQuotaService.jsonld +85 -0
  601. package/dist/quota/DrizzleQuotaService.d.ts +16 -0
  602. package/dist/quota/DrizzleQuotaService.js +37 -0
  603. package/dist/quota/DrizzleQuotaService.js.map +1 -0
  604. package/dist/quota/DrizzleQuotaService.jsonld +87 -0
  605. package/dist/quota/NoopQuotaService.d.ts +7 -0
  606. package/dist/quota/NoopQuotaService.js +15 -0
  607. package/dist/quota/NoopQuotaService.js.map +1 -0
  608. package/dist/quota/NoopQuotaService.jsonld +36 -0
  609. package/dist/quota/QuotaService.d.ts +6 -0
  610. package/dist/quota/QuotaService.js +3 -0
  611. package/dist/quota/QuotaService.js.map +1 -0
  612. package/dist/quota/QuotaService.jsonld +33 -0
  613. package/dist/sdk/SignalingClientAdapter.d.ts +38 -0
  614. package/dist/sdk/SignalingClientAdapter.js +99 -0
  615. package/dist/sdk/SignalingClientAdapter.js.map +1 -0
  616. package/dist/sdk/createFetch.d.ts +23 -0
  617. package/dist/sdk/createFetch.js +258 -0
  618. package/dist/sdk/createFetch.js.map +1 -0
  619. package/dist/sdk/index.d.ts +29 -0
  620. package/dist/sdk/index.js +34 -0
  621. package/dist/sdk/index.js.map +1 -0
  622. package/dist/sdk/xpodFetch.d.ts +112 -0
  623. package/dist/sdk/xpodFetch.js +251 -0
  624. package/dist/sdk/xpodFetch.js.map +1 -0
  625. package/dist/service/EdgeNodeCertificateService.d.ts +45 -0
  626. package/dist/service/EdgeNodeCertificateService.js +164 -0
  627. package/dist/service/EdgeNodeCertificateService.js.map +1 -0
  628. package/dist/service/EdgeNodeCertificateService.jsonld +216 -0
  629. package/dist/service/EdgeNodeHeartbeatService.d.ts +68 -0
  630. package/dist/service/EdgeNodeHeartbeatService.js +262 -0
  631. package/dist/service/EdgeNodeHeartbeatService.js.map +1 -0
  632. package/dist/service/PodMigrationService.d.ts +43 -0
  633. package/dist/service/PodMigrationService.js +72 -0
  634. package/dist/service/PodMigrationService.js.map +1 -0
  635. package/dist/service/PodMigrationService.jsonld +76 -0
  636. package/dist/signaling/SignalingClient.d.ts +142 -0
  637. package/dist/signaling/SignalingClient.js +305 -0
  638. package/dist/signaling/SignalingClient.js.map +1 -0
  639. package/dist/signaling/SignalingService.d.ts +104 -0
  640. package/dist/signaling/SignalingService.js +440 -0
  641. package/dist/signaling/SignalingService.js.map +1 -0
  642. package/dist/signaling/index.d.ts +11 -0
  643. package/dist/signaling/index.js +28 -0
  644. package/dist/signaling/index.js.map +1 -0
  645. package/dist/signaling/types.d.ts +237 -0
  646. package/dist/signaling/types.js +18 -0
  647. package/dist/signaling/types.js.map +1 -0
  648. package/dist/storage/DrizzleCompat.d.ts +15 -0
  649. package/dist/storage/DrizzleCompat.js +60 -0
  650. package/dist/storage/DrizzleCompat.js.map +1 -0
  651. package/dist/storage/LockingResourceStore.d.ts +8 -0
  652. package/dist/storage/LockingResourceStore.js +68 -0
  653. package/dist/storage/LockingResourceStore.js.map +1 -0
  654. package/dist/storage/MigratableDataAccessor.d.ts +63 -0
  655. package/dist/storage/MigratableDataAccessor.js +11 -0
  656. package/dist/storage/MigratableDataAccessor.js.map +1 -0
  657. package/dist/storage/MigratableDataAccessor.jsonld +60 -0
  658. package/dist/storage/ObservableResourceStore.d.ts +89 -0
  659. package/dist/storage/ObservableResourceStore.js +125 -0
  660. package/dist/storage/ObservableResourceStore.js.map +1 -0
  661. package/dist/storage/RepresentationPartialConvertingStore.d.ts +22 -0
  662. package/dist/storage/RepresentationPartialConvertingStore.js +94 -0
  663. package/dist/storage/RepresentationPartialConvertingStore.js.map +1 -0
  664. package/dist/storage/RepresentationPartialConvertingStore.jsonld +332 -0
  665. package/dist/storage/SparqlUpdateResourceStore.d.ts +30 -0
  666. package/dist/storage/SparqlUpdateResourceStore.js +292 -0
  667. package/dist/storage/SparqlUpdateResourceStore.js.map +1 -0
  668. package/dist/storage/SparqlUpdateResourceStore.jsonld +112 -0
  669. package/dist/storage/SqliteCompat.d.ts +60 -0
  670. package/dist/storage/SqliteCompat.js +158 -0
  671. package/dist/storage/SqliteCompat.js.map +1 -0
  672. package/dist/storage/accessors/MinioDataAccessor.d.ts +127 -0
  673. package/dist/storage/accessors/MinioDataAccessor.js +249 -0
  674. package/dist/storage/accessors/MinioDataAccessor.js.map +1 -0
  675. package/dist/storage/accessors/MinioDataAccessor.jsonld +138 -0
  676. package/dist/storage/accessors/MixDataAccessor.d.ts +43 -0
  677. package/dist/storage/accessors/MixDataAccessor.js +130 -0
  678. package/dist/storage/accessors/MixDataAccessor.js.map +1 -0
  679. package/dist/storage/accessors/MixDataAccessor.jsonld +101 -0
  680. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.d.ts +146 -0
  681. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.js +415 -0
  682. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.js.map +1 -0
  683. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.jsonld +180 -0
  684. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.d.ts +95 -0
  685. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.js +376 -0
  686. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.js.map +1 -0
  687. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.jsonld +168 -0
  688. package/dist/storage/accessors/TieredMinioDataAccessor.d.ts +150 -0
  689. package/dist/storage/accessors/TieredMinioDataAccessor.js +582 -0
  690. package/dist/storage/accessors/TieredMinioDataAccessor.js.map +1 -0
  691. package/dist/storage/accessors/TieredMinioDataAccessor.jsonld +333 -0
  692. package/dist/storage/database/PostgresPoolManager.d.ts +56 -0
  693. package/dist/storage/database/PostgresPoolManager.js +117 -0
  694. package/dist/storage/database/PostgresPoolManager.js.map +1 -0
  695. package/dist/storage/keyvalue/PostgresKeyValueStorage.d.ts +34 -0
  696. package/dist/storage/keyvalue/PostgresKeyValueStorage.js +146 -0
  697. package/dist/storage/keyvalue/PostgresKeyValueStorage.js.map +1 -0
  698. package/dist/storage/keyvalue/PostgresKeyValueStorage.jsonld +192 -0
  699. package/dist/storage/keyvalue/RedisKeyValueStorage.d.ts +30 -0
  700. package/dist/storage/keyvalue/RedisKeyValueStorage.js +133 -0
  701. package/dist/storage/keyvalue/RedisKeyValueStorage.js.map +1 -0
  702. package/dist/storage/keyvalue/RedisKeyValueStorage.jsonld +237 -0
  703. package/dist/storage/keyvalue/SqliteKeyValueStorage.d.ts +30 -0
  704. package/dist/storage/keyvalue/SqliteKeyValueStorage.js +164 -0
  705. package/dist/storage/keyvalue/SqliteKeyValueStorage.js.map +1 -0
  706. package/dist/storage/keyvalue/SqliteKeyValueStorage.jsonld +167 -0
  707. package/dist/storage/quint/BaseQuintStore.d.ts +80 -0
  708. package/dist/storage/quint/BaseQuintStore.js +535 -0
  709. package/dist/storage/quint/BaseQuintStore.js.map +1 -0
  710. package/dist/storage/quint/BaseQuintStore.jsonld +175 -0
  711. package/dist/storage/quint/PgQuintStore.d.ts +61 -0
  712. package/dist/storage/quint/PgQuintStore.drizzle.d.ts +45 -0
  713. package/dist/storage/quint/PgQuintStore.drizzle.js +327 -0
  714. package/dist/storage/quint/PgQuintStore.drizzle.js.map +1 -0
  715. package/dist/storage/quint/PgQuintStore.js +275 -0
  716. package/dist/storage/quint/PgQuintStore.js.map +1 -0
  717. package/dist/storage/quint/PgQuintStore.jsonld +258 -0
  718. package/dist/storage/quint/SqliteQuintStore.d.ts +55 -0
  719. package/dist/storage/quint/SqliteQuintStore.js +630 -0
  720. package/dist/storage/quint/SqliteQuintStore.js.map +1 -0
  721. package/dist/storage/quint/SqliteQuintStore.jsonld +157 -0
  722. package/dist/storage/quint/index.d.ts +11 -0
  723. package/dist/storage/quint/index.js +30 -0
  724. package/dist/storage/quint/index.js.map +1 -0
  725. package/dist/storage/quint/schema.d.ts +82 -0
  726. package/dist/storage/quint/schema.js +33 -0
  727. package/dist/storage/quint/schema.js.map +1 -0
  728. package/dist/storage/quint/serialization.d.ts +56 -0
  729. package/dist/storage/quint/serialization.js +198 -0
  730. package/dist/storage/quint/serialization.js.map +1 -0
  731. package/dist/storage/quint/types.d.ts +152 -0
  732. package/dist/storage/quint/types.js +27 -0
  733. package/dist/storage/quint/types.js.map +1 -0
  734. package/dist/storage/quint/types.jsonld +78 -0
  735. package/dist/storage/quota/PerAccountQuotaStrategy.d.ts +19 -0
  736. package/dist/storage/quota/PerAccountQuotaStrategy.js +63 -0
  737. package/dist/storage/quota/PerAccountQuotaStrategy.js.map +1 -0
  738. package/dist/storage/quota/PerAccountQuotaStrategy.jsonld +113 -0
  739. package/dist/storage/quota/UsageRepository.d.ts +46 -0
  740. package/dist/storage/quota/UsageRepository.js +278 -0
  741. package/dist/storage/quota/UsageRepository.js.map +1 -0
  742. package/dist/storage/quota/UsageTrackingStore.d.ts +37 -0
  743. package/dist/storage/quota/UsageTrackingStore.js +355 -0
  744. package/dist/storage/quota/UsageTrackingStore.js.map +1 -0
  745. package/dist/storage/quota/UsageTrackingStore.jsonld +193 -0
  746. package/dist/storage/sparql/AlgebraUtils.d.ts +48 -0
  747. package/dist/storage/sparql/AlgebraUtils.js +118 -0
  748. package/dist/storage/sparql/AlgebraUtils.js.map +1 -0
  749. package/dist/storage/sparql/ComunicaOptimizedEngine.d.ts +59 -0
  750. package/dist/storage/sparql/ComunicaOptimizedEngine.js +254 -0
  751. package/dist/storage/sparql/ComunicaOptimizedEngine.js.map +1 -0
  752. package/dist/storage/sparql/ComunicaQuintEngine.d.ts +134 -0
  753. package/dist/storage/sparql/ComunicaQuintEngine.js +727 -0
  754. package/dist/storage/sparql/ComunicaQuintEngine.js.map +1 -0
  755. package/dist/storage/sparql/ExpressionEvaluator.d.ts +54 -0
  756. package/dist/storage/sparql/ExpressionEvaluator.js +340 -0
  757. package/dist/storage/sparql/ExpressionEvaluator.js.map +1 -0
  758. package/dist/storage/sparql/FilterPushdownExtractor.d.ts +74 -0
  759. package/dist/storage/sparql/FilterPushdownExtractor.js +409 -0
  760. package/dist/storage/sparql/FilterPushdownExtractor.js.map +1 -0
  761. package/dist/storage/sparql/OptimizedQuadstoreEngine.d.ts +65 -0
  762. package/dist/storage/sparql/OptimizedQuadstoreEngine.js +327 -0
  763. package/dist/storage/sparql/OptimizedQuadstoreEngine.js.map +1 -0
  764. package/dist/storage/sparql/OptimizedQuadstoreSource.d.ts +46 -0
  765. package/dist/storage/sparql/OptimizedQuadstoreSource.js +118 -0
  766. package/dist/storage/sparql/OptimizedQuadstoreSource.js.map +1 -0
  767. package/dist/storage/sparql/PatternBuilder.d.ts +41 -0
  768. package/dist/storage/sparql/PatternBuilder.js +118 -0
  769. package/dist/storage/sparql/PatternBuilder.js.map +1 -0
  770. package/dist/storage/sparql/QueryOptimizer.d.ts +125 -0
  771. package/dist/storage/sparql/QueryOptimizer.js +363 -0
  772. package/dist/storage/sparql/QueryOptimizer.js.map +1 -0
  773. package/dist/storage/sparql/QuintEngine.d.ts +92 -0
  774. package/dist/storage/sparql/QuintEngine.js +150 -0
  775. package/dist/storage/sparql/QuintEngine.js.map +1 -0
  776. package/dist/storage/sparql/QuintQuerySource.d.ts +227 -0
  777. package/dist/storage/sparql/QuintQuerySource.js +918 -0
  778. package/dist/storage/sparql/QuintQuerySource.js.map +1 -0
  779. package/dist/storage/sparql/SimpleSparqlExecutor.d.ts +40 -0
  780. package/dist/storage/sparql/SimpleSparqlExecutor.js +131 -0
  781. package/dist/storage/sparql/SimpleSparqlExecutor.js.map +1 -0
  782. package/dist/storage/sparql/SubgraphQueryEngine.d.ts +74 -0
  783. package/dist/storage/sparql/SubgraphQueryEngine.js +248 -0
  784. package/dist/storage/sparql/SubgraphQueryEngine.js.map +1 -0
  785. package/dist/storage/sparql/SubgraphQueryEngine.jsonld +250 -0
  786. package/dist/storage/vector/PostgresVectorStore.d.ts +46 -0
  787. package/dist/storage/vector/PostgresVectorStore.js +291 -0
  788. package/dist/storage/vector/PostgresVectorStore.js.map +1 -0
  789. package/dist/storage/vector/PostgresVectorStore.jsonld +142 -0
  790. package/dist/storage/vector/SqliteVectorStore.d.ts +44 -0
  791. package/dist/storage/vector/SqliteVectorStore.js +282 -0
  792. package/dist/storage/vector/SqliteVectorStore.js.map +1 -0
  793. package/dist/storage/vector/SqliteVectorStore.jsonld +137 -0
  794. package/dist/storage/vector/VectorIndexingListener.d.ts +114 -0
  795. package/dist/storage/vector/VectorIndexingListener.js +351 -0
  796. package/dist/storage/vector/VectorIndexingListener.js.map +1 -0
  797. package/dist/storage/vector/VectorStore.d.ts +42 -0
  798. package/dist/storage/vector/VectorStore.js +50 -0
  799. package/dist/storage/vector/VectorStore.js.map +1 -0
  800. package/dist/storage/vector/VectorStore.jsonld +87 -0
  801. package/dist/storage/vector/VectorStoreInit.d.ts +28 -0
  802. package/dist/storage/vector/VectorStoreInit.js +104 -0
  803. package/dist/storage/vector/VectorStoreInit.js.map +1 -0
  804. package/dist/storage/vector/index.d.ts +5 -0
  805. package/dist/storage/vector/index.js +22 -0
  806. package/dist/storage/vector/index.js.map +1 -0
  807. package/dist/storage/vector/types.d.ts +39 -0
  808. package/dist/storage/vector/types.js +8 -0
  809. package/dist/storage/vector/types.js.map +1 -0
  810. package/dist/subdomain/SubdomainClient.d.ts +156 -0
  811. package/dist/subdomain/SubdomainClient.js +220 -0
  812. package/dist/subdomain/SubdomainClient.js.map +1 -0
  813. package/dist/subdomain/SubdomainService.d.ts +114 -0
  814. package/dist/subdomain/SubdomainService.js +212 -0
  815. package/dist/subdomain/SubdomainService.js.map +1 -0
  816. package/dist/subdomain/SubdomainService.jsonld +261 -0
  817. package/dist/subdomain/index.d.ts +2 -0
  818. package/dist/subdomain/index.js +9 -0
  819. package/dist/subdomain/index.js.map +1 -0
  820. package/dist/supervisor/Supervisor.d.ts +20 -0
  821. package/dist/supervisor/Supervisor.js +174 -0
  822. package/dist/supervisor/Supervisor.js.map +1 -0
  823. package/dist/supervisor/index.d.ts +2 -0
  824. package/dist/supervisor/index.js +6 -0
  825. package/dist/supervisor/index.js.map +1 -0
  826. package/dist/supervisor/types.d.ts +19 -0
  827. package/dist/supervisor/types.js +3 -0
  828. package/dist/supervisor/types.js.map +1 -0
  829. package/dist/task/DrizzleTaskQueue.d.ts +60 -0
  830. package/dist/task/DrizzleTaskQueue.js +171 -0
  831. package/dist/task/DrizzleTaskQueue.js.map +1 -0
  832. package/dist/task/TaskExecutor.d.ts +82 -0
  833. package/dist/task/TaskExecutor.js +198 -0
  834. package/dist/task/TaskExecutor.js.map +1 -0
  835. package/dist/task/index.d.ts +10 -0
  836. package/dist/task/index.js +20 -0
  837. package/dist/task/index.js.map +1 -0
  838. package/dist/task/schema.d.ts +53 -0
  839. package/dist/task/schema.js +71 -0
  840. package/dist/task/schema.js.map +1 -0
  841. package/dist/task/types.d.ts +186 -0
  842. package/dist/task/types.js +12 -0
  843. package/dist/task/types.js.map +1 -0
  844. package/dist/terminal/AclPermissionService.d.ts +28 -0
  845. package/dist/terminal/AclPermissionService.js +141 -0
  846. package/dist/terminal/AclPermissionService.js.map +1 -0
  847. package/dist/terminal/BubblewrapSandbox.d.ts +51 -0
  848. package/dist/terminal/BubblewrapSandbox.js +147 -0
  849. package/dist/terminal/BubblewrapSandbox.js.map +1 -0
  850. package/dist/terminal/TerminalSession.d.ts +33 -0
  851. package/dist/terminal/TerminalSession.js +164 -0
  852. package/dist/terminal/TerminalSession.js.map +1 -0
  853. package/dist/terminal/TerminalSessionManager.d.ts +69 -0
  854. package/dist/terminal/TerminalSessionManager.js +196 -0
  855. package/dist/terminal/TerminalSessionManager.js.map +1 -0
  856. package/dist/terminal/index.d.ts +5 -0
  857. package/dist/terminal/index.js +22 -0
  858. package/dist/terminal/index.js.map +1 -0
  859. package/dist/terminal/sandbox/BubblewrapSandbox.d.ts +8 -0
  860. package/dist/terminal/sandbox/BubblewrapSandbox.js +105 -0
  861. package/dist/terminal/sandbox/BubblewrapSandbox.js.map +1 -0
  862. package/dist/terminal/sandbox/MacOSSandbox.d.ts +19 -0
  863. package/dist/terminal/sandbox/MacOSSandbox.js +120 -0
  864. package/dist/terminal/sandbox/MacOSSandbox.js.map +1 -0
  865. package/dist/terminal/sandbox/index.d.ts +29 -0
  866. package/dist/terminal/sandbox/index.js +113 -0
  867. package/dist/terminal/sandbox/index.js.map +1 -0
  868. package/dist/terminal/sandbox/types.d.ts +38 -0
  869. package/dist/terminal/sandbox/types.js +3 -0
  870. package/dist/terminal/sandbox/types.js.map +1 -0
  871. package/dist/terminal/types.d.ts +80 -0
  872. package/dist/terminal/types.js +16 -0
  873. package/dist/terminal/types.js.map +1 -0
  874. package/dist/tunnel/CloudflareTunnelProvider.d.ts +120 -0
  875. package/dist/tunnel/CloudflareTunnelProvider.js +376 -0
  876. package/dist/tunnel/CloudflareTunnelProvider.js.map +1 -0
  877. package/dist/tunnel/CloudflareTunnelProvider.jsonld +204 -0
  878. package/dist/tunnel/LocalTunnelProvider.d.ts +85 -0
  879. package/dist/tunnel/LocalTunnelProvider.js +295 -0
  880. package/dist/tunnel/LocalTunnelProvider.js.map +1 -0
  881. package/dist/tunnel/LocalTunnelProvider.jsonld +142 -0
  882. package/dist/tunnel/SakuraFrpTunnelProvider.d.ts +59 -0
  883. package/dist/tunnel/SakuraFrpTunnelProvider.js +207 -0
  884. package/dist/tunnel/SakuraFrpTunnelProvider.js.map +1 -0
  885. package/dist/tunnel/TunnelProvider.d.ts +91 -0
  886. package/dist/tunnel/TunnelProvider.js +10 -0
  887. package/dist/tunnel/TunnelProvider.js.map +1 -0
  888. package/dist/tunnel/TunnelProvider.jsonld +144 -0
  889. package/dist/tunnel/index.d.ts +3 -0
  890. package/dist/tunnel/index.js +8 -0
  891. package/dist/tunnel/index.js.map +1 -0
  892. package/dist/util/LockContext.d.ts +3 -0
  893. package/dist/util/LockContext.js +6 -0
  894. package/dist/util/LockContext.js.map +1 -0
  895. package/dist/util/ResourceStoreFetch.d.ts +11 -0
  896. package/dist/util/ResourceStoreFetch.js +147 -0
  897. package/dist/util/ResourceStoreFetch.js.map +1 -0
  898. package/dist/util/database/DatabaseMaintenance.d.ts +23 -0
  899. package/dist/util/database/DatabaseMaintenance.js +82 -0
  900. package/dist/util/database/DatabaseMaintenance.js.map +1 -0
  901. package/dist/util/identifiers/ClusterIdentifierStrategy.d.ts +23 -0
  902. package/dist/util/identifiers/ClusterIdentifierStrategy.js +73 -0
  903. package/dist/util/identifiers/ClusterIdentifierStrategy.js.map +1 -0
  904. package/dist/util/identifiers/ClusterIdentifierStrategy.jsonld +90 -0
  905. package/dist/util/identifiers/MultiDomainIdentifierStrategy.d.ts +40 -0
  906. package/dist/util/identifiers/MultiDomainIdentifierStrategy.js +73 -0
  907. package/dist/util/identifiers/MultiDomainIdentifierStrategy.js.map +1 -0
  908. package/dist/util/identifiers/MultiDomainIdentifierStrategy.jsonld +90 -0
  909. package/dist/util/identifiers/PathBasedPodIdentifierStrategy.d.ts +78 -0
  910. package/dist/util/identifiers/PathBasedPodIdentifierStrategy.js +182 -0
  911. package/dist/util/identifiers/PathBasedPodIdentifierStrategy.js.map +1 -0
  912. package/dist/util/identifiers/PathBasedPodIdentifierStrategy.jsonld +88 -0
  913. package/dist/util/identifiers/SubdomainPodIdentifierStrategy.d.ts +68 -0
  914. package/dist/util/identifiers/SubdomainPodIdentifierStrategy.js +149 -0
  915. package/dist/util/identifiers/SubdomainPodIdentifierStrategy.js.map +1 -0
  916. package/dist/util/identifiers/SubdomainPodIdentifierStrategy.jsonld +84 -0
  917. package/dist/util/locking/DebugRedisLocker.d.ts +8 -0
  918. package/dist/util/locking/DebugRedisLocker.js +33 -0
  919. package/dist/util/locking/DebugRedisLocker.js.map +1 -0
  920. package/dist/util/logger.d.ts +13 -0
  921. package/dist/util/logger.js +36 -0
  922. package/dist/util/logger.js.map +1 -0
  923. package/dist/util/stream/BandwidthThrottleTransform.d.ts +8 -0
  924. package/dist/util/stream/BandwidthThrottleTransform.js +55 -0
  925. package/dist/util/stream/BandwidthThrottleTransform.js.map +1 -0
  926. package/dist/vocab/external.d.ts +216 -0
  927. package/dist/vocab/external.js +276 -0
  928. package/dist/vocab/external.js.map +1 -0
  929. package/dist/vocab/index.d.ts +26 -0
  930. package/dist/vocab/index.js +46 -0
  931. package/dist/vocab/index.js.map +1 -0
  932. package/dist/vocab/udfs.d.ts +184 -0
  933. package/dist/vocab/udfs.js +217 -0
  934. package/dist/vocab/udfs.js.map +1 -0
  935. package/dist/webrtc/WebRTCClient.d.ts +109 -0
  936. package/dist/webrtc/WebRTCClient.js +344 -0
  937. package/dist/webrtc/WebRTCClient.js.map +1 -0
  938. package/dist/webrtc/WebRTCPeerManager.d.ts +112 -0
  939. package/dist/webrtc/WebRTCPeerManager.js +289 -0
  940. package/dist/webrtc/WebRTCPeerManager.js.map +1 -0
  941. package/dist/webrtc/WeriftPeerConnectionFactory.d.ts +13 -0
  942. package/dist/webrtc/WeriftPeerConnectionFactory.js +255 -0
  943. package/dist/webrtc/WeriftPeerConnectionFactory.js.map +1 -0
  944. package/dist/webrtc/index.d.ts +13 -0
  945. package/dist/webrtc/index.js +30 -0
  946. package/dist/webrtc/index.js.map +1 -0
  947. package/dist/webrtc/types.d.ts +169 -0
  948. package/dist/webrtc/types.js +6 -0
  949. package/dist/webrtc/types.js.map +1 -0
  950. package/dist/xpod.single.cjs +826 -0
  951. package/dist/xpod.single.cjs.map +7 -0
  952. package/package.json +173 -0
  953. package/static/app/assets/index.css +1 -0
  954. package/static/app/assets/main.js +11 -0
  955. package/static/app/auth.html +21 -0
  956. package/static/app/index.html +14 -0
  957. package/static/app/vite.svg +1 -0
  958. package/static/dashboard/assets/dashboard-G96F8267.js +52 -0
  959. package/static/dashboard/assets/dashboard-PJyGDppf.css +1 -0
  960. package/static/dashboard/auth.html +21 -0
  961. package/static/dashboard/index.html +13 -0
  962. package/static/dashboard/vite.svg +1 -0
  963. package/static/landing/index.html +165 -0
  964. package/templates/identity/index.html.ejs +12 -0
  965. package/templates/identity/login.html.ejs +49 -0
  966. package/templates/identity/oidc/consent.html.ejs +103 -0
  967. package/templates/identity/password/forgot.html.ejs +49 -0
  968. package/templates/identity/password/login.html.ejs +58 -0
  969. package/templates/identity/password/register.html.ejs +65 -0
  970. package/templates/main.html.ejs +1 -0
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ /**
3
+ * JinaDocumentParser - 基于 JINA Reader API 的文档解析器
4
+ *
5
+ * 使用 JINA Reader API (https://r.jina.ai/) 将各种格式的文档转换为 Markdown
6
+ * 支持:PDF, Office 文档, HTML, 图片等
7
+ *
8
+ * @see https://jina.ai/reader/
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.JinaDocumentParser = void 0;
12
+ const global_logger_factory_1 = require("global-logger-factory");
13
+ /**
14
+ * JINA Reader API 文档解析器
15
+ */
16
+ class JinaDocumentParser {
17
+ constructor(options) {
18
+ this.logger = (0, global_logger_factory_1.getLoggerFor)(this);
19
+ this.apiKey = options.apiKey;
20
+ this.baseUrl = options.baseUrl ?? 'https://r.jina.ai';
21
+ this.defaultTimeout = options.defaultTimeout ?? 30000;
22
+ }
23
+ /**
24
+ * 解析文档为 Markdown
25
+ */
26
+ async parse(url, options) {
27
+ const timeout = options?.timeout ?? this.defaultTimeout;
28
+ this.logger.debug(`Parsing document: ${url}`);
29
+ try {
30
+ // 构建 JINA Reader URL
31
+ const readerUrl = `${this.baseUrl}/${encodeURIComponent(url)}`;
32
+ // 创建 AbortController 用于超时控制
33
+ const controller = new AbortController();
34
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
35
+ const headers = {
36
+ Authorization: `Bearer ${this.apiKey}`,
37
+ Accept: 'text/markdown',
38
+ 'X-Return-Format': 'markdown',
39
+ };
40
+ // 如果需要包含图片描述
41
+ if (options?.includeImages) {
42
+ headers['X-With-Images-Summary'] = 'true';
43
+ }
44
+ // 如果需要包含链接
45
+ if (options?.includeLinks !== false) {
46
+ headers['X-With-Links-Summary'] = 'true';
47
+ }
48
+ const response = await fetch(readerUrl, {
49
+ method: 'GET',
50
+ headers,
51
+ signal: controller.signal,
52
+ });
53
+ clearTimeout(timeoutId);
54
+ if (!response.ok) {
55
+ const errorText = await response.text();
56
+ throw new Error(`JINA parse failed: ${response.status} ${errorText}`);
57
+ }
58
+ const markdown = await response.text();
59
+ // 提取元数据(从 Markdown 头部)
60
+ const metadata = this.extractMetadata(markdown, url);
61
+ this.logger.info(`Parsed document: ${url}, ${markdown.length} chars`);
62
+ return {
63
+ markdown,
64
+ metadata,
65
+ rawUrl: url,
66
+ };
67
+ }
68
+ catch (error) {
69
+ if (error instanceof Error && error.name === 'AbortError') {
70
+ throw new Error(`Document parsing timed out after ${timeout}ms: ${url}`);
71
+ }
72
+ this.logger.error(`Failed to parse document ${url}: ${error}`);
73
+ throw error;
74
+ }
75
+ }
76
+ /**
77
+ * 检查是否支持该 URL
78
+ * JINA Reader 支持大多数 URL
79
+ */
80
+ supports(url) {
81
+ try {
82
+ const parsed = new URL(url);
83
+ // 支持 http 和 https
84
+ return parsed.protocol === 'http:' || parsed.protocol === 'https:';
85
+ }
86
+ catch {
87
+ return false;
88
+ }
89
+ }
90
+ /**
91
+ * 从 Markdown 内容中提取元数据
92
+ */
93
+ extractMetadata(markdown, url) {
94
+ const metadata = {
95
+ url,
96
+ };
97
+ // 尝试从 YAML front matter 提取
98
+ const frontMatterMatch = markdown.match(/^---\n([\s\S]*?)\n---/);
99
+ if (frontMatterMatch) {
100
+ const frontMatter = frontMatterMatch[1];
101
+ // 提取 title
102
+ const titleMatch = frontMatter.match(/^title:\s*(.+)$/m);
103
+ if (titleMatch) {
104
+ metadata.title = titleMatch[1].replace(/^["']|["']$/g, '');
105
+ }
106
+ // 提取 description
107
+ const descMatch = frontMatter.match(/^description:\s*(.+)$/m);
108
+ if (descMatch) {
109
+ metadata.description = descMatch[1].replace(/^["']|["']$/g, '');
110
+ }
111
+ }
112
+ // 如果没有从 front matter 获取 title,尝试从第一个 H1 获取
113
+ if (!metadata.title) {
114
+ const h1Match = markdown.match(/^#\s+(.+)$/m);
115
+ if (h1Match) {
116
+ metadata.title = h1Match[1];
117
+ }
118
+ }
119
+ // 计算字数(简单估算)
120
+ const textContent = markdown
121
+ .replace(/```[\s\S]*?```/g, '') // 移除代码块
122
+ .replace(/[#*_`\[\]()]/g, '') // 移除 Markdown 标记
123
+ .trim();
124
+ metadata.wordCount = textContent.split(/\s+/).filter(Boolean).length;
125
+ return metadata;
126
+ }
127
+ }
128
+ exports.JinaDocumentParser = JinaDocumentParser;
129
+ //# sourceMappingURL=JinaDocumentParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JinaDocumentParser.js","sourceRoot":"","sources":["../../src/document/JinaDocumentParser.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * JinaDocumentParser - 基于 JINA Reader API 的文档解析器\n *\n * 使用 JINA Reader API (https://r.jina.ai/) 将各种格式的文档转换为 Markdown\n * 支持:PDF, Office 文档, HTML, 图片等\n *\n * @see https://jina.ai/reader/\n */\n\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { DocumentParser, ParsedDocument, ParseOptions } from './DocumentParser';\n\nexport interface JinaDocumentParserOptions {\n /** JINA API Key */\n apiKey: string;\n /** 自定义 API 端点(默认 https://r.jina.ai) */\n baseUrl?: string;\n /** 默认超时时间(毫秒) */\n defaultTimeout?: number;\n}\n\n/**\n * JINA Reader API 文档解析器\n */\nexport class JinaDocumentParser implements DocumentParser {\n protected readonly logger = getLoggerFor(this);\n\n private readonly apiKey: string;\n private readonly baseUrl: string;\n private readonly defaultTimeout: number;\n\n public constructor(options: JinaDocumentParserOptions) {\n this.apiKey = options.apiKey;\n this.baseUrl = options.baseUrl ?? 'https://r.jina.ai';\n this.defaultTimeout = options.defaultTimeout ?? 30000;\n }\n\n /**\n * 解析文档为 Markdown\n */\n public async parse(url: string, options?: ParseOptions): Promise<ParsedDocument> {\n const timeout = options?.timeout ?? this.defaultTimeout;\n\n this.logger.debug(`Parsing document: ${url}`);\n\n try {\n // 构建 JINA Reader URL\n const readerUrl = `${this.baseUrl}/${encodeURIComponent(url)}`;\n\n // 创建 AbortController 用于超时控制\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n\n const headers: Record<string, string> = {\n Authorization: `Bearer ${this.apiKey}`,\n Accept: 'text/markdown',\n 'X-Return-Format': 'markdown',\n };\n\n // 如果需要包含图片描述\n if (options?.includeImages) {\n headers['X-With-Images-Summary'] = 'true';\n }\n\n // 如果需要包含链接\n if (options?.includeLinks !== false) {\n headers['X-With-Links-Summary'] = 'true';\n }\n\n const response = await fetch(readerUrl, {\n method: 'GET',\n headers,\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n const errorText = await response.text();\n throw new Error(`JINA parse failed: ${response.status} ${errorText}`);\n }\n\n const markdown = await response.text();\n\n // 提取元数据(从 Markdown 头部)\n const metadata = this.extractMetadata(markdown, url);\n\n this.logger.info(`Parsed document: ${url}, ${markdown.length} chars`);\n\n return {\n markdown,\n metadata,\n rawUrl: url,\n };\n } catch (error) {\n if (error instanceof Error && error.name === 'AbortError') {\n throw new Error(`Document parsing timed out after ${timeout}ms: ${url}`);\n }\n this.logger.error(`Failed to parse document ${url}: ${error}`);\n throw error;\n }\n }\n\n /**\n * 检查是否支持该 URL\n * JINA Reader 支持大多数 URL\n */\n public supports(url: string): boolean {\n try {\n const parsed = new URL(url);\n // 支持 http 和 https\n return parsed.protocol === 'http:' || parsed.protocol === 'https:';\n } catch {\n return false;\n }\n }\n\n /**\n * 从 Markdown 内容中提取元数据\n */\n private extractMetadata(\n markdown: string,\n url: string,\n ): ParsedDocument['metadata'] {\n const metadata: ParsedDocument['metadata'] = {\n url,\n };\n\n // 尝试从 YAML front matter 提取\n const frontMatterMatch = markdown.match(/^---\\n([\\s\\S]*?)\\n---/);\n if (frontMatterMatch) {\n const frontMatter = frontMatterMatch[1];\n\n // 提取 title\n const titleMatch = frontMatter.match(/^title:\\s*(.+)$/m);\n if (titleMatch) {\n metadata.title = titleMatch[1].replace(/^[\"']|[\"']$/g, '');\n }\n\n // 提取 description\n const descMatch = frontMatter.match(/^description:\\s*(.+)$/m);\n if (descMatch) {\n metadata.description = descMatch[1].replace(/^[\"']|[\"']$/g, '');\n }\n }\n\n // 如果没有从 front matter 获取 title,尝试从第一个 H1 获取\n if (!metadata.title) {\n const h1Match = markdown.match(/^#\\s+(.+)$/m);\n if (h1Match) {\n metadata.title = h1Match[1];\n }\n }\n\n // 计算字数(简单估算)\n const textContent = markdown\n .replace(/```[\\s\\S]*?```/g, '') // 移除代码块\n .replace(/[#*_`\\[\\]()]/g, '') // 移除 Markdown 标记\n .trim();\n metadata.wordCount = textContent.split(/\\s+/).filter(Boolean).length;\n\n return metadata;\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Document module - 文档解析和分块
3
+ */
4
+ export * from './DocumentParser';
5
+ export * from './Chunker';
6
+ export * from './JinaDocumentParser';
7
+ export * from './HeadingChunker';
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * Document module - 文档解析和分块
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ // 接口
21
+ __exportStar(require("./DocumentParser"), exports);
22
+ __exportStar(require("./Chunker"), exports);
23
+ // 实现
24
+ __exportStar(require("./JinaDocumentParser"), exports);
25
+ __exportStar(require("./HeadingChunker"), exports);
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/document/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,KAAK;AACL,mDAAiC;AACjC,4CAA0B;AAE1B,KAAK;AACL,uDAAqC;AACrC,mDAAiC","sourcesContent":["/**\n * Document module - 文档解析和分块\n */\n\n// 接口\nexport * from './DocumentParser';\nexport * from './Chunker';\n\n// 实现\nexport * from './JinaDocumentParser';\nexport * from './HeadingChunker';\n"]}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * DDNS Manager for Local Managed Mode
3
+ *
4
+ * 负责在托管式 Local 模式下:
5
+ * 1. 启动时自动向 Cloud 注册并分配 DDNS 子域名
6
+ * 2. 定期检测本机 IP 变化并更新 DDNS 记录
7
+ */
8
+ import type { SubdomainClient } from '../subdomain/SubdomainClient';
9
+ import type { EdgeNodeCapabilityDetector } from './EdgeNodeCapabilityDetector';
10
+ export interface DdnsManagerOptions {
11
+ /** SubdomainClient 实例 */
12
+ client: SubdomainClient;
13
+ /** 网络检测器 */
14
+ detector: EdgeNodeCapabilityDetector;
15
+ /** 要分配的子域名 (通常从 Node Token 解析) */
16
+ subdomain: string;
17
+ /** IP 检测和更新间隔 (ms) */
18
+ intervalMs?: number;
19
+ /** 是否在启动时自动分配子域名 */
20
+ autoAllocate?: boolean;
21
+ }
22
+ export declare class DdnsManager {
23
+ private readonly logger;
24
+ private readonly client;
25
+ private readonly detector;
26
+ private readonly subdomain;
27
+ private readonly intervalMs;
28
+ private readonly autoAllocate;
29
+ private interval?;
30
+ private lastIpv4?;
31
+ private lastIpv6?;
32
+ private allocated;
33
+ constructor(options: DdnsManagerOptions);
34
+ /**
35
+ * 启动 DDNS 管理
36
+ */
37
+ start(): Promise<void>;
38
+ /**
39
+ * 停止 DDNS 管理
40
+ */
41
+ stop(): void;
42
+ /**
43
+ * 获取当前 FQDN
44
+ */
45
+ getFqdn(): string | undefined;
46
+ /**
47
+ * 是否已分配子域名
48
+ */
49
+ isAllocated(): boolean;
50
+ private runCycle;
51
+ private allocateSubdomain;
52
+ private updateDdns;
53
+ }
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ /**
3
+ * DDNS Manager for Local Managed Mode
4
+ *
5
+ * 负责在托管式 Local 模式下:
6
+ * 1. 启动时自动向 Cloud 注册并分配 DDNS 子域名
7
+ * 2. 定期检测本机 IP 变化并更新 DDNS 记录
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.DdnsManager = void 0;
11
+ const global_logger_factory_1 = require("global-logger-factory");
12
+ class DdnsManager {
13
+ constructor(options) {
14
+ this.logger = (0, global_logger_factory_1.getLoggerFor)(this);
15
+ this.allocated = false;
16
+ this.client = options.client;
17
+ this.detector = options.detector;
18
+ this.subdomain = options.subdomain;
19
+ this.intervalMs = options.intervalMs ?? 60_000;
20
+ this.autoAllocate = options.autoAllocate ?? true;
21
+ }
22
+ /**
23
+ * 启动 DDNS 管理
24
+ */
25
+ async start() {
26
+ if (this.interval) {
27
+ return;
28
+ }
29
+ this.logger.info(`Starting DDNS manager for subdomain: ${this.subdomain}`);
30
+ // 初始检测并注册
31
+ await this.runCycle();
32
+ // 定期检测 IP 变化
33
+ this.interval = setInterval(() => this.runCycle(), this.intervalMs);
34
+ }
35
+ /**
36
+ * 停止 DDNS 管理
37
+ */
38
+ stop() {
39
+ if (this.interval) {
40
+ clearInterval(this.interval);
41
+ this.interval = undefined;
42
+ }
43
+ this.logger.info('DDNS manager stopped');
44
+ }
45
+ /**
46
+ * 获取当前 FQDN
47
+ */
48
+ getFqdn() {
49
+ if (!this.allocated) {
50
+ return undefined;
51
+ }
52
+ // 需要从 Cloud 获取实际的 domain
53
+ return undefined;
54
+ }
55
+ /**
56
+ * 是否已分配子域名
57
+ */
58
+ isAllocated() {
59
+ return this.allocated;
60
+ }
61
+ async runCycle() {
62
+ try {
63
+ // 1. 检测本机 IP
64
+ const netInfo = await this.detector.detectNetworkAddresses();
65
+ const ipv4 = netInfo.ipv4Public ?? netInfo.ipv4;
66
+ const ipv6 = netInfo.ipv6Public ?? netInfo.ipv6;
67
+ // 2. 如果尚未分配,先尝试分配
68
+ if (!this.allocated && this.autoAllocate) {
69
+ await this.allocateSubdomain(ipv4, ipv6);
70
+ }
71
+ // 3. 如果已分配,检查 IP 是否变化
72
+ if (this.allocated) {
73
+ const ipChanged = ipv4 !== this.lastIpv4 || ipv6 !== this.lastIpv6;
74
+ if (ipChanged) {
75
+ await this.updateDdns(ipv4, ipv6);
76
+ }
77
+ }
78
+ }
79
+ catch (error) {
80
+ this.logger.error(`DDNS cycle failed: ${error.message}`);
81
+ }
82
+ }
83
+ async allocateSubdomain(ipv4, ipv6) {
84
+ try {
85
+ // 先检查是否已存在
86
+ const existing = await this.client.getDdns(this.subdomain);
87
+ if (existing) {
88
+ this.logger.info(`DDNS subdomain already allocated: ${existing.fqdn}`);
89
+ this.allocated = true;
90
+ this.lastIpv4 = existing.ipAddress;
91
+ this.lastIpv6 = existing.ipv6Address;
92
+ // 如果 IP 不同,更新
93
+ if (existing.ipAddress !== ipv4 || existing.ipv6Address !== ipv6) {
94
+ await this.updateDdns(ipv4, ipv6);
95
+ }
96
+ return;
97
+ }
98
+ // 分配新子域名
99
+ this.logger.info(`Allocating DDNS subdomain: ${this.subdomain}`);
100
+ const result = await this.client.allocateDdns({
101
+ subdomain: this.subdomain,
102
+ ipAddress: ipv4,
103
+ ipv6Address: ipv6,
104
+ });
105
+ if (result.success) {
106
+ this.logger.info(`DDNS allocated: ${result.fqdn}`);
107
+ this.allocated = true;
108
+ this.lastIpv4 = ipv4;
109
+ this.lastIpv6 = ipv6;
110
+ }
111
+ }
112
+ catch (error) {
113
+ const message = error.message;
114
+ if (message.includes('409') || message.includes('already')) {
115
+ // 子域名已被占用,可能是之前注册的
116
+ this.logger.warn(`Subdomain ${this.subdomain} already taken, trying to claim...`);
117
+ // 尝试获取现有记录
118
+ const existing = await this.client.getDdns(this.subdomain);
119
+ if (existing) {
120
+ this.allocated = true;
121
+ this.lastIpv4 = existing.ipAddress;
122
+ this.lastIpv6 = existing.ipv6Address;
123
+ }
124
+ }
125
+ else {
126
+ this.logger.error(`Failed to allocate DDNS: ${message}`);
127
+ }
128
+ }
129
+ }
130
+ async updateDdns(ipv4, ipv6) {
131
+ if (!ipv4 && !ipv6) {
132
+ this.logger.debug('No IP address to update');
133
+ return;
134
+ }
135
+ try {
136
+ this.logger.info(`Updating DDNS: ${this.subdomain} -> IPv4=${ipv4 ?? 'none'}, IPv6=${ipv6 ?? 'none'}`);
137
+ const result = await this.client.updateDdns(this.subdomain, {
138
+ ipAddress: ipv4,
139
+ ipv6Address: ipv6,
140
+ });
141
+ if (result.success) {
142
+ this.lastIpv4 = ipv4;
143
+ this.lastIpv6 = ipv6;
144
+ this.logger.info(`DDNS updated: ${result.fqdn}`);
145
+ }
146
+ }
147
+ catch (error) {
148
+ this.logger.error(`Failed to update DDNS: ${error.message}`);
149
+ }
150
+ }
151
+ }
152
+ exports.DdnsManager = DdnsManager;
153
+ //# sourceMappingURL=DdnsManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DdnsManager.js","sourceRoot":"","sources":["../../src/edge/DdnsManager.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * DDNS Manager for Local Managed Mode\n *\n * 负责在托管式 Local 模式下:\n * 1. 启动时自动向 Cloud 注册并分配 DDNS 子域名\n * 2. 定期检测本机 IP 变化并更新 DDNS 记录\n */\n\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { SubdomainClient } from '../subdomain/SubdomainClient';\nimport type { EdgeNodeCapabilityDetector, NetworkAddressInfo } from './EdgeNodeCapabilityDetector';\n\nexport interface DdnsManagerOptions {\n /** SubdomainClient 实例 */\n client: SubdomainClient;\n\n /** 网络检测器 */\n detector: EdgeNodeCapabilityDetector;\n\n /** 要分配的子域名 (通常从 Node Token 解析) */\n subdomain: string;\n\n /** IP 检测和更新间隔 (ms) */\n intervalMs?: number;\n\n /** 是否在启动时自动分配子域名 */\n autoAllocate?: boolean;\n}\n\nexport class DdnsManager {\n private readonly logger = getLoggerFor(this);\n private readonly client: SubdomainClient;\n private readonly detector: EdgeNodeCapabilityDetector;\n private readonly subdomain: string;\n private readonly intervalMs: number;\n private readonly autoAllocate: boolean;\n\n private interval?: NodeJS.Timeout;\n private lastIpv4?: string;\n private lastIpv6?: string;\n private allocated = false;\n\n public constructor(options: DdnsManagerOptions) {\n this.client = options.client;\n this.detector = options.detector;\n this.subdomain = options.subdomain;\n this.intervalMs = options.intervalMs ?? 60_000;\n this.autoAllocate = options.autoAllocate ?? true;\n }\n\n /**\n * 启动 DDNS 管理\n */\n public async start(): Promise<void> {\n if (this.interval) {\n return;\n }\n\n this.logger.info(`Starting DDNS manager for subdomain: ${this.subdomain}`);\n\n // 初始检测并注册\n await this.runCycle();\n\n // 定期检测 IP 变化\n this.interval = setInterval(() => this.runCycle(), this.intervalMs);\n }\n\n /**\n * 停止 DDNS 管理\n */\n public stop(): void {\n if (this.interval) {\n clearInterval(this.interval);\n this.interval = undefined;\n }\n this.logger.info('DDNS manager stopped');\n }\n\n /**\n * 获取当前 FQDN\n */\n public getFqdn(): string | undefined {\n if (!this.allocated) {\n return undefined;\n }\n // 需要从 Cloud 获取实际的 domain\n return undefined;\n }\n\n /**\n * 是否已分配子域名\n */\n public isAllocated(): boolean {\n return this.allocated;\n }\n\n private async runCycle(): Promise<void> {\n try {\n // 1. 检测本机 IP\n const netInfo = await this.detector.detectNetworkAddresses();\n const ipv4 = netInfo.ipv4Public ?? netInfo.ipv4;\n const ipv6 = netInfo.ipv6Public ?? netInfo.ipv6;\n\n // 2. 如果尚未分配,先尝试分配\n if (!this.allocated && this.autoAllocate) {\n await this.allocateSubdomain(ipv4, ipv6);\n }\n\n // 3. 如果已分配,检查 IP 是否变化\n if (this.allocated) {\n const ipChanged = ipv4 !== this.lastIpv4 || ipv6 !== this.lastIpv6;\n if (ipChanged) {\n await this.updateDdns(ipv4, ipv6);\n }\n }\n } catch (error: unknown) {\n this.logger.error(`DDNS cycle failed: ${(error as Error).message}`);\n }\n }\n\n private async allocateSubdomain(ipv4?: string, ipv6?: string): Promise<void> {\n try {\n // 先检查是否已存在\n const existing = await this.client.getDdns(this.subdomain);\n if (existing) {\n this.logger.info(`DDNS subdomain already allocated: ${existing.fqdn}`);\n this.allocated = true;\n this.lastIpv4 = existing.ipAddress;\n this.lastIpv6 = existing.ipv6Address;\n\n // 如果 IP 不同,更新\n if (existing.ipAddress !== ipv4 || existing.ipv6Address !== ipv6) {\n await this.updateDdns(ipv4, ipv6);\n }\n return;\n }\n\n // 分配新子域名\n this.logger.info(`Allocating DDNS subdomain: ${this.subdomain}`);\n const result = await this.client.allocateDdns({\n subdomain: this.subdomain,\n ipAddress: ipv4,\n ipv6Address: ipv6,\n });\n\n if (result.success) {\n this.logger.info(`DDNS allocated: ${result.fqdn}`);\n this.allocated = true;\n this.lastIpv4 = ipv4;\n this.lastIpv6 = ipv6;\n }\n } catch (error: unknown) {\n const message = (error as Error).message;\n if (message.includes('409') || message.includes('already')) {\n // 子域名已被占用,可能是之前注册的\n this.logger.warn(`Subdomain ${this.subdomain} already taken, trying to claim...`);\n // 尝试获取现有记录\n const existing = await this.client.getDdns(this.subdomain);\n if (existing) {\n this.allocated = true;\n this.lastIpv4 = existing.ipAddress;\n this.lastIpv6 = existing.ipv6Address;\n }\n } else {\n this.logger.error(`Failed to allocate DDNS: ${message}`);\n }\n }\n }\n\n private async updateDdns(ipv4?: string, ipv6?: string): Promise<void> {\n if (!ipv4 && !ipv6) {\n this.logger.debug('No IP address to update');\n return;\n }\n\n try {\n this.logger.info(`Updating DDNS: ${this.subdomain} -> IPv4=${ipv4 ?? 'none'}, IPv6=${ipv6 ?? 'none'}`);\n\n const result = await this.client.updateDdns(this.subdomain, {\n ipAddress: ipv4,\n ipv6Address: ipv6,\n });\n\n if (result.success) {\n this.lastIpv4 = ipv4;\n this.lastIpv6 = ipv6;\n this.logger.info(`DDNS updated: ${result.fqdn}`);\n }\n } catch (error: unknown) {\n this.logger.error(`Failed to update DDNS: ${(error as Error).message}`);\n }\n }\n}\n"]}
@@ -0,0 +1,27 @@
1
+ import type { DnsProvider } from '../dns/DnsProvider';
2
+ import type { EdgeNodeCertificateProvisioner } from './EdgeNodeCertificateProvisioner';
3
+ interface Dns01CertificateProvisionerOptions {
4
+ provider: DnsProvider;
5
+ rootDomain?: string | null;
6
+ ttl?: number | string | null;
7
+ }
8
+ export declare class Dns01CertificateProvisioner implements EdgeNodeCertificateProvisioner {
9
+ private readonly logger;
10
+ private readonly provider;
11
+ private readonly rootDomain?;
12
+ private readonly ttl?;
13
+ private readonly enabled;
14
+ constructor(options: Dns01CertificateProvisionerOptions);
15
+ handleCertificateRequest(nodeId: string, metadata: Record<string, unknown>): Promise<void>;
16
+ publishChallenge(host: string, value: string, nodeId?: string): Promise<void>;
17
+ removeChallenge(host: string, nodeId?: string): Promise<void>;
18
+ private extractPayload;
19
+ private extractSubdomain;
20
+ private asString;
21
+ private composeHost;
22
+ private splitHost;
23
+ private normalizeRootDomain;
24
+ private normalizeTtl;
25
+ private removeRecord;
26
+ }
27
+ export {};
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Dns01CertificateProvisioner = void 0;
4
+ const global_logger_factory_1 = require("global-logger-factory");
5
+ class Dns01CertificateProvisioner {
6
+ constructor(options) {
7
+ this.logger = (0, global_logger_factory_1.getLoggerFor)(this);
8
+ this.provider = options.provider;
9
+ this.rootDomain = this.normalizeRootDomain(options.rootDomain);
10
+ this.ttl = this.normalizeTtl(options.ttl);
11
+ this.enabled = true;
12
+ }
13
+ async handleCertificateRequest(nodeId, metadata) {
14
+ if (!this.enabled) {
15
+ return;
16
+ }
17
+ const payload = this.extractPayload(metadata);
18
+ if (!payload) {
19
+ return;
20
+ }
21
+ const host = payload.host ?? this.composeHost(payload.subdomain ?? this.extractSubdomain(metadata));
22
+ if (!host) {
23
+ this.logger.warn(`节点 ${nodeId} 未提供有效的证书域名,跳过 DNS-01 编排。`);
24
+ return;
25
+ }
26
+ const action = (payload.action ?? 'set').toLowerCase();
27
+ if (action === 'remove') {
28
+ await this.removeRecord(nodeId, host);
29
+ return;
30
+ }
31
+ const value = payload.value?.trim();
32
+ if (!value) {
33
+ this.logger.warn(`节点 ${nodeId} 未提供 DNS-01 challenge 值,跳过处理。`);
34
+ return;
35
+ }
36
+ await this.publishChallenge(host, value, nodeId);
37
+ }
38
+ async publishChallenge(host, value, nodeId) {
39
+ if (!this.enabled) {
40
+ return;
41
+ }
42
+ const { domain, subdomain } = this.splitHost(host);
43
+ try {
44
+ await this.provider.upsertRecord({
45
+ domain,
46
+ subdomain,
47
+ type: 'TXT',
48
+ value,
49
+ ttl: this.ttl,
50
+ });
51
+ this.logger.debug(`已写入 DNS-01 challenge 记录 ${subdomain}.${domain}${nodeId ? `(节点 ${nodeId})` : ''}`);
52
+ }
53
+ catch (error) {
54
+ this.logger.error(`DNS-01 编排失败${nodeId ? `(节点 ${nodeId})` : ''}: ${error.message}`);
55
+ throw error;
56
+ }
57
+ }
58
+ async removeChallenge(host, nodeId) {
59
+ if (!this.enabled) {
60
+ return;
61
+ }
62
+ const { domain, subdomain } = this.splitHost(host);
63
+ try {
64
+ await this.provider.deleteRecord({
65
+ domain,
66
+ subdomain,
67
+ type: 'TXT',
68
+ });
69
+ this.logger.debug(`已移除 DNS-01 记录 ${subdomain}.${domain}${nodeId ? `(节点 ${nodeId})` : ''}`);
70
+ }
71
+ catch (error) {
72
+ this.logger.warn(`删除 DNS-01 记录失败${nodeId ? `(节点 ${nodeId})` : ''}:${error.message}`);
73
+ }
74
+ }
75
+ extractPayload(metadata) {
76
+ const certificate = metadata?.certificate;
77
+ if (!certificate || typeof certificate !== 'object') {
78
+ return undefined;
79
+ }
80
+ const dns01 = certificate.dns01;
81
+ if (!dns01 || typeof dns01 !== 'object') {
82
+ return undefined;
83
+ }
84
+ const record = dns01;
85
+ return {
86
+ subdomain: this.asString(record.subdomain),
87
+ host: this.asString(record.host),
88
+ value: this.asString(record.value),
89
+ action: this.asString(record.action),
90
+ };
91
+ }
92
+ extractSubdomain(metadata) {
93
+ const dns = metadata?.dns;
94
+ if (!dns || typeof dns !== 'object') {
95
+ return undefined;
96
+ }
97
+ return this.asString(dns.subdomain);
98
+ }
99
+ asString(value) {
100
+ if (typeof value !== 'string') {
101
+ return undefined;
102
+ }
103
+ const trimmed = value.trim();
104
+ return trimmed.length > 0 ? trimmed : undefined;
105
+ }
106
+ composeHost(subdomain) {
107
+ if (!subdomain || !this.rootDomain) {
108
+ return undefined;
109
+ }
110
+ return `${subdomain}.${this.rootDomain}`;
111
+ }
112
+ splitHost(host) {
113
+ const normalized = host.replace(/\s+/gu, '.').replace(/\.+/gu, '.').replace(/\.$/, '');
114
+ if (this.rootDomain && normalized.endsWith(`.${this.rootDomain}`)) {
115
+ const sub = normalized.slice(0, -1 * (`.${this.rootDomain}`.length));
116
+ return { domain: this.rootDomain, subdomain: sub.length > 0 ? sub : '@' };
117
+ }
118
+ const parts = normalized.split('.');
119
+ const fallbackDomain = this.rootDomain ?? normalized;
120
+ if (parts.length <= 1) {
121
+ return { domain: fallbackDomain, subdomain: '@' };
122
+ }
123
+ const domain = this.rootDomain ?? parts.slice(-2).join('.');
124
+ const subdomain = parts.slice(0, -2).join('.') || '@';
125
+ return { domain, subdomain };
126
+ }
127
+ normalizeRootDomain(value) {
128
+ if (typeof value !== 'string') {
129
+ return undefined;
130
+ }
131
+ let trimmed = value.trim();
132
+ if (trimmed.includes('://')) {
133
+ try {
134
+ trimmed = new URL(trimmed).hostname;
135
+ }
136
+ catch {
137
+ // ignore
138
+ }
139
+ }
140
+ trimmed = trimmed.replace(/\.$/, '');
141
+ return trimmed.length > 0 ? trimmed : undefined;
142
+ }
143
+ normalizeTtl(value) {
144
+ if (typeof value === 'number' && Number.isFinite(value) && value > 0) {
145
+ return Math.trunc(value);
146
+ }
147
+ if (typeof value === 'string') {
148
+ const parsed = Number(value.trim());
149
+ if (Number.isFinite(parsed) && parsed > 0) {
150
+ return Math.trunc(parsed);
151
+ }
152
+ }
153
+ return undefined;
154
+ }
155
+ async removeRecord(nodeId, host) {
156
+ await this.removeChallenge(host, nodeId);
157
+ }
158
+ }
159
+ exports.Dns01CertificateProvisioner = Dns01CertificateProvisioner;
160
+ //# sourceMappingURL=Dns01CertificateProvisioner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dns01CertificateProvisioner.js","sourceRoot":"","sources":["../../src/edge/Dns01CertificateProvisioner.ts"],"names":[],"mappings":"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","sourcesContent":["import { getLoggerFor } from 'global-logger-factory';\nimport type { DnsProvider } from '../dns/DnsProvider';\nimport type { EdgeNodeCertificateProvisioner } from './EdgeNodeCertificateProvisioner';\n\ninterface Dns01CertificateProvisionerOptions {\n provider: DnsProvider;\n rootDomain?: string | null;\n ttl?: number | string | null;\n}\n\ninterface DnsChallengePayload {\n subdomain?: string;\n /** 完整主机名,若提供将覆盖 subdomain。 */\n host?: string;\n value?: string;\n action?: string;\n}\n\nexport class Dns01CertificateProvisioner implements EdgeNodeCertificateProvisioner {\n private readonly logger = getLoggerFor(this);\n private readonly provider: DnsProvider;\n private readonly rootDomain?: string;\n private readonly ttl?: number;\n private readonly enabled: boolean;\n\n public constructor(options: Dns01CertificateProvisionerOptions) {\n this.provider = options.provider;\n this.rootDomain = this.normalizeRootDomain(options.rootDomain);\n this.ttl = this.normalizeTtl(options.ttl);\n this.enabled = true;\n }\n\n public async handleCertificateRequest(nodeId: string, metadata: Record<string, unknown>): Promise<void> {\n if (!this.enabled) {\n return;\n }\n const payload = this.extractPayload(metadata);\n if (!payload) {\n return;\n }\n\n const host = payload.host ?? this.composeHost(payload.subdomain ?? this.extractSubdomain(metadata));\n if (!host) {\n this.logger.warn(`节点 ${nodeId} 未提供有效的证书域名,跳过 DNS-01 编排。`);\n return;\n }\n\n const action = (payload.action ?? 'set').toLowerCase();\n if (action === 'remove') {\n await this.removeRecord(nodeId, host);\n return;\n }\n\n const value = payload.value?.trim();\n if (!value) {\n this.logger.warn(`节点 ${nodeId} 未提供 DNS-01 challenge 值,跳过处理。`);\n return;\n }\n\n await this.publishChallenge(host, value, nodeId);\n }\n\n public async publishChallenge(host: string, value: string, nodeId?: string): Promise<void> {\n if (!this.enabled) {\n return;\n }\n const { domain, subdomain } = this.splitHost(host);\n\n try {\n await this.provider.upsertRecord({\n domain,\n subdomain,\n type: 'TXT',\n value,\n ttl: this.ttl,\n });\n this.logger.debug(`已写入 DNS-01 challenge 记录 ${subdomain}.${domain}${nodeId ? `(节点 ${nodeId})` : ''}`);\n } catch (error: unknown) {\n this.logger.error(`DNS-01 编排失败${nodeId ? `(节点 ${nodeId})` : ''}: ${(error as Error).message}`);\n throw error;\n }\n }\n\n public async removeChallenge(host: string, nodeId?: string): Promise<void> {\n if (!this.enabled) {\n return;\n }\n const { domain, subdomain } = this.splitHost(host);\n try {\n await this.provider.deleteRecord({\n domain,\n subdomain,\n type: 'TXT',\n });\n this.logger.debug(`已移除 DNS-01 记录 ${subdomain}.${domain}${nodeId ? `(节点 ${nodeId})` : ''}`);\n } catch (error: unknown) {\n this.logger.warn(`删除 DNS-01 记录失败${nodeId ? `(节点 ${nodeId})` : ''}:${(error as Error).message}`);\n }\n }\n\n private extractPayload(metadata: Record<string, unknown>): DnsChallengePayload | undefined {\n const certificate = metadata?.certificate;\n if (!certificate || typeof certificate !== 'object') {\n return undefined;\n }\n const dns01 = (certificate as Record<string, unknown>).dns01;\n if (!dns01 || typeof dns01 !== 'object') {\n return undefined;\n }\n const record = dns01 as Record<string, unknown>;\n return {\n subdomain: this.asString(record.subdomain),\n host: this.asString(record.host),\n value: this.asString(record.value),\n action: this.asString(record.action),\n };\n }\n\n private extractSubdomain(metadata: Record<string, unknown>): string | undefined {\n const dns = metadata?.dns;\n if (!dns || typeof dns !== 'object') {\n return undefined;\n }\n return this.asString((dns as Record<string, unknown>).subdomain);\n }\n\n private asString(value: unknown): string | undefined {\n if (typeof value !== 'string') {\n return undefined;\n }\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : undefined;\n }\n\n private composeHost(subdomain?: string): string | undefined {\n if (!subdomain || !this.rootDomain) {\n return undefined;\n }\n return `${subdomain}.${this.rootDomain}`;\n }\n\n private splitHost(host: string): { domain: string; subdomain: string } {\n const normalized = host.replace(/\\s+/gu, '.').replace(/\\.+/gu, '.').replace(/\\.$/, '');\n if (this.rootDomain && normalized.endsWith(`.${this.rootDomain}`)) {\n const sub = normalized.slice(0, -1 * (`.${this.rootDomain}`.length));\n return { domain: this.rootDomain, subdomain: sub.length > 0 ? sub : '@' };\n }\n const parts = normalized.split('.');\n const fallbackDomain = this.rootDomain ?? normalized;\n if (parts.length <= 1) {\n return { domain: fallbackDomain, subdomain: '@' };\n }\n const domain = this.rootDomain ?? parts.slice(-2).join('.');\n const subdomain = parts.slice(0, -2).join('.') || '@';\n return { domain, subdomain };\n }\n\n private normalizeRootDomain(value?: string | null): string | undefined {\n if (typeof value !== 'string') {\n return undefined;\n }\n let trimmed = value.trim();\n if (trimmed.includes('://')) {\n try {\n trimmed = new URL(trimmed).hostname;\n } catch {\n // ignore\n }\n }\n trimmed = trimmed.replace(/\\.$/, '');\n return trimmed.length > 0 ? trimmed : undefined;\n }\n\n private normalizeTtl(value?: number | string | null): number | undefined {\n if (typeof value === 'number' && Number.isFinite(value) && value > 0) {\n return Math.trunc(value);\n }\n if (typeof value === 'string') {\n const parsed = Number(value.trim());\n if (Number.isFinite(parsed) && parsed > 0) {\n return Math.trunc(parsed);\n }\n }\n return undefined;\n }\n\n private async removeRecord(nodeId: string, host: string): Promise<void> {\n await this.removeChallenge(host, nodeId);\n }\n}\n"]}