@unieojs/unieo 0.1.0

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 (365) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +586 -0
  3. package/dist/cjs/Route.d.ts +21 -0
  4. package/dist/cjs/Route.d.ts.map +1 -0
  5. package/dist/cjs/Route.js +60 -0
  6. package/dist/cjs/Route.js.map +1 -0
  7. package/dist/cjs/common/Enum.d.ts +158 -0
  8. package/dist/cjs/common/Enum.d.ts.map +1 -0
  9. package/dist/cjs/common/Enum.js +222 -0
  10. package/dist/cjs/common/Enum.js.map +1 -0
  11. package/dist/cjs/common/Error/Base.d.ts +18 -0
  12. package/dist/cjs/common/Error/Base.d.ts.map +1 -0
  13. package/dist/cjs/common/Error/Base.js +25 -0
  14. package/dist/cjs/common/Error/Base.js.map +1 -0
  15. package/dist/cjs/common/Error/index.d.ts +59 -0
  16. package/dist/cjs/common/Error/index.d.ts.map +1 -0
  17. package/dist/cjs/common/Error/index.js +312 -0
  18. package/dist/cjs/common/Error/index.js.map +1 -0
  19. package/dist/cjs/common/constants.d.ts +2 -0
  20. package/dist/cjs/common/constants.d.ts.map +1 -0
  21. package/dist/cjs/common/constants.js +5 -0
  22. package/dist/cjs/common/constants.js.map +1 -0
  23. package/dist/cjs/core/ERPerformance.d.ts +30 -0
  24. package/dist/cjs/core/ERPerformance.d.ts.map +1 -0
  25. package/dist/cjs/core/ERPerformance.js +77 -0
  26. package/dist/cjs/core/ERPerformance.js.map +1 -0
  27. package/dist/cjs/core/Fetch.d.ts +9 -0
  28. package/dist/cjs/core/Fetch.d.ts.map +1 -0
  29. package/dist/cjs/core/Fetch.js +76 -0
  30. package/dist/cjs/core/Fetch.js.map +1 -0
  31. package/dist/cjs/core/Match.d.ts +35 -0
  32. package/dist/cjs/core/Match.d.ts.map +1 -0
  33. package/dist/cjs/core/Match.js +158 -0
  34. package/dist/cjs/core/Match.js.map +1 -0
  35. package/dist/cjs/core/Processor.d.ts +28 -0
  36. package/dist/cjs/core/Processor.d.ts.map +1 -0
  37. package/dist/cjs/core/Processor.js +3 -0
  38. package/dist/cjs/core/Processor.js.map +1 -0
  39. package/dist/cjs/core/Redirect.d.ts +17 -0
  40. package/dist/cjs/core/Redirect.d.ts.map +1 -0
  41. package/dist/cjs/core/Redirect.js +30 -0
  42. package/dist/cjs/core/Redirect.js.map +1 -0
  43. package/dist/cjs/core/RequestRewrite.d.ts +31 -0
  44. package/dist/cjs/core/RequestRewrite.d.ts.map +1 -0
  45. package/dist/cjs/core/RequestRewrite.js +201 -0
  46. package/dist/cjs/core/RequestRewrite.js.map +1 -0
  47. package/dist/cjs/core/ResponseRewrite.d.ts +26 -0
  48. package/dist/cjs/core/ResponseRewrite.d.ts.map +1 -0
  49. package/dist/cjs/core/ResponseRewrite.js +55 -0
  50. package/dist/cjs/core/ResponseRewrite.js.map +1 -0
  51. package/dist/cjs/core/RouteConfig.d.ts +21 -0
  52. package/dist/cjs/core/RouteConfig.d.ts.map +1 -0
  53. package/dist/cjs/core/RouteConfig.js +3 -0
  54. package/dist/cjs/core/RouteConfig.js.map +1 -0
  55. package/dist/cjs/core/RouteContext.d.ts +55 -0
  56. package/dist/cjs/core/RouteContext.d.ts.map +1 -0
  57. package/dist/cjs/core/RouteContext.js +199 -0
  58. package/dist/cjs/core/RouteContext.js.map +1 -0
  59. package/dist/cjs/core/Value/SourceProcessor.d.ts +47 -0
  60. package/dist/cjs/core/Value/SourceProcessor.d.ts.map +1 -0
  61. package/dist/cjs/core/Value/SourceProcessor.js +121 -0
  62. package/dist/cjs/core/Value/SourceProcessor.js.map +1 -0
  63. package/dist/cjs/core/Value/SourceProcessorManager.d.ts +7 -0
  64. package/dist/cjs/core/Value/SourceProcessorManager.d.ts.map +1 -0
  65. package/dist/cjs/core/Value/SourceProcessorManager.js +33 -0
  66. package/dist/cjs/core/Value/SourceProcessorManager.js.map +1 -0
  67. package/dist/cjs/core/Value/ValueProcessor.d.ts +25 -0
  68. package/dist/cjs/core/Value/ValueProcessor.d.ts.map +1 -0
  69. package/dist/cjs/core/Value/ValueProcessor.js +57 -0
  70. package/dist/cjs/core/Value/ValueProcessor.js.map +1 -0
  71. package/dist/cjs/core/Value/ValueProcessorManager.d.ts +8 -0
  72. package/dist/cjs/core/Value/ValueProcessorManager.d.ts.map +1 -0
  73. package/dist/cjs/core/Value/ValueProcessorManager.js +28 -0
  74. package/dist/cjs/core/Value/ValueProcessorManager.js.map +1 -0
  75. package/dist/cjs/core/Value/index.d.ts +35 -0
  76. package/dist/cjs/core/Value/index.d.ts.map +1 -0
  77. package/dist/cjs/core/Value/index.js +57 -0
  78. package/dist/cjs/core/Value/index.js.map +1 -0
  79. package/dist/cjs/core/index.d.ts +9 -0
  80. package/dist/cjs/core/index.d.ts.map +1 -0
  81. package/dist/cjs/core/index.js +25 -0
  82. package/dist/cjs/core/index.js.map +1 -0
  83. package/dist/cjs/executor/GroupExecutor.d.ts +29 -0
  84. package/dist/cjs/executor/GroupExecutor.d.ts.map +1 -0
  85. package/dist/cjs/executor/GroupExecutor.js +174 -0
  86. package/dist/cjs/executor/GroupExecutor.js.map +1 -0
  87. package/dist/cjs/executor/RouteExecutor.d.ts +26 -0
  88. package/dist/cjs/executor/RouteExecutor.d.ts.map +1 -0
  89. package/dist/cjs/executor/RouteExecutor.js +71 -0
  90. package/dist/cjs/executor/RouteExecutor.js.map +1 -0
  91. package/dist/cjs/executor/SubExecutor.d.ts +20 -0
  92. package/dist/cjs/executor/SubExecutor.d.ts.map +1 -0
  93. package/dist/cjs/executor/SubExecutor.js +127 -0
  94. package/dist/cjs/executor/SubExecutor.js.map +1 -0
  95. package/dist/cjs/executor/enum.d.ts +5 -0
  96. package/dist/cjs/executor/enum.d.ts.map +1 -0
  97. package/dist/cjs/executor/enum.js +9 -0
  98. package/dist/cjs/executor/enum.js.map +1 -0
  99. package/dist/cjs/executor/index.d.ts +5 -0
  100. package/dist/cjs/executor/index.d.ts.map +1 -0
  101. package/dist/cjs/executor/index.js +21 -0
  102. package/dist/cjs/executor/index.js.map +1 -0
  103. package/dist/cjs/index.d.ts +6 -0
  104. package/dist/cjs/index.d.ts.map +1 -0
  105. package/dist/cjs/index.js +22 -0
  106. package/dist/cjs/index.js.map +1 -0
  107. package/dist/cjs/middleware/DefaultFetch.d.ts +8 -0
  108. package/dist/cjs/middleware/DefaultFetch.d.ts.map +1 -0
  109. package/dist/cjs/middleware/DefaultFetch.js +36 -0
  110. package/dist/cjs/middleware/DefaultFetch.js.map +1 -0
  111. package/dist/cjs/middleware/ErrorFallback.d.ts +7 -0
  112. package/dist/cjs/middleware/ErrorFallback.d.ts.map +1 -0
  113. package/dist/cjs/middleware/ErrorFallback.js +30 -0
  114. package/dist/cjs/middleware/ErrorFallback.js.map +1 -0
  115. package/dist/cjs/middleware/index.d.ts +16 -0
  116. package/dist/cjs/middleware/index.d.ts.map +1 -0
  117. package/dist/cjs/middleware/index.js +119 -0
  118. package/dist/cjs/middleware/index.js.map +1 -0
  119. package/dist/cjs/middleware/types.d.ts +13 -0
  120. package/dist/cjs/middleware/types.d.ts.map +1 -0
  121. package/dist/cjs/middleware/types.js +3 -0
  122. package/dist/cjs/middleware/types.js.map +1 -0
  123. package/dist/cjs/processor/Factory.d.ts +19 -0
  124. package/dist/cjs/processor/Factory.d.ts.map +1 -0
  125. package/dist/cjs/processor/Factory.js +72 -0
  126. package/dist/cjs/processor/Factory.js.map +1 -0
  127. package/dist/cjs/processor/RouteProcessor.d.ts +13 -0
  128. package/dist/cjs/processor/RouteProcessor.d.ts.map +1 -0
  129. package/dist/cjs/processor/RouteProcessor.js +12 -0
  130. package/dist/cjs/processor/RouteProcessor.js.map +1 -0
  131. package/dist/cjs/processor/group/CommonGroupProcessor.d.ts +36 -0
  132. package/dist/cjs/processor/group/CommonGroupProcessor.d.ts.map +1 -0
  133. package/dist/cjs/processor/group/CommonGroupProcessor.js +41 -0
  134. package/dist/cjs/processor/group/CommonGroupProcessor.js.map +1 -0
  135. package/dist/cjs/processor/index.d.ts +4 -0
  136. package/dist/cjs/processor/index.d.ts.map +1 -0
  137. package/dist/cjs/processor/index.js +8 -0
  138. package/dist/cjs/processor/index.js.map +1 -0
  139. package/dist/cjs/processor/sub/CommonSubProcessor.d.ts +46 -0
  140. package/dist/cjs/processor/sub/CommonSubProcessor.d.ts.map +1 -0
  141. package/dist/cjs/processor/sub/CommonSubProcessor.js +68 -0
  142. package/dist/cjs/processor/sub/CommonSubProcessor.js.map +1 -0
  143. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  144. package/dist/cjs/util/Array.d.ts +3 -0
  145. package/dist/cjs/util/Array.d.ts.map +1 -0
  146. package/dist/cjs/util/Array.js +15 -0
  147. package/dist/cjs/util/Array.js.map +1 -0
  148. package/dist/cjs/util/Header.d.ts +5 -0
  149. package/dist/cjs/util/Header.d.ts.map +1 -0
  150. package/dist/cjs/util/Header.js +87 -0
  151. package/dist/cjs/util/Header.js.map +1 -0
  152. package/dist/cjs/util/LogUtil.d.ts +2 -0
  153. package/dist/cjs/util/LogUtil.d.ts.map +1 -0
  154. package/dist/cjs/util/LogUtil.js +10 -0
  155. package/dist/cjs/util/LogUtil.js.map +1 -0
  156. package/dist/cjs/util/PathRegexp.d.ts +12 -0
  157. package/dist/cjs/util/PathRegexp.d.ts.map +1 -0
  158. package/dist/cjs/util/PathRegexp.js +74 -0
  159. package/dist/cjs/util/PathRegexp.js.map +1 -0
  160. package/dist/cjs/util/PrefixLogger.d.ts +13 -0
  161. package/dist/cjs/util/PrefixLogger.d.ts.map +1 -0
  162. package/dist/cjs/util/PrefixLogger.js +38 -0
  163. package/dist/cjs/util/PrefixLogger.js.map +1 -0
  164. package/dist/cjs/util/RedirectHelper.d.ts +29 -0
  165. package/dist/cjs/util/RedirectHelper.d.ts.map +1 -0
  166. package/dist/cjs/util/RedirectHelper.js +140 -0
  167. package/dist/cjs/util/RedirectHelper.js.map +1 -0
  168. package/dist/cjs/util/Request.d.ts +11 -0
  169. package/dist/cjs/util/Request.d.ts.map +1 -0
  170. package/dist/cjs/util/Request.js +25 -0
  171. package/dist/cjs/util/Request.js.map +1 -0
  172. package/dist/cjs/util/Response.d.ts +12 -0
  173. package/dist/cjs/util/Response.d.ts.map +1 -0
  174. package/dist/cjs/util/Response.js +31 -0
  175. package/dist/cjs/util/Response.js.map +1 -0
  176. package/dist/cjs/util/Template.d.ts +2 -0
  177. package/dist/cjs/util/Template.d.ts.map +1 -0
  178. package/dist/cjs/util/Template.js +14 -0
  179. package/dist/cjs/util/Template.js.map +1 -0
  180. package/dist/cjs/util/Url.d.ts +19 -0
  181. package/dist/cjs/util/Url.d.ts.map +1 -0
  182. package/dist/cjs/util/Url.js +112 -0
  183. package/dist/cjs/util/Url.js.map +1 -0
  184. package/dist/esm/Route.d.ts +21 -0
  185. package/dist/esm/Route.d.ts.map +1 -0
  186. package/dist/esm/Route.js +56 -0
  187. package/dist/esm/Route.js.map +1 -0
  188. package/dist/esm/common/Enum.d.ts +158 -0
  189. package/dist/esm/common/Enum.d.ts.map +1 -0
  190. package/dist/esm/common/Enum.js +219 -0
  191. package/dist/esm/common/Enum.js.map +1 -0
  192. package/dist/esm/common/Error/Base.d.ts +18 -0
  193. package/dist/esm/common/Error/Base.d.ts.map +1 -0
  194. package/dist/esm/common/Error/Base.js +21 -0
  195. package/dist/esm/common/Error/Base.js.map +1 -0
  196. package/dist/esm/common/Error/index.d.ts +59 -0
  197. package/dist/esm/common/Error/index.d.ts.map +1 -0
  198. package/dist/esm/common/Error/index.js +294 -0
  199. package/dist/esm/common/Error/index.js.map +1 -0
  200. package/dist/esm/common/constants.d.ts +2 -0
  201. package/dist/esm/common/constants.d.ts.map +1 -0
  202. package/dist/esm/common/constants.js +2 -0
  203. package/dist/esm/common/constants.js.map +1 -0
  204. package/dist/esm/core/ERPerformance.d.ts +30 -0
  205. package/dist/esm/core/ERPerformance.d.ts.map +1 -0
  206. package/dist/esm/core/ERPerformance.js +72 -0
  207. package/dist/esm/core/ERPerformance.js.map +1 -0
  208. package/dist/esm/core/Fetch.d.ts +9 -0
  209. package/dist/esm/core/Fetch.d.ts.map +1 -0
  210. package/dist/esm/core/Fetch.js +72 -0
  211. package/dist/esm/core/Fetch.js.map +1 -0
  212. package/dist/esm/core/Match.d.ts +35 -0
  213. package/dist/esm/core/Match.d.ts.map +1 -0
  214. package/dist/esm/core/Match.js +154 -0
  215. package/dist/esm/core/Match.js.map +1 -0
  216. package/dist/esm/core/Processor.d.ts +28 -0
  217. package/dist/esm/core/Processor.d.ts.map +1 -0
  218. package/dist/esm/core/Processor.js +2 -0
  219. package/dist/esm/core/Processor.js.map +1 -0
  220. package/dist/esm/core/Redirect.d.ts +17 -0
  221. package/dist/esm/core/Redirect.d.ts.map +1 -0
  222. package/dist/esm/core/Redirect.js +26 -0
  223. package/dist/esm/core/Redirect.js.map +1 -0
  224. package/dist/esm/core/RequestRewrite.d.ts +31 -0
  225. package/dist/esm/core/RequestRewrite.d.ts.map +1 -0
  226. package/dist/esm/core/RequestRewrite.js +194 -0
  227. package/dist/esm/core/RequestRewrite.js.map +1 -0
  228. package/dist/esm/core/ResponseRewrite.d.ts +26 -0
  229. package/dist/esm/core/ResponseRewrite.d.ts.map +1 -0
  230. package/dist/esm/core/ResponseRewrite.js +51 -0
  231. package/dist/esm/core/ResponseRewrite.js.map +1 -0
  232. package/dist/esm/core/RouteConfig.d.ts +21 -0
  233. package/dist/esm/core/RouteConfig.d.ts.map +1 -0
  234. package/dist/esm/core/RouteConfig.js +2 -0
  235. package/dist/esm/core/RouteConfig.js.map +1 -0
  236. package/dist/esm/core/RouteContext.d.ts +55 -0
  237. package/dist/esm/core/RouteContext.d.ts.map +1 -0
  238. package/dist/esm/core/RouteContext.js +195 -0
  239. package/dist/esm/core/RouteContext.js.map +1 -0
  240. package/dist/esm/core/Value/SourceProcessor.d.ts +47 -0
  241. package/dist/esm/core/Value/SourceProcessor.d.ts.map +1 -0
  242. package/dist/esm/core/Value/SourceProcessor.js +105 -0
  243. package/dist/esm/core/Value/SourceProcessor.js.map +1 -0
  244. package/dist/esm/core/Value/SourceProcessorManager.d.ts +7 -0
  245. package/dist/esm/core/Value/SourceProcessorManager.d.ts.map +1 -0
  246. package/dist/esm/core/Value/SourceProcessorManager.js +29 -0
  247. package/dist/esm/core/Value/SourceProcessorManager.js.map +1 -0
  248. package/dist/esm/core/Value/ValueProcessor.d.ts +25 -0
  249. package/dist/esm/core/Value/ValueProcessor.d.ts.map +1 -0
  250. package/dist/esm/core/Value/ValueProcessor.js +48 -0
  251. package/dist/esm/core/Value/ValueProcessor.js.map +1 -0
  252. package/dist/esm/core/Value/ValueProcessorManager.d.ts +8 -0
  253. package/dist/esm/core/Value/ValueProcessorManager.d.ts.map +1 -0
  254. package/dist/esm/core/Value/ValueProcessorManager.js +24 -0
  255. package/dist/esm/core/Value/ValueProcessorManager.js.map +1 -0
  256. package/dist/esm/core/Value/index.d.ts +35 -0
  257. package/dist/esm/core/Value/index.d.ts.map +1 -0
  258. package/dist/esm/core/Value/index.js +53 -0
  259. package/dist/esm/core/Value/index.js.map +1 -0
  260. package/dist/esm/core/index.d.ts +9 -0
  261. package/dist/esm/core/index.d.ts.map +1 -0
  262. package/dist/esm/core/index.js +9 -0
  263. package/dist/esm/core/index.js.map +1 -0
  264. package/dist/esm/executor/GroupExecutor.d.ts +29 -0
  265. package/dist/esm/executor/GroupExecutor.d.ts.map +1 -0
  266. package/dist/esm/executor/GroupExecutor.js +170 -0
  267. package/dist/esm/executor/GroupExecutor.js.map +1 -0
  268. package/dist/esm/executor/RouteExecutor.d.ts +26 -0
  269. package/dist/esm/executor/RouteExecutor.d.ts.map +1 -0
  270. package/dist/esm/executor/RouteExecutor.js +67 -0
  271. package/dist/esm/executor/RouteExecutor.js.map +1 -0
  272. package/dist/esm/executor/SubExecutor.d.ts +20 -0
  273. package/dist/esm/executor/SubExecutor.d.ts.map +1 -0
  274. package/dist/esm/executor/SubExecutor.js +123 -0
  275. package/dist/esm/executor/SubExecutor.js.map +1 -0
  276. package/dist/esm/executor/enum.d.ts +5 -0
  277. package/dist/esm/executor/enum.d.ts.map +1 -0
  278. package/dist/esm/executor/enum.js +6 -0
  279. package/dist/esm/executor/enum.js.map +1 -0
  280. package/dist/esm/executor/index.d.ts +5 -0
  281. package/dist/esm/executor/index.d.ts.map +1 -0
  282. package/dist/esm/executor/index.js +5 -0
  283. package/dist/esm/executor/index.js.map +1 -0
  284. package/dist/esm/index.d.ts +6 -0
  285. package/dist/esm/index.d.ts.map +1 -0
  286. package/dist/esm/index.js +6 -0
  287. package/dist/esm/index.js.map +1 -0
  288. package/dist/esm/middleware/DefaultFetch.d.ts +8 -0
  289. package/dist/esm/middleware/DefaultFetch.d.ts.map +1 -0
  290. package/dist/esm/middleware/DefaultFetch.js +34 -0
  291. package/dist/esm/middleware/DefaultFetch.js.map +1 -0
  292. package/dist/esm/middleware/ErrorFallback.d.ts +7 -0
  293. package/dist/esm/middleware/ErrorFallback.d.ts.map +1 -0
  294. package/dist/esm/middleware/ErrorFallback.js +28 -0
  295. package/dist/esm/middleware/ErrorFallback.js.map +1 -0
  296. package/dist/esm/middleware/index.d.ts +16 -0
  297. package/dist/esm/middleware/index.d.ts.map +1 -0
  298. package/dist/esm/middleware/index.js +112 -0
  299. package/dist/esm/middleware/index.js.map +1 -0
  300. package/dist/esm/middleware/types.d.ts +13 -0
  301. package/dist/esm/middleware/types.d.ts.map +1 -0
  302. package/dist/esm/middleware/types.js +2 -0
  303. package/dist/esm/middleware/types.js.map +1 -0
  304. package/dist/esm/processor/Factory.d.ts +19 -0
  305. package/dist/esm/processor/Factory.d.ts.map +1 -0
  306. package/dist/esm/processor/Factory.js +68 -0
  307. package/dist/esm/processor/Factory.js.map +1 -0
  308. package/dist/esm/processor/RouteProcessor.d.ts +13 -0
  309. package/dist/esm/processor/RouteProcessor.d.ts.map +1 -0
  310. package/dist/esm/processor/RouteProcessor.js +8 -0
  311. package/dist/esm/processor/RouteProcessor.js.map +1 -0
  312. package/dist/esm/processor/group/CommonGroupProcessor.d.ts +36 -0
  313. package/dist/esm/processor/group/CommonGroupProcessor.d.ts.map +1 -0
  314. package/dist/esm/processor/group/CommonGroupProcessor.js +37 -0
  315. package/dist/esm/processor/group/CommonGroupProcessor.js.map +1 -0
  316. package/dist/esm/processor/index.d.ts +4 -0
  317. package/dist/esm/processor/index.d.ts.map +1 -0
  318. package/dist/esm/processor/index.js +3 -0
  319. package/dist/esm/processor/index.js.map +1 -0
  320. package/dist/esm/processor/sub/CommonSubProcessor.d.ts +46 -0
  321. package/dist/esm/processor/sub/CommonSubProcessor.d.ts.map +1 -0
  322. package/dist/esm/processor/sub/CommonSubProcessor.js +64 -0
  323. package/dist/esm/processor/sub/CommonSubProcessor.js.map +1 -0
  324. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  325. package/dist/esm/util/Array.d.ts +3 -0
  326. package/dist/esm/util/Array.d.ts.map +1 -0
  327. package/dist/esm/util/Array.js +11 -0
  328. package/dist/esm/util/Array.js.map +1 -0
  329. package/dist/esm/util/Header.d.ts +5 -0
  330. package/dist/esm/util/Header.d.ts.map +1 -0
  331. package/dist/esm/util/Header.js +81 -0
  332. package/dist/esm/util/Header.js.map +1 -0
  333. package/dist/esm/util/LogUtil.d.ts +2 -0
  334. package/dist/esm/util/LogUtil.d.ts.map +1 -0
  335. package/dist/esm/util/LogUtil.js +7 -0
  336. package/dist/esm/util/LogUtil.js.map +1 -0
  337. package/dist/esm/util/PathRegexp.d.ts +12 -0
  338. package/dist/esm/util/PathRegexp.d.ts.map +1 -0
  339. package/dist/esm/util/PathRegexp.js +69 -0
  340. package/dist/esm/util/PathRegexp.js.map +1 -0
  341. package/dist/esm/util/PrefixLogger.d.ts +13 -0
  342. package/dist/esm/util/PrefixLogger.d.ts.map +1 -0
  343. package/dist/esm/util/PrefixLogger.js +34 -0
  344. package/dist/esm/util/PrefixLogger.js.map +1 -0
  345. package/dist/esm/util/RedirectHelper.d.ts +29 -0
  346. package/dist/esm/util/RedirectHelper.d.ts.map +1 -0
  347. package/dist/esm/util/RedirectHelper.js +136 -0
  348. package/dist/esm/util/RedirectHelper.js.map +1 -0
  349. package/dist/esm/util/Request.d.ts +11 -0
  350. package/dist/esm/util/Request.d.ts.map +1 -0
  351. package/dist/esm/util/Request.js +20 -0
  352. package/dist/esm/util/Request.js.map +1 -0
  353. package/dist/esm/util/Response.d.ts +12 -0
  354. package/dist/esm/util/Response.d.ts.map +1 -0
  355. package/dist/esm/util/Response.js +25 -0
  356. package/dist/esm/util/Response.js.map +1 -0
  357. package/dist/esm/util/Template.d.ts +2 -0
  358. package/dist/esm/util/Template.d.ts.map +1 -0
  359. package/dist/esm/util/Template.js +11 -0
  360. package/dist/esm/util/Template.js.map +1 -0
  361. package/dist/esm/util/Url.d.ts +19 -0
  362. package/dist/esm/util/Url.d.ts.map +1 -0
  363. package/dist/esm/util/Url.js +99 -0
  364. package/dist/esm/util/Url.js.map +1 -0
  365. package/package.json +69 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Unieo Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,586 @@
