@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
package/readme.plan.md CHANGED
@@ -1,277 +1,179 @@
1
- # SmartProxy Development Plan
2
-
3
- cat /home/philkunz/.claude/CLAUDE.md
4
-
5
- ## Critical Bug Fix: Port 80 EADDRINUSE with ACME Challenge Routes
6
-
7
- ### Problem Statement
8
- SmartProxy encounters an "EADDRINUSE" error on port 80 when provisioning multiple ACME certificates. The issue occurs because the certificate manager adds and removes the challenge route for each certificate individually, causing race conditions when multiple certificates are provisioned concurrently.
9
-
10
- ### Root Cause
11
- The `SmartCertManager` class adds the ACME challenge route (port 80) before provisioning each certificate and removes it afterward. When multiple certificates are provisioned:
12
- 1. Each provisioning cycle adds its own challenge route
13
- 2. This triggers `updateRoutes()` which calls `PortManager.updatePorts()`
14
- 3. Port 80 is repeatedly added/removed, causing binding conflicts
15
-
16
- ### Implementation Plan
17
-
18
- #### Phase 1: Refactor Challenge Route Lifecycle
19
- 1. **Modify challenge route handling** in `SmartCertManager`
20
- - [x] Add challenge route once during initialization if ACME is configured
21
- - [x] Keep challenge route active throughout entire certificate provisioning
22
- - [x] Remove challenge route only after all certificates are provisioned
23
- - [x] Add concurrency control to prevent multiple simultaneous route updates
24
-
25
- #### Phase 2: Update Certificate Provisioning Flow
26
- 2. **Refactor certificate provisioning methods**
27
- - [x] Separate challenge route management from individual certificate provisioning
28
- - [x] Update `provisionAcmeCertificate()` to not add/remove challenge routes
29
- - [x] Modify `provisionAllCertificates()` to handle challenge route lifecycle
30
- - [x] Add error handling for challenge route initialization failures
31
-
32
- #### Phase 3: Implement Concurrency Controls
33
- 3. **Add synchronization mechanisms**
34
- - [x] Implement mutex/lock for challenge route operations
35
- - [x] Ensure certificate provisioning is properly serialized
36
- - [x] Add safeguards against duplicate challenge routes
37
- - [x] Handle edge cases (shutdown during provisioning, renewal conflicts)
38
-
39
- #### Phase 4: Enhance Error Handling
40
- 4. **Improve error handling and recovery**
41
- - [x] Add specific error types for port conflicts
42
- - [x] Implement retry logic for transient port binding issues
43
- - [x] Add detailed logging for challenge route lifecycle
44
- - [x] Ensure proper cleanup on errors
45
-
46
- #### Phase 5: Create Comprehensive Tests
47
- 5. **Write tests for challenge route management**
48
- - [x] Test concurrent certificate provisioning
49
- - [x] Test challenge route persistence during provisioning
50
- - [x] Test error scenarios (port already in use)
51
- - [x] Test cleanup after provisioning
52
- - [x] Test renewal scenarios with existing challenge routes
53
-
54
- #### Phase 6: Update Documentation
55
- 6. **Document the new behavior**
56
- - [x] Update certificate management documentation
57
- - [x] Add troubleshooting guide for port conflicts
58
- - [x] Document the challenge route lifecycle
59
- - [x] Include examples of proper ACME configuration
60
-
61
- ### Technical Details
62
-
63
- #### Specific Code Changes
64
-
65
- 1. In `SmartCertManager.initialize()`:
1
+ # SmartProxy v19.4.0 - Completed Refactoring
2
+
3
+ ## Overview
4
+
5
+ SmartProxy has been successfully refactored with clearer separation of concerns between HTTP/HTTPS traffic handling and low-level connection routing. Version 19.4.0 introduces global ACME configuration and enhanced route management.
6
+
7
+ ## Current Architecture (v19.4.0)
8
+
9
+ ### HttpProxy (formerly NetworkProxy)
10
+ **Purpose**: Handle all HTTP/HTTPS traffic with TLS termination
11
+
12
+ **Current Responsibilities**:
13
+ - TLS termination for HTTPS
14
+ - HTTP/1.1 and HTTP/2 protocol handling
15
+ - HTTP request/response parsing
16
+ - HTTP to HTTPS redirects
17
+ - ACME challenge handling
18
+ - Static route handlers
19
+ - WebSocket protocol upgrades
20
+ - Connection pooling for backend servers
21
+ - Certificate management integration
22
+
23
+ ### SmartProxy
24
+ **Purpose**: Central API for all proxy needs with route-based configuration
25
+
26
+ **Current Responsibilities**:
27
+ - Port management (listen on multiple ports)
28
+ - Route-based connection routing
29
+ - TLS passthrough (SNI-based routing)
30
+ - NFTables integration
31
+ - Certificate management via SmartCertManager
32
+ - Raw TCP proxying
33
+ - Connection lifecycle management
34
+ - Global ACME configuration (v19+)
35
+
36
+ ## Completed Implementation
37
+
38
+ ### Phase 1: Rename and Reorganize ✅
39
+ - NetworkProxy renamed to HttpProxy
40
+ - Directory structure reorganized
41
+ - All imports and references updated
42
+
43
+ ### Phase 2: Certificate Management
44
+ - Unified certificate management in SmartCertManager
45
+ - Global ACME configuration support (v19+)
46
+ - Route-level certificate overrides
47
+ - Automatic renewal system
48
+ - Renamed `network-proxy.ts` to `http-proxy.ts`
49
+ - Updated `NetworkProxy` class to `HttpProxy` class
50
+ - Updated all type definitions and interfaces
51
+
52
+ 3. **Update exports**
53
+ - Updated exports in `ts/index.ts`
54
+ - Fixed imports across the codebase
55
+
56
+ ### Phase 2: Extract HTTP Logic from SmartProxy ✅
57
+
58
+ 1. **Create HTTP handler modules in HttpProxy**
59
+ - Created handlers directory with:
60
+ - `redirect-handler.ts` - HTTP redirect logic
61
+ - `static-handler.ts` - Static/ACME route handling
62
+ - `index.ts` - Module exports
63
+
64
+ 2. **Move HTTP parsing from RouteConnectionHandler**
65
+ - Updated `handleRedirectAction` to delegate to `RedirectHandler`
66
+ - Updated `handleStaticAction` to delegate to `StaticHandler`
67
+ - Removed duplicated HTTP parsing logic
68
+
69
+ 3. **Clean up references and naming**
70
+ - Updated all NetworkProxy references to HttpProxy
71
+ - Renamed config properties: `useNetworkProxy` → `useHttpProxy`
72
+ - Renamed config properties: `networkProxyPort` → `httpProxyPort`
73
+ - Fixed HttpProxyBridge methods and references
74
+
75
+ ### Phase 3: Simplify SmartProxy
76
+
77
+ 1. **Update RouteConnectionHandler**
78
+ - Remove embedded HTTP parsing
79
+ - Delegate HTTP routes to HttpProxy
80
+ - Focus on connection routing only
81
+
82
+ 2. **Simplified route handling**
66
83
  ```typescript
67
- // Add challenge route once at initialization
68
- if (hasAcmeRoutes && this.acmeOptions?.email) {
69
- await this.addChallengeRoute();
84
+ // Simplified handleRedirectAction
85
+ private handleRedirectAction(socket, record, route) {
86
+ // Delegate to HttpProxy
87
+ this.httpProxy.handleRedirect(socket, route);
70
88
  }
71
- ```
72
-
73
- 2. Modify `provisionAcmeCertificate()`:
74
- ```typescript
75
- // Remove these lines:
76
- // await this.addChallengeRoute();
77
- // await this.removeChallengeRoute();
78
- ```
79
-
80
- 3. Update `stop()` method:
81
- ```typescript
82
- // Always remove challenge route on shutdown
83
- if (this.challengeRoute) {
84
- await this.removeChallengeRoute();
85
- }
86
- ```
87
-
88
- 4. Add concurrency control:
89
- ```typescript
90
- private challengeRouteLock = new AsyncLock();
91
89
 
92
- private async manageChallengeRoute(operation: 'add' | 'remove'): Promise<void> {
93
- await this.challengeRouteLock.acquire('challenge-route', async () => {
94
- if (operation === 'add') {
95
- await this.addChallengeRoute();
96
- } else {
97
- await this.removeChallengeRoute();
98
- }
99
- });
100
- }
101
- ```
102
-
103
- ### Success Criteria
104
- - [x] No EADDRINUSE errors when provisioning multiple certificates
105
- - [x] Challenge route remains active during entire provisioning cycle
106
- - [x] Port 80 is only bound once per SmartProxy instance
107
- - [x] Proper cleanup on shutdown or error
108
- - [x] All tests pass
109
- - [x] Documentation clearly explains the behavior
110
-
111
- ### Implementation Summary
112
-
113
- The port 80 EADDRINUSE issue has been successfully fixed through the following changes:
114
-
115
- 1. **Challenge Route Lifecycle**: Modified to add challenge route once during initialization and keep it active throughout certificate provisioning
116
- 2. **Concurrency Control**: Added flags to prevent concurrent provisioning and duplicate challenge route operations
117
- 3. **Error Handling**: Enhanced error messages for port conflicts and proper cleanup on errors
118
- 4. **Tests**: Created comprehensive test suite for challenge route lifecycle scenarios
119
- 5. **Documentation**: Updated certificate management guide with troubleshooting section for port conflicts
120
-
121
- The fix ensures that port 80 is only bound once, preventing EADDRINUSE errors during concurrent certificate provisioning operations.
122
-
123
- ### Timeline
124
- - Phase 1: 2 hours (Challenge route lifecycle)
125
- - Phase 2: 1 hour (Provisioning flow)
126
- - Phase 3: 2 hours (Concurrency controls)
127
- - Phase 4: 1 hour (Error handling)
128
- - Phase 5: 2 hours (Testing)
129
- - Phase 6: 1 hour (Documentation)
130
-
131
- Total estimated time: 9 hours
132
-
133
- ### Notes
134
- - This is a critical bug affecting ACME certificate provisioning
135
- - The fix requires careful handling of concurrent operations
136
- - Backward compatibility must be maintained
137
- - Consider impact on renewal operations and edge cases
138
-
139
- ## NEW FINDINGS: Additional Port Management Issues
140
-
141
- ### Problem Statement
142
- Further investigation has revealed additional issues beyond the initial port 80 EADDRINUSE error:
143
-
144
- 1. **Race Condition in updateRoutes**: Certificate manager is recreated during route updates, potentially causing duplicate challenge routes
145
- 2. **Lost State**: The `challengeRouteActive` flag is not persisted when certificate manager is recreated
146
- 3. **No Global Synchronization**: Multiple concurrent route updates can create conflicting certificate managers
147
- 4. **Incomplete Cleanup**: Challenge route removal doesn't verify actual port release
148
-
149
- ### Implementation Plan for Additional Fixes
150
-
151
- #### Phase 1: Fix updateRoutes Race Condition
152
- 1. **Preserve certificate manager state during route updates**
153
- - [x] Track active challenge routes at SmartProxy level
154
- - [x] Pass existing state to new certificate manager instances
155
- - [x] Ensure challenge route is only added once across recreations
156
- - [x] Add proper cleanup before recreation
157
-
158
- #### Phase 2: Implement Global Route Update Lock
159
- 2. **Add synchronization for route updates**
160
- - [x] Implement mutex/semaphore for `updateRoutes` method
161
- - [x] Prevent concurrent certificate manager recreations
162
- - [x] Ensure atomic route updates
163
- - [x] Add timeout handling for locks
164
-
165
- #### Phase 3: Improve State Management
166
- 3. **Persist critical state across certificate manager instances**
167
- - [x] Create global state store for ACME operations
168
- - [x] Track active challenge routes globally
169
- - [x] Maintain port allocation state
170
- - [x] Add state recovery mechanisms
171
-
172
- #### Phase 4: Enhance Cleanup Verification
173
- 4. **Verify resource cleanup before recreation**
174
- - [x] Wait for old certificate manager to fully stop
175
- - [x] Verify challenge route removal from port manager
176
- - [x] Add cleanup confirmation callbacks
177
- - [x] Implement rollback on cleanup failure
178
-
179
- #### Phase 5: Add Comprehensive Testing
180
- 5. **Test race conditions and edge cases**
181
- - [x] Test rapid route updates with ACME
182
- - [x] Test concurrent certificate manager operations
183
- - [x] Test state persistence across recreations
184
- - [x] Test cleanup verification logic
185
-
186
- ### Technical Implementation
187
-
188
- 1. **Global Challenge Route Tracker**:
189
- ```typescript
190
- class SmartProxy {
191
- private globalChallengeRouteActive = false;
192
- private routeUpdateLock = new Mutex();
193
-
194
- async updateRoutes(newRoutes: IRouteConfig[]): Promise<void> {
195
- await this.routeUpdateLock.runExclusive(async () => {
196
- // Update logic here
197
- });
198
- }
90
+ // Simplified handleStaticAction
91
+ private handleStaticAction(socket, record, route) {
92
+ // Delegate to HttpProxy
93
+ this.httpProxy.handleStatic(socket, route);
199
94
  }
200
95
  ```
