acrylblends 0.6.2 → 0.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/README.md +5 -1
  2. package/docs/framework/README.md +3 -2
  3. package/docs/framework/UPSTREAM.md +1 -1
  4. package/docs/framework/cordis/acryl-in-a-cordis-app.md +6 -0
  5. package/docs/framework/getting-started/basic.md +1 -0
  6. package/docs/framework/getting-started/desktop.md +41 -0
  7. package/docs/framework/guides/jsx-dom.md +0 -3
  8. package/docs/framework/guides/jsx.md +24 -3
  9. package/docs/framework/helpers/css.md +0 -3
  10. package/docs/framework/helpers/ssg.md +3 -6
  11. package/docs/framework/middleware/builtin/jsx-renderer.md +0 -3
  12. package/docs/framework/upstream.json +3 -3
  13. package/lib/accepts.d.ts +1 -1
  14. package/lib/acryl-base.d.ts +1 -1
  15. package/lib/adapter.d.ts +1 -1
  16. package/lib/{app-BdrVHBlJ.d.ts → app-D8riatvv.d.ts} +1 -1
  17. package/lib/base-BpQy2Rk7.d.ts +783 -0
  18. package/lib/base-ddiVmiE7.js +721 -0
  19. package/lib/basic-auth.d.ts +1 -1
  20. package/lib/bearer-auth.d.ts +1 -1
  21. package/lib/body-limit.d.ts +1 -1
  22. package/lib/cache.d.ts +1 -1
  23. package/lib/cache.js +4 -4
  24. package/lib/{client-BHTr318g.js → client-DDLXwhBo.js} +2 -125
  25. package/lib/client.d.ts +2 -2
  26. package/lib/client.js +2 -1
  27. package/lib/combine.d.ts +1 -1
  28. package/lib/common-D8Z4JRCw.d.ts +46 -0
  29. package/lib/components-0o0CBYNv.js +268 -0
  30. package/lib/components-DdI7-ns7.js +24 -0
  31. package/lib/compress.d.ts +1 -1
  32. package/lib/conninfo.d.ts +2 -2
  33. package/lib/constants-BR9jM9BC.js +9 -0
  34. package/lib/{context-B5Y1lLha.d.ts → context-DS3fYyG-.d.ts} +2 -2
  35. package/lib/context-DxFdY_un.d.ts +250 -0
  36. package/lib/context-storage.d.ts +1 -1
  37. package/lib/{cookie-D9_nQbsM.d.ts → cookie-CCelEqky.d.ts} +1 -1
  38. package/lib/cookie.d.ts +3 -3
  39. package/lib/cors.d.ts +1 -1
  40. package/lib/csrf.d.ts +1 -1
  41. package/lib/css-D2jb7X8b.js +320 -0
  42. package/lib/css.d.ts +82 -0
  43. package/lib/css.js +134 -0
  44. package/lib/dev.d.ts +2 -2
  45. package/lib/etag.d.ts +1 -1
  46. package/lib/factory.d.ts +2 -2
  47. package/lib/hooks-BMw6BAyP.js +762 -0
  48. package/lib/html-SllAe0YT.d.ts +46 -0
  49. package/lib/html.d.ts +1 -1
  50. package/lib/{index-m12zcmph.d.ts → index-Bb7YJKCq.d.ts} +3 -3
  51. package/lib/{index-Kqou8Fjh.d.ts → index-BvFh1Gfx.d.ts} +2 -2
  52. package/lib/index-C850MeBA.d.ts +94 -0
  53. package/lib/{index-DtEoak1i.d.ts → index-CTy4N7ng.d.ts} +2 -2
  54. package/lib/index.d.ts +4 -4
  55. package/lib/ip-restriction.d.ts +2 -2
  56. package/lib/jsx/dom/client.d.ts +30 -0
  57. package/lib/jsx/dom/client.js +49 -0
  58. package/lib/jsx/dom/css.d.ts +84 -0
  59. package/lib/jsx/dom/css.js +2 -0
  60. package/lib/jsx/dom/jsx-dev-runtime.d.ts +3 -0
  61. package/lib/jsx/dom/jsx-dev-runtime.js +2 -0
  62. package/lib/jsx/dom/jsx-runtime.d.ts +3 -0
  63. package/lib/jsx/dom/jsx-runtime.js +2 -0
  64. package/lib/jsx/dom/server.d.ts +105 -0
  65. package/lib/jsx/dom/server.js +37 -0
  66. package/lib/jsx/dom.d.ts +5 -0
  67. package/lib/jsx/dom.js +74 -0
  68. package/lib/jsx/jsx-dev-runtime.d.ts +6 -0
  69. package/lib/jsx/jsx-dev-runtime.js +14 -0
  70. package/lib/jsx/jsx-runtime.d.ts +10 -0
  71. package/lib/jsx/jsx-runtime.js +30 -0
  72. package/lib/jsx/streaming.d.ts +2 -0
  73. package/lib/jsx/streaming.js +2 -0
  74. package/lib/jsx-dev-runtime-B22O-Npk.d.ts +7 -0
  75. package/lib/jsx-dev-runtime-D18Y35TI.js +354 -0
  76. package/lib/jsx-renderer.d.ts +75 -0
  77. package/lib/jsx-renderer.js +99 -0
  78. package/lib/jsx-runtime-BVVgDSdq.d.ts +1 -0
  79. package/lib/jsx.d.ts +3 -0
  80. package/lib/jsx.js +47 -0
  81. package/lib/jwk.d.ts +4 -4
  82. package/lib/{jwt-BA65QhnJ.d.ts → jwt-BARhotDz.d.ts} +1 -1
  83. package/lib/jwt.d.ts +4 -4
  84. package/lib/language.d.ts +1 -1
  85. package/lib/logger.d.ts +1 -1
  86. package/lib/loopback-only.d.ts +1 -1
  87. package/lib/method-not-allowed.d.ts +2 -2
  88. package/lib/method-override.d.ts +2 -2
  89. package/lib/mount.d.ts +1 -1
  90. package/lib/node-server/conninfo.d.ts +1 -1
  91. package/lib/node-server/serve-static.d.ts +1 -1
  92. package/lib/node-server/serve-static.js +1 -1
  93. package/lib/node-server.d.ts +1 -1
  94. package/lib/node-server.js +1 -1
  95. package/lib/powered-by.d.ts +1 -1
  96. package/lib/pretty-json.d.ts +1 -1
  97. package/lib/proxy.d.ts +1 -1
  98. package/lib/quick.d.ts +1 -1
  99. package/lib/request-id.d.ts +1 -1
  100. package/lib/request.d.ts +1 -1
  101. package/lib/route.d.ts +1 -1
  102. package/lib/schema-validator.d.ts +1 -1
  103. package/lib/secure-headers.d.ts +1 -1
  104. package/lib/{serve-static-Dw_m6KxR.js → serve-static-B14MF1Va.js} +2 -0
  105. package/lib/serve-static.d.ts +1 -1
  106. package/lib/ssg-BwjcA-Ge.js +389 -0
  107. package/lib/ssg.d.ts +156 -0
  108. package/lib/ssg.js +2 -0
  109. package/lib/streaming.d.ts +1 -1
  110. package/lib/testing.d.ts +4 -4
  111. package/lib/testing.js +1 -1
  112. package/lib/timeout.d.ts +1 -1
  113. package/lib/timing.d.ts +1 -1
  114. package/lib/tiny.d.ts +1 -1
  115. package/lib/trailing-slash.d.ts +1 -1
  116. package/lib/{types-ZM9gIiKh.d.ts → types-Dv_nV2cv.d.ts} +1 -1
  117. package/lib/{types-D9DEXMjE.d.ts → types-Lqx5BxQF.d.ts} +8 -1
  118. package/lib/{types-Bd29gh2o.d.ts → types-zNxyEpG2.d.ts} +3 -3
  119. package/lib/types.d.ts +1 -1
  120. package/lib/utils/body.d.ts +1 -1
  121. package/lib/utils/cookie.d.ts +1 -1
  122. package/lib/utils/crypto.d.ts +1 -1
  123. package/lib/utils/html.d.ts +1 -45
  124. package/lib/utils/ipaddr.d.ts +1 -1
  125. package/lib/utils/jwt.d.ts +1 -1
  126. package/lib/utils/types.d.ts +2 -2
  127. package/lib/utils-Cx61GFMC.js +125 -0
  128. package/lib/validator.d.ts +2 -2
  129. package/lib/ws.d.ts +1 -1
  130. package/package.json +53 -1
  131. package/plugins/acryl-inspect/upstream.json +1 -1
  132. package/plugins/acryl-node-server/upstream.json +1 -1
  133. package/plugins/acryl-router/src/core/helper/css/common.ts +337 -0
  134. package/plugins/acryl-router/src/core/helper/css/index.ts +262 -0
  135. package/plugins/acryl-router/src/core/helper/ssg/index.ts +14 -0
  136. package/plugins/acryl-router/src/core/helper/ssg/middleware.ts +83 -0
  137. package/plugins/acryl-router/src/core/helper/ssg/plugins.ts +72 -0
  138. package/plugins/acryl-router/src/core/helper/ssg/ssg.ts +471 -0
  139. package/plugins/acryl-router/src/core/helper/ssg/utils.ts +118 -0
  140. package/plugins/acryl-router/src/core/jsx/base.ts +490 -0
  141. package/plugins/acryl-router/src/core/jsx/children.ts +20 -0
  142. package/plugins/acryl-router/src/core/jsx/components.ts +257 -0
  143. package/plugins/acryl-router/src/core/jsx/constants.ts +6 -0
  144. package/plugins/acryl-router/src/core/jsx/context.ts +266 -0
  145. package/plugins/acryl-router/src/core/jsx/dom/client.ts +89 -0
  146. package/plugins/acryl-router/src/core/jsx/dom/components.ts +39 -0
  147. package/plugins/acryl-router/src/core/jsx/dom/context.ts +52 -0
  148. package/plugins/acryl-router/src/core/jsx/dom/css.ts +263 -0
  149. package/plugins/acryl-router/src/core/jsx/dom/hooks/index.ts +91 -0
  150. package/plugins/acryl-router/src/core/jsx/dom/index.ts +170 -0
  151. package/plugins/acryl-router/src/core/jsx/dom/intrinsic-element/components.ts +438 -0
  152. package/plugins/acryl-router/src/core/jsx/dom/jsx-dev-runtime.ts +23 -0
  153. package/plugins/acryl-router/src/core/jsx/dom/jsx-runtime.ts +8 -0
  154. package/plugins/acryl-router/src/core/jsx/dom/render.ts +879 -0
  155. package/plugins/acryl-router/src/core/jsx/dom/server.ts +76 -0
  156. package/plugins/acryl-router/src/core/jsx/dom/utils.ts +7 -0
  157. package/plugins/acryl-router/src/core/jsx/hooks/index.ts +437 -0
  158. package/plugins/acryl-router/src/core/jsx/index.ts +115 -0
  159. package/plugins/acryl-router/src/core/jsx/intrinsic-element/common.ts +23 -0
  160. package/plugins/acryl-router/src/core/jsx/intrinsic-element/components.ts +210 -0
  161. package/plugins/acryl-router/src/core/jsx/intrinsic-elements.ts +938 -0
  162. package/plugins/acryl-router/src/core/jsx/jsx-dev-runtime.ts +26 -0
  163. package/plugins/acryl-router/src/core/jsx/jsx-runtime.ts +51 -0
  164. package/plugins/acryl-router/src/core/jsx/streaming.ts +231 -0
  165. package/plugins/acryl-router/src/core/jsx/types.ts +41 -0
  166. package/plugins/acryl-router/src/core/jsx/utils.ts +202 -0
  167. package/plugins/acryl-router/src/core/middleware/cache/index.ts +4 -4
  168. package/plugins/acryl-router/src/core/middleware/jsx-renderer/index.ts +162 -0
  169. package/plugins/acryl-router/src/core/utils/types.ts +6 -0
  170. package/plugins/acryl-router/src/helpers/index.ts +2 -0
  171. package/plugins/acryl-router/src/middleware/index.ts +1 -0
  172. package/plugins/acryl-router/upstream.json +3 -3
  173. package/plugins/acryl-router-http/upstream.json +1 -1
  174. package/plugins/acryl-state/upstream.json +1 -1
  175. package/plugins/desktop/upstream.json +1 -1
  176. package/plugins/desktop-web/upstream.json +1 -1
  177. package/plugins/extensions/resolve.ts +4 -0
  178. package/plugins/save/plugin.json +1 -1
  179. package/shared/AGENTS.core.md +4 -0
  180. package/templates/agent/tsconfig.json +7 -1
  181. package/templates/todo/upstream.json +1 -1
  182. package/plugins/acryl-inspect/tests/report.spec.ts +0 -69
  183. package/plugins/acryl-inspect/tests/service.spec.ts +0 -121
  184. package/plugins/acryl-node-server/tests/adapter/app.ts +0 -76
  185. package/plugins/acryl-node-server/tests/adapter/assets/.static/plain.txt +0 -1
  186. package/plugins/acryl-node-server/tests/adapter/assets/favicon.ico +0 -0
  187. package/plugins/acryl-node-server/tests/adapter/assets/secret.txt +0 -1
  188. package/plugins/acryl-node-server/tests/adapter/assets/static/acryl.html +0 -1
  189. package/plugins/acryl-node-server/tests/adapter/assets/static/admin/secret.txt +0 -1
  190. package/plugins/acryl-node-server/tests/adapter/assets/static/data.json +0 -5
  191. package/plugins/acryl-node-server/tests/adapter/assets/static/extensionless +0 -1
  192. package/plugins/acryl-node-server/tests/adapter/assets/static/foo..bar.txt +0 -0
  193. package/plugins/acryl-node-server/tests/adapter/assets/static/index.html +0 -1
  194. package/plugins/acryl-node-server/tests/adapter/assets/static/plain.txt +0 -1
  195. package/plugins/acryl-node-server/tests/adapter/assets/static-with-context-path/plain.txt +0 -1
  196. package/plugins/acryl-node-server/tests/adapter/assets/static-with-precompressed/hello.bin +0 -1
  197. package/plugins/acryl-node-server/tests/adapter/assets/static-with-precompressed/hello.bin.br +0 -1
  198. package/plugins/acryl-node-server/tests/adapter/assets/static-with-precompressed/hello.txt +0 -1
  199. package/plugins/acryl-node-server/tests/adapter/assets/static-with-precompressed/hello.txt.br +0 -1
  200. package/plugins/acryl-node-server/tests/adapter/assets/static-with-precompressed/hello.txt.zst +0 -1
  201. package/plugins/acryl-node-server/tests/adapter/conninfo.test.ts +0 -34
  202. package/plugins/acryl-node-server/tests/adapter/content-length.test.ts +0 -248
  203. package/plugins/acryl-node-server/tests/adapter/early-hints.test.ts +0 -457
  204. package/plugins/acryl-node-server/tests/adapter/fixtures/keys/agent1-cert.pem +0 -23
  205. package/plugins/acryl-node-server/tests/adapter/fixtures/keys/agent1-key.pem +0 -27
  206. package/plugins/acryl-node-server/tests/adapter/headers.test.ts +0 -252
  207. package/plugins/acryl-node-server/tests/adapter/helpers/request.ts +0 -190
  208. package/plugins/acryl-node-server/tests/adapter/listener.test.ts +0 -727
  209. package/plugins/acryl-node-server/tests/adapter/request-client-disconnect.test.ts +0 -189
  210. package/plugins/acryl-node-server/tests/adapter/request.test.ts +0 -1230
  211. package/plugins/acryl-node-server/tests/adapter/response.test.ts +0 -285
  212. package/plugins/acryl-node-server/tests/adapter/serve-static.test.ts +0 -849
  213. package/plugins/acryl-node-server/tests/adapter/server-socket.test.ts +0 -790
  214. package/plugins/acryl-node-server/tests/adapter/server.test.ts +0 -1312
  215. package/plugins/acryl-node-server/tests/adapter/setup.ts +0 -16
  216. package/plugins/acryl-node-server/tests/adapter/url.test.ts +0 -76
  217. package/plugins/acryl-node-server/tests/adapter/utils/response.test.ts +0 -23
  218. package/plugins/acryl-node-server/tests/adapter/utils/stream.test.ts +0 -75
  219. package/plugins/acryl-node-server/tests/adapter/utils.test.ts +0 -235
  220. package/plugins/acryl-node-server/tests/adapter/websocket.test.ts +0 -260
  221. package/plugins/acryl-node-server/tests/server.spec.ts +0 -141
  222. package/plugins/acryl-router/src/core/app.test.ts +0 -3833
  223. package/plugins/acryl-router/src/core/client/client.test.ts +0 -2313
  224. package/plugins/acryl-router/src/core/client/types.test.ts +0 -149
  225. package/plugins/acryl-router/src/core/client/utils.test.ts +0 -405
  226. package/plugins/acryl-router/src/core/compose.test.ts +0 -751
  227. package/plugins/acryl-router/src/core/context.test.ts +0 -629
  228. package/plugins/acryl-router/src/core/helper/accepts/accepts.test.ts +0 -344
  229. package/plugins/acryl-router/src/core/helper/adapter/index.test.ts +0 -55
  230. package/plugins/acryl-router/src/core/helper/cookie/index.test.ts +0 -510
  231. package/plugins/acryl-router/src/core/helper/dev/index.test.ts +0 -181
  232. package/plugins/acryl-router/src/core/helper/factory/index.test.ts +0 -434
  233. package/plugins/acryl-router/src/core/helper/html/index.test.ts +0 -78
  234. package/plugins/acryl-router/src/core/helper/proxy/index.test.ts +0 -356
  235. package/plugins/acryl-router/src/core/helper/route/index.test.ts +0 -259
  236. package/plugins/acryl-router/src/core/helper/streaming/stream.test.ts +0 -128
  237. package/plugins/acryl-router/src/core/helper/streaming/text.test.ts +0 -34
  238. package/plugins/acryl-router/src/core/helper/testing/index.test.ts +0 -42
  239. package/plugins/acryl-router/src/core/helper/websocket/index.test.ts +0 -124
  240. package/plugins/acryl-router/src/core/http-exception.test.ts +0 -45
  241. package/plugins/acryl-router/src/core/middleware/basic-auth/index.test.ts +0 -434
  242. package/plugins/acryl-router/src/core/middleware/bearer-auth/index.test.ts +0 -1018
  243. package/plugins/acryl-router/src/core/middleware/body-limit/index.test.ts +0 -273
  244. package/plugins/acryl-router/src/core/middleware/cache/index.test.ts +0 -1211
  245. package/plugins/acryl-router/src/core/middleware/combine/index.test.ts +0 -355
  246. package/plugins/acryl-router/src/core/middleware/compress/index.test.ts +0 -535
  247. package/plugins/acryl-router/src/core/middleware/context-storage/index.test.ts +0 -43
  248. package/plugins/acryl-router/src/core/middleware/cors/index.test.ts +0 -532
  249. package/plugins/acryl-router/src/core/middleware/csrf/index.test.ts +0 -534
  250. package/plugins/acryl-router/src/core/middleware/etag/digest.test.ts +0 -21
  251. package/plugins/acryl-router/src/core/middleware/etag/index.test.ts +0 -503
  252. package/plugins/acryl-router/src/core/middleware/ip-restriction/index.test.ts +0 -217
  253. package/plugins/acryl-router/src/core/middleware/jwk/index.test.ts +0 -1135
  254. package/plugins/acryl-router/src/core/middleware/jwk/keys.test.json +0 -48
  255. package/plugins/acryl-router/src/core/middleware/jwt/index.test.ts +0 -802
  256. package/plugins/acryl-router/src/core/middleware/language/index.test.ts +0 -552
  257. package/plugins/acryl-router/src/core/middleware/logger/index.test.ts +0 -204
  258. package/plugins/acryl-router/src/core/middleware/method-not-allowed/index.test.ts +0 -292
  259. package/plugins/acryl-router/src/core/middleware/method-override/index.test.ts +0 -221
  260. package/plugins/acryl-router/src/core/middleware/mount/index.test.ts +0 -334
  261. package/plugins/acryl-router/src/core/middleware/powered-by/index.test.ts +0 -37
  262. package/plugins/acryl-router/src/core/middleware/pretty-json/index.test.ts +0 -218
  263. package/plugins/acryl-router/src/core/middleware/request-id/index.test.ts +0 -168
  264. package/plugins/acryl-router/src/core/middleware/secure-headers/index.test.ts +0 -671
  265. package/plugins/acryl-router/src/core/middleware/serve-static/index.test.ts +0 -450
  266. package/plugins/acryl-router/src/core/middleware/serve-static/path.test.ts +0 -50
  267. package/plugins/acryl-router/src/core/middleware/timeout/index.test.ts +0 -70
  268. package/plugins/acryl-router/src/core/middleware/timing/index.test.ts +0 -310
  269. package/plugins/acryl-router/src/core/middleware/trailing-slash/index.test.ts +0 -381
  270. package/plugins/acryl-router/src/core/preset/quick.test.ts +0 -42
  271. package/plugins/acryl-router/src/core/preset/tiny.test.ts +0 -42
  272. package/plugins/acryl-router/src/core/request.test.ts +0 -751
  273. package/plugins/acryl-router/src/core/router/common.case.test.ts +0 -1132
  274. package/plugins/acryl-router/src/core/router/linear-router/router.test.ts +0 -80
  275. package/plugins/acryl-router/src/core/router/pattern-router/router.test.ts +0 -46
  276. package/plugins/acryl-router/src/core/router/reg-exp-router/prepared-router.test.ts +0 -154
  277. package/plugins/acryl-router/src/core/router/reg-exp-router/router.test.ts +0 -265
  278. package/plugins/acryl-router/src/core/router/smart-router/router.test.ts +0 -13
  279. package/plugins/acryl-router/src/core/router/trie-router/node.test.ts +0 -896
  280. package/plugins/acryl-router/src/core/router/trie-router/router.test.ts +0 -8
  281. package/plugins/acryl-router/src/core/types.test.ts +0 -4134
  282. package/plugins/acryl-router/src/core/utils/accept.test.ts +0 -299
  283. package/plugins/acryl-router/src/core/utils/basic-auth.test.ts +0 -56
  284. package/plugins/acryl-router/src/core/utils/body.test.ts +0 -496
  285. package/plugins/acryl-router/src/core/utils/buffer.test.ts +0 -147
  286. package/plugins/acryl-router/src/core/utils/color.test.ts +0 -23
  287. package/plugins/acryl-router/src/core/utils/concurrent.test.ts +0 -69
  288. package/plugins/acryl-router/src/core/utils/cookie.test.ts +0 -460
  289. package/plugins/acryl-router/src/core/utils/crypto.test.ts +0 -43
  290. package/plugins/acryl-router/src/core/utils/encode.test.ts +0 -61
  291. package/plugins/acryl-router/src/core/utils/filepath.test.ts +0 -78
  292. package/plugins/acryl-router/src/core/utils/html.test.ts +0 -16
  293. package/plugins/acryl-router/src/core/utils/ipaddr.test.ts +0 -149
  294. package/plugins/acryl-router/src/core/utils/jwt/jwa.test.ts +0 -86
  295. package/plugins/acryl-router/src/core/utils/jwt/jwt.test.ts +0 -1788
  296. package/plugins/acryl-router/src/core/utils/mime.test.ts +0 -64
  297. package/plugins/acryl-router/src/core/utils/stream.test.ts +0 -212
  298. package/plugins/acryl-router/src/core/utils/types.test.ts +0 -295
  299. package/plugins/acryl-router/src/core/utils/url.test.ts +0 -384
  300. package/plugins/acryl-router/src/core/validator/utils.test.ts +0 -82
  301. package/plugins/acryl-router/src/core/validator/validator.test.ts +0 -1488
  302. package/plugins/acryl-router/tests/docs-examples.spec.ts +0 -152
  303. package/plugins/acryl-router/tests/live-install.spec.ts +0 -64
  304. package/plugins/acryl-router/tests/loader.spec.ts +0 -72
  305. package/plugins/acryl-router/tests/loopback-only.spec.ts +0 -80
  306. package/plugins/acryl-router/tests/no-dom/consumer.ts +0 -11
  307. package/plugins/acryl-router/tests/no-dom/tsconfig.json +0 -13
  308. package/plugins/acryl-router/tests/service.spec.ts +0 -426
  309. package/plugins/acryl-router/tests/shadow-state.spec.ts +0 -79
  310. package/plugins/acryl-router-http/tests/adapter.spec.ts +0 -174
  311. package/plugins/acryl-router-http/tests/stream.spec.ts +0 -133
  312. package/plugins/acryl-router-http/tests/surfaces.spec.ts +0 -101
  313. package/plugins/acryl-state/src/react.ts +0 -11
  314. package/plugins/acryl-state/tests/cell.spec.ts +0 -71
  315. package/plugins/acryl-state/tests/react.spec.ts +0 -39
  316. package/plugins/acryl-state/tests/service.spec.ts +0 -132
