acrylblends 0.4.1 → 0.5.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 (416) hide show
  1. package/LICENSE +73 -0
  2. package/docs/framework/README.md +51 -51
  3. package/docs/framework/UPSTREAM.md +1 -1
  4. package/docs/framework/agents/index.md +24 -0
  5. package/docs/framework/api/acryl.md +259 -0
  6. package/docs/framework/api/context.md +527 -0
  7. package/docs/framework/api/exception.md +80 -0
  8. package/docs/framework/api/index.md +12 -0
  9. package/docs/framework/api/presets.md +65 -0
  10. package/docs/framework/api/request.md +396 -0
  11. package/docs/framework/api/routing.md +303 -0
  12. package/docs/framework/{api-summary.md → api/summary.md} +19 -17
  13. package/docs/framework/concepts/benchmarks.md +26 -0
  14. package/docs/framework/concepts/developer-experience.md +5 -0
  15. package/docs/framework/concepts/middleware.md +21 -0
  16. package/docs/framework/concepts/motivation.md +14 -0
  17. package/docs/framework/concepts/routers.md +63 -0
  18. package/docs/framework/concepts/stacks.md +235 -0
  19. package/docs/framework/concepts/web-standard.md +37 -0
  20. package/docs/framework/{getting-started.md → cordis/acryl-in-a-cordis-app.md} +16 -16
  21. package/docs/framework/{concepts.md → cordis/concepts.md} +2 -2
  22. package/docs/framework/cordis/middleware.md +8 -0
  23. package/docs/framework/{migration-from-0-3.md → cordis/migration-from-0-3.md} +16 -13
  24. package/docs/framework/cordis/migration-from-0-4.md +14 -0
  25. package/docs/framework/{migration-from-dsh-webserver.md → cordis/migration-from-dsh-webserver.md} +7 -7
  26. package/docs/framework/{routing.md → cordis/mounting.md} +5 -108
  27. package/docs/framework/{node-server.md → cordis/node-server.md} +4 -4
  28. package/docs/framework/{surfaces.md → cordis/surfaces.md} +2 -2
  29. package/docs/framework/cordis/transport-and-cancellation.md +57 -0
  30. package/docs/framework/{validation.md → cordis/validation.md} +9 -9
  31. package/docs/framework/getting-started/basic.md +196 -0
  32. package/docs/framework/getting-started/bun.md +221 -0
  33. package/docs/framework/getting-started/nodejs.md +344 -0
  34. package/docs/framework/getting-started/other-runtimes.md +23 -0
  35. package/docs/framework/guides/best-practices.md +231 -0
  36. package/docs/framework/guides/create-acrylblends.md +79 -0
  37. package/docs/framework/guides/examples.md +3 -0
  38. package/docs/framework/guides/faq.md +19 -0
  39. package/docs/framework/guides/helpers.md +33 -0
  40. package/docs/framework/guides/jsx-dom.md +299 -0
  41. package/docs/framework/guides/jsx.md +440 -0
  42. package/docs/framework/guides/middleware.md +253 -0
  43. package/docs/framework/guides/rpc.md +886 -0
  44. package/docs/framework/guides/testing.md +133 -0
  45. package/docs/framework/guides/validation.md +383 -0
  46. package/docs/framework/helpers/accepts.md +60 -0
  47. package/docs/framework/helpers/adapter.md +87 -0
  48. package/docs/framework/helpers/conninfo.md +112 -0
  49. package/docs/framework/helpers/cookie.md +232 -0
  50. package/docs/framework/helpers/css.md +285 -0
  51. package/docs/framework/helpers/dev.md +67 -0
  52. package/docs/framework/helpers/factory.md +180 -0
  53. package/docs/framework/helpers/html.md +123 -0
  54. package/docs/framework/helpers/jwt.md +184 -0
  55. package/docs/framework/helpers/proxy.md +118 -0
  56. package/docs/framework/helpers/route.md +143 -0
  57. package/docs/framework/helpers/ssg.md +393 -0
  58. package/docs/framework/helpers/streaming.md +119 -0
  59. package/docs/framework/helpers/testing.md +101 -0
  60. package/docs/framework/helpers/websocket.md +215 -0
  61. package/docs/framework/middleware/builtin/basic-auth.md +165 -0
  62. package/docs/framework/middleware/builtin/bearer-auth.md +138 -0
  63. package/docs/framework/middleware/builtin/body-limit.md +71 -0
  64. package/docs/framework/middleware/builtin/cache.md +122 -0
  65. package/docs/framework/middleware/builtin/combine.md +94 -0
  66. package/docs/framework/middleware/builtin/compress.md +59 -0
  67. package/docs/framework/middleware/builtin/context-storage.md +78 -0
  68. package/docs/framework/middleware/builtin/cors.md +135 -0
  69. package/docs/framework/middleware/builtin/csrf.md +105 -0
  70. package/docs/framework/middleware/builtin/etag.md +54 -0
  71. package/docs/framework/middleware/builtin/ip-restriction.md +69 -0
  72. package/docs/framework/middleware/builtin/jsx-renderer.md +286 -0
  73. package/docs/framework/middleware/builtin/jwk.md +192 -0
  74. package/docs/framework/middleware/builtin/jwt.md +145 -0
  75. package/docs/framework/middleware/builtin/language.md +232 -0
  76. package/docs/framework/middleware/builtin/logger.md +74 -0
  77. package/docs/framework/middleware/builtin/loopback-only.md +31 -0
  78. package/docs/framework/middleware/builtin/method-not-allowed.md +48 -0
  79. package/docs/framework/middleware/builtin/method-override.md +80 -0
  80. package/docs/framework/middleware/builtin/mount.md +106 -0
  81. package/docs/framework/middleware/builtin/pretty-json.md +53 -0
  82. package/docs/framework/middleware/builtin/request-id.md +94 -0
  83. package/docs/framework/middleware/builtin/secure-headers.md +247 -0
  84. package/docs/framework/middleware/builtin/timeout.md +98 -0
  85. package/docs/framework/middleware/builtin/timing.md +101 -0
  86. package/docs/framework/middleware/builtin/trailing-slash.md +74 -0
  87. package/docs/framework/middleware/third-party.md +4 -0
  88. package/docs/framework/upstream.json +3 -3
  89. package/lib/accepts-XBuZPVRI.js +52 -0
  90. package/lib/accepts.d.ts +33 -0
  91. package/lib/accepts.js +2 -0
  92. package/lib/acryl-base.d.ts +2 -0
  93. package/lib/acryl-base.js +332 -0
  94. package/lib/adapter.d.ts +12 -0
  95. package/lib/adapter.js +37 -0
  96. package/lib/app-BM0rTCp7.js +26 -0
  97. package/lib/app-CmAYW1Al.d.ts +21 -0
  98. package/lib/basic-auth.d.ts +72 -0
  99. package/lib/basic-auth.js +95 -0
  100. package/lib/bearer-auth.d.ts +89 -0
  101. package/lib/bearer-auth.js +94 -0
  102. package/lib/body-limit.d.ts +42 -0
  103. package/lib/body-limit.js +66 -0
  104. package/lib/client-BHTr318g.js +266 -0
  105. package/lib/client.d.ts +3 -0
  106. package/lib/client.js +2 -0
  107. package/lib/combine.d.ts +85 -0
  108. package/lib/combine.js +137 -0
  109. package/lib/compose-BuW2B6PZ.js +50 -0
  110. package/lib/compress.d.ts +38 -0
  111. package/lib/compress.js +79 -0
  112. package/lib/connection-C7xgP1hP.js +24 -0
  113. package/lib/conninfo.d.ts +25 -0
  114. package/lib/conninfo.js +2 -0
  115. package/lib/constants-Dy7ZvN1H.js +4 -0
  116. package/lib/context-Bm7rI-oK.d.ts +1234 -0
  117. package/lib/context-DDO0cfuP.js +365 -0
  118. package/lib/context-storage.d.ts +38 -0
  119. package/lib/context-storage.js +52 -0
  120. package/lib/cookie-ClMaKDQf.d.ts +40 -0
  121. package/lib/cookie.d.ts +24 -0
  122. package/lib/cookie.js +82 -0
  123. package/lib/cors.d.ts +52 -0
  124. package/lib/cors.js +106 -0
  125. package/lib/csrf.d.ts +75 -0
  126. package/lib/csrf.js +101 -0
  127. package/lib/etag.d.ts +40 -0
  128. package/lib/etag.js +135 -0
  129. package/lib/factory.d.ts +35 -0
  130. package/lib/factory.js +30 -0
  131. package/lib/headers-tu2YYN8T.d.ts +11 -0
  132. package/lib/html.d.ts +6 -0
  133. package/lib/html.js +31 -0
  134. package/lib/http-exception.d.ts +57 -0
  135. package/lib/http-exception.js +54 -0
  136. package/lib/http-status-DaAwGAFL.d.ts +35 -0
  137. package/lib/index-B-3F4wt2.d.ts +12 -0
  138. package/lib/index-UTBmM3GX.d.ts +68 -0
  139. package/lib/index-oOClm_Xk.d.ts +45 -0
  140. package/lib/index.d.ts +5 -0
  141. package/lib/index.js +28 -0
  142. package/lib/ip-restriction.d.ts +68 -0
  143. package/lib/ip-restriction.js +166 -0
  144. package/lib/jwk.d.ts +52 -0
  145. package/lib/jwk.js +117 -0
  146. package/lib/jwt-BGJBw5AF.js +403 -0
  147. package/lib/jwt-Dg493Tai.d.ts +51 -0
  148. package/lib/jwt.d.ts +72 -0
  149. package/lib/jwt.js +115 -0
  150. package/lib/language.d.ts +88 -0
  151. package/lib/language.js +198 -0
  152. package/lib/logger.d.ts +22 -0
  153. package/lib/logger.js +54 -0
  154. package/lib/loopback-only.d.ts +45 -0
  155. package/lib/loopback-only.js +90 -0
  156. package/lib/method-not-allowed.d.ts +47 -0
  157. package/lib/method-not-allowed.js +82 -0
  158. package/lib/method-override.d.ts +46 -0
  159. package/lib/method-override.js +103 -0
  160. package/lib/mime-BQOYHl-l.d.ts +72 -0
  161. package/lib/node-server/conninfo.d.ts +11 -0
  162. package/lib/node-server/conninfo.js +19 -0
  163. package/lib/node-server/serve-static.d.ts +19 -0
  164. package/lib/node-server/serve-static.js +2 -0
  165. package/lib/node-server.d.ts +103 -0
  166. package/lib/node-server.js +1325 -0
  167. package/lib/powered-by.d.ts +28 -0
  168. package/lib/powered-by.js +24 -0
  169. package/lib/pretty-json.d.ts +40 -0
  170. package/lib/pretty-json.js +39 -0
  171. package/lib/reg-exp-router-DC1R3qoY.js +363 -0
  172. package/lib/request-id.d.ts +45 -0
  173. package/lib/request-id.js +34 -0
  174. package/lib/request.d.ts +2 -0
  175. package/lib/request.js +323 -0
  176. package/lib/route.d.ts +78 -0
  177. package/lib/route.js +126 -0
  178. package/lib/router/linear-router.d.ts +11 -0
  179. package/lib/router/linear-router.js +96 -0
  180. package/lib/router/pattern-router.d.ts +11 -0
  181. package/lib/router/pattern-router.js +41 -0
  182. package/lib/router/reg-exp-router.d.ts +35 -0
  183. package/lib/router/reg-exp-router.js +2 -0
  184. package/lib/router/smart-router.d.ts +15 -0
  185. package/lib/router/smart-router.js +2 -0
  186. package/lib/router/trie-router.d.ts +11 -0
  187. package/lib/router/trie-router.js +2 -0
  188. package/lib/router-CvUxUTOq.d.ts +99 -0
  189. package/lib/router.d.ts +2 -0
  190. package/lib/router.js +35 -0
  191. package/lib/schema-validator.d.ts +28 -0
  192. package/lib/schema-validator.js +22 -0
  193. package/lib/secure-headers.d.ts +125 -0
  194. package/lib/secure-headers.js +163 -0
  195. package/lib/serve-static-Dw_m6KxR.js +213 -0
  196. package/lib/serve-static.d.ts +31 -0
  197. package/lib/serve-static.js +77 -0
  198. package/lib/smart-router-C5CZ5XSM.js +49 -0
  199. package/lib/stream-CPdqZ0Fp.d.ts +34 -0
  200. package/lib/streaming-DHST3Scg.js +96 -0
  201. package/lib/streaming.d.ts +23 -0
  202. package/lib/streaming.js +2 -0
  203. package/lib/testing.d.ts +10 -0
  204. package/lib/testing.js +17 -0
  205. package/lib/timeout.d.ts +30 -0
  206. package/lib/timeout.js +42 -0
  207. package/lib/timing.d.ts +130 -0
  208. package/lib/timing.js +183 -0
  209. package/lib/trailing-slash.d.ts +91 -0
  210. package/lib/trailing-slash.js +85 -0
  211. package/lib/trie-router-CfFbapzL.js +146 -0
  212. package/lib/types-CDO6I3B0.d.ts +40 -0
  213. package/lib/types-CHesD1KG.d.ts +195 -0
  214. package/lib/types-CwrQjlaM.d.ts +105 -0
  215. package/lib/types-DR95J00T.d.ts +29 -0
  216. package/lib/types.d.ts +2 -0
  217. package/lib/types.js +4 -0
  218. package/lib/utils/accept.d.ts +9 -0
  219. package/lib/utils/accept.js +193 -0
  220. package/lib/utils/basic-auth.d.ts +8 -0
  221. package/lib/utils/basic-auth.js +20 -0
  222. package/lib/utils/body.d.ts +2 -0
  223. package/lib/utils/body.js +94 -0
  224. package/lib/utils/buffer.d.ts +19 -0
  225. package/lib/utils/buffer.js +51 -0
  226. package/lib/utils/color.d.ts +24 -0
  227. package/lib/utils/color.js +37 -0
  228. package/lib/utils/compress.d.ts +11 -0
  229. package/lib/utils/compress.js +11 -0
  230. package/lib/utils/concurrent.d.ts +17 -0
  231. package/lib/utils/concurrent.js +30 -0
  232. package/lib/utils/constants.d.ts +7 -0
  233. package/lib/utils/constants.js +7 -0
  234. package/lib/utils/cookie.d.ts +2 -0
  235. package/lib/utils/cookie.js +125 -0
  236. package/lib/utils/crypto.d.ts +14 -0
  237. package/lib/utils/crypto.js +34 -0
  238. package/lib/utils/encode.d.ts +11 -0
  239. package/lib/utils/encode.js +33 -0
  240. package/lib/utils/filepath.d.ts +14 -0
  241. package/lib/utils/filepath.js +25 -0
  242. package/lib/utils/handler.d.ts +9 -0
  243. package/lib/utils/handler.js +12 -0
  244. package/lib/utils/headers.d.ts +2 -0
  245. package/lib/utils/headers.js +1 -0
  246. package/lib/utils/html.d.ts +46 -0
  247. package/lib/utils/html.js +103 -0
  248. package/lib/utils/http-status.d.ts +2 -0
  249. package/lib/utils/http-status.js +1 -0
  250. package/lib/utils/ipaddr.d.ts +56 -0
  251. package/lib/utils/ipaddr.js +238 -0
  252. package/lib/utils/jwt.d.ts +24 -0
  253. package/lib/utils/jwt.js +2 -0
  254. package/lib/utils/mime.d.ts +2 -0
  255. package/lib/utils/mime.js +77 -0
  256. package/lib/utils/stream.d.ts +2 -0
  257. package/lib/utils/stream.js +88 -0
  258. package/lib/utils/types.d.ts +2 -0
  259. package/lib/utils/types.js +1 -0
  260. package/lib/utils/url.d.ts +46 -0
  261. package/lib/utils/url.js +197 -0
  262. package/lib/utils-dw8lxqjL.js +4 -0
  263. package/lib/validator-D84mq-dO.js +65 -0
  264. package/lib/validator.d.ts +42 -0
  265. package/lib/validator.js +2 -0
  266. package/lib/ws.d.ts +2 -0
  267. package/lib/ws.js +53 -0
  268. package/package.json +312 -14
  269. package/plugins/acryl-inspect/src/service.ts +2 -2
  270. package/plugins/acryl-inspect/tests/service.spec.ts +3 -3
  271. package/plugins/acryl-inspect/upstream.json +2 -2
  272. package/plugins/acryl-node-server/tests/adapter/app.ts +2 -2
  273. package/plugins/acryl-node-server/tests/adapter/assets/static/acryl.html +1 -1
  274. package/plugins/acryl-node-server/tests/adapter/assets/static/index.html +1 -1
  275. package/plugins/acryl-node-server/tests/adapter/conninfo.test.ts +2 -2
  276. package/plugins/acryl-node-server/tests/adapter/content-length.test.ts +4 -4
  277. package/plugins/acryl-node-server/tests/adapter/early-hints.test.ts +5 -5
  278. package/plugins/acryl-node-server/tests/adapter/request-client-disconnect.test.ts +2 -2
  279. package/plugins/acryl-node-server/tests/adapter/serve-static.test.ts +20 -20
  280. package/plugins/acryl-node-server/tests/adapter/server-socket.test.ts +2 -2
  281. package/plugins/acryl-node-server/tests/adapter/server.test.ts +50 -50
  282. package/plugins/acryl-node-server/tests/adapter/utils/response.test.ts +4 -4
  283. package/plugins/acryl-node-server/tests/adapter/websocket.test.ts +9 -9
  284. package/plugins/acryl-node-server/tests/server.spec.ts +6 -6
  285. package/plugins/acryl-node-server/upstream.json +2 -2
  286. package/plugins/acryl-router/src/client.ts +1 -1
  287. package/plugins/acryl-router/src/connection.ts +2 -2
  288. package/plugins/acryl-router/src/core/app-base.ts +29 -29
  289. package/plugins/acryl-router/src/core/app.test.ts +175 -175
  290. package/plugins/acryl-router/src/core/app.ts +8 -8
  291. package/plugins/acryl-router/src/core/client/client.test.ts +76 -76
  292. package/plugins/acryl-router/src/core/client/client.ts +2 -2
  293. package/plugins/acryl-router/src/core/client/fetch-result-please.ts +1 -1
  294. package/plugins/acryl-router/src/core/client/index.ts +1 -1
  295. package/plugins/acryl-router/src/core/client/types.test.ts +6 -6
  296. package/plugins/acryl-router/src/core/client/types.ts +16 -16
  297. package/plugins/acryl-router/src/core/client/utils.test.ts +2 -2
  298. package/plugins/acryl-router/src/core/context.test.ts +4 -4
  299. package/plugins/acryl-router/src/core/context.ts +6 -6
  300. package/plugins/acryl-router/src/core/helper/accepts/accepts.test.ts +3 -3
  301. package/plugins/acryl-router/src/core/helper/accepts/index.ts +1 -1
  302. package/plugins/acryl-router/src/core/helper/adapter/index.test.ts +6 -6
  303. package/plugins/acryl-router/src/core/helper/adapter/index.ts +1 -1
  304. package/plugins/acryl-router/src/core/helper/conninfo/index.ts +1 -1
  305. package/plugins/acryl-router/src/core/helper/cookie/index.test.ts +8 -8
  306. package/plugins/acryl-router/src/core/helper/cookie/index.ts +1 -1
  307. package/plugins/acryl-router/src/core/helper/factory/index.test.ts +9 -9
  308. package/plugins/acryl-router/src/core/helper/factory/index.ts +10 -10
  309. package/plugins/acryl-router/src/core/helper/html/index.test.ts +4 -4
  310. package/plugins/acryl-router/src/core/helper/html/index.ts +1 -1
  311. package/plugins/acryl-router/src/core/helper/route/index.test.ts +7 -7
  312. package/plugins/acryl-router/src/core/helper/route/index.ts +8 -8
  313. package/plugins/acryl-router/src/core/helper/streaming/index.ts +1 -1
  314. package/plugins/acryl-router/src/core/helper/testing/index.test.ts +6 -6
  315. package/plugins/acryl-router/src/core/helper/testing/index.ts +4 -4
  316. package/plugins/acryl-router/src/core/helper/websocket/index.ts +2 -1
  317. package/plugins/acryl-router/src/core/http-exception.ts +1 -1
  318. package/plugins/acryl-router/src/core/index.ts +9 -9
  319. package/plugins/acryl-router/src/core/middleware/basic-auth/index.test.ts +6 -6
  320. package/plugins/acryl-router/src/core/middleware/basic-auth/index.ts +3 -3
  321. package/plugins/acryl-router/src/core/middleware/bearer-auth/index.test.ts +5 -5
  322. package/plugins/acryl-router/src/core/middleware/bearer-auth/index.ts +3 -3
  323. package/plugins/acryl-router/src/core/middleware/body-limit/index.test.ts +6 -6
  324. package/plugins/acryl-router/src/core/middleware/body-limit/index.ts +3 -3
  325. package/plugins/acryl-router/src/core/middleware/combine/index.test.ts +9 -9
  326. package/plugins/acryl-router/src/core/middleware/combine/index.ts +7 -7
  327. package/plugins/acryl-router/src/core/middleware/compress/index.test.ts +9 -9
  328. package/plugins/acryl-router/src/core/middleware/compress/index.ts +3 -3
  329. package/plugins/acryl-router/src/core/middleware/context-storage/index.test.ts +5 -5
  330. package/plugins/acryl-router/src/core/middleware/context-storage/index.ts +4 -4
  331. package/plugins/acryl-router/src/core/middleware/cors/index.test.ts +7 -7
  332. package/plugins/acryl-router/src/core/middleware/cors/index.ts +3 -3
  333. package/plugins/acryl-router/src/core/middleware/csrf/index.test.ts +10 -10
  334. package/plugins/acryl-router/src/core/middleware/csrf/index.ts +3 -3
  335. package/plugins/acryl-router/src/core/middleware/etag/index.test.ts +42 -42
  336. package/plugins/acryl-router/src/core/middleware/etag/index.ts +4 -4
  337. package/plugins/acryl-router/src/core/middleware/ip-restriction/index.test.ts +4 -4
  338. package/plugins/acryl-router/src/core/middleware/ip-restriction/index.ts +6 -6
  339. package/plugins/acryl-router/src/core/middleware/jwk/index.test.ts +16 -16
  340. package/plugins/acryl-router/src/core/middleware/jwk/jwk.ts +7 -6
  341. package/plugins/acryl-router/src/core/middleware/jwt/index.test.ts +16 -16
  342. package/plugins/acryl-router/src/core/middleware/jwt/jwt.ts +4 -3
  343. package/plugins/acryl-router/src/core/middleware/language/index.test.ts +3 -3
  344. package/plugins/acryl-router/src/core/middleware/language/language.ts +3 -3
  345. package/plugins/acryl-router/src/core/middleware/logger/index.test.ts +5 -5
  346. package/plugins/acryl-router/src/core/middleware/logger/index.ts +4 -4
  347. package/plugins/acryl-router/src/core/middleware/method-not-allowed/index.test.ts +24 -24
  348. package/plugins/acryl-router/src/core/middleware/method-not-allowed/index.ts +8 -8
  349. package/plugins/acryl-router/src/core/middleware/method-override/index.test.ts +5 -5
  350. package/plugins/acryl-router/src/core/middleware/method-override/index.ts +6 -6
  351. package/plugins/acryl-router/src/core/middleware/powered-by/index.test.ts +4 -4
  352. package/plugins/acryl-router/src/core/middleware/powered-by/index.ts +6 -6
  353. package/plugins/acryl-router/src/core/middleware/pretty-json/index.test.ts +30 -30
  354. package/plugins/acryl-router/src/core/middleware/pretty-json/index.ts +4 -4
  355. package/plugins/acryl-router/src/core/middleware/request-id/index.test.ts +15 -15
  356. package/plugins/acryl-router/src/core/middleware/request-id/request-id.ts +3 -3
  357. package/plugins/acryl-router/src/core/middleware/secure-headers/index.test.ts +35 -35
  358. package/plugins/acryl-router/src/core/middleware/secure-headers/secure-headers.ts +3 -3
  359. package/plugins/acryl-router/src/core/middleware/serve-static/index.test.ts +23 -23
  360. package/plugins/acryl-router/src/core/middleware/serve-static/index.ts +1 -1
  361. package/plugins/acryl-router/src/core/middleware/timeout/index.test.ts +2 -2
  362. package/plugins/acryl-router/src/core/middleware/timeout/index.ts +3 -3
  363. package/plugins/acryl-router/src/core/middleware/timing/index.test.ts +14 -14
  364. package/plugins/acryl-router/src/core/middleware/timing/timing.ts +3 -3
  365. package/plugins/acryl-router/src/core/middleware/trailing-slash/index.test.ts +7 -7
  366. package/plugins/acryl-router/src/core/middleware/trailing-slash/index.ts +7 -7
  367. package/plugins/acryl-router/src/core/request.test.ts +42 -42
  368. package/plugins/acryl-router/src/core/request.ts +6 -6
  369. package/plugins/acryl-router/src/core/router/linear-router/index.ts +1 -1
  370. package/plugins/acryl-router/src/core/router/pattern-router/index.ts +1 -1
  371. package/plugins/acryl-router/src/core/router/reg-exp-router/index.ts +1 -1
  372. package/plugins/acryl-router/src/core/router/smart-router/index.ts +1 -1
  373. package/plugins/acryl-router/src/core/router/trie-router/index.ts +1 -1
  374. package/plugins/acryl-router/src/core/types.test.ts +115 -115
  375. package/plugins/acryl-router/src/core/types.ts +72 -72
  376. package/plugins/acryl-router/src/core/utils/body.ts +8 -8
  377. package/plugins/acryl-router/src/core/utils/html.ts +1 -1
  378. package/plugins/acryl-router/src/core/utils/jwt/jws.ts +3 -3
  379. package/plugins/acryl-router/src/core/utils/jwt/jwt.test.ts +2 -2
  380. package/plugins/acryl-router/src/core/utils/jwt/jwt.ts +3 -3
  381. package/plugins/acryl-router/src/core/utils/jwt/types.ts +1 -1
  382. package/plugins/acryl-router/src/core/utils/types.ts +42 -0
  383. package/plugins/acryl-router/src/core/utils/url.test.ts +2 -2
  384. package/plugins/acryl-router/src/core/validator/index.ts +1 -1
  385. package/plugins/acryl-router/src/core/validator/validator.test.ts +28 -28
  386. package/plugins/acryl-router/src/deprecated.ts +15 -0
  387. package/plugins/acryl-router/src/index.ts +3 -2
  388. package/plugins/acryl-router/src/service.ts +10 -10
  389. package/plugins/acryl-router/tests/docs-examples.spec.ts +11 -11
  390. package/plugins/acryl-router/tests/live-install.spec.ts +2 -2
  391. package/plugins/acryl-router/tests/loader.spec.ts +3 -3
  392. package/plugins/acryl-router/tests/loopback-only.spec.ts +4 -4
  393. package/plugins/acryl-router/tests/no-dom/consumer.ts +11 -0
  394. package/plugins/acryl-router/tests/no-dom/tsconfig.json +13 -0
  395. package/plugins/acryl-router/tests/service.spec.ts +23 -23
  396. package/plugins/acryl-router/upstream.json +3 -3
  397. package/plugins/acryl-router-http/tests/adapter.spec.ts +3 -3
  398. package/plugins/acryl-router-http/tests/surfaces.spec.ts +2 -2
  399. package/plugins/acryl-router-http/upstream.json +2 -2
  400. package/plugins/acryl-state/src/service.ts +2 -2
  401. package/plugins/acryl-state/upstream.json +2 -2
  402. package/plugins/builder/script.ts +2 -2
  403. package/plugins/extensions/resolve.ts +70 -10
  404. package/plugins/openai/prompt.ts +5 -5
  405. package/shared/AGENTS.core.md +16 -9
  406. package/templates/agent/src/routes.ts +2 -2
  407. package/templates/agent/test/model.test.ts +2 -2
  408. package/templates/agent/tsconfig.json +40 -0
  409. package/templates/blank/src/routes.ts +2 -2
  410. package/templates/todo/src/todo.ts +2 -2
  411. package/templates/todo/upstream.json +2 -2
  412. package/docs/framework/context.md +0 -129
  413. package/docs/framework/helpers.md +0 -118
  414. package/docs/framework/middleware.md +0 -154
  415. package/docs/framework/request.md +0 -106
  416. /package/docs/framework/{plugin-lifecycle.md → cordis/plugin-lifecycle.md} +0 -0
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * @module
3
- * Method Not Allowed Middleware for App.
3
+ * Method Not Allowed Middleware for Acryl.
4
4
  */