201
96
 
202
- 2. **State Preservation**:
203
- ```typescript
204
- if (this.certManager) {
205
- const state = {
206
- challengeRouteActive: this.globalChallengeRouteActive,
207
- acmeOptions: this.certManager.getAcmeOptions(),
208
- // ... other state
209
- };
210
-
211
- await this.certManager.stop();
212
- await this.verifyChallengeRouteRemoved();
213
-
214
- this.certManager = await this.createCertificateManager(
215
- newRoutes,
216
- './certs',
217
- state
218
- );
219
- }
220
- ```
221
-
222
- 3. **Cleanup Verification**:
223
- ```typescript
224
- private async verifyChallengeRouteRemoved(): Promise<void> {
225
- const maxRetries = 10;
226
- for (let i = 0; i < maxRetries; i++) {
227
- if (!this.portManager.isListening(80)) {
228
- return;
229
- }
230
- await this.sleep(100);
231
- }
232
- throw new Error('Failed to verify challenge route removal');
233
- }
234
- ```
235
-
236
- ### Success Criteria
237
- - [ ] No race conditions during route updates
238
- - [ ] State properly preserved across certificate manager recreations
239
- - [ ] No duplicate challenge routes
240
- - [ ] Clean resource management
241
- - [ ] All edge cases handled gracefully
242
-
243
- ### Timeline for Additional Fixes
244
- - Phase 1: 3 hours (Race condition fix)
245
- - Phase 2: 2 hours (Global synchronization)
246
- - Phase 3: 2 hours (State management)
247
- - Phase 4: 2 hours (Cleanup verification)
248
- - Phase 5: 3 hours (Testing)
249
-
250
- Total estimated time: 12 hours
251
-
252
- ### Priority
253
- These additional fixes are HIGH PRIORITY as they address fundamental issues that could cause:
254
- - Port binding errors
255
- - Certificate provisioning failures
256
- - Resource leaks
257
- - Inconsistent proxy state
258
-
259
- The fixes should be implemented immediately after the initial port 80 EADDRINUSE fix is deployed.
260
-
261
- ### Implementation Complete
262
-
263
- All additional port management issues have been successfully addressed:
264
-
265
- 1. **Mutex Implementation**: Created a custom `Mutex` class for synchronizing route updates
266
- 2. **Global State Tracking**: Implemented `AcmeStateManager` to track challenge routes globally
267
- 3. **State Preservation**: Modified `SmartCertManager` to accept and preserve state across recreations
268
- 4. **Cleanup Verification**: Added `verifyChallengeRouteRemoved` method to ensure proper cleanup
269
- 5. **Comprehensive Testing**: Created test suites for race conditions and state management
270
-
271
- The implementation ensures:
272
- - No concurrent route updates can create conflicting states
273
- - Challenge route state is preserved across certificate manager recreations
274
- - Port 80 is properly managed without EADDRINUSE errors
275
- - All resources are cleaned up properly during shutdown
276
-
277
- All tests are ready to run and the implementation is complete.
97
+ 3. **Update NetworkProxyBridge**
98
+ - Rename to HttpProxyBridge
99
+ - Update integration points
100
+
101
+ ### Phase 4: Consolidate HTTP Utilities ✅
102
+
103
+ 1. **Move HTTP types to http-proxy**
104
+ - Created consolidated `http-types.ts` in `ts/proxies/http-proxy/models/`
105
+ - Includes HTTP status codes, error classes, and interfaces
106
+ - Added helper functions like `getStatusText()`
107
+
108
+ 2. **Clean up ts/http directory**
109
+ - Kept only router functionality
110
+ - Replaced local HTTP types with re-exports from HttpProxy
111
+ - Updated imports throughout the codebase to use consolidated types
112
+
113
+ ### Phase 5: Update Tests and Documentation ✅
114
+
115
+ 1. **Update test files**
116
+ - Renamed NetworkProxy references to HttpProxy
117
+ - Renamed test files to match new naming
118
+ - Updated imports and references throughout tests
119
+ - Fixed certificate manager method names
120
+
121
+ 2. **Update documentation**
122
+ - Updated README to reflect HttpProxy naming
123
+ - Updated architecture descriptions
124
+ - Updated usage examples
125
+ - Fixed all API documentation references
126
+
127
+ ## Migration Steps
128
+
129
+ 1. Create feature branch: `refactor/http-proxy-consolidation`
130
+ 2. Phase 1: Rename NetworkProxy (1 day)
131
+ 3. Phase 2: Extract HTTP logic (2 days)
132
+ 4. Phase 3: Simplify SmartProxy (1 day)
133
+ 5. Phase 4: Consolidate utilities (1 day)
134
+ 6. Phase 5: Update tests/docs (1 day)
135
+ 7. Integration testing (1 day)
136
+ 8. Code review and merge
137
+
138
+ ## Benefits
139
+
140
+ 1. **Clear Separation**: HTTP/HTTPS handling is clearly separated from TCP routing
141
+ 2. **Better Naming**: HttpProxy clearly indicates its purpose
142
+ 3. **No Duplication**: HTTP parsing logic exists in one place
143
+ 4. **Maintainability**: Easier to modify HTTP handling without affecting routing
144
+ 5. **Testability**: Each component has a single responsibility
145
+ 6. **Performance**: Optimized paths for different traffic types
146
+
147
+ ## Future Enhancements
148
+
149
+ After this refactoring, we can more easily add:
150
+
151
+ 1. HTTP/3 (QUIC) support in HttpProxy
152
+ 2. Advanced HTTP features (compression, caching)
153
+ 3. HTTP middleware system
154
+ 4. Protocol-specific optimizations
155
+ 5. Better HTTP/2 multiplexing
156
+
157
+ ## Breaking Changes from v18 to v19
158
+
159
+ 1. `NetworkProxy` class renamed to `HttpProxy`
160
+ 2. Import paths change from `network-proxy` to `http-proxy`
161
+ 3. Global ACME configuration now available at the top level
162
+ 4. Certificate management unified under SmartCertManager
163
+
164
+ ## Future Enhancements
165
+
166
+ 1. HTTP/3 (QUIC) support in HttpProxy
167
+ 2. Advanced HTTP features (compression, caching)
168
+ 3. HTTP middleware system
169
+ 4. Protocol-specific optimizations
170
+ 5. Better HTTP/2 multiplexing
171
+ 6. Enhanced monitoring and metrics
172
+
173
+ ## Key Features in v19.4.0
174
+
175
+ 1. **Global ACME Configuration**: Default settings for all routes with `certificate: 'auto'`
176
+ 2. **Enhanced Route Management**: Better separation between routing and certificate management
177
+ 3. **Improved Test Coverage**: Fixed test exports and port bindings
178
+ 4. **Better Error Messages**: Clear guidance for ACME configuration issues
179
+ 5. **Non-Privileged Port Support**: Examples for development environments
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@push.rocks/smartproxy',
6
- version: '19.3.2',
6
+ version: '19.3.4',
7
7
  description: 'A powerful proxy package with unified route-based configuration for high traffic management. Features include SSL/TLS support, flexible routing patterns, WebSocket handling, advanced security options, and automatic ACME certificate management.'