@@ -1,128 +0,0 @@
1
- import { stream } from './index.ts'
2
- import { Context } from '../../context.ts'
3
-
4
- describe('Basic Streaming Helper', () => {
5
- const req = new Request('http://localhost/')
6
- let c: Context
7
- beforeEach(() => {
8
- c = new Context(req)
9
- })
10
-
11
- it('Check stream Response', async () => {
12
- const res = stream(c, async (stream) => {
13
- for (let i = 0; i < 3; i++) {
14
- await stream.write(new Uint8Array([i]))
15
- await stream.sleep(1)
16
- }
17
- })
18
- if (!res.body) {
19
- throw new Error('Body is null')
20
- }
21
- const reader = res.body.getReader()
22
- for (let i = 0; i < 3; i++) {
23
- const { value } = await reader.read()
24
- expect(value).toEqual(new Uint8Array([i]))
25
- }
26
- })
27
-
28
- it('Check stream Response if aborted by client', async () => {
29
- let aborted = false
30
- const res = stream(c, async (stream) => {
31
- stream.onAbort(() => {
32
- aborted = true
33
- })
34
- for (let i = 0; i < 3; i++) {
35
- await stream.write(new Uint8Array([i]))
36
- await stream.sleep(1)
37
- }
38
- })
39
- if (!res.body) {
40
- throw new Error('Body is null')
41
- }
42
- const reader = res.body.getReader()
43
- const { value } = await reader.read()
44
- expect(value).toEqual(new Uint8Array([0]))
45
- reader.cancel()
46
- expect(aborted).toBeTruthy()
47
- })
48
-
49
- it('Check stream Response if aborted by abort signal', async () => {
50
- // Emulate an old version of Bun (version 1.1.0) for this specific test case
51
- // @ts-expect-error Bun is not typed
52
- global.Bun = {
53
- version: '1.1.0',
54
- }
55
- const ac = new AbortController()
56
- const req = new Request('http://localhost/', { signal: ac.signal })
57
- const c = new Context(req)
58
-
59
- let aborted = false
60
- const res = stream(c, async (stream) => {
61
- stream.onAbort(() => {
62
- aborted = true
63
- })
64
- for (let i = 0; i < 3; i++) {
65
- await stream.write(new Uint8Array([i]))
66
- await stream.sleep(1)
67
- }
68
- })
69
- if (!res.body) {
70
- throw new Error('Body is null')
71
- }
72
- const reader = res.body.getReader()
73
- const { value } = await reader.read()
74
- expect(value).toEqual(new Uint8Array([0]))
75
- ac.abort()
76
- expect(aborted).toBeTruthy()
77
- // @ts-expect-error Bun is not typed
78
- delete global.Bun
79
- })
80
-
81
- it('Check stream Response if pipe is aborted by abort signal', async () => {
82
- // Emulate an old version of Bun (version 1.1.0) for this specific test case
83
- // @ts-expect-error Bun is not typed
84
- global.Bun = {
85
- version: '1.1.0',
86
- }
87
- const ac = new AbortController()
88
- const req = new Request('http://localhost/', { signal: ac.signal })
89
- const c = new Context(req)
90
-
91
- let aborted = false
92
- const res = stream(c, async (stream) => {
93
- stream.onAbort(() => {
94
- aborted = true
95
- })
96
- await stream.pipe(new ReadableStream())
97
- })
98
- if (!res.body) {
99
- throw new Error('Body is null')
100
- }
101
- const reader = res.body.getReader()
102
- const pReading = reader.read()
103
- ac.abort()
104
- await pReading
105
- expect(aborted).toBeTruthy()
106
- // @ts-expect-error Bun is not typed
107
- delete global.Bun
108
- })
109
-
110
- it('Check stream Response if error occurred', async () => {
111
- const onError = vi.fn()
112
- const res = stream(
113
- c,
114
- async () => {
115
- throw new Error('error')
116
- },
117
- onError
118
- )
119
- if (!res.body) {
120
- throw new Error('Body is null')
121
- }
122
- const reader = res.body.getReader()
123
- const { value } = await reader.read()
124
- expect(value).toBeUndefined()
125
- expect(onError).toBeCalledTimes(1)
126
- expect(onError).toBeCalledWith(new Error('error'), expect.anything()) // 2nd argument is StreamingApi instance
127
- })
128
- })
@@ -1,34 +0,0 @@
1
- import { streamText } from './index.ts'
2
- import { Context } from '../../context.ts'
3
-
4
- describe('Text Streaming Helper', () => {
5
- const req = new Request('http://localhost/')
6
- let c: Context
7
- beforeEach(() => {
8
- c = new Context(req)
9
- })
10
-
11
- it('Check streamText Response', async () => {
12
- const res = streamText(c, async (stream) => {
13
- for (let i = 0; i < 3; i++) {
14
- await stream.write(`${i}`)
15
- await stream.sleep(1)
16
- }
17
- })
18
-
19
- expect(res.status).toBe(200)
20
- expect(res.headers.get('content-type')).toMatch(/^text\/plain/)
21
- expect(res.headers.get('x-content-type-options')).toBe('nosniff')
22
- expect(res.headers.get('transfer-encoding')).toBe('chunked')
23
-
24
- if (!res.body) {
25
- throw new Error('Body is null')
26
- }
27
- const reader = res.body.getReader()
28
- const decoder = new TextDecoder()
29
- for (let i = 0; i < 3; i++) {
30
- const { value } = await reader.read()
31
- expect(decoder.decode(value)).toEqual(`${i}`)
32
- }
33
- })
34
- })
@@ -1,42 +0,0 @@
1
- import { testClient } from './index.ts'
2
- import { Acryl } from '../../app.ts'
3
-
4
- describe('acryl testClient', () => {
5
- it('Should return the correct search result', async () => {
6
- const app = new Acryl().get('/search', (c) => c.json({ hello: 'world' }))
7
- const res = await testClient(app).search.$get()
8
- expect(await res.json()).toEqual({ hello: 'world' })
9
- })
10
-
11
- it('Should return the correct environment variables value', async () => {
12
- type Bindings = { hello: string }
13
- const app = new Acryl<{ Bindings: Bindings }>().get('/search', (c) => {
14
- return c.json({ hello: c.env.hello })
15
- })
16
- const res = await testClient(app, { hello: 'world' }).search.$get()
17
- expect(await res.json()).toEqual({ hello: 'world' })
18
- })
19
-
20
- it('Should use the passed in headers', async () => {
21
- const app = new Acryl().get('/search', (c) => {
22
- return c.json({ query: c.req.header('x-query') })
23
- })
24
- const res = await testClient(app, undefined, undefined, {
25
- headers: { 'x-query': 'abc' },
26
- }).search.$get()
27
- expect(await res.json()).toEqual({ query: 'abc' })
28
- })
29
-
30
- it('Should return a correct URL with out throwing an error', async () => {
31
- const app = new Acryl().get('/abc', (c) => c.json(0))
32
- const url = testClient(app).abc.$url()
33
- expect(url.pathname).toBe('/abc')
34
- })
35
-
36
- it('Should not throw an error with $ws()', async () => {
37
- vi.stubGlobal('WebSocket', class {})
38
- const app = new Acryl().get('/ws', (c) => c.text('Fake response of a WebSocket'))
39
- // @ts-expect-error $ws is not typed correctly
40
- expect(() => testClient(app).ws.$ws()).not.toThrowError()
41
- })
42
- })
@@ -1,124 +0,0 @@
1
- import type { WSContextInit } from './index.ts'
2
- import { WSContext, createWSMessageEvent, defineWebSocketHelper } from './index.ts'
3
- import { Context } from '../../context.ts'
4
-
5
- describe('`createWSMessageEvent`', () => {
6
- it('Should `createWSMessageEvent` is working for string', () => {
7
- const randomString = Math.random().toString()
8
- const event = createWSMessageEvent(randomString)
9
-
10
- expect(event.data).toBe(randomString)
11
- })
12
- it('Should `createWSMessageEvent` type is `message`', () => {
13
- const event = createWSMessageEvent('')
14
- expect(event.type).toBe('message')
15
- })
16
- })
17
- describe('defineWebSocketHelper', () => {
18
- it('defineWebSocketHelper should work', async () => {
19
- const upgradeWebSocket = defineWebSocketHelper(() => {
20
- return new Response('Hello World', {
21
- status: 200,
22
- })
23
- })
24
- const response = await upgradeWebSocket(() => ({}))(
25
- new Context(new Request('http://localhost')),
26
- () => Promise.resolve()
27
- )
28
- expect(response).toBeTruthy()
29
- expect((response as Response).status).toBe(200)
30
- })
31
- it('When response is undefined, should call next()', async () => {
32
- const upgradeWebSocket = defineWebSocketHelper(() => {
33
- return
34
- })
35
- const next = vi.fn()
36
- await upgradeWebSocket(() => ({}))(new Context(new Request('http://localhost')), next)
37
- expect(next).toBeCalled()
38
- })
39
- it('Use upgradeWebSocket in return', async () => {
40
- const upgradeWebSocket = defineWebSocketHelper(() => {
41
- return new Response('Hello World', {
42
- status: 200,
43
- })
44
- })
45
- const c = new Context(new Request('http://localhost'))
46
- const res = await upgradeWebSocket(c, {})
47
- expect(res.status).toBe(200)
48
- })
49
- it('When upgrading failed and use it in handler, it should throw error', async () => {
50
- const upgradeWebSocket = defineWebSocketHelper(() => {
51
- return
52
- })
53
- const c = new Context(new Request('http://localhost'))
54
- await expect(() => upgradeWebSocket(c, {})).rejects.toThrow()
55
- })
56
- })
57
- describe('WSContext', () => {
58
- it('Should close() works', async () => {
59
- type Result = [number | undefined, string | undefined]
60
- let ws!: WSContext
61
- const promise = new Promise<Result>((resolve) => {
62
- ws = new WSContext({
63
- close(code, reason) {
64
- resolve([code, reason])
65
- },
66
- } as WSContextInit)
67
- })
68
- ws.close(0, 'reason')
69
- const [code, reason] = await promise
70
- expect(code).toBe(0)
71
- expect(reason).toBe('reason')
72
- })
73
- it('Should send() works', async () => {
74
- let ws!: WSContext
75
- const promise = new Promise<string | ArrayBuffer | Uint8Array<ArrayBuffer>>((resolve) => {
76
- ws = new WSContext({
77
- send(data: string | ArrayBuffer | Uint8Array<ArrayBuffer>, _options) {
78
- resolve(data)
79
- },
80
- } as WSContextInit)
81
- })
82
- ws.send('Hello')
83
- expect(await promise).toBe('Hello')
84
- })
85
- it('Should readyState works', () => {
86
- const ws = new WSContext({
87
- readyState: 0,
88
- } as WSContextInit)
89
- expect(ws.readyState).toBe(0)
90
- })
91
- it('Should normalize URL', () => {
92
- const stringURLWS = new WSContext({
93
- url: 'http://localhost',
94
- } as WSContextInit)
95
- expect(stringURLWS.url).toBeInstanceOf(URL)
96
-
97
- const urlURLWS = new WSContext({
98
- url: new URL('http://localhost'),
99
- } as WSContextInit)
100
- expect(urlURLWS.url).toBeInstanceOf(URL)
101
-
102
- const nullURLWS = new WSContext({
103
- url: undefined,
104
- } as WSContextInit)
105
- expect(nullURLWS.url).toBeNull()
106
- })
107
- it('Should normalize message in send()', () => {
108
- let data: string | ArrayBuffer | Uint8Array | null = null
109
- const wsContext = new WSContext({
110
- send(received, _options) {
111
- data = received
112
- },
113
- } as WSContextInit)
114
-
115
- wsContext.send('string')
116
- expect(data).toBe('string')
117
-
118
- wsContext.send(new ArrayBuffer(16))
119
- expect(data).toBeInstanceOf(ArrayBuffer)
120
-
121
- wsContext.send(new Uint8Array(16))
122
- expect(data).toBeInstanceOf(Uint8Array)
123
- })
124
- })
@@ -1,45 +0,0 @@
1
- import { HTTPException } from './http-exception.ts'
2
-
3
- describe('HTTPException', () => {
4
- it('Should be 401 HTTP exception object', async () => {
5
- // We should throw an exception if is not authorized
6
- // because next handlers should not be fired.
7
- const exception = new HTTPException(401, {
8
- message: 'Unauthorized',
9
- })
10
- const res = exception.getResponse()
11
-
12
- expect(res.status).toBe(401)
13
- expect(await res.text()).toBe('Unauthorized')
14
- expect(exception.status).toBe(401)
15
- expect(exception.message).toBe('Unauthorized')
16
- })
17
-
18
- it('Should be accessible to the object causing the exception', async () => {
19
- // We should pass the cause of the error to the cause option
20
- // because it makes debugging easier.
21
- const error = new Error('Server Error')
22
- const exception = new HTTPException(500, {
23
- message: 'Internal Server Error',
24
- cause: error,
25
- })
26
- const res = exception.getResponse()
27
-
28
- expect(res.status).toBe(500)
29
- expect(await res.text()).toBe('Internal Server Error')
30
- expect(exception.status).toBe(500)
31
- expect(exception.message).toBe('Internal Server Error')
32
- expect(exception.cause).toBe(error)
33
- })
34
-
35
- it('Should prioritize the status code over the code in the response', async () => {
36
- const exception = new HTTPException(400, {
37
- res: new Response('An exception', {
38
- status: 200,
39
- }),
40
- })
41
- const res = exception.getResponse()
42
- expect(res.status).toBe(400)
43
- expect(await res.text()).toBe('An exception')
44
- })
45
- })