acrylblends 0.4.1 → 0.5.1

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 (417) hide show
  1. package/LICENSE +73 -0
  2. package/README.md +325 -0
  3. package/docs/framework/README.md +51 -51
  4. package/docs/framework/UPSTREAM.md +1 -1
  5. package/docs/framework/agents/index.md +24 -0
  6. package/docs/framework/api/acryl.md +259 -0
  7. package/docs/framework/api/context.md +527 -0
  8. package/docs/framework/api/exception.md +80 -0
  9. package/docs/framework/api/index.md +12 -0
  10. package/docs/framework/api/presets.md +65 -0
  11. package/docs/framework/api/request.md +396 -0
  12. package/docs/framework/api/routing.md +303 -0
  13. package/docs/framework/{api-summary.md → api/summary.md} +19 -17
  14. package/docs/framework/concepts/benchmarks.md +26 -0
  15. package/docs/framework/concepts/developer-experience.md +5 -0
  16. package/docs/framework/concepts/middleware.md +21 -0
  17. package/docs/framework/concepts/motivation.md +14 -0
  18. package/docs/framework/concepts/routers.md +63 -0
  19. package/docs/framework/concepts/stacks.md +235 -0
  20. package/docs/framework/concepts/web-standard.md +37 -0
  21. package/docs/framework/{getting-started.md → cordis/acryl-in-a-cordis-app.md} +16 -16
  22. package/docs/framework/{concepts.md → cordis/concepts.md} +2 -2
  23. package/docs/framework/cordis/middleware.md +8 -0
  24. package/docs/framework/{migration-from-0-3.md → cordis/migration-from-0-3.md} +16 -13
  25. package/docs/framework/cordis/migration-from-0-4.md +14 -0
  26. package/docs/framework/{migration-from-dsh-webserver.md → cordis/migration-from-dsh-webserver.md} +13 -7
  27. package/docs/framework/{routing.md → cordis/mounting.md} +5 -108
  28. package/docs/framework/{node-server.md → cordis/node-server.md} +4 -4
  29. package/docs/framework/{surfaces.md → cordis/surfaces.md} +2 -2
  30. package/docs/framework/cordis/transport-and-cancellation.md +57 -0
  31. package/docs/framework/{validation.md → cordis/validation.md} +9 -9
  32. package/docs/framework/getting-started/basic.md +196 -0
  33. package/docs/framework/getting-started/bun.md +221 -0
  34. package/docs/framework/getting-started/nodejs.md +344 -0
  35. package/docs/framework/getting-started/other-runtimes.md +23 -0
  36. package/docs/framework/guides/best-practices.md +231 -0
  37. package/docs/framework/guides/create-acrylblends.md +79 -0
  38. package/docs/framework/guides/examples.md +3 -0
  39. package/docs/framework/guides/faq.md +19 -0
  40. package/docs/framework/guides/helpers.md +33 -0
  41. package/docs/framework/guides/jsx-dom.md +299 -0
  42. package/docs/framework/guides/jsx.md +440 -0
  43. package/docs/framework/guides/middleware.md +253 -0
  44. package/docs/framework/guides/rpc.md +886 -0
  45. package/docs/framework/guides/testing.md +133 -0
  46. package/docs/framework/guides/validation.md +383 -0
  47. package/docs/framework/helpers/accepts.md +60 -0
  48. package/docs/framework/helpers/adapter.md +87 -0
  49. package/docs/framework/helpers/conninfo.md +112 -0
  50. package/docs/framework/helpers/cookie.md +232 -0
  51. package/docs/framework/helpers/css.md +285 -0
  52. package/docs/framework/helpers/dev.md +67 -0
  53. package/docs/framework/helpers/factory.md +180 -0
  54. package/docs/framework/helpers/html.md +123 -0
  55. package/docs/framework/helpers/jwt.md +184 -0
  56. package/docs/framework/helpers/proxy.md +118 -0
  57. package/docs/framework/helpers/route.md +143 -0
  58. package/docs/framework/helpers/ssg.md +393 -0
  59. package/docs/framework/helpers/streaming.md +119 -0
  60. package/docs/framework/helpers/testing.md +101 -0
  61. package/docs/framework/helpers/websocket.md +215 -0
  62. package/docs/framework/middleware/builtin/basic-auth.md +165 -0
  63. package/docs/framework/middleware/builtin/bearer-auth.md +138 -0
  64. package/docs/framework/middleware/builtin/body-limit.md +71 -0
  65. package/docs/framework/middleware/builtin/cache.md +122 -0
  66. package/docs/framework/middleware/builtin/combine.md +94 -0
  67. package/docs/framework/middleware/builtin/compress.md +59 -0
  68. package/docs/framework/middleware/builtin/context-storage.md +78 -0
  69. package/docs/framework/middleware/builtin/cors.md +135 -0
  70. package/docs/framework/middleware/builtin/csrf.md +105 -0
  71. package/docs/framework/middleware/builtin/etag.md +54 -0
  72. package/docs/framework/middleware/builtin/ip-restriction.md +69 -0
  73. package/docs/framework/middleware/builtin/jsx-renderer.md +286 -0
  74. package/docs/framework/middleware/builtin/jwk.md +192 -0
  75. package/docs/framework/middleware/builtin/jwt.md +145 -0
  76. package/docs/framework/middleware/builtin/language.md +232 -0
  77. package/docs/framework/middleware/builtin/logger.md +74 -0
  78. package/docs/framework/middleware/builtin/loopback-only.md +31 -0
  79. package/docs/framework/middleware/builtin/method-not-allowed.md +48 -0
  80. package/docs/framework/middleware/builtin/method-override.md +80 -0
  81. package/docs/framework/middleware/builtin/mount.md +106 -0
  82. package/docs/framework/middleware/builtin/pretty-json.md +53 -0
  83. package/docs/framework/middleware/builtin/request-id.md +94 -0
  84. package/docs/framework/middleware/builtin/secure-headers.md +247 -0
  85. package/docs/framework/middleware/builtin/timeout.md +98 -0
  86. package/docs/framework/middleware/builtin/timing.md +101 -0
  87. package/docs/framework/middleware/builtin/trailing-slash.md +74 -0
  88. package/docs/framework/middleware/third-party.md +4 -0
  89. package/docs/framework/upstream.json +3 -3
  90. package/lib/accepts-XBuZPVRI.js +52 -0
  91. package/lib/accepts.d.ts +33 -0
  92. package/lib/accepts.js +2 -0
  93. package/lib/acryl-base.d.ts +2 -0
  94. package/lib/acryl-base.js +332 -0
  95. package/lib/adapter.d.ts +12 -0
  96. package/lib/adapter.js +37 -0
  97. package/lib/app-BM0rTCp7.js +26 -0
  98. package/lib/app-CmAYW1Al.d.ts +21 -0
  99. package/lib/basic-auth.d.ts +72 -0
  100. package/lib/basic-auth.js +95 -0
  101. package/lib/bearer-auth.d.ts +89 -0
  102. package/lib/bearer-auth.js +94 -0
  103. package/lib/body-limit.d.ts +42 -0
  104. package/lib/body-limit.js +66 -0
  105. package/lib/client-BHTr318g.js +266 -0
  106. package/lib/client.d.ts +3 -0
  107. package/lib/client.js +2 -0
  108. package/lib/combine.d.ts +85 -0
  109. package/lib/combine.js +137 -0
  110. package/lib/compose-BuW2B6PZ.js +50 -0
  111. package/lib/compress.d.ts +38 -0
  112. package/lib/compress.js +79 -0
  113. package/lib/connection-C7xgP1hP.js +24 -0
  114. package/lib/conninfo.d.ts +25 -0
  115. package/lib/conninfo.js +2 -0
  116. package/lib/constants-Dy7ZvN1H.js +4 -0
  117. package/lib/context-Bm7rI-oK.d.ts +1234 -0
  118. package/lib/context-DDO0cfuP.js +365 -0
  119. package/lib/context-storage.d.ts +38 -0
  120. package/lib/context-storage.js +52 -0
  121. package/lib/cookie-ClMaKDQf.d.ts +40 -0
  122. package/lib/cookie.d.ts +24 -0
  123. package/lib/cookie.js +82 -0
  124. package/lib/cors.d.ts +52 -0
  125. package/lib/cors.js +106 -0
  126. package/lib/csrf.d.ts +75 -0
  127. package/lib/csrf.js +101 -0
  128. package/lib/etag.d.ts +40 -0
  129. package/lib/etag.js +135 -0
  130. package/lib/factory.d.ts +35 -0
  131. package/lib/factory.js +30 -0
  132. package/lib/headers-tu2YYN8T.d.ts +11 -0
  133. package/lib/html.d.ts +6 -0
  134. package/lib/html.js +31 -0
  135. package/lib/http-exception.d.ts +57 -0
  136. package/lib/http-exception.js +54 -0
  137. package/lib/http-status-DaAwGAFL.d.ts +35 -0
  138. package/lib/index-B-3F4wt2.d.ts +12 -0
  139. package/lib/index-UTBmM3GX.d.ts +68 -0
  140. package/lib/index-oOClm_Xk.d.ts +45 -0
  141. package/lib/index.d.ts +5 -0
  142. package/lib/index.js +28 -0
  143. package/lib/ip-restriction.d.ts +68 -0
  144. package/lib/ip-restriction.js +166 -0
  145. package/lib/jwk.d.ts +52 -0
  146. package/lib/jwk.js +117 -0
  147. package/lib/jwt-BGJBw5AF.js +403 -0
  148. package/lib/jwt-Dg493Tai.d.ts +51 -0
  149. package/lib/jwt.d.ts +72 -0
  150. package/lib/jwt.js +115 -0
  151. package/lib/language.d.ts +88 -0
  152. package/lib/language.js +198 -0
  153. package/lib/logger.d.ts +22 -0
  154. package/lib/logger.js +54 -0
  155. package/lib/loopback-only.d.ts +45 -0
  156. package/lib/loopback-only.js +90 -0
  157. package/lib/method-not-allowed.d.ts +47 -0
  158. package/lib/method-not-allowed.js +82 -0
  159. package/lib/method-override.d.ts +46 -0
  160. package/lib/method-override.js +103 -0
  161. package/lib/mime-BQOYHl-l.d.ts +72 -0
  162. package/lib/node-server/conninfo.d.ts +11 -0
  163. package/lib/node-server/conninfo.js +19 -0
  164. package/lib/node-server/serve-static.d.ts +19 -0
  165. package/lib/node-server/serve-static.js +2 -0
  166. package/lib/node-server.d.ts +103 -0
  167. package/lib/node-server.js +1325 -0
  168. package/lib/powered-by.d.ts +28 -0
  169. package/lib/powered-by.js +24 -0
  170. package/lib/pretty-json.d.ts +40 -0
  171. package/lib/pretty-json.js +39 -0
  172. package/lib/reg-exp-router-DC1R3qoY.js +363 -0
  173. package/lib/request-id.d.ts +45 -0
  174. package/lib/request-id.js +34 -0
  175. package/lib/request.d.ts +2 -0
  176. package/lib/request.js +323 -0
  177. package/lib/route.d.ts +78 -0
  178. package/lib/route.js +126 -0
  179. package/lib/router/linear-router.d.ts +11 -0
  180. package/lib/router/linear-router.js +96 -0
  181. package/lib/router/pattern-router.d.ts +11 -0
  182. package/lib/router/pattern-router.js +41 -0
  183. package/lib/router/reg-exp-router.d.ts +35 -0
  184. package/lib/router/reg-exp-router.js +2 -0
  185. package/lib/router/smart-router.d.ts +15 -0
  186. package/lib/router/smart-router.js +2 -0
  187. package/lib/router/trie-router.d.ts +11 -0
  188. package/lib/router/trie-router.js +2 -0
  189. package/lib/router-CvUxUTOq.d.ts +99 -0
  190. package/lib/router.d.ts +2 -0
  191. package/lib/router.js +35 -0
  192. package/lib/schema-validator.d.ts +28 -0
  193. package/lib/schema-validator.js +22 -0
  194. package/lib/secure-headers.d.ts +125 -0
  195. package/lib/secure-headers.js +163 -0
  196. package/lib/serve-static-Dw_m6KxR.js +213 -0
  197. package/lib/serve-static.d.ts +31 -0
  198. package/lib/serve-static.js +77 -0
  199. package/lib/smart-router-C5CZ5XSM.js +49 -0
  200. package/lib/stream-CPdqZ0Fp.d.ts +34 -0
  201. package/lib/streaming-DHST3Scg.js +96 -0
  202. package/lib/streaming.d.ts +23 -0
  203. package/lib/streaming.js +2 -0
  204. package/lib/testing.d.ts +10 -0
  205. package/lib/testing.js +17 -0
  206. package/lib/timeout.d.ts +30 -0
  207. package/lib/timeout.js +42 -0
  208. package/lib/timing.d.ts +130 -0
  209. package/lib/timing.js +183 -0
  210. package/lib/trailing-slash.d.ts +91 -0
  211. package/lib/trailing-slash.js +85 -0
  212. package/lib/trie-router-CfFbapzL.js +146 -0
  213. package/lib/types-CDO6I3B0.d.ts +40 -0
  214. package/lib/types-CHesD1KG.d.ts +195 -0
  215. package/lib/types-CwrQjlaM.d.ts +105 -0
  216. package/lib/types-DR95J00T.d.ts +29 -0
  217. package/lib/types.d.ts +2 -0
  218. package/lib/types.js +4 -0
  219. package/lib/utils/accept.d.ts +9 -0
  220. package/lib/utils/accept.js +193 -0
  221. package/lib/utils/basic-auth.d.ts +8 -0
  222. package/lib/utils/basic-auth.js +20 -0
  223. package/lib/utils/body.d.ts +2 -0
  224. package/lib/utils/body.js +94 -0
  225. package/lib/utils/buffer.d.ts +19 -0
  226. package/lib/utils/buffer.js +51 -0
  227. package/lib/utils/color.d.ts +24 -0
  228. package/lib/utils/color.js +37 -0
  229. package/lib/utils/compress.d.ts +11 -0
  230. package/lib/utils/compress.js +11 -0
  231. package/lib/utils/concurrent.d.ts +17 -0
  232. package/lib/utils/concurrent.js +30 -0
  233. package/lib/utils/constants.d.ts +7 -0
  234. package/lib/utils/constants.js +7 -0
  235. package/lib/utils/cookie.d.ts +2 -0
  236. package/lib/utils/cookie.js +125 -0
  237. package/lib/utils/crypto.d.ts +14 -0
  238. package/lib/utils/crypto.js +34 -0
  239. package/lib/utils/encode.d.ts +11 -0
  240. package/lib/utils/encode.js +33 -0
  241. package/lib/utils/filepath.d.ts +14 -0
  242. package/lib/utils/filepath.js +25 -0
  243. package/lib/utils/handler.d.ts +9 -0
  244. package/lib/utils/handler.js +12 -0
  245. package/lib/utils/headers.d.ts +2 -0
  246. package/lib/utils/headers.js +1 -0
  247. package/lib/utils/html.d.ts +46 -0
  248. package/lib/utils/html.js +103 -0
  249. package/lib/utils/http-status.d.ts +2 -0
  250. package/lib/utils/http-status.js +1 -0
  251. package/lib/utils/ipaddr.d.ts +56 -0
  252. package/lib/utils/ipaddr.js +238 -0
  253. package/lib/utils/jwt.d.ts +24 -0
  254. package/lib/utils/jwt.js +2 -0
  255. package/lib/utils/mime.d.ts +2 -0
  256. package/lib/utils/mime.js +77 -0
  257. package/lib/utils/stream.d.ts +2 -0
  258. package/lib/utils/stream.js +88 -0
  259. package/lib/utils/types.d.ts +2 -0
  260. package/lib/utils/types.js +1 -0
  261. package/lib/utils/url.d.ts +46 -0
  262. package/lib/utils/url.js +197 -0
  263. package/lib/utils-dw8lxqjL.js +4 -0
  264. package/lib/validator-D84mq-dO.js +65 -0
  265. package/lib/validator.d.ts +42 -0
  266. package/lib/validator.js +2 -0
  267. package/lib/ws.d.ts +2 -0
  268. package/lib/ws.js +53 -0
  269. package/package.json +312 -14
  270. package/plugins/acryl-inspect/src/service.ts +2 -2
  271. package/plugins/acryl-inspect/tests/service.spec.ts +3 -3
  272. package/plugins/acryl-inspect/upstream.json +2 -2
  273. package/plugins/acryl-node-server/tests/adapter/app.ts +2 -2
  274. package/plugins/acryl-node-server/tests/adapter/assets/static/acryl.html +1 -1
  275. package/plugins/acryl-node-server/tests/adapter/assets/static/index.html +1 -1
  276. package/plugins/acryl-node-server/tests/adapter/conninfo.test.ts +2 -2
  277. package/plugins/acryl-node-server/tests/adapter/content-length.test.ts +4 -4
  278. package/plugins/acryl-node-server/tests/adapter/early-hints.test.ts +5 -5
  279. package/plugins/acryl-node-server/tests/adapter/request-client-disconnect.test.ts +2 -2
  280. package/plugins/acryl-node-server/tests/adapter/serve-static.test.ts +20 -20
  281. package/plugins/acryl-node-server/tests/adapter/server-socket.test.ts +2 -2
  282. package/plugins/acryl-node-server/tests/adapter/server.test.ts +60 -50
  283. package/plugins/acryl-node-server/tests/adapter/utils/response.test.ts +4 -4
  284. package/plugins/acryl-node-server/tests/adapter/websocket.test.ts +9 -9
  285. package/plugins/acryl-node-server/tests/server.spec.ts +6 -6
  286. package/plugins/acryl-node-server/upstream.json +2 -2
  287. package/plugins/acryl-router/src/client.ts +1 -1
  288. package/plugins/acryl-router/src/connection.ts +2 -2
  289. package/plugins/acryl-router/src/core/app-base.ts +29 -29
  290. package/plugins/acryl-router/src/core/app.test.ts +175 -175
  291. package/plugins/acryl-router/src/core/app.ts +8 -8
  292. package/plugins/acryl-router/src/core/client/client.test.ts +76 -76
  293. package/plugins/acryl-router/src/core/client/client.ts +2 -2
  294. package/plugins/acryl-router/src/core/client/fetch-result-please.ts +1 -1
  295. package/plugins/acryl-router/src/core/client/index.ts +1 -1
  296. package/plugins/acryl-router/src/core/client/types.test.ts +6 -6
  297. package/plugins/acryl-router/src/core/client/types.ts +16 -16
  298. package/plugins/acryl-router/src/core/client/utils.test.ts +2 -2
  299. package/plugins/acryl-router/src/core/context.test.ts +4 -4
  300. package/plugins/acryl-router/src/core/context.ts +6 -6
  301. package/plugins/acryl-router/src/core/helper/accepts/accepts.test.ts +3 -3
  302. package/plugins/acryl-router/src/core/helper/accepts/index.ts +1 -1
  303. package/plugins/acryl-router/src/core/helper/adapter/index.test.ts +6 -6
  304. package/plugins/acryl-router/src/core/helper/adapter/index.ts +1 -1
  305. package/plugins/acryl-router/src/core/helper/conninfo/index.ts +1 -1
  306. package/plugins/acryl-router/src/core/helper/cookie/index.test.ts +8 -8
  307. package/plugins/acryl-router/src/core/helper/cookie/index.ts +1 -1
  308. package/plugins/acryl-router/src/core/helper/factory/index.test.ts +9 -9
  309. package/plugins/acryl-router/src/core/helper/factory/index.ts +10 -10
  310. package/plugins/acryl-router/src/core/helper/html/index.test.ts +4 -4
  311. package/plugins/acryl-router/src/core/helper/html/index.ts +1 -1
  312. package/plugins/acryl-router/src/core/helper/route/index.test.ts +7 -7
  313. package/plugins/acryl-router/src/core/helper/route/index.ts +8 -8
  314. package/plugins/acryl-router/src/core/helper/streaming/index.ts +1 -1
  315. package/plugins/acryl-router/src/core/helper/testing/index.test.ts +6 -6
  316. package/plugins/acryl-router/src/core/helper/testing/index.ts +4 -4
  317. package/plugins/acryl-router/src/core/helper/websocket/index.ts +2 -1
  318. package/plugins/acryl-router/src/core/http-exception.ts +1 -1
  319. package/plugins/acryl-router/src/core/index.ts +9 -9
  320. package/plugins/acryl-router/src/core/middleware/basic-auth/index.test.ts +6 -6
  321. package/plugins/acryl-router/src/core/middleware/basic-auth/index.ts +3 -3
  322. package/plugins/acryl-router/src/core/middleware/bearer-auth/index.test.ts +5 -5
  323. package/plugins/acryl-router/src/core/middleware/bearer-auth/index.ts +3 -3
  324. package/plugins/acryl-router/src/core/middleware/body-limit/index.test.ts +6 -6
  325. package/plugins/acryl-router/src/core/middleware/body-limit/index.ts +3 -3
  326. package/plugins/acryl-router/src/core/middleware/combine/index.test.ts +9 -9
  327. package/plugins/acryl-router/src/core/middleware/combine/index.ts +7 -7
  328. package/plugins/acryl-router/src/core/middleware/compress/index.test.ts +9 -9
  329. package/plugins/acryl-router/src/core/middleware/compress/index.ts +3 -3
  330. package/plugins/acryl-router/src/core/middleware/context-storage/index.test.ts +5 -5
  331. package/plugins/acryl-router/src/core/middleware/context-storage/index.ts +4 -4
  332. package/plugins/acryl-router/src/core/middleware/cors/index.test.ts +7 -7
  333. package/plugins/acryl-router/src/core/middleware/cors/index.ts +3 -3
  334. package/plugins/acryl-router/src/core/middleware/csrf/index.test.ts +10 -10
  335. package/plugins/acryl-router/src/core/middleware/csrf/index.ts +3 -3
  336. package/plugins/acryl-router/src/core/middleware/etag/index.test.ts +42 -42
  337. package/plugins/acryl-router/src/core/middleware/etag/index.ts +4 -4
  338. package/plugins/acryl-router/src/core/middleware/ip-restriction/index.test.ts +4 -4
  339. package/plugins/acryl-router/src/core/middleware/ip-restriction/index.ts +6 -6
  340. package/plugins/acryl-router/src/core/middleware/jwk/index.test.ts +16 -16
  341. package/plugins/acryl-router/src/core/middleware/jwk/jwk.ts +7 -6
  342. package/plugins/acryl-router/src/core/middleware/jwt/index.test.ts +16 -16
  343. package/plugins/acryl-router/src/core/middleware/jwt/jwt.ts +4 -3
  344. package/plugins/acryl-router/src/core/middleware/language/index.test.ts +3 -3
  345. package/plugins/acryl-router/src/core/middleware/language/language.ts +3 -3
  346. package/plugins/acryl-router/src/core/middleware/logger/index.test.ts +5 -5
  347. package/plugins/acryl-router/src/core/middleware/logger/index.ts +4 -4
  348. package/plugins/acryl-router/src/core/middleware/method-not-allowed/index.test.ts +24 -24
  349. package/plugins/acryl-router/src/core/middleware/method-not-allowed/index.ts +8 -8
  350. package/plugins/acryl-router/src/core/middleware/method-override/index.test.ts +5 -5
  351. package/plugins/acryl-router/src/core/middleware/method-override/index.ts +6 -6
  352. package/plugins/acryl-router/src/core/middleware/powered-by/index.test.ts +4 -4
  353. package/plugins/acryl-router/src/core/middleware/powered-by/index.ts +6 -6
  354. package/plugins/acryl-router/src/core/middleware/pretty-json/index.test.ts +30 -30
  355. package/plugins/acryl-router/src/core/middleware/pretty-json/index.ts +4 -4
  356. package/plugins/acryl-router/src/core/middleware/request-id/index.test.ts +15 -15
  357. package/plugins/acryl-router/src/core/middleware/request-id/request-id.ts +3 -3
  358. package/plugins/acryl-router/src/core/middleware/secure-headers/index.test.ts +35 -35
  359. package/plugins/acryl-router/src/core/middleware/secure-headers/secure-headers.ts +3 -3
  360. package/plugins/acryl-router/src/core/middleware/serve-static/index.test.ts +23 -23
  361. package/plugins/acryl-router/src/core/middleware/serve-static/index.ts +1 -1
  362. package/plugins/acryl-router/src/core/middleware/timeout/index.test.ts +2 -2
  363. package/plugins/acryl-router/src/core/middleware/timeout/index.ts +3 -3
  364. package/plugins/acryl-router/src/core/middleware/timing/index.test.ts +14 -14
  365. package/plugins/acryl-router/src/core/middleware/timing/timing.ts +3 -3
  366. package/plugins/acryl-router/src/core/middleware/trailing-slash/index.test.ts +7 -7
  367. package/plugins/acryl-router/src/core/middleware/trailing-slash/index.ts +7 -7
  368. package/plugins/acryl-router/src/core/request.test.ts +42 -42
  369. package/plugins/acryl-router/src/core/request.ts +6 -6
  370. package/plugins/acryl-router/src/core/router/linear-router/index.ts +1 -1
  371. package/plugins/acryl-router/src/core/router/pattern-router/index.ts +1 -1
  372. package/plugins/acryl-router/src/core/router/reg-exp-router/index.ts +1 -1
  373. package/plugins/acryl-router/src/core/router/smart-router/index.ts +1 -1
  374. package/plugins/acryl-router/src/core/router/trie-router/index.ts +1 -1
  375. package/plugins/acryl-router/src/core/types.test.ts +115 -115
  376. package/plugins/acryl-router/src/core/types.ts +72 -72
  377. package/plugins/acryl-router/src/core/utils/body.ts +8 -8
  378. package/plugins/acryl-router/src/core/utils/html.ts +1 -1
  379. package/plugins/acryl-router/src/core/utils/jwt/jws.ts +3 -3
  380. package/plugins/acryl-router/src/core/utils/jwt/jwt.test.ts +2 -2
  381. package/plugins/acryl-router/src/core/utils/jwt/jwt.ts +3 -3
  382. package/plugins/acryl-router/src/core/utils/jwt/types.ts +1 -1
  383. package/plugins/acryl-router/src/core/utils/types.ts +42 -0
  384. package/plugins/acryl-router/src/core/utils/url.test.ts +2 -2
  385. package/plugins/acryl-router/src/core/validator/index.ts +1 -1
  386. package/plugins/acryl-router/src/core/validator/validator.test.ts +28 -28
  387. package/plugins/acryl-router/src/deprecated.ts +15 -0
  388. package/plugins/acryl-router/src/index.ts +3 -2
  389. package/plugins/acryl-router/src/service.ts +10 -10
  390. package/plugins/acryl-router/tests/docs-examples.spec.ts +11 -11
  391. package/plugins/acryl-router/tests/live-install.spec.ts +2 -2
  392. package/plugins/acryl-router/tests/loader.spec.ts +3 -3
  393. package/plugins/acryl-router/tests/loopback-only.spec.ts +4 -4
  394. package/plugins/acryl-router/tests/no-dom/consumer.ts +11 -0
  395. package/plugins/acryl-router/tests/no-dom/tsconfig.json +13 -0
  396. package/plugins/acryl-router/tests/service.spec.ts +23 -23
  397. package/plugins/acryl-router/upstream.json +3 -3
  398. package/plugins/acryl-router-http/tests/adapter.spec.ts +3 -3
  399. package/plugins/acryl-router-http/tests/surfaces.spec.ts +2 -2
  400. package/plugins/acryl-router-http/upstream.json +2 -2
  401. package/plugins/acryl-state/src/service.ts +2 -2
  402. package/plugins/acryl-state/upstream.json +2 -2
  403. package/plugins/builder/script.ts +2 -2
  404. package/plugins/extensions/resolve.ts +70 -10
  405. package/plugins/openai/prompt.ts +5 -5
  406. package/shared/AGENTS.core.md +16 -9
  407. package/templates/agent/src/routes.ts +2 -2
  408. package/templates/agent/test/model.test.ts +2 -2
  409. package/templates/agent/tsconfig.json +40 -0
  410. package/templates/blank/src/routes.ts +2 -2
  411. package/templates/todo/src/todo.ts +2 -2
  412. package/templates/todo/upstream.json +2 -2
  413. package/docs/framework/context.md +0 -129
  414. package/docs/framework/helpers.md +0 -118
  415. package/docs/framework/middleware.md +0 -154
  416. package/docs/framework/request.md +0 -106
  417. /package/docs/framework/{plugin-lifecycle.md → cordis/plugin-lifecycle.md} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { NONCE, secureHeaders } from './index.ts'