8
8
  }
@@ -52,6 +52,13 @@ export class ForwardingHandlerFactory {
52
52
  enabled: true,
53
53
  ...config.http
54
54
  };
55
+ // Set default port and socket if not provided
56
+ if (!result.port) {
57
+ result.port = 80;
58
+ }
59
+ if (!result.socket) {
60
+ result.socket = `/tmp/forwarding-${config.type}-${result.port}.sock`;
61
+ }
55
62
  break;
56
63
 
57
64
  case 'https-passthrough':
@@ -65,6 +72,13 @@ export class ForwardingHandlerFactory {
65
72
  enabled: false,
66
73
  ...config.http
67
74
  };
75
+ // Set default port and socket if not provided
76
+ if (!result.port) {
77
+ result.port = 443;
78
+ }
79
+ if (!result.socket) {
80
+ result.socket = `/tmp/forwarding-${config.type}-${result.port}.sock`;
81
+ }
68
82
  break;
69
83
 
70
84
  case 'https-terminate-to-http':
@@ -84,6 +98,13 @@ export class ForwardingHandlerFactory {
84
98
  maintenance: true,
85
99
  ...config.acme
86
100
  };
101
+ // Set default port and socket if not provided
102
+ if (!result.port) {
103
+ result.port = 443;
104
+ }
105
+ if (!result.socket) {
106
+ result.socket = `/tmp/forwarding-${config.type}-${result.port}.sock`;
107
+ }
87
108
  break;