5
5
 
6
6
  import type { Context } from '../../context.ts'
7
7
  import { basePath, matchedRoutes } from '../../helper/route/index.ts'
8
- import type { App } from '../../app.ts'
8
+ import type { Acryl } from '../../app.ts'
9
9
  import { METHOD_NAME_ALL } from '../../router.ts'
10
10
  import { TrieRouter } from '../../router/trie-router/index.ts'
11
11
  import type { Env, MiddlewareHandler } from '../../types.ts'
@@ -17,24 +17,24 @@ type MethodNotAllowedHandler<E extends Env> = (
17
17
 
18
18
  type MethodNotAllowedOptions<E extends Env> = {
19
19
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
- app: App<E, any, any>
20
+ app: Acryl<E, any, any>
21
21
  onMethodNotAllowed?: MethodNotAllowedHandler<E>
22
22
  }
23
23
 
24
24
  /**
25
- * Method Not Allowed Middleware for App.
25
+ * Method Not Allowed Middleware for Acryl.
26
26
  *
27
27
  * Returns a `405 Method Not Allowed` response with an `Allow` header when the request path
28
28
  * matches a registered route but the request method is not supported.
29
29
  *
30
30
  * @param {MethodNotAllowedOptions} options - The options for the middleware.
31
- * @param {App} options.app - The App instance used by the application.
31
+ * @param {Acryl} options.app - The Acryl instance used by the application.
32
32
  * @param {MethodNotAllowedHandler} [options.onMethodNotAllowed] - Generates the response, including its `Allow` header.
33
33
  * @returns {MiddlewareHandler} The middleware handler function.
34
34
  *
35
35
  * @example
36
36
  * ```ts
37
- * const app = new App()
37
+ * const app = new Acryl()
38
38
  *
39
39
  * app.use(methodNotAllowed({ app }))
40
40
  *
@@ -77,7 +77,7 @@ export const methodNotAllowed = <E extends Env = Env>(
77
77
  const methodsByPath = new Map<string, Set<string>>()
78
78
 
79
79
  for (const route of options.app.routes) {
80
- // App does not distinguish middleware registered with `app.use()` from handlers
80
+ // Acryl does not distinguish middleware registered with `app.use()` from handlers
81
81
  // registered with `app.all()`, so `ALL` routes cannot contribute to the Allow header.
82
82
  if (route.method === METHOD_NAME_ALL || route.method === 'HEAD') {
83
83
  continue
@@ -86,7 +86,7 @@ export const methodNotAllowed = <E extends Env = Env>(
86
86
  const methods = methodsByPath.get(route.path) ?? new Set<string>()
87
87
  methods.add(route.method)
88
88
 
89
- // App dispatches HEAD requests to GET routes.
89
+ // Acryl dispatches HEAD requests to GET routes.
90
90
  if (route.method === 'GET') {
91
91
  methods.add('HEAD')
92
92
  }
@@ -1,9 +1,9 @@
1
- import { App } from '../../app.ts'
1
+ import { Acryl } from '../../app.ts'
2
2
  import { methodOverride } from './index.ts'
3
3
 
4
4
  describe('Method Override Middleware', () => {
5
5
  describe('Form', () => {
6
- const app = new App()
6
+ const app = new Acryl()
7
7
  app.use('/posts/*', methodOverride({ app }))
8
8
  app.use('/posts-custom/*', methodOverride({ app, form: 'custom-input-name' }))
9
9
  app.on(['post', 'delete'], ['/posts', '/posts-custom'], async (c) => {
@@ -126,7 +126,7 @@ describe('Method Override Middleware', () => {
126
126
  })
127
127
 
128
128
  describe('Header', () => {
129
- const app = new App()
129
+ const app = new Acryl()
130
130
  app.use('/posts/*', methodOverride({ app, header: 'X-METHOD-OVERRIDE' }))
131
131
  app.on(['get', 'post', 'delete'], '/posts', async (c) => {
132
132
  return c.json({
@@ -165,7 +165,7 @@ describe('Method Override Middleware', () => {
165
165
  })
166
166
 
167
167
  describe('Query', () => {
168
- const app = new App()
168
+ const app = new Acryl()
169
169
  app.use('/posts/*', methodOverride({ app, query: '_method' }))
170
170
  app.on(['get', 'post', 'delete'], '/posts', async (c) => {
171
171
  return c.json({
@@ -186,7 +186,7 @@ describe('Method Override Middleware', () => {
186
186
  })
187
187
 
188
188
  it('Should override POST to DELETE when the request has a body', async () => {
189
- const app = new App()
189
+ const app = new Acryl()
190
190
  app.use('/posts/*', methodOverride({ app, query: '_method' }))
191
191
  app.on(['post', 'delete'], '/posts', async (c) => {
192
192
  return c.json({
@@ -1,16 +1,16 @@
1
1
  /**
2
2
  * @module
3
- * Method Override Middleware for App.
3
+ * Method Override Middleware for Acryl.
4
4
  */
5
5
 
6
6
  import type { Context, ExecutionContext } from '../../context.ts'
7
- import type { App } from '../../app.ts'
7
+ import type { Acryl } from '../../app.ts'
8
8
  import type { MiddlewareHandler } from '../../types.ts'
9
9
  import { parseBody } from '../../utils/body.ts'
10
10
 
11
11
  type MethodOverrideOptions = {
12
12
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
- app: App<any, any, any>
13
+ app: Acryl<any, any, any>
14
14
  } & (
15
15
  | {
16
16
  // Default is 'form' and the value is `_method`
@@ -33,11 +33,11 @@ type MethodOverrideOptions = {
33
33
  const DEFAULT_METHOD_FORM_NAME = '_method'
34
34
 
35
35
  /**
36
- * Method Override Middleware for App.
36
+ * Method Override Middleware for Acryl.
37
37
  *
38
38
  *
39
39
  * @param {MethodOverrideOptions} options - The options for the method override middleware.
40
- * @param {App} options.app - The instance of App is used in your application.
40
+ * @param {Acryl} options.app - The instance of Acryl is used in your application.
41
41
  * @param {string} [options.form=_method] - Form key with a value containing the method name.
42
42
  * @param {string} [options.header] - Header name with a value containing the method name.
43
43
  * @param {string} [options.query] - Query parameter key with a value containing the method name.
@@ -45,7 +45,7 @@ const DEFAULT_METHOD_FORM_NAME = '_method'
45
45
  *
46
46
  * @example
47
47
  * ```ts
48
- * const app = new App()
48
+ * const app = new Acryl()
49
49
  *
50
50
  * // If no options are specified, the value of `_method` in the form,
51
51
  * // e.g. DELETE, is used as the method.
@@ -1,8 +1,8 @@
1
1
  import { poweredBy } from './index.ts'
2
- import { App } from '../../app.ts'
2
+ import { Acryl } from '../../app.ts'
3
3
 
4
4
  describe('Powered by Middleware', () => {
5
- const app = new App()
5
+ const app = new Acryl()
6
6
 
7
7
  app.use('/poweredBy/*', poweredBy())
8
8
  app.get('/poweredBy', (c) => c.text('root'))
@@ -18,14 +18,14 @@ describe('Powered by Middleware', () => {
18
18
  const res = await app.request('http://localhost/poweredBy')
19
19
  expect(res).not.toBeNull()
20
20
  expect(res.status).toBe(200)
21
- expect(res.headers.get('X-Powered-By')).toBe('ACRYL')
21
+ expect(res.headers.get('X-Powered-By')).toBe('Acryl')
22
22
  })
23
23
 
24
24
  it('Should not return duplicate values', async () => {
25
25
  const res = await app.request('http://localhost/poweredBy2')
26
26
  expect(res).not.toBeNull()
27
27
  expect(res.status).toBe(200)
28
- expect(res.headers.get('X-Powered-By')).toBe('ACRYL')
28
+ expect(res.headers.get('X-Powered-By')).toBe('Acryl')
29
29
  })
30
30
 
31
31
  it('Should return custom serverName', async () => {
@@ -1,28 +1,28 @@
1
1
  /**
2
2
  * @module
3
- * Powered By Middleware for App.
3
+ * Powered By Middleware for Acryl.
4
4
  */
5
5
  import type { MiddlewareHandler } from '../../types.ts'
6
6
 
7
7
  type PoweredByOptions = {
8
8
  /**
9
9
  * The value for X-Powered-By header.
10
- * @default App
10
+ * @default Acryl
11
11
  */
12
12
  serverName?: string
13
13
  }
14
14
 
15
15
  /**
16
- * Powered By Middleware for App.
16
+ * Powered By Middleware for Acryl.
17
17
  *
18
18
  * @param options - The options for the Powered By Middleware.
19
19
  * @returns {MiddlewareHandler} The middleware handler function.
20
20
  *
21
21
  * @example
22
22
  * ```ts
23
- * import { poweredBy } from 'acryl-router/middleware'
23
+ * import { poweredBy } from 'acrylblends/powered-by'
24
24
  *
25
- * const app = new App()
25
+ * const app = new Acryl()
26
26
  *
27
27
  * app.use(poweredBy()) // With options: poweredBy({ serverName: "My Server" })
28
28
  * ```
@@ -30,6 +30,6 @@ type PoweredByOptions = {
30
30
  export const poweredBy = (options?: PoweredByOptions): MiddlewareHandler => {
31
31
  return async function poweredBy(c, next) {
32
32
  await next()
33
- c.res.headers.set('X-Powered-By', options?.serverName ?? 'ACRYL')
33
+ c.res.headers.set('X-Powered-By', options?.serverName ?? 'Acryl')
34
34
  }
35
35
  }
@@ -1,41 +1,41 @@
1
1
  import { prettyJSON } from './index.ts'
2
- import { App } from '../../app.ts'
2
+ import { Acryl } from '../../app.ts'
3
3
 
4
4
  describe('JSON pretty by Middleware', () => {
5
5
  it('Should return pretty JSON output', async () => {
6
- const app = new App()
6
+ const app = new Acryl()
7
7
  app.use('*', prettyJSON())
8
8
  app.get('/', (c) => {
9
- return c.json({ message: 'App!' })
9
+ return c.json({ message: 'Acryl!' })
10
10
  })
11
11
 
12
12
  const res = await app.request('http://localhost/?pretty')
13
13
  expect(res).not.toBeNull()
14
14
  expect(res.status).toBe(200)
15
15
  expect(await res.text()).toBe(`{
16
- "message": "App!"
16
+ "message": "Acryl!"
17
17
  }`)
18
18
  })
19
19
 
20
20
  it('Should return pretty JSON output with 4 spaces', async () => {
21
- const app = new App()
21
+ const app = new Acryl()
22
22
  app.use('*', prettyJSON({ space: 4 }))
23
23
  app.get('/', (c) => {
24
- return c.json({ message: 'App!' })
24
+ return c.json({ message: 'Acryl!' })
25
25
  })
26
26
 
27
27
  const res = await app.request('http://localhost/?pretty')
28
28
  expect(res).not.toBeNull()
29
29
  expect(res.status).toBe(200)
30
30
  expect(await res.text()).toBe(`{
31
- "message": "App!"
31
+ "message": "Acryl!"
32
32
  }`)
33
33
  })
34
34
 
35
35
  it('Should return pretty JSON output when middleware received custom query', async () => {
36
36
  const targetQuery = 'format'
37
37
 
38
- const app = new App()
38
+ const app = new Acryl()
39
39
  app.use(
40
40
  '*',
41
41
  prettyJSON({
@@ -44,38 +44,38 @@ describe('JSON pretty by Middleware', () => {
44
44
  )
45
45
  app.get('/', (c) =>
46
46
  c.json({
47
- message: 'App!',
47
+ message: 'Acryl!',
48
48
  })
49
49
  )
50
50
 
51
51
  const prettyText = await (await app.request(`?${targetQuery}`)).text()
52
52
  expect(prettyText).toBe(`{
53
- "message": "App!"
53
+ "message": "Acryl!"
54
54
  }`)
55
55
  const nonPrettyText = await (await app.request('?pretty')).text()
56
- expect(nonPrettyText).toBe('{"message":"App!"}')
56
+ expect(nonPrettyText).toBe('{"message":"Acryl!"}')
57
57
  })
58
58
 
59
59
  it('Should force pretty JSON output when force option is true', async () => {
60
- const app = new App()
60
+ const app = new Acryl()
61
61
  app.use('*', prettyJSON({ force: true }))
62
62
  app.get('/', (c) => {
63
- return c.json({ message: 'App!' })
63
+ return c.json({ message: 'Acryl!' })
64
64
  })
65
65
 
66
66
  const resWithoutQuery = await (await app.request('http://localhost/')).text()
67
67
  expect(resWithoutQuery).toBe(`{
68
- "message": "App!"
68
+ "message": "Acryl!"
69
69
  }`)
70
70
 
71
71
  const resWithQuery = await (await app.request('http://localhost/?pretty')).text()
72
72
  expect(resWithQuery).toBe(`{
73
- "message": "App!"
73
+ "message": "Acryl!"
74
74
  }`)
75
75
  })
76
76
 
77
77
  it('Should return pretty JSON output for structured JSON content-types (+json)', async () => {
78
- const app = new App()
78
+ const app = new Acryl()
79
79
  app.use('*', prettyJSON({ force: true }))
80
80
  app.get('/problem', (c) => {
81
81
  return c.newResponse(JSON.stringify({ type: 'about:blank', title: 'Bad Request' }), 400, {
@@ -104,24 +104,24 @@ describe('JSON pretty by Middleware', () => {
104
104
  })
105
105
 
106
106
  it('Should not touch responses with non-JSON content-types', async () => {
107
- const app = new App()
107
+ const app = new Acryl()
108
108
  app.use('*', prettyJSON({ force: true }))
109
- app.get('/text', (c) => c.text('{"message":"App!"}'))
109
+ app.get('/text', (c) => c.text('{"message":"Acryl!"}'))
110
110
  app.get('/json-seq', (c) => {
111
- return c.body('{"message":"App!"}', 200, {
111
+ return c.body('{"message":"Acryl!"}', 200, {
112
112
  'Content-Type': 'application/json-seq',
113
113
  })
114
114
  })
115
115
 
116
116
  const textRes = await app.request('http://localhost/text')
117
- expect(await textRes.text()).toBe('{"message":"App!"}')
117
+ expect(await textRes.text()).toBe('{"message":"Acryl!"}')
118
118
 
119
119
  const jsonSeqRes = await app.request('http://localhost/json-seq')
120
- expect(await jsonSeqRes.text()).toBe('{"message":"App!"}')
120
+ expect(await jsonSeqRes.text()).toBe('{"message":"Acryl!"}')
121
121
  })
122
122
 
123
123
  it('Should not break 204 responses with a JSON content-type', async () => {
124
- const app = new App()
124
+ const app = new Acryl()
125
125
  app.use('*', prettyJSON({ force: true }))
126
126
  app.delete('/x', (c) => {
127
127
  c.header('Content-Type', 'application/json')
@@ -134,7 +134,7 @@ describe('JSON pretty by Middleware', () => {
134
134
  })
135
135
 
136
136
  it('Should not break 304 responses with a JSON content-type', async () => {
137
- const app = new App()
137
+ const app = new Acryl()
138
138
  app.use('*', prettyJSON({ force: true }))
139
139
  app.get('/x', (c) => {
140
140
  c.header('Content-Type', 'application/json')
@@ -147,7 +147,7 @@ describe('JSON pretty by Middleware', () => {
147
147
  })
148
148
 
149
149
  it('Should not break empty responses with a JSON content-type', async () => {
150
- const app = new App()
150
+ const app = new Acryl()
151
151
  app.use('*', prettyJSON())
152
152
  app.get('/x', () => new Response('', { headers: { 'Content-Type': 'application/json' } }))
153
153
 
@@ -157,7 +157,7 @@ describe('JSON pretty by Middleware', () => {
157
157
  })
158
158
 
159
159
  it('Should pass through a response with an invalid JSON body unchanged', async () => {
160
- const app = new App()
160
+ const app = new Acryl()
161
161
  app.use('*', prettyJSON({ force: true }))
162
162
  app.get(
163
163
  '/x',
@@ -182,13 +182,13 @@ describe('JSON pretty by Middleware', () => {
182
182
  })
183
183
 
184
184
  it('Should pass through a response whose body was already consumed by another middleware', async () => {
185
- const app = new App()
185
+ const app = new Acryl()
186
186
  app.use('*', prettyJSON({ force: true }))
187
187
  app.use('*', async (c, next) => {
188
188
  await next()
189
189
  await c.res.text()
190
190
  })
191
- app.get('/x', (c) => c.json({ message: 'App!' }))
191
+ app.get('/x', (c) => c.json({ message: 'Acryl!' }))
192
192
 
193
193
  // The other middleware has read the body, so the bytes are no longer available;
194
194
  // pretty JSON must not turn this into a 500 and must leave the response as is.
@@ -199,19 +199,19 @@ describe('JSON pretty by Middleware', () => {
199
199
  })
200
200
 
201
201
  it('Should remove a stale Content-Length when the body is prettified', async () => {
202
- const app = new App()
202
+ const app = new Acryl()
203
203
  app.use('*', prettyJSON({ force: true }))
204
204
  app.get(
205
205
  '/x',
206
206
  () =>
207
- new Response('{"message":"App!"}', {
207
+ new Response('{"message":"Acryl!"}', {
208
208
  headers: { 'Content-Type': 'application/json', 'Content-Length': '19' },
209
209
  })
210
210
  )
211
211
 
212
212
  const res = await app.request('http://localhost/x')
213
213
  expect(await res.text()).toBe(`{
214
- "message": "App!"
214
+ "message": "Acryl!"
215
215
  }`)
216
216
  expect(res.headers.get('Content-Length')).toBeNull()
217
217
  })
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @module
3
- * Pretty JSON Middleware for App.
3
+ * Pretty JSON Middleware for Acryl.
4
4
  */
5
5
 
6
6
  import type { MiddlewareHandler } from '../../types.ts'
@@ -28,7 +28,7 @@ interface PrettyOptions {
28
28
  const jsonContentTypeRegex = /^application\/(?:[a-z0-9._-]+\+)?json(?=$|[;\s])/i
29
29
 
30
30
  /**
31
- * Pretty JSON Middleware for App.
31
+ * Pretty JSON Middleware for Acryl.
32
32
  *
33
33
  *
34
34
  * @param options - The options for the pretty JSON middleware.
@@ -36,11 +36,11 @@ const jsonContentTypeRegex = /^application\/(?:[a-z0-9._-]+\+)?json(?=$|[;\s])/i
36
36
  *
37
37
  * @example
38
38
  * ```ts
39
- * const app = new App()
39
+ * const app = new Acryl()
40
40
  *
41
41
  * app.use(prettyJSON()) // With options: prettyJSON({ space: 4 })
42
42
  * app.get('/', (c) => {
43
- * return c.json({ message: 'App!' })
43
+ * return c.json({ message: 'Acryl!' })
44
44
  * })
45
45
  * ```
46
46
  */
@@ -1,11 +1,11 @@
1
1
  import { requestId } from './index.ts'
2
2
  import type { Context } from '../../context.ts'
3
- import { App } from '../../app.ts'
3
+ import { Acryl } from '../../app.ts'
4
4
 
5
5
  const regexUUIDv4 = /([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})/
6
6
 
7
7
  describe('Request ID Middleware', () => {
8
- const app = new App()
8
+ const app = new Acryl()
9
9
  app.use('*', requestId())
10
10
  app.get('/requestId', (c) => c.text(c.get('requestId') ?? 'No Request ID'))
11
11
 
@@ -57,17 +57,17 @@ describe('Request ID Middleware', () => {
57
57
 
58
58
  describe('Request ID Middleware with custom generator', () => {
59
59
  function generateWord() {
60
- return 'AppIsWebFramework'
60
+ return 'AcrylIsWebFramework'
61
61
  }
62
62
  function generateDoubleRequestId(c: Context) {
63
- const appId = c.req.header('App-Request-Id')
63
+ const acrylId = c.req.header('Acryl-Request-Id')
64
64
  const ohnoId = c.req.header('Ohno-Request-Id')
65
- if (appId && ohnoId) {
66
- return appId + ohnoId
65
+ if (acrylId && ohnoId) {
66
+ return acrylId + ohnoId
67
67
  }
68
68
  return crypto.randomUUID()
69
69
  }
70
- const app = new App()
70
+ const app = new Acryl()
71
71
  app.use('/word', requestId({ generator: generateWord }))
72
72
  app.use('/doubleRequestId', requestId({ generator: generateDoubleRequestId }))
73
73
  app.get('/word', (c) => c.text(c.get('requestId') ?? 'No Request ID'))
@@ -76,14 +76,14 @@ describe('Request ID Middleware with custom generator', () => {
76
76
  const res = await app.request('http://localhost/word')
77
77
  expect(res).not.toBeNull()
78
78
  expect(res.status).toBe(200)
79
- expect(res.headers.get('X-Request-Id')).toBe('AppIsWebFramework')
80
- expect(await res.text()).toBe('AppIsWebFramework')
79
+ expect(res.headers.get('X-Request-Id')).toBe('AcrylIsWebFramework')
80
+ expect(await res.text()).toBe('AcrylIsWebFramework')
81
81
  })
82
82
 
83
83
  it('Should return complex request id', async () => {
84
84
  const res = await app.request('http://localhost/doubleRequestId', {
85
85
  headers: {
86
- 'App-Request-Id': 'Hello',
86
+ 'Acryl-Request-Id': 'Hello',
87
87
  'Ohno-Request-Id': 'World',
88
88
  },
89
89
  })
@@ -98,7 +98,7 @@ describe('Request ID Middleware with limit length', () => {
98
98
  const charactersOf255 = 'h'.repeat(255)
99
99
  const charactersOf256 = 'h'.repeat(256)
100
100
 
101
- const app = new App()
101
+ const app = new Acryl()
102
102
  app.use('/requestId', requestId())
103
103
  app.use('/limit256', requestId({ limitLength: 256 }))
104
104
  app.get('/requestId', (c) => c.text(c.get('requestId') ?? 'No Request ID'))
@@ -140,8 +140,8 @@ describe('Request ID Middleware with limit length', () => {
140
140
  })
141
141
 
142
142
  describe('Request ID Middleware with custom header', () => {
143
- const app = new App()
144
- app.use('/requestId', requestId({ headerName: 'App-Request-Id' }))
143
+ const app = new Acryl()
144
+ app.use('/requestId', requestId({ headerName: 'Acryl-Request-Id' }))
145
145
  app.get('/emptyId', requestId({ headerName: '' }))
146
146
  app.get('/requestId', (c) => c.text(c.get('requestId') ?? 'No Request ID'))
147
147
  app.get('/emptyId', (c) => c.text(c.get('requestId') ?? 'No Request ID'))
@@ -149,12 +149,12 @@ describe('Request ID Middleware with custom header', () => {
149
149
  it('Should return custom request id', async () => {
150
150
  const res = await app.request('http://localhost/requestId', {
151
151
  headers: {
152
- 'App-Request-Id': 'acryl-is-hot',
152
+ 'Acryl-Request-Id': 'acryl-is-hot',
153
153
  },
154
154
  })
155
155
  expect(res).not.toBeNull()
156
156
  expect(res.status).toBe(200)
157
- expect(res.headers.get('App-Request-Id')).toBe('acryl-is-hot')
157
+ expect(res.headers.get('Acryl-Request-Id')).toBe('acryl-is-hot')
158
158
  expect(await res.text()).toBe('acryl-is-hot')
159
159
  })
160
160
 
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @module
3
- * Request ID Middleware for App.
3
+ * Request ID Middleware for Acryl.
4
4
  */
5
5
 
6
6
  import type { Context } from '../../context.ts'
@@ -17,7 +17,7 @@ export type RequestIdOptions = {
17
17
  }
18
18
 
19
19
  /**
20
- * Request ID Middleware for App.
20
+ * Request ID Middleware for Acryl.
21
21
  *
22
22
  * @param {object} options - Options for Request ID middleware.
23
23
  * @param {number} [options.limitLength=255] - The maximum length of request id.
@@ -29,7 +29,7 @@ export type RequestIdOptions = {
29
29
  * @example
30
30
  * ```ts
31
31
  * type Variables = RequestIdVariables
32
- * const app = new App<{Variables: Variables}>()
32
+ * const app = new Acryl<{Variables: Variables}>()
33
33
  *
34
34
  * app.use(requestId())
35
35
  * app.get('/', (c) => {