2
2
  import type { ContentSecurityPolicyOptionHandler } from './index.ts'
3
- import { App } from '../../app.ts'
3
+ import { Acryl } from '../../app.ts'
4
4
  import { poweredBy } from '../powered-by/index.ts'
5
5
 
6
6
  declare module '../../context.ts' {
@@ -12,7 +12,7 @@ declare module '../../context.ts' {
12
12
 
13
13
  describe('Secure Headers Middleware', () => {
14
14
  it('default middleware', async () => {
15
- const app = new App()
15
+ const app = new Acryl()
16
16
  app.use('*', secureHeaders())
17
17
  app.get('/test', async (ctx) => {
18
18
  return ctx.text('test')
@@ -41,7 +41,7 @@ describe('Secure Headers Middleware', () => {
41
41
  })
42
42
 
43
43
  it('all headers enabled', async () => {
44
- const app = new App()
44
+ const app = new Acryl()
45
45
  app.use(
46
46
  '*',
47
47
  secureHeaders({
@@ -85,7 +85,7 @@ describe('Secure Headers Middleware', () => {
85
85
  })
86
86
 
87
87
  it('specific headers disabled', async () => {
88
- const app = new App()
88
+ const app = new Acryl()
89
89
  app.use('*', secureHeaders({ xFrameOptions: false, xXssProtection: false }))
90
90
  app.get('/test', async (ctx) => {
91
91
  return ctx.text('test')
@@ -112,27 +112,27 @@ describe('Secure Headers Middleware', () => {
112
112
  })
113
113
 
114
114
  it('should remove x-powered-by header', async () => {
115
- const appBefore = new App()
115
+ const appBefore = new Acryl()
116
116
  appBefore.use('*', secureHeaders())
117
117
  appBefore.use('*', poweredBy())
118
118
 
119
119
  const resBefore = await appBefore.request('/')
120
120
  expect(resBefore.headers.get('x-powered-by')).toBeFalsy()
121
121
 
122
- const appAfter = new App()
122
+ const appAfter = new Acryl()
123
123
  appAfter.use('*', poweredBy())
124
124
  appAfter.use('*', secureHeaders())
125
125
 
126
126
  const resAfter = await appAfter.request('/')
127
- expect(resAfter.headers.get('x-powered-by')).toBe('ACRYL')
127
+ expect(resAfter.headers.get('x-powered-by')).toBe('Acryl')
128
128
  })
129
129
 
130
130
  it('should override Strict-Transport-Security header after middleware', async () => {
131
- const app = new App()
131
+ const app = new Acryl()
132
132
  app.use('/test1', secureHeaders())
133
133
 
134
134
  app.all('*', async (c) => {
135
- c.res.headers.set('Strict-Transport-Security', 'App')
135
+ c.res.headers.set('Strict-Transport-Security', 'Acryl')
136
136
  return c.text('header updated')
137
137
  })
138
138
 
@@ -142,11 +142,11 @@ describe('Secure Headers Middleware', () => {
142
142
  )
143
143
 
144
144
  const res2 = await app.request('/test2')
145
- expect(res2.headers.get('Strict-Transport-Security')).toEqual('App')
145
+ expect(res2.headers.get('Strict-Transport-Security')).toEqual('Acryl')
146
146
  })
147
147
 
148
148
  it('should use custom value when overridden', async () => {
149
- const app = new App()
149
+ const app = new Acryl()
150
150
  app.use(
151
151
  '/test',
152
152
  secureHeaders({
@@ -165,7 +165,7 @@ describe('Secure Headers Middleware', () => {
165
165
  })
166
166
 
167
167
  it('should set Permission-Policy header correctly', async () => {
168
- const app = new App()
168
+ const app = new Acryl()
169
169
  app.use(
170
170
  '/test',
171
171
  secureHeaders({
@@ -198,10 +198,10 @@ describe('Secure Headers Middleware', () => {
198
198
  })
199
199
 
200
200
  it('Remove X-Powered-By', async () => {
201
- const app = new App()
201
+ const app = new Acryl()
202
202
 
203
203
  app.get('/test', secureHeaders(), poweredBy(), async (c) => {
204
- return c.text('App is hot')
204
+ return c.text('Acryl is hot')
205
205
  })
206
206
 
207
207
  app.get(
@@ -211,19 +211,19 @@ describe('Secure Headers Middleware', () => {
211
211
  }),
212
212
  poweredBy(),
213
213
  async (c) => {
214
- return c.text('App is hot')
214
+ return c.text('Acryl is hot')
215
215
  }
216
216
  )
217
217
 
218
218
  const res = await app.request('/test')
219
219
  const poweredby = res.headers.get('X-Powered-By')
220
220
  expect(poweredby).toEqual(null)
221
- expect(await res.text()).toEqual('App is hot')
221
+ expect(await res.text()).toEqual('Acryl is hot')
222
222
 
223
223
  const res2 = await app.request('/test2')
224
224
  const poweredby2 = res2.headers.get('X-Powered-By')
225
- expect(poweredby2).toEqual('ACRYL')
226
- expect(await res2.text()).toEqual('App is hot')
225
+ expect(poweredby2).toEqual('Acryl')
226
+ expect(await res2.text()).toEqual('Acryl is hot')
227
227
  })
228
228
 
229
229
  describe.each([
@@ -234,7 +234,7 @@ describe('Secure Headers Middleware', () => {
234
234
  },
235
235
  ])('CSP Setting ($cspSettingName)', ({ cspSettingName, cspHeaderName }) => {
236
236
  it('CSP Setting', async () => {
237
- const app = new App()
237
+ const app = new Acryl()
238
238
  app.use(
239
239
  '/test',
240
240
  secureHeaders({
@@ -255,7 +255,7 @@ describe('Secure Headers Middleware', () => {
255
255
  )
256
256
 
257
257
  app.all('*', async (c) => {
258
- c.res.headers.set('Strict-Transport-Security', 'App')
258
+ c.res.headers.set('Strict-Transport-Security', 'Acryl')
259
259
  return c.text('header updated')
260
260
  })
261
261
 
@@ -266,7 +266,7 @@ describe('Secure Headers Middleware', () => {
266
266
  })
267
267
 
268
268
  it('CSP Setting one only', async () => {
269
- const app = new App()
269
+ const app = new Acryl()
270
270
  app.use(
271
271
  '/test',
272
272
  secureHeaders({
@@ -285,7 +285,7 @@ describe('Secure Headers Middleware', () => {
285
285
  })
286
286
 
287
287
  it('No CSP Setting', async () => {
288
- const app = new App()
288
+ const app = new Acryl()
289
289
  app.use('/test', secureHeaders({ [cspSettingName]: {} }))
290
290
 
291
291
  app.all('*', async (c) => {
@@ -297,7 +297,7 @@ describe('Secure Headers Middleware', () => {
297
297
  })
298
298
 
299
299
  it('CSP with reportTo', async () => {
300
- const app = new App()
300
+ const app = new Acryl()
301
301
  app.use(
302
302
  '/test1',
303
303
  secureHeaders({
@@ -409,7 +409,7 @@ describe('Secure Headers Middleware', () => {
409
409
  })
410
410
 
411
411
  it('CSP nonce for script-src', async () => {
412
- const app = new App()
412
+ const app = new Acryl()
413
413
  app.use(
414
414
  '/test',
415
415
  secureHeaders({
@@ -431,7 +431,7 @@ describe('Secure Headers Middleware', () => {
431
431
  })
432
432
 
433
433
  it('CSP nonce for script-src and style-src', async () => {
434
- const app = new App()
434
+ const app = new Acryl()
435
435
  app.use(
436
436
  '/test',
437
437
  secureHeaders({
@@ -455,7 +455,7 @@ describe('Secure Headers Middleware', () => {
455
455
  })
456
456
 
457
457
  it('CSP nonce by app own function', async () => {
458
- const app = new App()
458
+ const app = new Acryl()
459
459
  const setNonce: ContentSecurityPolicyOptionHandler = (ctx, directive) => {
460
460
  ctx.set(`test-${directive}-nonce`, directive)
461
461
  return `'nonce-${directive}'`
@@ -486,7 +486,7 @@ describe('Secure Headers Middleware', () => {
486
486
 
487
487
  describe('CSP with combined modes', () => {
488
488
  it('keeps the enforced policy when report-only uses a nonce', async () => {
489
- const app = new App()
489
+ const app = new Acryl()
490
490
  app.use(
491
491
  '/test',
492
492
  secureHeaders({
@@ -510,7 +510,7 @@ describe('Secure Headers Middleware', () => {
510
510
  })
511
511
 
512
512
  it('keeps the report-only policy when the enforced policy uses a nonce', async () => {
513
- const app = new App()
513
+ const app = new Acryl()
514
514
  app.use(
515
515
  '/test',
516
516
  secureHeaders({
@@ -534,7 +534,7 @@ describe('Secure Headers Middleware', () => {
534
534
  })
535
535
 
536
536
  it('supports nonces in both policies', async () => {
537
- const app = new App()
537
+ const app = new Acryl()
538
538
  app.use(
539
539
  '/test',
540
540
  secureHeaders({
@@ -562,7 +562,7 @@ describe('Secure Headers Middleware', () => {
562
562
  // OUR NEW REPORT-URI TESTS
563
563
  describe('CSP report-uri directive', () => {
564
564
  it('should set report-uri with single endpoint', async () => {
565
- const app = new App()
565
+ const app = new Acryl()
566
566
  app.use(
567
567
  '/test',
568
568
  secureHeaders({
@@ -580,7 +580,7 @@ describe('Secure Headers Middleware', () => {
580
580
  })
581
581
 
582
582
  it('should set report-uri with multiple endpoints', async () => {
583
- const app = new App()
583
+ const app = new Acryl()
584
584
  app.use(
585
585
  '/test',
586
586
  secureHeaders({
@@ -598,7 +598,7 @@ describe('Secure Headers Middleware', () => {
598
598
  })
599
599
 
600
600
  it('should work with report-to and report-uri together', async () => {
601
- const app = new App()
601
+ const app = new Acryl()
602
602
  app.use(
603
603
  '/test',
604
604
  secureHeaders({
@@ -617,7 +617,7 @@ describe('Secure Headers Middleware', () => {
617
617
  })
618
618
 
619
619
  it('should work with Content-Security-Policy-Report-Only', async () => {
620
- const app = new App()
620
+ const app = new Acryl()
621
621
  app.use(
622
622
  '/test',
623
623
  secureHeaders({
@@ -637,7 +637,7 @@ describe('Secure Headers Middleware', () => {
637
637
  // ADDED MISSING TEST CASE for Report-Only:
638
638
 
639
639
  it('should not output report-uri when reportUri is not set', async () => {
640
- const app = new App()
640
+ const app = new Acryl()
641
641
  app.use(
642
642
  '/test',
643
643
  secureHeaders({
@@ -653,7 +653,7 @@ describe('Secure Headers Middleware', () => {
653
653
  })
654
654
 
655
655
  it('should not output report-uri in Report-Only when reportUri is not set', async () => {
656
- const app = new App()
656
+ const app = new Acryl()
657
657
  app.use(
658
658
  '/test',
659
659
  secureHeaders({
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @module
3
- * Secure Headers Middleware for App.
3
+ * Secure Headers Middleware for Acryl.
4
4
  */
5
5
 
6
6
  import type { Context } from '../../context.ts'
@@ -145,7 +145,7 @@ export const NONCE: ContentSecurityPolicyOptionHandler = (ctx) => {
145
145
  }
146
146
 
147
147
  /**
148
- * Secure Headers Middleware for App.
148
+ * Secure Headers Middleware for Acryl.
149
149
  *
150
150
  *
151
151
  * @param {Partial<SecureHeadersOptions>} [customOptions] - The options for the secure headers middleware.
@@ -171,7 +171,7 @@ export const NONCE: ContentSecurityPolicyOptionHandler = (ctx) => {
171
171
  *
172
172
  * @example
173
173
  * ```ts
174
- * const app = new App()
174
+ * const app = new Acryl()
175
175
  * app.use(secureHeaders())
176
176
  * ```
177
177
  */
@@ -1,9 +1,9 @@
1
1
  import { serveStatic as baseServeStatic } from './index.ts'
2
- import { App } from '../../app.ts'
2
+ import { Acryl } from '../../app.ts'
3
3
 
4
4
  describe('Serve Static Middleware with a Blob body', () => {
5
5
  it('Should serve content returned as a Blob', async () => {
6
- const app = new App()
6
+ const app = new Acryl()
7
7
  app.use(
8
8
  '/static/*',
9
9
  baseServeStatic({
@@ -17,7 +17,7 @@ describe('Serve Static Middleware with a Blob body', () => {
17
17
  })
18
18
 
19
19
  describe('Serve Static Middleware', () => {
20
- const app = new App()
20
+ const app = new Acryl()
21
21
  const getContent = vi.fn(async (path) => {
22
22
  if (path.endsWith('not-found.txt')) {
23
23
  return null
@@ -48,7 +48,7 @@ describe('Serve Static Middleware', () => {
48
48
  it.each(['GET', 'HEAD'])(
49
49
  'Should serve files for %s requests registered with use()',
50
50
  async (method) => {
51
- const app = new App().use('/static/*', serveStatic)
51
+ const app = new Acryl().use('/static/*', serveStatic)
52
52
 
53
53
  const res = await app.request('/static/hello.html', { method })
54
54
 
@@ -66,7 +66,7 @@ describe('Serve Static Middleware', () => {
66
66
  const rewriteRequestPath = vi.fn((path: string) => path)
67
67
  const onFound = vi.fn()
68
68
  const onNotFound = vi.fn()
69
- const app = new App().use(
69
+ const app = new Acryl().use(
70
70
  '/static/*',
71
71
  baseServeStatic({ getContent, isDir, rewriteRequestPath, onFound, onNotFound })
72
72
  )
@@ -87,7 +87,7 @@ describe('Serve Static Middleware', () => {
87
87
  it.each(['/static/hello.html', '/static/not-found.txt'])(
88
88
  'Should return 404 for an unhandled POST request regardless of file existence - %s',
89
89
  async (path) => {
90
- const app = new App().use('/static/*', serveStatic)
90
+ const app = new Acryl().use('/static/*', serveStatic)
91
91
 
92
92
  const res = await app.request(path, { method: 'POST' })
93
93
 
@@ -134,7 +134,7 @@ describe('Serve Static Middleware', () => {
134
134
  'Should skip paths containing percent signs by default - %s',
135
135
  async (path) => {
136
136
  const onNotFound = vi.fn()
137
- const app = new App().use('*', baseServeStatic({ getContent, onNotFound }))
137
+ const app = new Acryl().use('*', baseServeStatic({ getContent, onNotFound }))
138
138
 
139
139
  const res = await app.request(path)
140
140
 
@@ -149,7 +149,7 @@ describe('Serve Static Middleware', () => {
149
149
  ['/static/100%25/hello.txt', 'static/100%/hello.txt'],
150
150
  ['/static/%2Fadmin/secret.txt', 'static/%2Fadmin/secret.txt'],
151
151
  ])('Should allow percent signs when opted in - %s', async (url, path) => {
152
- const app = new App().use('*', baseServeStatic({ getContent, allowPercentInPath: true }))
152
+ const app = new Acryl().use('*', baseServeStatic({ getContent, allowPercentInPath: true }))
153
153
 
154
154
  const res = await app.request(url)
155
155
 
@@ -158,7 +158,7 @@ describe('Serve Static Middleware', () => {
158
158
  })
159
159
 
160
160
  it('Should not bypass authentication through a second decode', async () => {
161
- const app = new App()
161
+ const app = new Acryl()
162
162
  app.get('/static/admin/*', (c) => c.text('Unauthorized', 401))
163
163
  app.use('/static/*', baseServeStatic({ getContent }))
164
164
 
@@ -181,7 +181,7 @@ describe('Serve Static Middleware', () => {
181
181
 
182
182
  it('Should return 200 response for empty string content - /static/empty.txt', async () => {
183
183
  const onNotFound = vi.fn()
184
- const app = new App().use(
184
+ const app = new Acryl().use(
185
185
  '*',
186
186
  baseServeStatic({
187
187
  getContent: async () => '',
@@ -214,7 +214,7 @@ describe('Serve Static Middleware', () => {
214
214
  })
215
215
 
216
216
  it('Should return a pre-compressed zstd response - /static/hello.html', async () => {
217
- const app = new App().use(
217
+ const app = new Acryl().use(
218
218
  '*',
219
219
  baseServeStatic({
220
220
  getContent,
@@ -234,7 +234,7 @@ describe('Serve Static Middleware', () => {
234
234
  })
235
235
 
236
236
  it('Should return a pre-compressed brotli response - /static/hello.html', async () => {
237
- const app = new App().use(
237
+ const app = new Acryl().use(
238
238
  '*',
239
239
  baseServeStatic({
240
240
  getContent,
@@ -254,7 +254,7 @@ describe('Serve Static Middleware', () => {
254
254
  })
255
255
 
256
256
  it('Should return a pre-compressed brotli response - /static/hello.unknown', async () => {
257
- const app = new App().use(
257
+ const app = new Acryl().use(
258
258
  '*',
259
259
  baseServeStatic({
260
260
  getContent,
@@ -274,7 +274,7 @@ describe('Serve Static Middleware', () => {
274
274
  })
275
275
 
276
276
  it('Should return a pre-compressed response when Accept-Encoding has q-values', async () => {
277
- const app = new App().use(
277
+ const app = new Acryl().use(
278
278
  '*',
279
279
  baseServeStatic({
280
280
  getContent,
@@ -293,7 +293,7 @@ describe('Serve Static Middleware', () => {
293
293
  })
294
294
 
295
295
  it('Should not return a pre-compressed response - /static/not-found.txt', async () => {
296
- const app = new App().use(
296
+ const app = new Acryl().use(
297
297
  '*',
298
298
  baseServeStatic({
299
299
  getContent,
@@ -313,7 +313,7 @@ describe('Serve Static Middleware', () => {
313
313
  })
314
314
 
315
315
  it('Should not return a pre-compressed response - /static/hello.html', async () => {
316
- const app = new App().use(
316
+ const app = new Acryl().use(
317
317
  '*',
318
318
  baseServeStatic({
319
319
  getContent,
@@ -333,7 +333,7 @@ describe('Serve Static Middleware', () => {
333
333
  })
334
334
 
335
335
  it('Should not find pre-compressed files - /static/hello.jpg', async () => {
336
- const app = new App().use(
336
+ const app = new Acryl().use(
337
337
  '*',
338
338
  baseServeStatic({
339
339
  getContent,
@@ -355,7 +355,7 @@ describe('Serve Static Middleware', () => {
355
355
  it('Should return response object content as-is', async () => {
356
356
  const body = new ReadableStream()
357
357
  const response = new Response(body)
358
- const app = new App().use(
358
+ const app = new Acryl().use(
359
359
  '*',
360
360
  baseServeStatic({
361
361
  getContent: async () => {
@@ -374,7 +374,7 @@ describe('Serve Static Middleware', () => {
374
374
 
375
375
  describe('Changing root path', () => {
376
376
  it('Should return the content with absolute root path', async () => {
377
- const app = new App()
377
+ const app = new Acryl()
378
378
  const serveStatic = baseServeStatic({
379
379
  getContent,
380
380
  root: '/home/acryl/child',
@@ -386,7 +386,7 @@ describe('Serve Static Middleware', () => {
386
386
  })
387
387
 
388
388
  it('Should traverse the directories with absolute root path', async () => {
389
- const app = new App()
389
+ const app = new Acryl()
390
390
  const serveStatic = baseServeStatic({
391
391
  getContent,
392
392
  root: '/home/acryl/../parent',
@@ -398,7 +398,7 @@ describe('Serve Static Middleware', () => {
398
398
  })
399
399
 
400
400
  it('Should treat the root path includes .. as relative path', async () => {
401
- const app = new App()
401
+ const app = new Acryl()
402
402
  const serveStatic = baseServeStatic({
403
403
  getContent,
404
404
  root: '../home/acryl',
@@ -410,7 +410,7 @@ describe('Serve Static Middleware', () => {
410
410
  })
411
411
 
412
412
  it('Should not allow directory traversal with . as relative path', async () => {
413
- const app = new App()
413
+ const app = new Acryl()
414
414
  const serveStatic = baseServeStatic({
415
415
  getContent,
416
416
  root: '.',
@@ -422,7 +422,7 @@ describe('Serve Static Middleware', () => {
422
422
  })
423
423
 
424
424
  it('Should not allow bypass via path mismatch between middleware and serveStatic', async () => {
425
- const app = new App()
425
+ const app = new Acryl()
426
426
 
427
427
  app.use('/admin/*', async (c, next) => {
428
428
  c.header('X-Authorized', 'true')
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @module
3
- * Serve Static Middleware for App.
3
+ * Serve Static Middleware for Acryl.
4
4
  */
5
5
 
6
6
  import type { Context, Data } from '../../context.ts'
@@ -1,11 +1,11 @@
1
1
  import type { HTTPExceptionFunction } from './index.ts'
2
2
  import { timeout } from './index.ts'
3
3
  import type { Context } from '../../context.ts'
4
- import { App } from '../../app.ts'
4
+ import { Acryl } from '../../app.ts'
5
5
  import { HTTPException } from '../../http-exception.ts'
6
6
 
7
7
  describe('Timeout API', () => {
8
- const app = new App()
8
+ const app = new Acryl()
9
9
 
10
10
  app.use('/slow-endpoint', timeout(1000))
11
11
  app.use(
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @module
3
- * Timeout Middleware for App.
3
+ * Timeout Middleware for Acryl.
4
4
  */
5
5
 
6
6
  import type { Context } from '../../context.ts'
@@ -14,7 +14,7 @@ const defaultTimeoutException = new HTTPException(504, {
14
14
  })
15
15
 
16
16
  /**
17
- * Timeout Middleware for App.
17
+ * Timeout Middleware for Acryl.
18
18
  *
19
19
  * @param {number} duration - The timeout duration in milliseconds.
20
20
  * @param {HTTPExceptionFunction | HTTPException} [exception=defaultTimeoutException] - The exception to throw when the timeout occurs. Can be a function that returns an HTTPException or an HTTPException object.
@@ -22,7 +22,7 @@ const defaultTimeoutException = new HTTPException(504, {
22
22
  *
23
23
  * @example
24
24
  * ```ts
25
- * const app = new App()
25
+ * const app = new Acryl()
26
26
  *
27
27
  * app.use(
28
28
  * '/long-request',
@@ -1,8 +1,8 @@
1
1
  import { endTime, setMetric, startTime, timing, wrapTime } from './index.ts'
2
- import { App } from '../../app.ts'
2
+ import { Acryl } from '../../app.ts'
3
3
 
4
4
  describe('Server-Timing API', () => {
5
- const app = new App()
5
+ const app = new Acryl()
6
6
 
7
7
  const totalDescription = 'my total DescRipTion!'
8
8
  const name = 'sleep'
@@ -43,7 +43,7 @@ describe('Server-Timing API', () => {
43
43
  return c.text('cache!')
44
44
  })
45
45
 
46
- const sub = new App()
46
+ const sub = new Acryl()
47
47
 
48
48
  sub.use(timing())
49
49
  sub.get('/', (c) => c.text('sub'))
@@ -105,7 +105,7 @@ describe('Server-Timing API', () => {
105
105
 
106
106
  describe('Should handle timing options', async () => {
107
107
  it('Should handle autoEnd option', async () => {
108
- const autoEndApp = new App()
108
+ const autoEndApp = new Acryl()
109
109
 
110
110
  autoEndApp.use('*', timing())
111
111
  autoEndApp.get('/', (c) => {
@@ -118,7 +118,7 @@ describe('Server-Timing API', () => {
118
118
  expect(res.status).toBe(200)
119
119
  expect(res.headers.get('server-timing')).toContain('test;dur=')
120
120
 
121
- const disabledAutoEndApp = new App()
121
+ const disabledAutoEndApp = new Acryl()
122
122
 
123
123
  disabledAutoEndApp.use('*', timing({ autoEnd: false }))
124
124
  disabledAutoEndApp.get('/', (c) => {
@@ -133,7 +133,7 @@ describe('Server-Timing API', () => {
133
133
  })
134
134
 
135
135
  it('Should use enabled function return value', async () => {
136
- const enabledApp = new App()
136
+ const enabledApp = new Acryl()
137
137
  const enabled = vi.fn(() => false)
138
138
 
139
139
  enabledApp.use('*', timing({ enabled }))
@@ -147,7 +147,7 @@ describe('Server-Timing API', () => {
147
147
  })
148
148
 
149
149
  it('Should handle total false and value-less metrics without description', async () => {
150
- const metricApp = new App()
150
+ const metricApp = new Acryl()
151
151
 
152
152
  metricApp.use('*', timing({ total: false }))
153
153
  metricApp.get('/', (c) => {
@@ -164,7 +164,7 @@ describe('Server-Timing API', () => {
164
164
 
165
165
  describe('Should handle crossOrigin setting', async () => {
166
166
  it('Should do nothing when crossOrigin is falsy', async () => {
167
- const crossOriginApp = new App()
167
+ const crossOriginApp = new Acryl()
168
168
 
169
169
  crossOriginApp.use(
170
170
  '*',
@@ -183,7 +183,7 @@ describe('Server-Timing API', () => {
183
183
  })
184
184
 
185
185
  it('Should set Timing-Allow-Origin to * when crossOrigin is true', async () => {
186
- const crossOriginApp = new App()
186
+ const crossOriginApp = new Acryl()
187
187
 
188
188
  crossOriginApp.use(
189
189
  '*',
@@ -203,7 +203,7 @@ describe('Server-Timing API', () => {
203
203
  })
204
204
 
205
205
  it('Should set Timing-Allow-Origin to the value of crossOrigin when it is a string', async () => {
206
- const crossOriginApp = new App()
206
+ const crossOriginApp = new Acryl()
207
207
 
208
208
  crossOriginApp.use(
209
209
  '*',
@@ -223,7 +223,7 @@ describe('Server-Timing API', () => {
223
223
  })
224
224
 
225
225
  it('Should set Timing-Allow-Origin to the return value of crossOrigin when it is a function', async () => {
226
- const crossOriginApp = new App()
226
+ const crossOriginApp = new Acryl()
227
227
 
228
228
  crossOriginApp.use(
229
229
  '*',
@@ -252,7 +252,7 @@ describe('Server-Timing API', () => {
252
252
  delete globalThis.performance
253
253
  const DateNowSpy = vi.spyOn(Date, 'now').mockReturnValue(123456789)
254
254
 
255
- const app = new App().use(timing()).get('/', (c) => {
255
+ const app = new Acryl().use(timing()).get('/', (c) => {
256
256
  startTime(c, 'test')
257
257
  endTime(c, 'test')
258
258
  return c.text('hello')
@@ -272,7 +272,7 @@ describe('Server-Timing API', () => {
272
272
  it('Should silently warn when no timing metrics are available', async () => {
273
273
  const consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {})
274
274
 
275
- const app = new App().get('/', (c) => {
275
+ const app = new Acryl().get('/', (c) => {
276
276
  setMetric(c, 'test', 123)
277
277
  startTime(c, 'test')
278
278
  endTime(c, 'test')
@@ -293,7 +293,7 @@ describe('Server-Timing API', () => {
293
293
  it('Should silently warn when trying to end a non-existent timer', async () => {
294
294
  const consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {})
295
295
 
296
- const app = new App().use(timing()).get('/', (c) => {
296
+ const app = new Acryl().use(timing()).get('/', (c) => {
297
297
  setMetric(c, 'region', 'europe-west3')
298
298
  endTime(c, 'nonExistentTimer')
299
299
  return c.text('hello')
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @module
3
- * Server-Timing Middleware for App.
3
+ * Server-Timing Middleware for Acryl.
4
4
  */
5
5
 
6
6
  import type { Context } from '../../context.ts'
@@ -35,7 +35,7 @@ const getTime = (): number => {
35
35
  }
36
36
 
37
37
  /**
38
- * Server-Timing Middleware for App.
38
+ * Server-Timing Middleware for Acryl.
39
39
  *
40
40
  *
41
41
  * @param {TimingOptions} [config] - The options for the timing middleware.
@@ -48,7 +48,7 @@ const getTime = (): number => {
48
48
  *
49
49
  * @example
50
50
  * ```ts
51
- * const app = new App()
51
+ * const app = new Acryl()
52
52
  *
53
53
  * // add the middleware to your router
54
54
  * app.use(timing());