88
109
 
89
110
  case 'https-terminate-to-https':
@@ -101,6 +122,13 @@ export class ForwardingHandlerFactory {
101
122
  maintenance: true,
102
123
  ...config.acme
103
124
  };
125
+ // Set default port and socket if not provided
126
+ if (!result.port) {
127
+ result.port = 443;
128
+ }
129
+ if (!result.socket) {
130
+ result.socket = `/tmp/forwarding-${config.type}-${result.port}.sock`;
131
+ }
104
132
  break;
105
133
  }
106
134
 
package/ts/index.ts CHANGED
@@ -6,19 +6,23 @@
6
6
  // Migrated to the new proxies structure
7
7
  export * from './proxies/nftables-proxy/index.js';
8
8
 
9
- // Export NetworkProxy elements selectively to avoid RouteManager ambiguity
10
- export { NetworkProxy, CertificateManager, ConnectionPool, RequestHandler, WebSocketHandler } from './proxies/network-proxy/index.js';
11
- export type { IMetricsTracker, MetricsTracker } from './proxies/network-proxy/index.js';
9
+ // Export HttpProxy elements selectively to avoid RouteManager ambiguity
10
+ export { HttpProxy, CertificateManager, ConnectionPool, RequestHandler, WebSocketHandler } from './proxies/http-proxy/index.js';
11
+ export type { IMetricsTracker, MetricsTracker } from './proxies/http-proxy/index.js';
12
12
  // Export models except IAcmeOptions to avoid conflict
