@push.rocks/smartproxy 19.3.2 → 19.3.4

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 (313) hide show
  1. package/dist_ts/00_commitinfo_data.js +1 -1
  2. package/dist_ts/forwarding/factory/forwarding-factory.js +29 -1
  3. package/dist_ts/http/index.d.ts +1 -3
  4. package/dist_ts/http/index.js +4 -10
  5. package/dist_ts/http/models/http-types.d.ts +4 -91
  6. package/dist_ts/http/models/http-types.js +5 -60
  7. package/dist_ts/http/router/proxy-router.d.ts +1 -1
  8. package/dist_ts/http/router/route-router.d.ts +1 -1
  9. package/dist_ts/index.d.ts +9 -7
  10. package/dist_ts/index.js +10 -7
  11. package/dist_ts/proxies/{network-proxy → http-proxy}/certificate-manager.d.ts +2 -2
  12. package/dist_ts/proxies/{network-proxy → http-proxy}/certificate-manager.js +1 -1
  13. package/dist_ts/proxies/{network-proxy → http-proxy}/connection-pool.d.ts +2 -2
  14. package/dist_ts/proxies/http-proxy/connection-pool.js +210 -0
  15. package/dist_ts/proxies/http-proxy/context-creator.js +108 -0
  16. package/dist_ts/proxies/{network-proxy → http-proxy}/function-cache.js +1 -1
  17. package/dist_ts/proxies/http-proxy/handlers/index.d.ts +5 -0
  18. package/dist_ts/proxies/http-proxy/handlers/index.js +6 -0
  19. package/dist_ts/proxies/http-proxy/handlers/redirect-handler.d.ts +18 -0
  20. package/dist_ts/proxies/http-proxy/handlers/redirect-handler.js +78 -0
  21. package/dist_ts/proxies/http-proxy/handlers/static-handler.d.ts +19 -0
  22. package/dist_ts/proxies/http-proxy/handlers/static-handler.js +203 -0
  23. package/dist_ts/proxies/{network-proxy/network-proxy.d.ts → http-proxy/http-proxy.d.ts} +10 -9
  24. package/dist_ts/proxies/{network-proxy/network-proxy.js → http-proxy/http-proxy.js} +13 -12
  25. package/dist_ts/proxies/{network-proxy → http-proxy}/http-request-handler.js +1 -1
  26. package/dist_ts/proxies/http-proxy/http2-request-handler.js +201 -0
  27. package/dist_ts/proxies/{network-proxy → http-proxy}/index.d.ts +2 -2
  28. package/dist_ts/proxies/http-proxy/index.js +12 -0
  29. package/dist_ts/proxies/http-proxy/models/http-types.d.ts +119 -0
  30. package/dist_ts/proxies/http-proxy/models/http-types.js +112 -0
  31. package/dist_ts/proxies/http-proxy/models/index.d.ts +5 -0
  32. package/dist_ts/proxies/http-proxy/models/index.js +6 -0
  33. package/dist_ts/proxies/{network-proxy → http-proxy}/models/types.d.ts +2 -2
  34. package/dist_ts/proxies/http-proxy/models/types.js +276 -0
  35. package/dist_ts/proxies/{network-proxy → http-proxy}/request-handler.d.ts +3 -3
  36. package/dist_ts/proxies/{network-proxy → http-proxy}/request-handler.js +2 -2
  37. package/dist_ts/proxies/http-proxy/security-manager.js +255 -0
  38. package/dist_ts/proxies/{network-proxy → http-proxy}/websocket-handler.d.ts +3 -3
  39. package/dist_ts/proxies/{network-proxy → http-proxy}/websocket-handler.js +2 -2
  40. package/dist_ts/proxies/index.d.ts +5 -5
  41. package/dist_ts/proxies/index.js +5 -5
  42. package/dist_ts/proxies/smart-proxy/certificate-manager.d.ts +4 -4
  43. package/dist_ts/proxies/smart-proxy/certificate-manager.js +11 -11
  44. package/dist_ts/proxies/smart-proxy/http-proxy-bridge.d.ts +41 -0
  45. package/dist_ts/proxies/smart-proxy/http-proxy-bridge.js +121 -0
  46. package/dist_ts/proxies/smart-proxy/index.d.ts +2 -1
  47. package/dist_ts/proxies/smart-proxy/index.js +4 -2
  48. package/dist_ts/proxies/smart-proxy/models/interfaces.d.ts +2 -2
  49. package/dist_ts/proxies/smart-proxy/port-manager.js +3 -3
  50. package/dist_ts/proxies/smart-proxy/route-connection-handler.d.ts +3 -3
  51. package/dist_ts/proxies/smart-proxy/route-connection-handler.js +24 -265
  52. package/dist_ts/proxies/smart-proxy/smart-proxy.d.ts +1 -1
  53. package/dist_ts/proxies/smart-proxy/smart-proxy.js +25 -25
  54. package/dist_ts/routing/index.d.ts +5 -0
  55. package/dist_ts/routing/index.js +8 -0
  56. package/dist_ts/routing/models/http-types.d.ts +6 -0
  57. package/dist_ts/routing/models/http-types.js +7 -0
  58. package/dist_ts/routing/router/index.d.ts +8 -0
  59. package/dist_ts/routing/router/index.js +7 -0
  60. package/dist_ts/{classes.router.d.ts → routing/router/proxy-router.d.ts} +14 -11
  61. package/dist_ts/{classes.router.js → routing/router/proxy-router.js} +2 -2
  62. package/dist_ts/routing/router/route-router.d.ts +108 -0
  63. package/dist_ts/routing/router/route-router.js +393 -0
  64. package/package.json +1 -1
  65. package/readme.md +18 -35
  66. package/readme.plan.md +173 -271
  67. package/ts/00_commitinfo_data.ts +1 -1
  68. package/ts/forwarding/factory/forwarding-factory.ts +28 -0
  69. package/ts/index.ts +13 -9
  70. package/ts/proxies/{network-proxy → http-proxy}/certificate-manager.ts +2 -2
  71. package/ts/proxies/{network-proxy → http-proxy}/connection-pool.ts +2 -2
  72. package/ts/proxies/http-proxy/handlers/index.ts +6 -0
  73. package/ts/proxies/http-proxy/handlers/redirect-handler.ts +105 -0
  74. package/ts/proxies/http-proxy/handlers/static-handler.ts +251 -0
  75. package/ts/proxies/{network-proxy/network-proxy.ts → http-proxy/http-proxy.ts} +15 -14
  76. package/ts/proxies/{network-proxy → http-proxy}/index.ts +3 -3
  77. package/ts/proxies/http-proxy/models/http-types.ts +165 -0
  78. package/ts/proxies/http-proxy/models/index.ts +5 -0
  79. package/ts/proxies/{network-proxy → http-proxy}/models/types.ts +2 -2
  80. package/ts/proxies/{network-proxy → http-proxy}/request-handler.ts +3 -3
  81. package/ts/proxies/{network-proxy → http-proxy}/websocket-handler.ts +3 -3
  82. package/ts/proxies/index.ts +7 -7
  83. package/ts/proxies/smart-proxy/certificate-manager.ts +10 -10
  84. package/ts/proxies/smart-proxy/{network-proxy-bridge.ts → http-proxy-bridge.ts} +44 -44
  85. package/ts/proxies/smart-proxy/index.ts +4 -1
  86. package/ts/proxies/smart-proxy/models/interfaces.ts +3 -3
  87. package/ts/proxies/smart-proxy/port-manager.ts +2 -2
  88. package/ts/proxies/smart-proxy/route-connection-handler.ts +23 -307
  89. package/ts/proxies/smart-proxy/smart-proxy.ts +25 -25
  90. package/ts/routing/index.ts +9 -0
  91. package/ts/routing/models/http-types.ts +6 -0
  92. package/ts/{http → routing}/router/proxy-router.ts +1 -1
  93. package/ts/{http → routing}/router/route-router.ts +1 -1
  94. package/dist_ts/certificate/acme/acme-factory.d.ts +0 -17
  95. package/dist_ts/certificate/acme/acme-factory.js +0 -40
  96. package/dist_ts/certificate/acme/challenge-handler.d.ts +0 -44
  97. package/dist_ts/certificate/acme/challenge-handler.js +0 -92
  98. package/dist_ts/certificate/acme/index.d.ts +0 -4
  99. package/dist_ts/certificate/acme/index.js +0 -5
  100. package/dist_ts/certificate/certificate-manager.d.ts +0 -150
  101. package/dist_ts/certificate/certificate-manager.js +0 -505
  102. package/dist_ts/certificate/events/certificate-events.d.ts +0 -33
  103. package/dist_ts/certificate/events/certificate-events.js +0 -38
  104. package/dist_ts/certificate/events/simplified-events.d.ts +0 -56
  105. package/dist_ts/certificate/events/simplified-events.js +0 -13
  106. package/dist_ts/certificate/index.d.ts +0 -30
  107. package/dist_ts/certificate/index.js +0 -37
  108. package/dist_ts/certificate/models/certificate-errors.d.ts +0 -69
  109. package/dist_ts/certificate/models/certificate-errors.js +0 -141
  110. package/dist_ts/certificate/models/certificate-strategy.d.ts +0 -60
  111. package/dist_ts/certificate/models/certificate-strategy.js +0 -73
  112. package/dist_ts/certificate/models/certificate-types.d.ts +0 -97
  113. package/dist_ts/certificate/models/certificate-types.js +0 -2
  114. package/dist_ts/certificate/providers/cert-provisioner.d.ts +0 -119
  115. package/dist_ts/certificate/providers/cert-provisioner.js +0 -422
  116. package/dist_ts/certificate/providers/index.d.ts +0 -4
  117. package/dist_ts/certificate/providers/index.js +0 -5
  118. package/dist_ts/certificate/simplified-certificate-manager.d.ts +0 -150
  119. package/dist_ts/certificate/simplified-certificate-manager.js +0 -501
  120. package/dist_ts/certificate/storage/file-storage.d.ts +0 -66
  121. package/dist_ts/certificate/storage/file-storage.js +0 -194
  122. package/dist_ts/certificate/storage/index.d.ts +0 -4
  123. package/dist_ts/certificate/storage/index.js +0 -5
  124. package/dist_ts/certificate/utils/certificate-helpers.d.ts +0 -17
  125. package/dist_ts/certificate/utils/certificate-helpers.js +0 -45
  126. package/dist_ts/classes.iptablesproxy.d.ts +0 -112
  127. package/dist_ts/classes.iptablesproxy.js +0 -765
  128. package/dist_ts/classes.networkproxy.d.ts +0 -243
  129. package/dist_ts/classes.networkproxy.js +0 -1424
  130. package/dist_ts/classes.nftablesproxy.d.ts +0 -219
  131. package/dist_ts/classes.nftablesproxy.js +0 -1542
  132. package/dist_ts/classes.port80handler.d.ts +0 -215
  133. package/dist_ts/classes.port80handler.js +0 -736
  134. package/dist_ts/classes.portproxy.d.ts +0 -171
  135. package/dist_ts/classes.portproxy.js +0 -1802
  136. package/dist_ts/classes.pp.acmemanager.d.ts +0 -34
  137. package/dist_ts/classes.pp.acmemanager.js +0 -123
  138. package/dist_ts/classes.pp.connectionhandler.d.ts +0 -39
  139. package/dist_ts/classes.pp.connectionhandler.js +0 -754
  140. package/dist_ts/classes.pp.connectionmanager.d.ts +0 -78
  141. package/dist_ts/classes.pp.connectionmanager.js +0 -378
  142. package/dist_ts/classes.pp.domainconfigmanager.d.ts +0 -55
  143. package/dist_ts/classes.pp.domainconfigmanager.js +0 -103
  144. package/dist_ts/classes.pp.interfaces.d.ts +0 -133
  145. package/dist_ts/classes.pp.interfaces.js +0 -2
  146. package/dist_ts/classes.pp.networkproxybridge.d.ts +0 -57
  147. package/dist_ts/classes.pp.networkproxybridge.js +0 -306
  148. package/dist_ts/classes.pp.portproxy.d.ts +0 -64
  149. package/dist_ts/classes.pp.portproxy.js +0 -567
  150. package/dist_ts/classes.pp.portrangemanager.d.ts +0 -56
  151. package/dist_ts/classes.pp.portrangemanager.js +0 -179
  152. package/dist_ts/classes.pp.securitymanager.d.ts +0 -47
  153. package/dist_ts/classes.pp.securitymanager.js +0 -126
  154. package/dist_ts/classes.pp.snihandler.d.ts +0 -153
  155. package/dist_ts/classes.pp.snihandler.js +0 -1053
  156. package/dist_ts/classes.pp.timeoutmanager.d.ts +0 -47
  157. package/dist_ts/classes.pp.timeoutmanager.js +0 -154
  158. package/dist_ts/classes.pp.tlsalert.d.ts +0 -149
  159. package/dist_ts/classes.pp.tlsalert.js +0 -225
  160. package/dist_ts/classes.pp.tlsmanager.d.ts +0 -57
  161. package/dist_ts/classes.pp.tlsmanager.js +0 -132
  162. package/dist_ts/classes.snihandler.d.ts +0 -198
  163. package/dist_ts/classes.snihandler.js +0 -1210
  164. package/dist_ts/classes.sslredirect.d.ts +0 -8
  165. package/dist_ts/classes.sslredirect.js +0 -28
  166. package/dist_ts/common/acmeFactory.d.ts +0 -9
  167. package/dist_ts/common/acmeFactory.js +0 -20
  168. package/dist_ts/common/port80-adapter.d.ts +0 -11
  169. package/dist_ts/common/port80-adapter.js +0 -87
  170. package/dist_ts/examples/forwarding-example.d.ts +0 -1
  171. package/dist_ts/examples/forwarding-example.js +0 -96
  172. package/dist_ts/forwarding/config/domain-config.d.ts +0 -12
  173. package/dist_ts/forwarding/config/domain-config.js +0 -12
  174. package/dist_ts/forwarding/config/domain-manager.d.ts +0 -86
  175. package/dist_ts/forwarding/config/domain-manager.js +0 -242
  176. package/dist_ts/helpers.certificates.d.ts +0 -5
  177. package/dist_ts/helpers.certificates.js +0 -23
  178. package/dist_ts/http/port80/acme-interfaces.d.ts +0 -108
  179. package/dist_ts/http/port80/acme-interfaces.js +0 -51
  180. package/dist_ts/http/port80/challenge-responder.d.ts +0 -53
  181. package/dist_ts/http/port80/challenge-responder.js +0 -203
  182. package/dist_ts/http/port80/index.d.ts +0 -6
  183. package/dist_ts/http/port80/index.js +0 -9
  184. package/dist_ts/http/port80/port80-handler.d.ts +0 -136
  185. package/dist_ts/http/port80/port80-handler.js +0 -592
  186. package/dist_ts/http/redirects/index.d.ts +0 -4
  187. package/dist_ts/http/redirects/index.js +0 -5
  188. package/dist_ts/networkproxy/classes.np.certificatemanager.d.ts +0 -77
  189. package/dist_ts/networkproxy/classes.np.certificatemanager.js +0 -372
  190. package/dist_ts/networkproxy/classes.np.connectionpool.d.ts +0 -47
  191. package/dist_ts/networkproxy/classes.np.connectionpool.js +0 -210
  192. package/dist_ts/networkproxy/classes.np.networkproxy.d.ts +0 -118
  193. package/dist_ts/networkproxy/classes.np.networkproxy.js +0 -387
  194. package/dist_ts/networkproxy/classes.np.requesthandler.d.ts +0 -56
  195. package/dist_ts/networkproxy/classes.np.requesthandler.js +0 -393
  196. package/dist_ts/networkproxy/classes.np.types.d.ts +0 -83
  197. package/dist_ts/networkproxy/classes.np.types.js +0 -35
  198. package/dist_ts/networkproxy/classes.np.websockethandler.d.ts +0 -38
  199. package/dist_ts/networkproxy/classes.np.websockethandler.js +0 -188
  200. package/dist_ts/networkproxy/index.d.ts +0 -1
  201. package/dist_ts/networkproxy/index.js +0 -4
  202. package/dist_ts/nfttablesproxy/classes.nftablesproxy.d.ts +0 -219
  203. package/dist_ts/nfttablesproxy/classes.nftablesproxy.js +0 -1542
  204. package/dist_ts/port80handler/classes.port80handler.d.ts +0 -10
  205. package/dist_ts/port80handler/classes.port80handler.js +0 -16
  206. package/dist_ts/proxies/network-proxy/connection-pool.js +0 -210
  207. package/dist_ts/proxies/network-proxy/context-creator.js +0 -108
  208. package/dist_ts/proxies/network-proxy/http2-request-handler.js +0 -201
  209. package/dist_ts/proxies/network-proxy/index.js +0 -12
  210. package/dist_ts/proxies/network-proxy/models/index.d.ts +0 -4
  211. package/dist_ts/proxies/network-proxy/models/index.js +0 -5
  212. package/dist_ts/proxies/network-proxy/models/types.js +0 -276
  213. package/dist_ts/proxies/network-proxy/security-manager.js +0 -255
  214. package/dist_ts/proxies/network-proxy/simplified-certificate-bridge.d.ts +0 -48
  215. package/dist_ts/proxies/network-proxy/simplified-certificate-bridge.js +0 -76
  216. package/dist_ts/proxies/smart-proxy/connection-handler.d.ts +0 -39
  217. package/dist_ts/proxies/smart-proxy/connection-handler.js +0 -894
  218. package/dist_ts/proxies/smart-proxy/domain-config-manager.d.ts +0 -110
  219. package/dist_ts/proxies/smart-proxy/domain-config-manager.js +0 -386
  220. package/dist_ts/proxies/smart-proxy/legacy-smart-proxy.d.ts +0 -168
  221. package/dist_ts/proxies/smart-proxy/legacy-smart-proxy.js +0 -642
  222. package/dist_ts/proxies/smart-proxy/models/simplified-smartproxy-config.d.ts +0 -65
  223. package/dist_ts/proxies/smart-proxy/models/simplified-smartproxy-config.js +0 -31
  224. package/dist_ts/proxies/smart-proxy/models/smartproxy-options.d.ts +0 -102
  225. package/dist_ts/proxies/smart-proxy/models/smartproxy-options.js +0 -73
  226. package/dist_ts/proxies/smart-proxy/network-proxy-bridge.d.ts +0 -41
  227. package/dist_ts/proxies/smart-proxy/network-proxy-bridge.js +0 -121
  228. package/dist_ts/proxies/smart-proxy/port-range-manager.d.ts +0 -56
  229. package/dist_ts/proxies/smart-proxy/port-range-manager.js +0 -176
  230. package/dist_ts/proxies/smart-proxy/route-helpers/index.d.ts +0 -9
  231. package/dist_ts/proxies/smart-proxy/route-helpers/index.js +0 -11
  232. package/dist_ts/proxies/smart-proxy/route-helpers.d.ts +0 -7
  233. package/dist_ts/proxies/smart-proxy/route-helpers.js +0 -9
  234. package/dist_ts/proxies/smart-proxy/simplified-smart-proxy.d.ts +0 -41
  235. package/dist_ts/proxies/smart-proxy/simplified-smart-proxy.js +0 -132
  236. package/dist_ts/proxies/smart-proxy/utils/route-migration-utils.d.ts +0 -51
  237. package/dist_ts/proxies/smart-proxy/utils/route-migration-utils.js +0 -124
  238. package/dist_ts/redirect/classes.redirect.d.ts +0 -96
  239. package/dist_ts/redirect/classes.redirect.js +0 -194
  240. package/dist_ts/smartproxy/classes.pp.certprovisioner.d.ts +0 -54
  241. package/dist_ts/smartproxy/classes.pp.certprovisioner.js +0 -179
  242. package/dist_ts/smartproxy/classes.pp.connectionhandler.d.ts +0 -39
  243. package/dist_ts/smartproxy/classes.pp.connectionhandler.js +0 -894
  244. package/dist_ts/smartproxy/classes.pp.connectionmanager.d.ts +0 -78
  245. package/dist_ts/smartproxy/classes.pp.connectionmanager.js +0 -378
  246. package/dist_ts/smartproxy/classes.pp.domainconfigmanager.d.ts +0 -94
  247. package/dist_ts/smartproxy/classes.pp.domainconfigmanager.js +0 -255
  248. package/dist_ts/smartproxy/classes.pp.interfaces.d.ts +0 -103
  249. package/dist_ts/smartproxy/classes.pp.interfaces.js +0 -2
  250. package/dist_ts/smartproxy/classes.pp.networkproxybridge.d.ts +0 -62
  251. package/dist_ts/smartproxy/classes.pp.networkproxybridge.js +0 -316
  252. package/dist_ts/smartproxy/classes.pp.portrangemanager.d.ts +0 -56
  253. package/dist_ts/smartproxy/classes.pp.portrangemanager.js +0 -176
  254. package/dist_ts/smartproxy/classes.pp.securitymanager.d.ts +0 -64
  255. package/dist_ts/smartproxy/classes.pp.securitymanager.js +0 -149
  256. package/dist_ts/smartproxy/classes.pp.snihandler.d.ts +0 -153
  257. package/dist_ts/smartproxy/classes.pp.snihandler.js +0 -1053
  258. package/dist_ts/smartproxy/classes.pp.timeoutmanager.d.ts +0 -47
  259. package/dist_ts/smartproxy/classes.pp.timeoutmanager.js +0 -154
  260. package/dist_ts/smartproxy/classes.pp.tlsalert.d.ts +0 -149
  261. package/dist_ts/smartproxy/classes.pp.tlsalert.js +0 -225
  262. package/dist_ts/smartproxy/classes.pp.tlsmanager.d.ts +0 -57
  263. package/dist_ts/smartproxy/classes.pp.tlsmanager.js +0 -132
  264. package/dist_ts/smartproxy/classes.smartproxy.d.ts +0 -63
  265. package/dist_ts/smartproxy/classes.smartproxy.js +0 -521
  266. package/dist_ts/smartproxy/forwarding/domain-config.d.ts +0 -12
  267. package/dist_ts/smartproxy/forwarding/domain-config.js +0 -12
  268. package/dist_ts/smartproxy/forwarding/domain-manager.d.ts +0 -86
  269. package/dist_ts/smartproxy/forwarding/domain-manager.js +0 -241
  270. package/dist_ts/smartproxy/forwarding/forwarding.factory.d.ts +0 -24
  271. package/dist_ts/smartproxy/forwarding/forwarding.factory.js +0 -137
  272. package/dist_ts/smartproxy/forwarding/forwarding.handler.d.ts +0 -55
  273. package/dist_ts/smartproxy/forwarding/forwarding.handler.js +0 -94
  274. package/dist_ts/smartproxy/forwarding/http.handler.d.ts +0 -25
  275. package/dist_ts/smartproxy/forwarding/http.handler.js +0 -123
  276. package/dist_ts/smartproxy/forwarding/https-passthrough.handler.d.ts +0 -24
  277. package/dist_ts/smartproxy/forwarding/https-passthrough.handler.js +0 -154
  278. package/dist_ts/smartproxy/forwarding/https-terminate-to-http.handler.d.ts +0 -36
  279. package/dist_ts/smartproxy/forwarding/https-terminate-to-http.handler.js +0 -229
  280. package/dist_ts/smartproxy/forwarding/https-terminate-to-https.handler.d.ts +0 -35
  281. package/dist_ts/smartproxy/forwarding/https-terminate-to-https.handler.js +0 -254
  282. package/dist_ts/smartproxy/forwarding/index.d.ts +0 -16
  283. package/dist_ts/smartproxy/forwarding/index.js +0 -23
  284. package/dist_ts/smartproxy/types/forwarding.types.d.ts +0 -104
  285. package/dist_ts/smartproxy/types/forwarding.types.js +0 -50
  286. package/dist_ts/smartproxy.classes.networkproxy.d.ts +0 -31
  287. package/dist_ts/smartproxy.classes.networkproxy.js +0 -305
  288. package/dist_ts/smartproxy.classes.router.d.ts +0 -13
  289. package/dist_ts/smartproxy.classes.router.js +0 -33
  290. package/dist_ts/smartproxy.classes.sslredirect.d.ts +0 -8
  291. package/dist_ts/smartproxy.classes.sslredirect.js +0 -28
  292. package/dist_ts/smartproxy.helpers.certificates.d.ts +0 -5
  293. package/dist_ts/smartproxy.helpers.certificates.js +0 -23
  294. package/dist_ts/smartproxy.plugins.d.ts +0 -18
  295. package/dist_ts/smartproxy.plugins.js +0 -23
  296. package/dist_ts/smartproxy.portproxy.d.ts +0 -26
  297. package/dist_ts/smartproxy.portproxy.js +0 -295
  298. package/ts/http/index.ts +0 -16
  299. package/ts/http/models/http-types.ts +0 -108
  300. package/ts/http/redirects/index.ts +0 -3
  301. package/ts/proxies/network-proxy/models/index.ts +0 -4
  302. package/ts/redirect/classes.redirect.ts +0 -295
  303. /package/dist_ts/proxies/{network-proxy → http-proxy}/context-creator.d.ts +0 -0
  304. /package/dist_ts/proxies/{network-proxy → http-proxy}/function-cache.d.ts +0 -0
  305. /package/dist_ts/proxies/{network-proxy → http-proxy}/http-request-handler.d.ts +0 -0
  306. /package/dist_ts/proxies/{network-proxy → http-proxy}/http2-request-handler.d.ts +0 -0
  307. /package/dist_ts/proxies/{network-proxy → http-proxy}/security-manager.d.ts +0 -0
  308. /package/ts/proxies/{network-proxy → http-proxy}/context-creator.ts +0 -0
  309. /package/ts/proxies/{network-proxy → http-proxy}/function-cache.ts +0 -0
  310. /package/ts/proxies/{network-proxy → http-proxy}/http-request-handler.ts +0 -0
  311. /package/ts/proxies/{network-proxy → http-proxy}/http2-request-handler.ts +0 -0
  312. /package/ts/proxies/{network-proxy → http-proxy}/security-manager.ts +0 -0
  313. /package/ts/{http → routing}/router/index.ts +0 -0