1
+ # πŸ₯ Unieo
2
+
3
+ πŸ’ͺ🏻 A powerful router core library for edge computing environments.
4
+
5
+ Unieo `[/juːniˈoʊ/]` provides a flexible and extensible routing system designed specifically for edge runtimes. It is built with **WinterTC (Web-interoperable Server Runtimes Technical Committee) standards compliance**, ensuring seamless operation on any WinterTC-compliant web runtime, including Cloudflare Workers, Vercel Edge Functions, Aliyun EdgeRoutine, and other modern edge platforms.
6
+
7
+ ## ✨ Features
8
+
9
+ - 🌐 **WinterTC Standards Compliance** - Compatible with Web-interoperable Server Runtimes Technical Committee standards, ensuring cross-platform compatibility
10
+ - πŸš€ **High-performance routing** - Optimized for edge environments with minimal overhead
11
+ - πŸ“¦ **Universal runtime support** - Runs on any WinterTC-compliant runtime including Cloudflare Workers, Vercel Edge, Deno Deploy, Bun, Node.js, and more
12
+ - πŸ› οΈ **Extensible executor system** - Pluggable processor architecture for custom routing logic
13
+ - πŸ”§ **Middleware support** - Comprehensive middleware system for request/response transformation
14
+ - 🎯 **Advanced matching** - Flexible matching system with multiple operators and conditions
15
+ - πŸ”„ **Request/Response rewriting** - Powerful URL, header, and content transformation capabilities
16
+ - 🚦 **Conditional routing** - Route based on headers, cookies, device types, and more
17
+
18
+ ## πŸ“₯ Installation
19
+
20
+ ```bash
21
+ npm install unieo --save
22
+ ```
23
+
24
+ ## πŸƒβ€β™‚οΈ Quick Start
25
+
26
+ > 🚧 **Simplifying in Progress** - The current route configuration schema is relatively complex. We are developing a more concise and intuitive routing API. Stay tuned! You'll be able to achieve the same functionality with much less code in the future.
27
+
28
+ ### πŸ’‘ Basic Usage
29
+
30
+ ```typescript
31
+ import { Route } from 'unieo';
32
+
33
+ addEventListener('fetch', (event: FetchEvent) => {
34
+ // Create Route instance
35
+ const route = new Route({ event });
36
+
37
+ // Define routes configuration
38
+ const routes = [
39
+ {
40
+ name: 'api-routes',
41
+ type: 'api',
42
+ processor: 'COMMON_GROUP_PROCESSOR',
43
+ routes: [
44
+ {
45
+ name: 'health-check',
46
+ type: 'health',
47
+ processor: 'COMMON_SUB_PROCESSOR',
48
+ meta: {
49
+ match: {
50
+ list: [
51
+ {
52
+ origin: { source: 'path', sourceType: 'url' },
53
+ criteria: { source: '/health', sourceType: 'literal' },
54
+ operator: 'equal'
55
+ }
56
+ ]
57
+ },
58
+ responseRewrites: [
59
+ {
60
+ type: 'header',
61
+ field: 'content-type',
62
+ value: { source: 'application/json', sourceType: 'literal' },
63
+ operation: 'set'
64
+ }
65
+ ]
66
+ }
67
+ }
68
+ ]
69
+ }
70
+ ];
71
+
72
+ // Execute routes
73
+ const response = route.execute(routes);
74
+
75
+ // Respond
76
+ event.respondWith(response);
77
+ });
78
+ ```
79
+
80
+ ## 🎨 Use Cases
81
+
82
+ ### 🌐 1. API Gateway
83
+
84
+ Perfect for building API gateways that need request routing, authentication, and response transformation:
85
+
86
+ ```typescript
87
+ const apiGatewayRoutes = [
88
+ {
89
+ name: 'auth-group',
90
+ type: 'authentication',
91
+ processor: 'COMMON_GROUP_PROCESSOR',
92
+ routes: [
93
+ {
94
+ name: 'require-auth',
95
+ type: 'auth-check',
96
+ processor: 'COMMON_SUB_PROCESSOR',
97
+ meta: {
98
+ match: {
99
+ list: [
100
+ {
101
+ origin: { source: 'path', sourceType: 'url' },
102
+ criteria: { source: '^/api/private', sourceType: 'literal' },
103
+ operator: 'regexp'
104
+ }
105
+ ]
106
+ },
107
+ requestRewrites: [
108
+ {
109
+ type: 'header',
110
+ field: 'x-auth-required',
111
+ value: { source: 'true', sourceType: 'literal' },
112
+ operation: 'set'
113
+ }
114
+ ]
115
+ }
116
+ }
117
+ ]
118
+ }
119
+ ];
120
+ ```
121
+
122
+ ### πŸš€ 2. CDN Edge Logic
123
+
124
+ Implement sophisticated CDN logic with cache control and content optimization:
125
+
126
+ ```typescript
127
+ const cdnRoutes = [
128
+ {
129
+ name: 'static-assets',
130
+ type: 'cdn',
131
+ processor: 'COMMON_GROUP_PROCESSOR',
132
+ routes: [
133
+ {
134
+ name: 'image-optimization',
135
+ type: 'image',
136
+ processor: 'COMMON_SUB_PROCESSOR',
137
+ meta: {
138
+ match: {
139
+ list: [
140
+ {
141
+ origin: { source: 'path', sourceType: 'url' },
142
+ criteria: { source: '\\.(jpg|jpeg|png|webp)$', sourceType: 'literal' },
143
+ operator: 'regexp'
144
+ }
145
+ ]
146
+ },
147
+ requestRewrites: [
148
+ {
149
+ type: 'middleware',
150
+ value: {
151
+ source: [
152
+ ['ImageOptimization', { quality: 80, format: 'webp' }],
153
+ ['DefaultFetch', {}]
154
+ ],
155
+ sourceType: 'literal'
156
+ },
157
+ operation: 'set'
158
+ }
159
+ ]
160
+ }
161
+ }
162
+ ]
163
+ }
164
+ ];
165
+ ```
166
+
167
+ ### πŸ§ͺ 3. A/B Testing and Feature Flags
168
+
169
+ Implement dynamic A/B testing based on user characteristics:
170
+
171
+ ```typescript
172
+ const abTestingRoutes = [
173
+ {
174
+ name: 'feature-toggle',
175
+ type: 'ab-test',
176
+ processor: 'COMMON_GROUP_PROCESSOR',
177
+ routes: [
178
+ {
179
+ name: 'new-ui-test',
180
+ type: 'ui-variant',
181
+ processor: 'COMMON_SUB_PROCESSOR',
182
+ meta: {
183
+ match: {
184
+ list: [
185
+ {
186
+ origin: { source: 'x-user-segment', sourceType: 'request_header' },
187
+ criteria: { source: 'beta', sourceType: 'literal' },
188
+ operator: 'equal'
189
+ },
190
+ {
191
+ origin: { source: 'path', sourceType: 'url' },
192
+ criteria: { source: '/app', sourceType: 'literal' },
193
+ operator: 'prefix'
194
+ }
195
+ ],
196
+ operator: 'and'
197
+ },
198
+ requestRewrites: [
199
+ {
200
+ type: 'url',
201
+ value: { source: '/app-beta', sourceType: 'literal' },
202
+ operation: 'set'
203
+ }
204
+ ]
205
+ }
206
+ }
207
+ ]
208
+ }
209
+ ];
210
+ ```
211
+
212
+ ### πŸ“± 4. Device-Based Routing
213
+
214
+ Route requests based on device characteristics for optimal user experience:
215
+
216
+ ```typescript
217
+ const deviceRoutes = [
218
+ {
219
+ name: 'device-routing',
220
+ type: 'responsive',
221
+ processor: 'COMMON_GROUP_PROCESSOR',
222
+ routes: [
223
+ {
224
+ name: 'mobile-optimization',
225
+ type: 'mobile',
226
+ processor: 'COMMON_SUB_PROCESSOR',
227
+ meta: {
228
+ match: {
229
+ list: [
230
+ {
231
+ origin: { source: 'type', sourceType: 'device' },
232
+ criteria: { source: 'mobile', sourceType: 'literal' },
233
+ operator: 'equal'
234
+ }
235
+ ]
236
+ },
237
+ requestRewrites: [
238
+ {
239
+ type: 'header',
240
+ field: 'x-mobile-optimized',
241
+ value: { source: 'true', sourceType: 'literal' },
242
+ operation: 'set'
243
+ }
244
+ ]
245
+ }
246
+ }
247
+ ]
248
+ }
249
+ ];
250
+ ```
251
+
252
+ ### 🌍 5. Geographical Content Delivery
253
+
254
+ Serve localized content based on user location:
255
+
256
+ ```typescript
257
+ const geoRoutes = [
258
+ {
259
+ name: 'geo-routing',
260
+ type: 'localization',
261
+ processor: 'COMMON_GROUP_PROCESSOR',
262
+ routes: [
263
+ {
264
+ name: 'eu-compliance',
265
+ type: 'gdpr',
266
+ processor: 'COMMON_SUB_PROCESSOR',
267
+ meta: {
268
+ match: {
269
+ list: [
270
+ {
271
+ origin: { source: 'country', sourceType: 'edge_info' },
272
+ criteria: { source: 'EU', sourceType: 'literal' },
273
+ operator: 'in'
274
+ }
275
+ ]
276
+ },
277
+ responseRewrites: [
278
+ {
279
+ type: 'header',
280
+ field: 'x-privacy-policy',
281
+ value: { source: 'gdpr-compliant', sourceType: 'literal' },
282
+ operation: 'set'
283
+ }
284
+ ]
285
+ }
286
+ }
287
+ ]
288
+ }
289
+ ];
290
+ ```
291
+
292
+ ## βš™οΈ Advanced Configuration
293
+
294
+ ### πŸ”— Middleware Integration
295
+
296
+ Unieo supports a comprehensive middleware system with custom middleware registration:
297
+
298
+ #### πŸ“ Creating Custom Middleware
299
+
300
+ First, create your custom middleware following the `MiddlewareGen` pattern:
301
+
302
+ ```typescript
303
+ import type { MiddlewareGen, BaseMiddlewareOption, RouteContext, MiddlewareNext } from 'unieo';
304
+
305
+ // Define your middleware options interface
306
+ interface AuthMiddlewareOption extends BaseMiddlewareOption {
307
+ secret: string;
308
+ headerName?: string;
309
+ }
310
+
311
+ // Create the middleware generator
312
+ const AuthMiddleware: MiddlewareGen<AuthMiddlewareOption> = (opt) => {
313
+ return async (ctx: RouteContext, next: MiddlewareNext) => {
314
+ const { secret, headerName = 'authorization' } = opt;
315
+
316
+ // Get auth header from request
317
+ const authHeader = ctx.request.headers.get(headerName);
318
+
319
+ if (!authHeader || !authHeader.includes(secret)) {
320
+ // Set unauthorized response
321
+ const response = new Response('Unauthorized', {
322
+ status: 401,
323
+ headers: { 'content-type': 'text/plain' }
324
+ });
325
+ ctx.setResponse(response);
326
+ return; // Don't call next() to short-circuit the middleware chain
327
+ }
328
+
329
+ // Add custom header to indicate auth success
330
+ ctx.request = new Request(ctx.request, {
331
+ headers: {
332
+ ...Object.fromEntries(ctx.request.headers),
333
+ 'x-auth-verified': 'true'
334
+ }
335
+ });
336
+
337
+ await next(); // Continue to next middleware
338
+ };
339
+ };
340
+
341
+ // Rate limiting middleware example
342
+ interface RateLimitMiddlewareOption extends BaseMiddlewareOption {
343
+ limit: number;
344
+ window: number; // in milliseconds
345
+ }
346
+
347
+ const RateLimitMiddleware: MiddlewareGen<RateLimitMiddlewareOption> = (opt) => {
348
+ const requestCounts = new Map<string, { count: number; resetTime: number }>();
349
+
350
+ return async (ctx: RouteContext, next: MiddlewareNext) => {
351
+ const { limit, window } = opt;
352
+ const clientIP = ctx.request.headers.get('cf-connecting-ip') || 'unknown';
353
+ const now = Date.now();
354
+
355
+ // Get or initialize request count for this IP
356
+ let clientData = requestCounts.get(clientIP);
357
+ if (!clientData || now > clientData.resetTime) {
358
+ clientData = { count: 0, resetTime: now + window };
359
+ requestCounts.set(clientIP, clientData);
360
+ }
361
+
362
+ clientData.count++;
363
+
364
+ if (clientData.count > limit) {
365
+ const response = new Response('Rate limit exceeded', {
366
+ status: 429,
367
+ headers: {
368
+ 'content-type': 'text/plain',
369
+ 'retry-after': Math.ceil((clientData.resetTime - now) / 1000).toString()
370
+ }
371
+ });
372
+ ctx.setResponse(response);
373
+ return;
374
+ }
375
+
376
+ await next();
377
+ };
378
+ };
379
+ ```
380
+
381
+ #### πŸ”§ Registering Custom Middleware
382
+
383
+ Register your custom middleware when creating the Route instance:
384
+
385
+ ```typescript
386
+ import { Route } from 'unieo';
387
+
388
+ const route = new Route({
389
+ event,
390
+ logger: console, // Custom logger
391
+ httpClient: { // Custom HTTP client
392
+ request: async (request, options) => {
393
+ // Custom fetch logic
394
+ return fetch(request, options);
395
+ }
396
+ },
397
+ // Register custom middleware
398
+ middlewares: [
399
+ ['Auth', AuthMiddleware],
400
+ ['RateLimit', RateLimitMiddleware],
401
+ // Add more custom middleware here
402
+ ]
403
+ });
404
+ ```
405
+
406
+ #### πŸ“‹ Using Custom Middleware in Routes
407
+
408
+ Now you can use your custom middleware in route configurations:
409
+
410
+ ```typescript
411
+ // Routes with custom middleware configuration
412
+ const routesWithMiddleware = [
413
+ {
414
+ name: 'api-with-middleware',
415
+ type: 'api',
416
+ processor: 'COMMON_GROUP_PROCESSOR',
417
+ routes: [
418
+ {
419
+ name: 'protected-endpoint',
420
+ type: 'protected',
421
+ processor: 'COMMON_SUB_PROCESSOR',
422
+ meta: {
423
+ requestRewrites: [
424
+ {
425
+ type: 'middleware',
426
+ value: {
427
+ source: [
428
+ ['Auth', { secret: 'your-secret-key', headerName: 'x-api-key' }],
429
+ ['RateLimit', { limit: 100, window: 60000 }], // 100 requests per minute
430
+ ['DefaultFetch', {}] // Always include DefaultFetch as the last middleware
431
+ ],
432
+ sourceType: 'literal'
433
+ },
434
+ operation: 'set'
435
+ }
436
+ ]
437
+ }
438
+ }
439
+ ]
440
+ }
441
+ ];
442
+ ```
443
+
444
+ ### 🧠 Complex Matching Logic
445
+
446
+ Create sophisticated matching conditions:
447
+
448
+ ```typescript
449
+ const complexRoutes = [
450
+ {
451
+ name: 'complex-matching',
452
+ type: 'advanced',
453
+ processor: 'COMMON_GROUP_PROCESSOR',
454
+ routes: [
455
+ {
456
+ name: 'multi-condition-route',
457
+ type: 'conditional',
458
+ processor: 'COMMON_SUB_PROCESSOR',
459
+ meta: {
460
+ match: {
461
+ list: [
462
+ {
463
+ // Match specific user agent
464
+ origin: { source: 'user-agent', sourceType: 'request_header' },
465
+ criteria: { source: 'bot|crawler', sourceType: 'literal' },
466
+ operator: 'regexp'
467
+ },
468
+ {
469
+ // Match specific time range
470
+ origin: { source: 'hour', sourceType: 'edge_info' },
471
+ criteria: { source: '9', sourceType: 'literal' },
472
+ operator: 'gte'
473
+ },
474
+ {
475
+ // Match specific path
476
+ origin: { source: 'path', sourceType: 'url' },
477
+ criteria: { source: '/api/', sourceType: 'literal' },
478
+ operator: 'prefix'
479
+ }
480
+ ],
481
+ operator: 'and' // All conditions must match
482
+ }
483
+ }
484
+ }
485
+ ]
486
+ }
487
+ ];
488
+ ```
489
+
490
+ ## πŸ“– Route Configuration Reference
491
+
492
+ ### πŸ“‚ GroupRouteConfig
493
+
494
+ ```typescript
495
+ interface GroupRouteConfig {
496
+ name: string; // Unique identifier for the route group
497
+ type: string; // Route type for categorization
498
+ processor: GroupProcessorType; // Processor type to handle the group
499
+ routes: SubRouteConfig[]; // Array of sub-routes
500
+ status?: RouteStatus; // ONLINE | OFFLINE
501
+ meta?: object; // Additional metadata
502
+ args?: Record<string, unknown>; // Processor arguments
503
+ }
504
+ ```
505
+
506
+ ### πŸ“„ SubRouteConfig
507
+
508
+ ```typescript
509
+ interface SubRouteConfig {
510
+ name: string; // Unique identifier for the sub-route
511
+ type: string; // Route type for categorization
512
+ processor: SubProcessorType; // Processor type to handle the route
513
+ status?: RouteStatus; // ONLINE | OFFLINE
514
+ meta?: {
515
+ match?: MatchConfig; // Matching conditions
516
+ redirects?: RedirectConfig[]; // Redirect rules
517
+ requestRewrites?: RequestRewriteConfig[]; // Request modifications
518
+ responseRewrites?: ResponseRewriteConfig[]; // Response modifications
519
+ };
520
+ args?: Record<string, unknown>; // Processor arguments
521
+ }
522
+ ```
523
+
524
+ ## 🧩 Extending Unieo
525
+
526
+ **Note: The extension system is currently under development. 🚧 The following represents the planned architecture.**
527
+
528
+ ### πŸ”§ Custom Processors
529
+
530
+ ```typescript
531
+ // Custom Group Processor (planned)
532
+ class CustomGroupProcessor extends BaseGroupProcessor {
533
+ static processorType = 'CUSTOM_GROUP_PROCESSOR';
534
+
535
+ async checkMatch(): Promise<boolean> {
536
+ // Custom matching logic
537
+ return true;
538
+ }
539
+ }
540
+
541
+ // Custom Sub Processor (planned)
542
+ class CustomSubProcessor extends BaseSubProcessor {
543
+ static processorType = 'CUSTOM_SUB_PROCESSOR';
544
+
545
+ async beforeRequest(): Promise<void> {
546
+ // Custom request processing
547
+ }
548
+
549
+ async beforeResponse(): Promise<void> {
550
+ // Custom response processing
551
+ }
552
+ }
553
+ ```
554
+
555
+ ### πŸ—οΈ Custom Route Class
556
+
557
+ ```typescript
558
+ // Extended Route class (planned)
559
+ class CustomRoute extends Route {
560
+ constructor(data: RouteRawData) {
561
+ super(data);
562
+ // Register custom processors
563
+ this.registerCustomProcessors();
564
+ }
565
+
566
+ private registerCustomProcessors() {
567
+ // Registration logic (under development)
568
+ }
569
+ }
570
+ ```
571
+
572
+ ## 🀝 Contributing
573
+
574
+ We welcome contributions! πŸŽ‰ Please see our [Contributing Guide](.github/CONTRIBUTING.md) for details on how to get started.
575
+
576
+ ## πŸ“œ License
577
+
578
+ MIT License - see the [LICENSE](LICENSE) file for details.
579
+
580
+ ## πŸ”— Related Projects
581
+
582
+ - 🌐 [WinterTC](https://wintertc.org/) - Web-interoperable Server Runtimes Technical Committee standards
583
+ - 🌍 [Cloudflare Workers](https://workers.cloudflare.com/) - Deploy serverless code instantly across the globe
584
+ - ⚑ [Vercel Edge Functions](https://vercel.com/docs/functions/edge-functions) - Edge-side server functions
585
+ - πŸ—ΊοΈ [Aliyun EdgeRoutine](https://help.aliyun.com/zh/edge-security-acceleration/dcdn/user-guide/what-is-er) - Write JavaScript code and deploy and execute it on Alibaba Cloud points of presence (POPs) worldwide
586
+ - πŸ›£οΈ [path-to-regexp](https://github.com/pillarjs/path-to-regexp) - Express-style path matching
@@ -0,0 +1,21 @@
1
+ import { RouteContext } from './core';
2
+ import { ERPerformance } from './core/ERPerformance';
3
+ import type { GroupRouteConfig } from './core';
4
+ import type { ERFetchEvent, HttpClient, ILogger } from './types';
5
+ import type { MiddlewareGen } from './middleware/types';
6
+ interface RouteRawData {
7
+ event: ERFetchEvent;
8
+ logger?: ILogger;
9
+ httpClient?: HttpClient;
10
+ performance?: ERPerformance;
11
+ middlewares?: [string, MiddlewareGen][];
12
+ }
13
+ export declare class Route {
14
+ #private;
15
+ constructor(data: RouteRawData);
16
+ get ctx(): RouteContext;
17
+ private registerProcessor;
18
+ execute(routes: GroupRouteConfig[]): Promise<Response | undefined>;
19
+ }
20
+ export {};
21
+ //# sourceMappingURL=Route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../src/Route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,UAAU,YAAY;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;CACzC;AAED,qBAAa,KAAK;;gBAIJ,IAAI,EAAE,YAAY;IAmB9B,IAAI,GAAG,iBAEN;IAED,OAAO,CAAC,iBAAiB;IAKnB,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE;CAQzC"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _Route_ctx, _Route_processorFactory;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.Route = void 0;
16
+ const core_1 = require("./core");
17
+ const Factory_1 = require("./processor/Factory");
18
+ const ERPerformance_1 = require("./core/ERPerformance");
19
+ const processor_1 = require("./processor");
20
+ const executor_1 = require("./executor");
21
+ class Route {
22
+ constructor(data) {
23
+ _Route_ctx.set(this, void 0);
24
+ _Route_processorFactory.set(this, void 0);
25
+ __classPrivateFieldSet(this, _Route_ctx, new core_1.RouteContext({
26
+ event: data.event,
27
+ request: data.event.request,
28
+ performance: data.performance ?? new ERPerformance_1.ERPerformance(),
29
+ middlewares: data.middlewares,
30
+ helper: {
31
+ logger: data.logger ?? console,
32
+ httpClient: data.httpClient ?? {
33
+ request: async (request, options) => {
34
+ return fetch(request, options);
35
+ },
36
+ },
37
+ },
38
+ }), "f");
39
+ __classPrivateFieldSet(this, _Route_processorFactory, new Factory_1.ProcessorFactory(this.ctx), "f");
40
+ this.registerProcessor();
41
+ }
42
+ get ctx() {
43
+ return __classPrivateFieldGet(this, _Route_ctx, "f");
44
+ }
45
+ registerProcessor() {
46
+ __classPrivateFieldGet(this, _Route_processorFactory, "f").registerGroupProcessor(processor_1.CommonGroupProcessor.processorType, processor_1.CommonGroupProcessor.create);
47
+ __classPrivateFieldGet(this, _Route_processorFactory, "f").registerSubProcessor(processor_1.CommonSubProcessor.processorType, processor_1.CommonSubProcessor.create);
48
+ }
49
+ async execute(routes) {
50
+ const processor = __classPrivateFieldGet(this, _Route_processorFactory, "f").createRouteProcessor(this.ctx, {
51
+ routes,
52
+ });
53
+ const executor = new executor_1.RouteExecutor(processor, { ctx: __classPrivateFieldGet(this, _Route_ctx, "f") });
54
+ await executor.execute();
55
+ return __classPrivateFieldGet(this, _Route_ctx, "f").response;
56
+ }
57
+ }
58
+ exports.Route = Route;
59
+ _Route_ctx = new WeakMap(), _Route_processorFactory = new WeakMap();
60
+ //# sourceMappingURL=Route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Route.js","sourceRoot":"","sources":["../../src/Route.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAsC;AACtC,iDAAuD;AACvD,wDAAqD;AACrD,2CAAuE;AACvE,yCAA2C;AAa3C,MAAa,KAAK;IAIhB,YAAY,IAAkB;QAHrB,6BAAmB;QACnB,0CAAoC;QAG3C,uBAAA,IAAI,cAAQ,IAAI,mBAAY,CAAC;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,6BAAa,EAAE;YACpD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO;gBAC9B,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI;oBAC7B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;wBAClC,OAAO,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBACjC,CAAC;iBACF;aACF;SACF,CAAC,MAAA,CAAC;QACH,uBAAA,IAAI,2BAAqB,IAAI,0BAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAA,CAAC;QACxD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,GAAG;QACL,OAAO,uBAAA,IAAI,kBAAK,CAAC;IACnB,CAAC;IAEO,iBAAiB;QACvB,uBAAA,IAAI,+BAAkB,CAAC,sBAAsB,CAAC,gCAAoB,CAAC,aAAa,EAAE,gCAAoB,CAAC,MAAM,CAAC,CAAC;QAC/G,uBAAA,IAAI,+BAAkB,CAAC,oBAAoB,CAAC,8BAAkB,CAAC,aAAa,EAAE,8BAAkB,CAAC,MAAM,CAAC,CAAC;IAC3G,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAA0B;QACtC,MAAM,SAAS,GAAG,uBAAA,IAAI,+BAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE;YACtE,MAAM;SACP,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,wBAAa,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,uBAAA,IAAI,kBAAK,EAAE,CAAC,CAAC;QAClE,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,uBAAA,IAAI,kBAAK,CAAC,QAAQ,CAAC;IAC5B,CAAC;CACF;AAxCD,sBAwCC"}