13
- export type { INetworkProxyOptions, ICertificateEntry, ILogger } from './proxies/network-proxy/models/types.js';
14
- export { RouteManager as NetworkProxyRouteManager } from './proxies/network-proxy/models/types.js';
13
+ export type { IHttpProxyOptions, ICertificateEntry, ILogger } from './proxies/http-proxy/models/types.js';
14
+ export { RouteManager as HttpProxyRouteManager } from './proxies/http-proxy/models/types.js';
15
15
 
16
- // Certificate and Port80 modules have been removed - use SmartCertManager instead
16
+ // Backward compatibility exports (deprecated)
17
+ export { HttpProxy as NetworkProxy } from './proxies/http-proxy/index.js';
18
+ export type { IHttpProxyOptions as INetworkProxyOptions } from './proxies/http-proxy/models/types.js';
19
+ export { HttpProxyBridge as NetworkProxyBridge } from './proxies/smart-proxy/index.js';
17
20
 
18
- export * from './redirect/classes.redirect.js';
21
+ // Certificate and Port80 modules have been removed - use SmartCertManager instead
22
+ // Redirect module has been removed - use route-based redirects instead
19
23
 
20
24
  // Export SmartProxy elements selectively to avoid RouteManager ambiguity
21
- export { SmartProxy, ConnectionManager, SecurityManager, TimeoutManager, TlsManager, NetworkProxyBridge, RouteConnectionHandler } from './proxies/smart-proxy/index.js';
25
+ export { SmartProxy, ConnectionManager, SecurityManager, TimeoutManager, TlsManager, HttpProxyBridge, RouteConnectionHandler, SmartCertManager } from './proxies/smart-proxy/index.js';
22
26
  export { RouteManager } from './proxies/smart-proxy/route-manager.js';