@@ -1,23 +0,0 @@
1
- import * as fs from 'fs';
2
- import * as path from 'path';
3
- import { fileURLToPath } from 'url';
4
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
5
- export function loadDefaultCertificates() {
6
- try {
7
- const certPath = path.join(__dirname, '..', 'assets', 'certs');
8
- const privateKey = fs.readFileSync(path.join(certPath, 'key.pem'), 'utf8');
9
- const publicKey = fs.readFileSync(path.join(certPath, 'cert.pem'), 'utf8');
10
- if (!privateKey || !publicKey) {
11
- throw new Error('Failed to load default certificates');
12
- }
13
- return {
14
- privateKey,
15
- publicKey
16
- };
17
- }
18
- catch (error) {
19
- console.error('Error loading default certificates:', error);
20
- throw error;
21
- }
22
- }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5jZXJ0aWZpY2F0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9oZWxwZXJzLmNlcnRpZmljYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXBDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQU8vRCxNQUFNLFVBQVUsdUJBQXVCO0lBQ3JDLElBQUksQ0FBQztRQUNILE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDL0QsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMzRSxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTNFLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUVELE9BQU87WUFDTCxVQUFVO1lBQ1YsU0FBUztTQUNWLENBQUM7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMscUNBQXFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUQsTUFBTSxLQUFLLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQyJ9
@@ -1,108 +0,0 @@
1
- /**
2
- * Type definitions for SmartAcme interfaces used by ChallengeResponder
3
- * These reflect the actual SmartAcme API based on the documentation
4
- *
5
- * Also includes route-based interfaces for Port80Handler to extract domains
6
- * that need certificate management from route configurations.
7
- */
8
- import * as plugins from '../../plugins.js';
9
- import type { IRouteConfig } from '../../proxies/smart-proxy/models/route-types.js';
10
- /**
11
- * Structure for SmartAcme certificate result
12
- */
13
- export interface ISmartAcmeCert {
14
- id?: string;
15
- domainName: string;
16
- created?: number | Date | string;
17
- privateKey: string;
18
- publicKey: string;
19
- csr?: string;
20
- validUntil: number | Date | string;
21
- }
22
- /**
23
- * Structure for SmartAcme options
24
- */
25
- export interface ISmartAcmeOptions {
26
- accountEmail: string;
27
- certManager: ICertManager;
28
- environment: 'production' | 'integration';
29
- challengeHandlers: IChallengeHandler<any>[];
30
- challengePriority?: string[];
31
- retryOptions?: {
32
- retries?: number;
33
- factor?: number;
34
- minTimeoutMs?: number;
35
- maxTimeoutMs?: number;
36
- };
37
- }
38
- /**
39
- * Interface for certificate manager
40
- */
41
- export interface ICertManager {
42
- init(): Promise<void>;
43
- get(domainName: string): Promise<ISmartAcmeCert | null>;
44
- put(cert: ISmartAcmeCert): Promise<ISmartAcmeCert>;
45
- delete(domainName: string): Promise<void>;
46
- close?(): Promise<void>;
47
- }
48
- /**
49
- * Interface for challenge handler
50
- */
51
- export interface IChallengeHandler<T> {
52
- getSupportedTypes(): string[];
53
- prepare(ch: T): Promise<void>;
54
- verify?(ch: T): Promise<void>;
55
- cleanup(ch: T): Promise<void>;
56
- checkWetherDomainIsSupported(domain: string): Promise<boolean>;
57
- }
58
- /**
59
- * HTTP-01 challenge type
60
- */
61
- export interface IHttp01Challenge {
62
- type: string;
63
- token: string;
64
- keyAuthorization: string;
65
- webPath: string;
66
- }
67
- /**
68
- * HTTP-01 Memory Handler Interface
69
- */
70
- export interface IHttp01MemoryHandler extends IChallengeHandler<IHttp01Challenge> {
71
- handleRequest(req: plugins.http.IncomingMessage, res: plugins.http.ServerResponse, next?: () => void): void;
72
- }
73
- /**
74
- * SmartAcme main class interface
75
- */
76
- export interface ISmartAcme {
77
- start(): Promise<void>;
78
- stop(): Promise<void>;
79
- getCertificateForDomain(domain: string): Promise<ISmartAcmeCert>;
80
- on?(event: string, listener: (data: any) => void): void;
81
- eventEmitter?: plugins.EventEmitter;
82
- }
83
- /**
84
- * Port80Handler route options
85
- */
86
- export interface IPort80RouteOptions {
87
- domain: string;
88
- sslRedirect: boolean;
89
- acmeMaintenance: boolean;
90
- forward?: {
91
- ip: string;
92
- port: number;
93
- };
94
- acmeForward?: {
95
- ip: string;
96
- port: number;
97
- };
98
- routeReference?: {
99
- routeId?: string;
100
- routeName?: string;
101
- };
102
- }
103
- /**
104
- * Extract domains that need certificate management from routes
105
- * @param routes Route configurations to extract domains from
106
- * @returns Array of Port80RouteOptions for each domain
107
- */
108
- export declare function extractPort80RoutesFromRoutes(routes: IRouteConfig[]): IPort80RouteOptions[];
@@ -1,51 +0,0 @@
1
- /**
2
- * Type definitions for SmartAcme interfaces used by ChallengeResponder
3
- * These reflect the actual SmartAcme API based on the documentation
4
- *
5
- * Also includes route-based interfaces for Port80Handler to extract domains
6
- * that need certificate management from route configurations.
7
- */
8
- import * as plugins from '../../plugins.js';
9
- /**
10
- * Extract domains that need certificate management from routes
11
- * @param routes Route configurations to extract domains from
12
- * @returns Array of Port80RouteOptions for each domain
13
- */
14
- export function extractPort80RoutesFromRoutes(routes) {
15
- const result = [];
16
- for (const route of routes) {
17
- // Skip routes that don't have domains or TLS configuration
18
- if (!route.match.domains || !route.action.tls)
19
- continue;
20
- // Skip routes that don't terminate TLS
21
- if (route.action.tls.mode !== 'terminate' && route.action.tls.mode !== 'terminate-and-reencrypt')
22
- continue;
23
- // Only routes with automatic certificates need ACME
24
- if (route.action.tls.certificate !== 'auto')
25
- continue;
26
- // Get domains from route
27
- const domains = Array.isArray(route.match.domains)
28
- ? route.match.domains
29
- : [route.match.domains];
30
- // Create Port80RouteOptions for each domain
31
- for (const domain of domains) {
32
- // Skip wildcards (we can't get certificates for them)
33
- if (domain.includes('*'))
34
- continue;
35
- // Create Port80RouteOptions
36
- const options = {
37
- domain,
38
- sslRedirect: true, // Default to true for HTTPS routes
39
- acmeMaintenance: true, // Default to true for auto certificates
40
- // Add route reference
41
- routeReference: {
42
- routeName: route.name
43
- }
44
- };
45
- // Add domain to result
46
- result.push(options);
47
- }
48
- }
49
- return result;
50
- }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNtZS1pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvaHR0cC9wb3J0ODAvYWNtZS1pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFtSDVDOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsNkJBQTZCLENBQUMsTUFBc0I7SUFDbEUsTUFBTSxNQUFNLEdBQTBCLEVBQUUsQ0FBQztJQUV6QyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzNCLDJEQUEyRDtRQUMzRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUc7WUFBRSxTQUFTO1FBRXhELHVDQUF1QztRQUN2QyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxXQUFXLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLHlCQUF5QjtZQUFFLFNBQVM7UUFFM0csb0RBQW9EO1FBQ3BELElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxLQUFLLE1BQU07WUFBRSxTQUFTO1FBRXRELHlCQUF5QjtRQUN6QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ2hELENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU87WUFDckIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxQiw0Q0FBNEM7UUFDNUMsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM3QixzREFBc0Q7WUFDdEQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFBRSxTQUFTO1lBRW5DLDRCQUE0QjtZQUM1QixNQUFNLE9BQU8sR0FBd0I7Z0JBQ25DLE1BQU07Z0JBQ04sV0FBVyxFQUFFLElBQUksRUFBRSxtQ0FBbUM7Z0JBQ3RELGVBQWUsRUFBRSxJQUFJLEVBQUUsd0NBQXdDO2dCQUUvRCxzQkFBc0I7Z0JBQ3RCLGNBQWMsRUFBRTtvQkFDZCxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUk7aUJBQ3RCO2FBQ0YsQ0FBQztZQUVGLHVCQUF1QjtZQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyJ9
@@ -1,53 +0,0 @@
1
- import * as plugins from '../../plugins.js';
2
- import { IncomingMessage, ServerResponse } from 'http';
3
- import type { ICertificateData } from '../../certificate/models/certificate-types.js';
4
- /**
5
- * ChallengeResponder handles ACME HTTP-01 challenges by leveraging SmartAcme
6
- * It acts as a bridge between the HTTP server and the ACME challenge verification process
7
- */
8
- export declare class ChallengeResponder extends plugins.EventEmitter {
9
- private readonly useProduction;
10
- private readonly email;
11
- private readonly certificateStore;
12
- private smartAcme;
13
- private http01Handler;
14
- /**
15
- * Creates a new challenge responder
16
- * @param useProduction Whether to use production ACME servers
17
- * @param email Account email for ACME
18
- * @param certificateStore Directory to store certificates
19
- */
20
- constructor(useProduction?: boolean, email?: string, certificateStore?: string);
21
- /**
22
- * Initialize the ACME client
23
- */
24
- initialize(): Promise<void>;
25
- /**
26
- * Ensure the certificate store directory exists
27
- */
28
- private ensureCertificateStore;
29
- /**
30
- * Setup event listeners to forward SmartACME events to our own event emitter
31
- */
32
- private setupEventListeners;
33
- /**
34
- * Handle HTTP request by checking if it's an ACME challenge
35
- * @param req HTTP request object
36
- * @param res HTTP response object
37
- * @returns true if the request was handled, false otherwise
38
- */
39
- handleRequest(req: IncomingMessage, res: ServerResponse): boolean;
40
- /**
41
- * Request a certificate for a domain
42
- * @param domain Domain name to request a certificate for
43
- * @param isRenewal Whether this is a renewal request
44
- */
45
- requestCertificate(domain: string, isRenewal?: boolean): Promise<ICertificateData>;
46
- /**
47
- * Check if a certificate is expiring soon and trigger renewal if needed
48
- * @param domain Domain name
49
- * @param certificate Certificate data
50
- * @param thresholdDays Days before expiry to trigger renewal
51
- */
52
- checkCertificateExpiry(domain: string, certificate: ICertificateData, thresholdDays?: number): void;
53
- }
@@ -1,203 +0,0 @@
1
- import * as plugins from '../../plugins.js';
2
- import { IncomingMessage, ServerResponse } from 'http';
3
- import { CertificateEvents } from '../../certificate/events/certificate-events.js';
4
- /**
5
- * ChallengeResponder handles ACME HTTP-01 challenges by leveraging SmartAcme
6
- * It acts as a bridge between the HTTP server and the ACME challenge verification process
7
- */
8
- export class ChallengeResponder extends plugins.EventEmitter {
9
- /**
10
- * Creates a new challenge responder
11
- * @param useProduction Whether to use production ACME servers
12
- * @param email Account email for ACME
13
- * @param certificateStore Directory to store certificates
14
- */
15
- constructor(useProduction = false, email = 'admin@example.com', certificateStore = './certs') {
16
- super();
17
- this.useProduction = useProduction;
18
- this.email = email;
19
- this.certificateStore = certificateStore;
20
- this.smartAcme = null;
21
- this.http01Handler = null;
22
- }
23
- /**
24
- * Initialize the ACME client
25
- */
26
- async initialize() {
27
- try {
28
- // Create the HTTP-01 memory handler from SmartACME
29
- this.http01Handler = new plugins.smartacme.handlers.Http01MemoryHandler();
30
- // Ensure certificate store directory exists
31
- await this.ensureCertificateStore();
32
- // Create a MemoryCertManager for certificate storage
33
- const certManager = new plugins.smartacme.certmanagers.MemoryCertManager();
34
- // Initialize the SmartACME client with appropriate options
35
- this.smartAcme = new plugins.smartacme.SmartAcme({
36
- accountEmail: this.email,
37
- certManager: certManager,
38
- environment: this.useProduction ? 'production' : 'integration',
39
- challengeHandlers: [this.http01Handler],
40
- challengePriority: ['http-01']
41
- });
42
- // Set up event forwarding from SmartAcme
43
- this.setupEventListeners();
44
- // Start the SmartACME client
45
- await this.smartAcme.start();
46
- console.log('ACME client initialized successfully');
47
- }
48
- catch (error) {
49
- const errorMessage = error instanceof Error ? error.message : String(error);
50
- throw new Error(`Failed to initialize ACME client: ${errorMessage}`);
51
- }
52
- }
53
- /**
54
- * Ensure the certificate store directory exists
55
- */
56
- async ensureCertificateStore() {
57
- try {
58
- await plugins.fs.promises.mkdir(this.certificateStore, { recursive: true });
59
- }
60
- catch (error) {
61
- const errorMessage = error instanceof Error ? error.message : String(error);
62
- throw new Error(`Failed to create certificate store: ${errorMessage}`);
63
- }
64
- }
65
- /**
66
- * Setup event listeners to forward SmartACME events to our own event emitter
67
- */
68
- setupEventListeners() {
69
- if (!this.smartAcme)
70
- return;
71
- const setupEvents = (emitter) => {
72
- // Forward certificate events
73
- emitter.on('certificate', (data) => {
74
- const isRenewal = !!data.isRenewal;
75
- const certData = {
76
- domain: data.domainName || data.domain,
77
- certificate: data.publicKey || data.cert,
78
- privateKey: data.privateKey || data.key,
79
- expiryDate: new Date(data.validUntil || data.expiryDate || Date.now()),
80
- source: 'http01',
81
- isRenewal
82
- };
83
- const eventType = isRenewal
84
- ? CertificateEvents.CERTIFICATE_RENEWED
85
- : CertificateEvents.CERTIFICATE_ISSUED;
86
- this.emit(eventType, certData);
87
- });
88
- // Forward error events
89
- emitter.on('error', (error) => {
90
- const domain = error.domainName || error.domain || 'unknown';
91
- const failureData = {
92
- domain,
93
- error: error.message || String(error),
94
- isRenewal: !!error.isRenewal
95
- };
96
- this.emit(CertificateEvents.CERTIFICATE_FAILED, failureData);
97
- });
98
- };
99
- // Check for direct event methods on SmartAcme
100
- if (typeof this.smartAcme.on === 'function') {
101
- setupEvents(this.smartAcme);
102
- }
103
- // Check for eventEmitter property
104
- else if (this.smartAcme.eventEmitter) {
105
- setupEvents(this.smartAcme.eventEmitter);
106
- }
107
- // If no proper event handling, log a warning
108
- else {
109
- console.warn('SmartAcme instance does not support expected event interface - events may not be forwarded');
110
- }
111
- }
112
- /**
113
- * Handle HTTP request by checking if it's an ACME challenge
114
- * @param req HTTP request object
115
- * @param res HTTP response object
116
- * @returns true if the request was handled, false otherwise
117
- */
118
- handleRequest(req, res) {
119
- if (!this.http01Handler)
120
- return false;
121
- // Check if this is an ACME challenge request (/.well-known/acme-challenge/*)
122
- const url = req.url || '';
123
- if (url.startsWith('/.well-known/acme-challenge/')) {
124
- try {
125
- // Delegate to the HTTP-01 memory handler, which knows how to serve challenges
126
- this.http01Handler.handleRequest(req, res);
127
- return true;
128
- }
129
- catch (error) {
130
- console.error('Error handling ACME challenge:', error);
131
- // If there was an error, send a 404 response
132
- res.writeHead(404);
133
- res.end('Not found');
134
- return true;
135
- }
136
- }
137
- return false;
138
- }
139
- /**
140
- * Request a certificate for a domain
141
- * @param domain Domain name to request a certificate for
142
- * @param isRenewal Whether this is a renewal request
143
- */
144
- async requestCertificate(domain, isRenewal = false) {
145
- if (!this.smartAcme) {
146
- throw new Error('ACME client not initialized');
147
- }
148
- try {
149
- // Request certificate using SmartACME
150
- const certObj = await this.smartAcme.getCertificateForDomain(domain);
151
- // Convert the certificate object to our CertificateData format
152
- const certData = {
153
- domain,
154
- certificate: certObj.publicKey,
155
- privateKey: certObj.privateKey,
156
- expiryDate: new Date(certObj.validUntil),
157
- source: 'http01',
158
- isRenewal
159
- };
160
- return certData;
161
- }
162
- catch (error) {
163
- // Create failure object
164
- const failure = {
165
- domain,
166
- error: error instanceof Error ? error.message : String(error),
167
- isRenewal
168
- };
169
- // Emit failure event
170
- this.emit(CertificateEvents.CERTIFICATE_FAILED, failure);
171
- // Rethrow with more context
172
- throw new Error(`Failed to ${isRenewal ? 'renew' : 'obtain'} certificate for ${domain}: ${error instanceof Error ? error.message : String(error)}`);
173
- }
174
- }
175
- /**
176
- * Check if a certificate is expiring soon and trigger renewal if needed
177
- * @param domain Domain name
178
- * @param certificate Certificate data
179
- * @param thresholdDays Days before expiry to trigger renewal
180
- */
181
- checkCertificateExpiry(domain, certificate, thresholdDays = 30) {
182
- if (!certificate.expiryDate)
183
- return;
184
- const now = new Date();
185
- const expiryDate = certificate.expiryDate;
186
- const daysDifference = Math.floor((expiryDate.getTime() - now.getTime()) / (1000 * 60 * 60 * 24));
187
- if (daysDifference <= thresholdDays) {
188
- const expiryInfo = {
189
- domain,
190
- expiryDate,
191
- daysRemaining: daysDifference
192
- };
193
- this.emit(CertificateEvents.CERTIFICATE_EXPIRING, expiryInfo);
194
- // Automatically attempt renewal if expiring
195
- if (this.smartAcme) {
196
- this.requestCertificate(domain, true).catch(error => {
197
- console.error(`Failed to auto-renew certificate for ${domain}:`, error);
198
- });
199
- }
200
- }
201
- }
202
- }
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbGxlbmdlLXJlc3BvbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL2h0dHAvcG9ydDgwL2NoYWxsZW5nZS1yZXNwb25kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2xCLE1BQU0sZ0RBQWdELENBQUM7QUFheEQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGtCQUFtQixTQUFRLE9BQU8sQ0FBQyxZQUFZO0lBSTFEOzs7OztPQUtHO0lBQ0gsWUFDbUIsZ0JBQXlCLEtBQUssRUFDOUIsUUFBZ0IsbUJBQW1CLEVBQ25DLG1CQUEyQixTQUFTO1FBRXJELEtBQUssRUFBRSxDQUFDO1FBSlMsa0JBQWEsR0FBYixhQUFhLENBQWlCO1FBQzlCLFVBQUssR0FBTCxLQUFLLENBQThCO1FBQ25DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFaL0MsY0FBUyxHQUFzQixJQUFJLENBQUM7UUFDcEMsa0JBQWEsR0FBZ0MsSUFBSSxDQUFDO0lBYzFELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxVQUFVO1FBQ3JCLElBQUksQ0FBQztZQUNILG1EQUFtRDtZQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUUxRSw0Q0FBNEM7WUFDNUMsTUFBTSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUVwQyxxREFBcUQ7WUFDckQsTUFBTSxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBRTNFLDJEQUEyRDtZQUMzRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUks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
@@ -1,6 +0,0 @@
1
- /**
2
- * Port 80 handling
3
- */
4
- export { Port80Handler } from './port80-handler.js';
5
- export { ChallengeResponder } from './challenge-responder.js';
6
- export { HttpError as Port80HandlerError, CertificateError as CertError } from '../models/http-types.js';
@@ -1,9 +0,0 @@
1
- /**
2
- * Port 80 handling
3
- */
4
- // Export the main components
5
- export { Port80Handler } from './port80-handler.js';
6
- export { ChallengeResponder } from './challenge-responder.js';
7
- // Export backward compatibility interfaces and types
8
- export { HttpError as Port80HandlerError, CertificateError as CertError } from '../models/http-types.js';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9odHRwL3BvcnQ4MC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILDZCQUE2QjtBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUQscURBQXFEO0FBQ3JELE9BQU8sRUFDTCxTQUFTLElBQUksa0JBQWtCLEVBQy9CLGdCQUFnQixJQUFJLFNBQVMsRUFDOUIsTUFBTSx5QkFBeUIsQ0FBQyJ9
@@ -1,136 +0,0 @@
1
- import * as plugins from '../../plugins.js';
2
- import { CertificateEvents } from '../../certificate/events/certificate-events.js';
3
- import type { IDomainOptions, // Kept for backward compatibility
4
- ICertificateData, IAcmeOptions } from '../../certificate/models/certificate-types.js';
5
- import { HttpError, CertificateError, ServerError } from '../models/http-types.js';
6
- import type { IPort80RouteOptions } from './acme-interfaces.js';
7
- import type { IRouteConfig } from '../../proxies/smart-proxy/models/route-types.js';
8
- export { HttpError as Port80HandlerError, CertificateError, ServerError };
9
- export declare const Port80HandlerEvents: typeof CertificateEvents;
10
- /**
11
- * Configuration options for the Port80Handler
12
- */
13
- /**
14
- * Port80Handler with ACME certificate management and request forwarding capabilities
15
- * Now with glob pattern support for domain matching
16
- */
17
- export declare class Port80Handler extends plugins.EventEmitter {
18
- private domainCertificates;
19
- private challengeResponder;
20
- private server;
21
- private isShuttingDown;
22
- private options;
23
- /**
24
- * Creates a new Port80Handler
25
- * @param options Configuration options
26
- */
27
- constructor(options?: IAcmeOptions);
28
- /**
29
- * Starts the HTTP server for ACME challenges
30
- */
31
- start(): Promise<void>;
32
- /**
33
- * Stops the HTTP server and cleanup resources
34
- */
35
- stop(): Promise<void>;
36
- /**
37
- * Adds a domain with configuration options
38
- * @param options Domain configuration options
39
- */
40
- addDomain(options: IDomainOptions | IPort80RouteOptions): void;
41
- /**
42
- * Add domains from route configurations
43
- * @param routes Array of route configurations
44
- */
45
- addDomainsFromRoutes(routes: IRouteConfig[]): void;
46
- /**
47
- * Normalize options from either IDomainOptions or IPort80RouteOptions
48
- * @param options Options to normalize
49
- * @returns Normalized IDomainOptions
50
- * @private
51
- */
52
- private normalizeOptions;
53
- /**
54
- * Removes a domain from management
55
- * @param domain The domain to remove
56
- */
57
- removeDomain(domain: string): void;
58
- /**
59
- * Gets the certificate for a domain if it exists
60
- * @param domain The domain to get the certificate for
61
- */
62
- getCertificate(domain: string): ICertificateData | null;
63
- /**
64
- * Check if a domain is a glob pattern
65
- * @param domain Domain to check
66
- * @returns True if the domain is a glob pattern
67
- */
68
- private isGlobPattern;
69
- /**
70
- * Get domain info for a specific domain, using glob pattern matching if needed
71
- * @param requestDomain The actual domain from the request
72
- * @returns The domain info or null if not found
73
- */
74
- private getDomainInfoForRequest;
75
- /**
76
- * Check if a domain matches a glob pattern
77
- * @param domain The domain to check
78
- * @param pattern The pattern to match against
79
- * @returns True if the domain matches the pattern
80
- */
81
- private domainMatchesPattern;
82
- /**
83
- * Handles incoming HTTP requests
84
- * @param req The HTTP request
85
- * @param res The HTTP response
86
- */
87
- private handleRequest;
88
- /**
89
- * Forwards an HTTP request to the specified target
90
- * @param req The original request
91
- * @param res The response object
92
- * @param target The forwarding target (IP and port)
93
- * @param requestType Type of request for logging
94
- */
95
- private forwardRequest;
96
- /**
97
- * Obtains a certificate for a domain using ACME HTTP-01 challenge
98
- * @param domain The domain to obtain a certificate for
99
- * @param isRenewal Whether this is a renewal attempt
100
- */
101
- private obtainCertificate;
102
- /**
103
- * Extract expiry date from certificate using a more robust approach
104
- * @param certificate Certificate PEM string
105
- * @param domain Domain for logging
106
- * @returns Extracted expiry date or default
107
- */
108
- private extractExpiryDateFromCertificate;
109
- /**
110
- * Get a default expiry date (90 days from now)
111
- * @returns Default expiry date
112
- */
113
- private getDefaultExpiryDate;
114
- /**
115
- * Emits a certificate event with the certificate data
116
- * @param eventType The event type to emit
117
- * @param data The certificate data
118
- */
119
- private emitCertificateEvent;
120
- /**
121
- * Gets all domains and their certificate status
122
- * @returns Map of domains to certificate status
123
- */
124
- getDomainCertificateStatus(): Map<string, {
125
- certObtained: boolean;
126
- expiryDate?: Date;
127
- daysRemaining?: number;
128
- obtainingInProgress: boolean;
129
- lastRenewalAttempt?: Date;
130
- }>;
131
- /**
132
- * Request a certificate renewal for a specific domain.
133
- * @param domain The domain to renew.
134
- */
135
- renewCertificate(domain: string): Promise<void>;
136
- }