23
27
  // Export smart-proxy models
24
28
  export type { ISmartProxyOptions, IConnectionRecord, IRouteConfig, IRouteMatch, IRouteAction, IRouteTls, IRouteContext } from './proxies/smart-proxy/models/index.js';
@@ -41,4 +45,4 @@ export type { IAcmeOptions } from './proxies/smart-proxy/models/interfaces.js';
41
45
  export * as forwarding from './forwarding/index.js';
42
46
  // Certificate module has been removed - use SmartCertManager instead
43
47
  export * as tls from './tls/index.js';
44
- export * as http from './http/index.js';
48
+ export * as routing from './routing/index.js';
@@ -2,7 +2,7 @@ import * as plugins from '../../plugins.js';
2
2
  import * as fs from 'fs';
3
3
  import * as path from 'path';
4
4
  import { fileURLToPath } from 'url';
5
- import { type INetworkProxyOptions, type ICertificateEntry, type ILogger, createLogger } from './models/types.js';
5
+ import { type IHttpProxyOptions, type ICertificateEntry, type ILogger, createLogger } from './models/types.js';
6
6
  import type { IRouteConfig } from '../smart-proxy/models/route-types.js';
7
7
 
8
8
  /**
@@ -18,7 +18,7 @@ export class CertificateManager {
18
18
  private logger: ILogger;
19
19
  private httpsServer: plugins.https.Server | null = null;
20
20
 
21
- constructor(private options: INetworkProxyOptions) {
21
+ constructor(private options: IHttpProxyOptions) {
22
22
  this.certificateStoreDir = path.resolve(options.acme?.certificateStore || './certs');
23
23
  this.logger = createLogger(options.logLevel || 'info');
24
24
 
@@ -1,5 +1,5 @@
1
1
  import * as plugins from '../../plugins.js';
2
- import { type INetworkProxyOptions, type IConnectionEntry, type ILogger, createLogger } from './models/types.js';
2
+ import { type IHttpProxyOptions, type IConnectionEntry, type ILogger, createLogger } from './models/types.js';
3
3
 
4
4
  /**
5
5
  * Manages a pool of backend connections for efficient reuse
@@ -9,7 +9,7 @@ export class ConnectionPool {
9
9
  private roundRobinPositions: Map<string, number> = new Map();
10
10
  private logger: ILogger;
11
11
 
12
- constructor(private options: INetworkProxyOptions) {
12
+ constructor(private options: IHttpProxyOptions) {
13
13
  this.logger = createLogger(options.logLevel || 'info');
14
14
  }
15
15
 
@@ -0,0 +1,6 @@
1
+ /**
2
+ * HTTP handlers for various route types
3
+ */
4
+
5
+ export { RedirectHandler } from './redirect-handler.js';
6
+ export { StaticHandler } from './static-handler.js';