acrylblends 0.4.0 → 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.
- package/LICENSE +73 -0
- package/dist/index.js +56 -2
- package/dist/index.js.map +1 -1
- package/docs/framework/LICENSE +23 -0
- package/docs/framework/README.md +63 -0
- package/docs/framework/UPSTREAM.md +3 -0
- package/docs/framework/agents/index.md +24 -0
- package/docs/framework/api/acryl.md +259 -0
- package/docs/framework/api/context.md +527 -0
- package/docs/framework/api/exception.md +80 -0
- package/docs/framework/api/index.md +12 -0
- package/docs/framework/api/presets.md +65 -0
- package/docs/framework/api/request.md +396 -0
- package/docs/framework/api/routing.md +303 -0
- package/docs/framework/api/summary.md +140 -0
- package/docs/framework/concepts/benchmarks.md +26 -0
- package/docs/framework/concepts/developer-experience.md +5 -0
- package/docs/framework/concepts/middleware.md +21 -0
- package/docs/framework/concepts/motivation.md +14 -0
- package/docs/framework/concepts/routers.md +63 -0
- package/docs/framework/concepts/stacks.md +235 -0
- package/docs/framework/concepts/web-standard.md +37 -0
- package/docs/framework/cordis/acryl-in-a-cordis-app.md +146 -0
- package/docs/framework/cordis/concepts.md +105 -0
- package/docs/framework/cordis/middleware.md +8 -0
- package/docs/framework/cordis/migration-from-0-3.md +111 -0
- package/docs/framework/cordis/migration-from-0-4.md +14 -0
- package/docs/framework/cordis/migration-from-dsh-webserver.md +103 -0
- package/docs/framework/cordis/mounting.md +85 -0
- package/docs/framework/cordis/node-server.md +75 -0
- package/docs/framework/cordis/plugin-lifecycle.md +111 -0
- package/docs/framework/cordis/surfaces.md +71 -0
- package/docs/framework/cordis/transport-and-cancellation.md +57 -0
- package/docs/framework/cordis/validation.md +135 -0
- package/docs/framework/getting-started/basic.md +196 -0
- package/docs/framework/getting-started/bun.md +221 -0
- package/docs/framework/getting-started/nodejs.md +344 -0
- package/docs/framework/getting-started/other-runtimes.md +23 -0
- package/docs/framework/guides/best-practices.md +231 -0
- package/docs/framework/guides/create-acrylblends.md +79 -0
- package/docs/framework/guides/examples.md +3 -0
- package/docs/framework/guides/faq.md +19 -0
- package/docs/framework/guides/helpers.md +33 -0
- package/docs/framework/guides/jsx-dom.md +299 -0
- package/docs/framework/guides/jsx.md +440 -0
- package/docs/framework/guides/middleware.md +253 -0
- package/docs/framework/guides/rpc.md +886 -0
- package/docs/framework/guides/testing.md +133 -0
- package/docs/framework/guides/validation.md +383 -0
- package/docs/framework/helpers/accepts.md +60 -0
- package/docs/framework/helpers/adapter.md +87 -0
- package/docs/framework/helpers/conninfo.md +112 -0
- package/docs/framework/helpers/cookie.md +232 -0
- package/docs/framework/helpers/css.md +285 -0
- package/docs/framework/helpers/dev.md +67 -0
- package/docs/framework/helpers/factory.md +180 -0
- package/docs/framework/helpers/html.md +123 -0
- package/docs/framework/helpers/jwt.md +184 -0
- package/docs/framework/helpers/proxy.md +118 -0
- package/docs/framework/helpers/route.md +143 -0
- package/docs/framework/helpers/ssg.md +393 -0
- package/docs/framework/helpers/streaming.md +119 -0
- package/docs/framework/helpers/testing.md +101 -0
- package/docs/framework/helpers/websocket.md +215 -0
- package/docs/framework/middleware/builtin/basic-auth.md +165 -0
- package/docs/framework/middleware/builtin/bearer-auth.md +138 -0
- package/docs/framework/middleware/builtin/body-limit.md +71 -0
- package/docs/framework/middleware/builtin/cache.md +122 -0
- package/docs/framework/middleware/builtin/combine.md +94 -0
- package/docs/framework/middleware/builtin/compress.md +59 -0
- package/docs/framework/middleware/builtin/context-storage.md +78 -0
- package/docs/framework/middleware/builtin/cors.md +135 -0
- package/docs/framework/middleware/builtin/csrf.md +105 -0
- package/docs/framework/middleware/builtin/etag.md +54 -0
- package/docs/framework/middleware/builtin/ip-restriction.md +69 -0
- package/docs/framework/middleware/builtin/jsx-renderer.md +286 -0
- package/docs/framework/middleware/builtin/jwk.md +192 -0
- package/docs/framework/middleware/builtin/jwt.md +145 -0
- package/docs/framework/middleware/builtin/language.md +232 -0
- package/docs/framework/middleware/builtin/logger.md +74 -0
- package/docs/framework/middleware/builtin/loopback-only.md +31 -0
- package/docs/framework/middleware/builtin/method-not-allowed.md +48 -0
- package/docs/framework/middleware/builtin/method-override.md +80 -0
- package/docs/framework/middleware/builtin/mount.md +106 -0
- package/docs/framework/middleware/builtin/pretty-json.md +53 -0
- package/docs/framework/middleware/builtin/request-id.md +94 -0
- package/docs/framework/middleware/builtin/secure-headers.md +247 -0
- package/docs/framework/middleware/builtin/timeout.md +98 -0
- package/docs/framework/middleware/builtin/timing.md +101 -0
- package/docs/framework/middleware/builtin/trailing-slash.md +74 -0
- package/docs/framework/middleware/third-party.md +4 -0
- package/docs/framework/upstream.json +9 -0
- package/lib/accepts-XBuZPVRI.js +52 -0
- package/lib/accepts.d.ts +33 -0
- package/lib/accepts.js +2 -0
- package/lib/acryl-base.d.ts +2 -0
- package/lib/acryl-base.js +332 -0
- package/lib/adapter.d.ts +12 -0
- package/lib/adapter.js +37 -0
- package/lib/app-BM0rTCp7.js +26 -0
- package/lib/app-CmAYW1Al.d.ts +21 -0
- package/lib/basic-auth.d.ts +72 -0
- package/lib/basic-auth.js +95 -0
- package/lib/bearer-auth.d.ts +89 -0
- package/lib/bearer-auth.js +94 -0
- package/lib/body-limit.d.ts +42 -0
- package/lib/body-limit.js +66 -0
- package/lib/client-BHTr318g.js +266 -0
- package/lib/client.d.ts +3 -0
- package/lib/client.js +2 -0
- package/lib/combine.d.ts +85 -0
- package/lib/combine.js +137 -0
- package/lib/compose-BuW2B6PZ.js +50 -0
- package/lib/compress.d.ts +38 -0
- package/lib/compress.js +79 -0
- package/lib/connection-C7xgP1hP.js +24 -0
- package/lib/conninfo.d.ts +25 -0
- package/lib/conninfo.js +2 -0
- package/lib/constants-Dy7ZvN1H.js +4 -0
- package/lib/context-Bm7rI-oK.d.ts +1234 -0
- package/lib/context-DDO0cfuP.js +365 -0
- package/lib/context-storage.d.ts +38 -0
- package/lib/context-storage.js +52 -0
- package/lib/cookie-ClMaKDQf.d.ts +40 -0
- package/lib/cookie.d.ts +24 -0
- package/lib/cookie.js +82 -0
- package/lib/cors.d.ts +52 -0
- package/lib/cors.js +106 -0
- package/lib/csrf.d.ts +75 -0
- package/lib/csrf.js +101 -0
- package/lib/etag.d.ts +40 -0
- package/lib/etag.js +135 -0
- package/lib/factory.d.ts +35 -0
- package/lib/factory.js +30 -0
- package/lib/headers-tu2YYN8T.d.ts +11 -0
- package/lib/html.d.ts +6 -0
- package/lib/html.js +31 -0
- package/lib/http-exception.d.ts +57 -0
- package/lib/http-exception.js +54 -0
- package/lib/http-status-DaAwGAFL.d.ts +35 -0
- package/lib/index-B-3F4wt2.d.ts +12 -0
- package/lib/index-UTBmM3GX.d.ts +68 -0
- package/lib/index-oOClm_Xk.d.ts +45 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.js +28 -0
- package/lib/ip-restriction.d.ts +68 -0
- package/lib/ip-restriction.js +166 -0
- package/lib/jwk.d.ts +52 -0
- package/lib/jwk.js +117 -0
- package/lib/jwt-BGJBw5AF.js +403 -0
- package/lib/jwt-Dg493Tai.d.ts +51 -0
- package/lib/jwt.d.ts +72 -0
- package/lib/jwt.js +115 -0
- package/lib/language.d.ts +88 -0
- package/lib/language.js +198 -0
- package/lib/logger.d.ts +22 -0
- package/lib/logger.js +54 -0
- package/lib/loopback-only.d.ts +45 -0
- package/lib/loopback-only.js +90 -0
- package/lib/method-not-allowed.d.ts +47 -0
- package/lib/method-not-allowed.js +82 -0
- package/lib/method-override.d.ts +46 -0
- package/lib/method-override.js +103 -0
- package/lib/mime-BQOYHl-l.d.ts +72 -0
- package/lib/node-server/conninfo.d.ts +11 -0
- package/lib/node-server/conninfo.js +19 -0
- package/lib/node-server/serve-static.d.ts +19 -0
- package/lib/node-server/serve-static.js +2 -0
- package/lib/node-server.d.ts +103 -0
- package/lib/node-server.js +1325 -0
- package/lib/powered-by.d.ts +28 -0
- package/lib/powered-by.js +24 -0
- package/lib/pretty-json.d.ts +40 -0
- package/lib/pretty-json.js +39 -0
- package/lib/reg-exp-router-DC1R3qoY.js +363 -0
- package/lib/request-id.d.ts +45 -0
- package/lib/request-id.js +34 -0
- package/lib/request.d.ts +2 -0
- package/lib/request.js +323 -0
- package/lib/route.d.ts +78 -0
- package/lib/route.js +126 -0
- package/lib/router/linear-router.d.ts +11 -0
- package/lib/router/linear-router.js +96 -0
- package/lib/router/pattern-router.d.ts +11 -0
- package/lib/router/pattern-router.js +41 -0
- package/lib/router/reg-exp-router.d.ts +35 -0
- package/lib/router/reg-exp-router.js +2 -0
- package/lib/router/smart-router.d.ts +15 -0
- package/lib/router/smart-router.js +2 -0
- package/lib/router/trie-router.d.ts +11 -0
- package/lib/router/trie-router.js +2 -0
- package/lib/router-CvUxUTOq.d.ts +99 -0
- package/lib/router.d.ts +2 -0
- package/lib/router.js +35 -0
- package/lib/schema-validator.d.ts +28 -0
- package/lib/schema-validator.js +22 -0
- package/lib/secure-headers.d.ts +125 -0
- package/lib/secure-headers.js +163 -0
- package/lib/serve-static-Dw_m6KxR.js +213 -0
- package/lib/serve-static.d.ts +31 -0
- package/lib/serve-static.js +77 -0
- package/lib/smart-router-C5CZ5XSM.js +49 -0
- package/lib/stream-CPdqZ0Fp.d.ts +34 -0
- package/lib/streaming-DHST3Scg.js +96 -0
- package/lib/streaming.d.ts +23 -0
- package/lib/streaming.js +2 -0
- package/lib/testing.d.ts +10 -0
- package/lib/testing.js +17 -0
- package/lib/timeout.d.ts +30 -0
- package/lib/timeout.js +42 -0
- package/lib/timing.d.ts +130 -0
- package/lib/timing.js +183 -0
- package/lib/trailing-slash.d.ts +91 -0
- package/lib/trailing-slash.js +85 -0
- package/lib/trie-router-CfFbapzL.js +146 -0
- package/lib/types-CDO6I3B0.d.ts +40 -0
- package/lib/types-CHesD1KG.d.ts +195 -0
- package/lib/types-CwrQjlaM.d.ts +105 -0
- package/lib/types-DR95J00T.d.ts +29 -0
- package/lib/types.d.ts +2 -0
- package/lib/types.js +4 -0
- package/lib/utils/accept.d.ts +9 -0
- package/lib/utils/accept.js +193 -0
- package/lib/utils/basic-auth.d.ts +8 -0
- package/lib/utils/basic-auth.js +20 -0
- package/lib/utils/body.d.ts +2 -0
- package/lib/utils/body.js +94 -0
- package/lib/utils/buffer.d.ts +19 -0
- package/lib/utils/buffer.js +51 -0
- package/lib/utils/color.d.ts +24 -0
- package/lib/utils/color.js +37 -0
- package/lib/utils/compress.d.ts +11 -0
- package/lib/utils/compress.js +11 -0
- package/lib/utils/concurrent.d.ts +17 -0
- package/lib/utils/concurrent.js +30 -0
- package/lib/utils/constants.d.ts +7 -0
- package/lib/utils/constants.js +7 -0
- package/lib/utils/cookie.d.ts +2 -0
- package/lib/utils/cookie.js +125 -0
- package/lib/utils/crypto.d.ts +14 -0
- package/lib/utils/crypto.js +34 -0
- package/lib/utils/encode.d.ts +11 -0
- package/lib/utils/encode.js +33 -0
- package/lib/utils/filepath.d.ts +14 -0
- package/lib/utils/filepath.js +25 -0
- package/lib/utils/handler.d.ts +9 -0
- package/lib/utils/handler.js +12 -0
- package/lib/utils/headers.d.ts +2 -0
- package/lib/utils/headers.js +1 -0
- package/lib/utils/html.d.ts +46 -0
- package/lib/utils/html.js +103 -0
- package/lib/utils/http-status.d.ts +2 -0
- package/lib/utils/http-status.js +1 -0
- package/lib/utils/ipaddr.d.ts +56 -0
- package/lib/utils/ipaddr.js +238 -0
- package/lib/utils/jwt.d.ts +24 -0
- package/lib/utils/jwt.js +2 -0
- package/lib/utils/mime.d.ts +2 -0
- package/lib/utils/mime.js +77 -0
- package/lib/utils/stream.d.ts +2 -0
- package/lib/utils/stream.js +88 -0
- package/lib/utils/types.d.ts +2 -0
- package/lib/utils/types.js +1 -0
- package/lib/utils/url.d.ts +46 -0
- package/lib/utils/url.js +197 -0
- package/lib/utils-dw8lxqjL.js +4 -0
- package/lib/validator-D84mq-dO.js +65 -0
- package/lib/validator.d.ts +42 -0
- package/lib/validator.js +2 -0
- package/lib/ws.d.ts +2 -0
- package/lib/ws.js +53 -0
- package/package.json +315 -15
- package/plugins/acryl-inspect/src/report.ts +15 -10
- package/plugins/acryl-inspect/src/service.ts +2 -2
- package/plugins/acryl-inspect/tests/report.spec.ts +9 -3
- package/plugins/acryl-inspect/tests/service.spec.ts +3 -3
- package/plugins/acryl-inspect/upstream.json +2 -2
- package/plugins/acryl-node-server/tests/adapter/app.ts +2 -2
- package/plugins/acryl-node-server/tests/adapter/assets/static/acryl.html +1 -1
- package/plugins/acryl-node-server/tests/adapter/assets/static/index.html +1 -1
- package/plugins/acryl-node-server/tests/adapter/conninfo.test.ts +2 -2
- package/plugins/acryl-node-server/tests/adapter/content-length.test.ts +4 -4
- package/plugins/acryl-node-server/tests/adapter/early-hints.test.ts +5 -5
- package/plugins/acryl-node-server/tests/adapter/request-client-disconnect.test.ts +2 -2
- package/plugins/acryl-node-server/tests/adapter/serve-static.test.ts +20 -20
- package/plugins/acryl-node-server/tests/adapter/server-socket.test.ts +2 -2
- package/plugins/acryl-node-server/tests/adapter/server.test.ts +50 -50
- package/plugins/acryl-node-server/tests/adapter/utils/response.test.ts +4 -4
- package/plugins/acryl-node-server/tests/adapter/websocket.test.ts +9 -9
- package/plugins/acryl-node-server/tests/server.spec.ts +6 -6
- package/plugins/acryl-node-server/upstream.json +2 -2
- package/plugins/acryl-router/src/client.ts +1 -1
- package/plugins/acryl-router/src/connection.ts +2 -2
- package/plugins/acryl-router/src/core/app-base.ts +29 -29
- package/plugins/acryl-router/src/core/app.test.ts +175 -175
- package/plugins/acryl-router/src/core/app.ts +8 -8
- package/plugins/acryl-router/src/core/client/client.test.ts +76 -76
- package/plugins/acryl-router/src/core/client/client.ts +2 -2
- package/plugins/acryl-router/src/core/client/fetch-result-please.ts +1 -1
- package/plugins/acryl-router/src/core/client/index.ts +1 -1
- package/plugins/acryl-router/src/core/client/types.test.ts +6 -6
- package/plugins/acryl-router/src/core/client/types.ts +16 -16
- package/plugins/acryl-router/src/core/client/utils.test.ts +2 -2
- package/plugins/acryl-router/src/core/context.test.ts +4 -4
- package/plugins/acryl-router/src/core/context.ts +6 -6
- package/plugins/acryl-router/src/core/helper/accepts/accepts.test.ts +3 -3
- package/plugins/acryl-router/src/core/helper/accepts/index.ts +1 -1
- package/plugins/acryl-router/src/core/helper/adapter/index.test.ts +6 -6
- package/plugins/acryl-router/src/core/helper/adapter/index.ts +1 -1
- package/plugins/acryl-router/src/core/helper/conninfo/index.ts +1 -1
- package/plugins/acryl-router/src/core/helper/cookie/index.test.ts +8 -8
- package/plugins/acryl-router/src/core/helper/cookie/index.ts +1 -1
- package/plugins/acryl-router/src/core/helper/factory/index.test.ts +9 -9
- package/plugins/acryl-router/src/core/helper/factory/index.ts +10 -10
- package/plugins/acryl-router/src/core/helper/html/index.test.ts +4 -4
- package/plugins/acryl-router/src/core/helper/html/index.ts +1 -1
- package/plugins/acryl-router/src/core/helper/route/index.test.ts +7 -7
- package/plugins/acryl-router/src/core/helper/route/index.ts +8 -8
- package/plugins/acryl-router/src/core/helper/streaming/index.ts +1 -1
- package/plugins/acryl-router/src/core/helper/testing/index.test.ts +6 -6
- package/plugins/acryl-router/src/core/helper/testing/index.ts +4 -4
- package/plugins/acryl-router/src/core/helper/websocket/index.ts +2 -1
- package/plugins/acryl-router/src/core/http-exception.ts +1 -1
- package/plugins/acryl-router/src/core/index.ts +9 -9
- package/plugins/acryl-router/src/core/middleware/basic-auth/index.test.ts +6 -6
- package/plugins/acryl-router/src/core/middleware/basic-auth/index.ts +3 -3
- package/plugins/acryl-router/src/core/middleware/bearer-auth/index.test.ts +5 -5
- package/plugins/acryl-router/src/core/middleware/bearer-auth/index.ts +3 -3
- package/plugins/acryl-router/src/core/middleware/body-limit/index.test.ts +6 -6
- package/plugins/acryl-router/src/core/middleware/body-limit/index.ts +3 -3
- package/plugins/acryl-router/src/core/middleware/combine/index.test.ts +9 -9
- package/plugins/acryl-router/src/core/middleware/combine/index.ts +7 -7
- package/plugins/acryl-router/src/core/middleware/compress/index.test.ts +9 -9
- package/plugins/acryl-router/src/core/middleware/compress/index.ts +3 -3
- package/plugins/acryl-router/src/core/middleware/context-storage/index.test.ts +5 -5
- package/plugins/acryl-router/src/core/middleware/context-storage/index.ts +4 -4
- package/plugins/acryl-router/src/core/middleware/cors/index.test.ts +7 -7
- package/plugins/acryl-router/src/core/middleware/cors/index.ts +3 -3
- package/plugins/acryl-router/src/core/middleware/csrf/index.test.ts +10 -10
- package/plugins/acryl-router/src/core/middleware/csrf/index.ts +3 -3
- package/plugins/acryl-router/src/core/middleware/etag/index.test.ts +42 -42
- package/plugins/acryl-router/src/core/middleware/etag/index.ts +4 -4
- package/plugins/acryl-router/src/core/middleware/ip-restriction/index.test.ts +4 -4
- package/plugins/acryl-router/src/core/middleware/ip-restriction/index.ts +6 -6
- package/plugins/acryl-router/src/core/middleware/jwk/index.test.ts +16 -16
- package/plugins/acryl-router/src/core/middleware/jwk/jwk.ts +7 -6
- package/plugins/acryl-router/src/core/middleware/jwt/index.test.ts +16 -16
- package/plugins/acryl-router/src/core/middleware/jwt/jwt.ts +4 -3
- package/plugins/acryl-router/src/core/middleware/language/index.test.ts +3 -3
- package/plugins/acryl-router/src/core/middleware/language/language.ts +3 -3
- package/plugins/acryl-router/src/core/middleware/logger/index.test.ts +5 -5
- package/plugins/acryl-router/src/core/middleware/logger/index.ts +4 -4
- package/plugins/acryl-router/src/core/middleware/method-not-allowed/index.test.ts +24 -24
- package/plugins/acryl-router/src/core/middleware/method-not-allowed/index.ts +8 -8
- package/plugins/acryl-router/src/core/middleware/method-override/index.test.ts +5 -5
- package/plugins/acryl-router/src/core/middleware/method-override/index.ts +6 -6
- package/plugins/acryl-router/src/core/middleware/powered-by/index.test.ts +4 -4
- package/plugins/acryl-router/src/core/middleware/powered-by/index.ts +6 -6
- package/plugins/acryl-router/src/core/middleware/pretty-json/index.test.ts +30 -30
- package/plugins/acryl-router/src/core/middleware/pretty-json/index.ts +4 -4
- package/plugins/acryl-router/src/core/middleware/request-id/index.test.ts +15 -15
- package/plugins/acryl-router/src/core/middleware/request-id/request-id.ts +3 -3
- package/plugins/acryl-router/src/core/middleware/secure-headers/index.test.ts +35 -35
- package/plugins/acryl-router/src/core/middleware/secure-headers/secure-headers.ts +3 -3
- package/plugins/acryl-router/src/core/middleware/serve-static/index.test.ts +23 -23
- package/plugins/acryl-router/src/core/middleware/serve-static/index.ts +1 -1
- package/plugins/acryl-router/src/core/middleware/timeout/index.test.ts +2 -2
- package/plugins/acryl-router/src/core/middleware/timeout/index.ts +3 -3
- package/plugins/acryl-router/src/core/middleware/timing/index.test.ts +14 -14
- package/plugins/acryl-router/src/core/middleware/timing/timing.ts +3 -3
- package/plugins/acryl-router/src/core/middleware/trailing-slash/index.test.ts +7 -7
- package/plugins/acryl-router/src/core/middleware/trailing-slash/index.ts +7 -7
- package/plugins/acryl-router/src/core/request.test.ts +42 -42
- package/plugins/acryl-router/src/core/request.ts +6 -6
- package/plugins/acryl-router/src/core/router/linear-router/index.ts +1 -1
- package/plugins/acryl-router/src/core/router/pattern-router/index.ts +1 -1
- package/plugins/acryl-router/src/core/router/reg-exp-router/index.ts +1 -1
- package/plugins/acryl-router/src/core/router/smart-router/index.ts +1 -1
- package/plugins/acryl-router/src/core/router/trie-router/index.ts +1 -1
- package/plugins/acryl-router/src/core/types.test.ts +115 -115
- package/plugins/acryl-router/src/core/types.ts +72 -72
- package/plugins/acryl-router/src/core/utils/body.ts +8 -8
- package/plugins/acryl-router/src/core/utils/html.ts +1 -1
- package/plugins/acryl-router/src/core/utils/jwt/jws.ts +3 -3
- package/plugins/acryl-router/src/core/utils/jwt/jwt.test.ts +2 -2
- package/plugins/acryl-router/src/core/utils/jwt/jwt.ts +3 -3
- package/plugins/acryl-router/src/core/utils/jwt/types.ts +1 -1
- package/plugins/acryl-router/src/core/utils/types.ts +42 -0
- package/plugins/acryl-router/src/core/utils/url.test.ts +2 -2
- package/plugins/acryl-router/src/core/validator/index.ts +1 -1
- package/plugins/acryl-router/src/core/validator/validator.test.ts +28 -28
- package/plugins/acryl-router/src/deprecated.ts +15 -0
- package/plugins/acryl-router/src/index.ts +3 -2
- package/plugins/acryl-router/src/middleware/index.ts +1 -1
- package/plugins/acryl-router/src/middleware/loopback-only.ts +34 -1
- package/plugins/acryl-router/src/service.ts +19 -13
- package/plugins/acryl-router/tests/docs-examples.spec.ts +11 -11
- package/plugins/acryl-router/tests/live-install.spec.ts +2 -2
- package/plugins/acryl-router/tests/loader.spec.ts +3 -3
- package/plugins/acryl-router/tests/loopback-only.spec.ts +80 -0
- package/plugins/acryl-router/tests/no-dom/consumer.ts +11 -0
- package/plugins/acryl-router/tests/no-dom/tsconfig.json +13 -0
- package/plugins/acryl-router/tests/service.spec.ts +39 -22
- package/plugins/acryl-router/upstream.json +3 -3
- package/plugins/acryl-router-http/tests/adapter.spec.ts +3 -3
- package/plugins/acryl-router-http/tests/surfaces.spec.ts +2 -2
- package/plugins/acryl-router-http/upstream.json +2 -2
- package/plugins/acryl-state/src/service.ts +2 -2
- package/plugins/acryl-state/upstream.json +2 -2
- package/plugins/builder/script.ts +3 -3
- package/plugins/extensions/index.ts +4 -3
- package/plugins/extensions/resolve.ts +70 -10
- package/plugins/openai/prompt.ts +7 -7
- package/shared/AGENTS.core.md +61 -0
- package/templates/agent/AGENTS.md +6 -0
- package/templates/agent/README.md +2 -2
- package/templates/agent/blend.yaml +1 -1
- package/templates/agent/src/routes.ts +2 -2
- package/templates/agent/test/model.test.ts +2 -2
- package/templates/agent/tsconfig.json +40 -0
- package/templates/blank/AGENTS.md +5 -0
- package/templates/blank/README.md +1 -1
- package/templates/blank/src/routes.ts +2 -2
- package/templates/todo/AGENTS.md +5 -0
- package/templates/todo/src/todo.ts +6 -4
- package/templates/todo/upstream.json +2 -2
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import "./router.js";
|
|
2
|
+
import { t as TrieRouter } from "./trie-router-CfFbapzL.js";
|
|
3
|
+
import { basePath, matchedRoutes } from "./route.js";
|
|
4
|
+
//#region ../../plugins/acryl-router/src/core/middleware/method-not-allowed/index.ts
|
|
5
|
+
/**
|
|
6
|
+
* Method Not Allowed Middleware for Acryl.
|
|
7
|
+
*
|
|
8
|
+
* Returns a `405 Method Not Allowed` response with an `Allow` header when the request path
|
|
9
|
+
* matches a registered route but the request method is not supported.
|
|
10
|
+
*
|
|
11
|
+
* @param {MethodNotAllowedOptions} options - The options for the middleware.
|
|
12
|
+
* @param {Acryl} options.app - The Acryl instance used by the application.
|
|
13
|
+
* @param {MethodNotAllowedHandler} [options.onMethodNotAllowed] - Generates the response, including its `Allow` header.
|
|
14
|
+
* @returns {MiddlewareHandler} The middleware handler function.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* const app = new Acryl()
|
|
19
|
+
*
|
|
20
|
+
* app.use(methodNotAllowed({ app }))
|
|
21
|
+
*
|
|
22
|
+
* app.get('/hello', (c) => c.text('Hello!'))
|
|
23
|
+
* app.post('/hello', (c) => c.text('Posted!'))
|
|
24
|
+
*
|
|
25
|
+
* // PUT /hello -> 405 Method Not Allowed
|
|
26
|
+
* // Allow: GET, HEAD, POST
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* app.use(
|
|
32
|
+
* methodNotAllowed({
|
|
33
|
+
* app,
|
|
34
|
+
* onMethodNotAllowed: (c, methods) =>
|
|
35
|
+
* c.json({ error: 'Method Not Allowed' }, 405, { Allow: methods.join(', ') }),
|
|
36
|
+
* })
|
|
37
|
+
* )
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
const methodNotAllowed = (options) => {
|
|
41
|
+
let methodRouter;
|
|
42
|
+
return async function methodNotAllowed(c, next) {
|
|
43
|
+
const routeIndex = c.req.routeIndex;
|
|
44
|
+
await next();
|
|
45
|
+
if (c.res.status !== 404) return;
|
|
46
|
+
if (c.error) return;
|
|
47
|
+
if (!methodRouter) {
|
|
48
|
+
const methodsByPath = /* @__PURE__ */ new Map();
|
|
49
|
+
for (const route of options.app.routes) {
|
|
50
|
+
if (route.method === "ALL" || route.method === "HEAD") continue;
|
|
51
|
+
const methods = methodsByPath.get(route.path) ?? /* @__PURE__ */ new Set();
|
|
52
|
+
methods.add(route.method);
|
|
53
|
+
if (route.method === "GET") methods.add("HEAD");
|
|
54
|
+
methodsByPath.set(route.path, methods);
|
|
55
|
+
}
|
|
56
|
+
methodRouter = new TrieRouter();
|
|
57
|
+
for (const [path, methods] of methodsByPath) methodRouter.add("ALL", path, [...methods]);
|
|
58
|
+
}
|
|
59
|
+
let requestPath = c.req.path;
|
|
60
|
+
const currentRoute = matchedRoutes(c)[routeIndex];
|
|
61
|
+
const sourceRoute = options.app.routes.find((route) => route.handler === methodNotAllowed);
|
|
62
|
+
if (currentRoute && sourceRoute) {
|
|
63
|
+
const currentBasePathParts = basePath(c, routeIndex).split("/").filter(Boolean);
|
|
64
|
+
const sourceBasePathLength = sourceRoute.basePath.split("/").filter(Boolean).length;
|
|
65
|
+
const mountBasePathParts = currentBasePathParts.slice(0, currentBasePathParts.length - sourceBasePathLength);
|
|
66
|
+
if (mountBasePathParts.length > 0) {
|
|
67
|
+
const mountBasePath = `/${mountBasePathParts.join("/")}`;
|
|
68
|
+
requestPath = c.req.path.slice(mountBasePath.length) || "/";
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const allowedMethods = /* @__PURE__ */ new Set();
|
|
72
|
+
for (const [methods] of methodRouter.match("ALL", requestPath)[0]) for (const method of methods) allowedMethods.add(method);
|
|
73
|
+
if (allowedMethods.size === 0 || allowedMethods.has(c.req.method)) return;
|
|
74
|
+
c.res.headers.delete("Allow");
|
|
75
|
+
c.res.headers.delete("Content-Length");
|
|
76
|
+
const methods = [...allowedMethods];
|
|
77
|
+
const allow = methods.join(", ");
|
|
78
|
+
c.res = options.onMethodNotAllowed ? await options.onMethodNotAllowed(c, methods) : c.text("Method Not Allowed", 405, { Allow: allow });
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
//#endregion
|
|
82
|
+
export { methodNotAllowed };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { I as MiddlewareHandler } from "./context-Bm7rI-oK.js";
|
|
2
|
+
import { t as Acryl } from "./app-CmAYW1Al.js";
|
|
3
|
+
|
|
4
|
+
//#region ../../plugins/acryl-router/src/core/middleware/method-override/index.d.ts
|
|
5
|
+
type MethodOverrideOptions = {
|
|
6
|
+
app: Acryl<any, any, any>;
|
|
7
|
+
} & ({
|
|
8
|
+
form?: string;
|
|
9
|
+
header?: never;
|
|
10
|
+
query?: never;
|
|
11
|
+
} | {
|
|
12
|
+
form?: never;
|
|
13
|
+
header: string;
|
|
14
|
+
query?: never;
|
|
15
|
+
} | {
|
|
16
|
+
form?: never;
|
|
17
|
+
header?: never;
|
|
18
|
+
query: string;
|
|
19
|
+
});
|
|
20
|
+
/**
|
|
21
|
+
* Method Override Middleware for Acryl.
|
|
22
|
+
*
|
|
23
|
+
*
|
|
24
|
+
* @param {MethodOverrideOptions} options - The options for the method override middleware.
|
|
25
|
+
* @param {Acryl} options.app - The instance of Acryl is used in your application.
|
|
26
|
+
* @param {string} [options.form=_method] - Form key with a value containing the method name.
|
|
27
|
+
* @param {string} [options.header] - Header name with a value containing the method name.
|
|
28
|
+
* @param {string} [options.query] - Query parameter key with a value containing the method name.
|
|
29
|
+
* @returns {MiddlewareHandler} The middleware handler function.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* const app = new Acryl()
|
|
34
|
+
*
|
|
35
|
+
* // If no options are specified, the value of `_method` in the form,
|
|
36
|
+
* // e.g. DELETE, is used as the method.
|
|
37
|
+
* app.use('/posts', methodOverride({ app }))
|
|
38
|
+
*
|
|
39
|
+
* app.delete('/posts', (c) => {
|
|
40
|
+
* // ....
|
|
41
|
+
* })
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
declare const methodOverride: (options: MethodOverrideOptions) => MiddlewareHandler;
|
|
45
|
+
//#endregion
|
|
46
|
+
export { methodOverride };
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { parseBody } from "./utils/body.js";
|
|
2
|
+
//#region ../../plugins/acryl-router/src/core/middleware/method-override/index.ts
|
|
3
|
+
const DEFAULT_METHOD_FORM_NAME = "_method";
|
|
4
|
+
/**
|
|
5
|
+
* Method Override Middleware for Acryl.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* @param {MethodOverrideOptions} options - The options for the method override middleware.
|
|
9
|
+
* @param {Acryl} options.app - The instance of Acryl is used in your application.
|
|
10
|
+
* @param {string} [options.form=_method] - Form key with a value containing the method name.
|
|
11
|
+
* @param {string} [options.header] - Header name with a value containing the method name.
|
|
12
|
+
* @param {string} [options.query] - Query parameter key with a value containing the method name.
|
|
13
|
+
* @returns {MiddlewareHandler} The middleware handler function.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* const app = new Acryl()
|
|
18
|
+
*
|
|
19
|
+
* // If no options are specified, the value of `_method` in the form,
|
|
20
|
+
* // e.g. DELETE, is used as the method.
|
|
21
|
+
* app.use('/posts', methodOverride({ app }))
|
|
22
|
+
*
|
|
23
|
+
* app.delete('/posts', (c) => {
|
|
24
|
+
* // ....
|
|
25
|
+
* })
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
const methodOverride = (options) => async function methodOverride(c, next) {
|
|
29
|
+
if (c.req.method === "GET") return await next();
|
|
30
|
+
const app = options.app;
|
|
31
|
+
if (!(options.header || options.query)) {
|
|
32
|
+
const contentType = c.req.header("content-type");
|
|
33
|
+
const methodFormName = options.form || DEFAULT_METHOD_FORM_NAME;
|
|
34
|
+
const clonedRequest = c.req.raw.clone();
|
|
35
|
+
const newRequest = clonedRequest.clone();
|
|
36
|
+
if (contentType?.startsWith("multipart/form-data")) {
|
|
37
|
+
const method = (await clonedRequest.formData()).get(methodFormName);
|
|
38
|
+
if (method) {
|
|
39
|
+
const newForm = await newRequest.formData();
|
|
40
|
+
newForm.delete(methodFormName);
|
|
41
|
+
const newHeaders = new Headers(clonedRequest.headers);
|
|
42
|
+
newHeaders.delete("content-type");
|
|
43
|
+
newHeaders.delete("content-length");
|
|
44
|
+
const request = new Request(c.req.url, {
|
|
45
|
+
body: newForm,
|
|
46
|
+
headers: newHeaders,
|
|
47
|
+
method
|
|
48
|
+
});
|
|
49
|
+
return app.fetch(request, c.env, getExecutionCtx(c));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (contentType?.startsWith("application/x-www-form-urlencoded")) {
|
|
53
|
+
const params = await parseBody(clonedRequest);
|
|
54
|
+
const method = params[methodFormName];
|
|
55
|
+
if (method) {
|
|
56
|
+
delete params[methodFormName];
|
|
57
|
+
const newParams = new URLSearchParams(params);
|
|
58
|
+
const request = new Request(newRequest, {
|
|
59
|
+
body: newParams,
|
|
60
|
+
method
|
|
61
|
+
});
|
|
62
|
+
return app.fetch(request, c.env, getExecutionCtx(c));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
} else if (options.header) {
|
|
66
|
+
const headerName = options.header;
|
|
67
|
+
const method = c.req.header(headerName);
|
|
68
|
+
if (method) {
|
|
69
|
+
const newHeaders = new Headers(c.req.raw.headers);
|
|
70
|
+
newHeaders.delete(headerName);
|
|
71
|
+
const request = new Request(c.req.raw, {
|
|
72
|
+
headers: newHeaders,
|
|
73
|
+
method
|
|
74
|
+
});
|
|
75
|
+
return app.fetch(request, c.env, getExecutionCtx(c));
|
|
76
|
+
}
|
|
77
|
+
} else if (options.query) {
|
|
78
|
+
const queryName = options.query;
|
|
79
|
+
const method = c.req.query(queryName);
|
|
80
|
+
if (method) {
|
|
81
|
+
const url = new URL(c.req.url);
|
|
82
|
+
url.searchParams.delete(queryName);
|
|
83
|
+
const requestInit = {
|
|
84
|
+
body: c.req.raw.body,
|
|
85
|
+
headers: c.req.raw.headers,
|
|
86
|
+
method,
|
|
87
|
+
duplex: c.req.raw.body ? "half" : void 0
|
|
88
|
+
};
|
|
89
|
+
const request = new Request(url.toString(), requestInit);
|
|
90
|
+
return app.fetch(request, c.env, getExecutionCtx(c));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
await next();
|
|
94
|
+
};
|
|
95
|
+
const getExecutionCtx = (c) => {
|
|
96
|
+
let executionCtx;
|
|
97
|
+
try {
|
|
98
|
+
executionCtx = c.executionCtx;
|
|
99
|
+
} catch {}
|
|
100
|
+
return executionCtx;
|
|
101
|
+
};
|
|
102
|
+
//#endregion
|
|
103
|
+
export { methodOverride };
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
//#region ../../plugins/acryl-router/src/core/utils/mime.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* @module
|
|
4
|
+
* MIME utility.
|
|
5
|
+
*/
|
|
6
|
+
declare const getMimeType: (filename: string, mimes?: Record<string, string>) => string | undefined;
|
|
7
|
+
declare const getExtension: (mimeType: string) => string | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* Union types for BaseMime
|
|
10
|
+
*/
|
|
11
|
+
type BaseMime = (typeof _baseMimes)[keyof typeof _baseMimes];
|
|
12
|
+
declare const _baseMimes: {
|
|
13
|
+
readonly aac: "audio/aac";
|
|
14
|
+
readonly avi: "video/x-msvideo";
|
|
15
|
+
readonly avif: "image/avif";
|
|
16
|
+
readonly av1: "video/av1";
|
|
17
|
+
readonly bin: "application/octet-stream";
|
|
18
|
+
readonly bmp: "image/bmp";
|
|
19
|
+
readonly css: "text/css; charset=utf-8";
|
|
20
|
+
readonly csv: "text/csv; charset=utf-8";
|
|
21
|
+
readonly eot: "application/vnd.ms-fontobject";
|
|
22
|
+
readonly epub: "application/epub+zip";
|
|
23
|
+
readonly gif: "image/gif";
|
|
24
|
+
readonly gz: "application/gzip";
|
|
25
|
+
readonly htm: "text/html; charset=utf-8";
|
|
26
|
+
readonly html: "text/html; charset=utf-8";
|
|
27
|
+
readonly ico: "image/x-icon";
|
|
28
|
+
readonly ics: "text/calendar; charset=utf-8";
|
|
29
|
+
readonly jpeg: "image/jpeg";
|
|
30
|
+
readonly jpg: "image/jpeg";
|
|
31
|
+
readonly js: "text/javascript; charset=utf-8";
|
|
32
|
+
readonly json: "application/json";
|
|
33
|
+
readonly jsonld: "application/ld+json";
|
|
34
|
+
readonly map: "application/json";
|
|
35
|
+
readonly mid: "audio/x-midi";
|
|
36
|
+
readonly midi: "audio/x-midi";
|
|
37
|
+
readonly mjs: "text/javascript; charset=utf-8";
|
|
38
|
+
readonly mp3: "audio/mpeg";
|
|
39
|
+
readonly mp4: "video/mp4";
|
|
40
|
+
readonly mpeg: "video/mpeg";
|
|
41
|
+
readonly oga: "audio/ogg";
|
|
42
|
+
readonly ogv: "video/ogg";
|
|
43
|
+
readonly ogx: "application/ogg";
|
|
44
|
+
readonly opus: "audio/opus";
|
|
45
|
+
readonly otf: "font/otf";
|
|
46
|
+
readonly pdf: "application/pdf";
|
|
47
|
+
readonly png: "image/png";
|
|
48
|
+
readonly rtf: "application/rtf";
|
|
49
|
+
readonly svg: "image/svg+xml; charset=utf-8";
|
|
50
|
+
readonly tif: "image/tiff";
|
|
51
|
+
readonly tiff: "image/tiff";
|
|
52
|
+
readonly ts: "video/mp2t";
|
|
53
|
+
readonly ttf: "font/ttf";
|
|
54
|
+
readonly txt: "text/plain; charset=utf-8";
|
|
55
|
+
readonly wasm: "application/wasm";
|
|
56
|
+
readonly webm: "video/webm";
|
|
57
|
+
readonly weba: "audio/webm";
|
|
58
|
+
readonly webmanifest: "application/manifest+json";
|
|
59
|
+
readonly webp: "image/webp";
|
|
60
|
+
readonly woff: "font/woff";
|
|
61
|
+
readonly woff2: "font/woff2";
|
|
62
|
+
readonly xhtml: "application/xhtml+xml; charset=utf-8";
|
|
63
|
+
readonly xml: "application/xml; charset=utf-8";
|
|
64
|
+
readonly zip: "application/zip";
|
|
65
|
+
readonly '3gp': "video/3gpp";
|
|
66
|
+
readonly '3g2': "video/3gpp2";
|
|
67
|
+
readonly gltf: "model/gltf+json";
|
|
68
|
+
readonly glb: "model/gltf-binary";
|
|
69
|
+
};
|
|
70
|
+
declare const baseMimes: Record<string, BaseMime>;
|
|
71
|
+
//#endregion
|
|
72
|
+
export { getMimeType as i, baseMimes as n, getExtension as r, BaseMime as t };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { r as GetConnInfo } from "../types-CDO6I3B0.js";
|
|
2
|
+
|
|
3
|
+
//#region ../../plugins/acryl-node-server/src/adapter/conninfo.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* ConnInfo Helper for Node.js
|
|
6
|
+
* @param c Context
|
|
7
|
+
* @returns ConnInfo
|
|
8
|
+
*/
|
|
9
|
+
declare const getConnInfo: GetConnInfo;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { getConnInfo };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region ../../plugins/acryl-node-server/src/adapter/conninfo.ts
|
|
2
|
+
/**
|
|
3
|
+
* ConnInfo Helper for Node.js
|
|
4
|
+
* @param c Context
|
|
5
|
+
* @returns ConnInfo
|
|
6
|
+
*/
|
|
7
|
+
const getConnInfo = (c) => {
|
|
8
|
+
const bindings = c.env.server ? c.env.server : c.env;
|
|
9
|
+
const address = bindings.incoming.socket.remoteAddress;
|
|
10
|
+
const port = bindings.incoming.socket.remotePort;
|
|
11
|
+
const family = bindings.incoming.socket.remoteFamily;
|
|
12
|
+
return { remote: {
|
|
13
|
+
address,
|
|
14
|
+
port,
|
|
15
|
+
addressType: family === "IPv4" ? "IPv4" : family === "IPv6" ? "IPv6" : void 0
|
|
16
|
+
} };
|
|
17
|
+
};
|
|
18
|
+
//#endregion
|
|
19
|
+
export { getConnInfo };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { I as MiddlewareHandler, _ as Env, t as Context } from "../context-Bm7rI-oK.js";
|
|
2
|
+
|
|
3
|
+
//#region ../../plugins/acryl-node-server/src/adapter/serve-static.d.ts
|
|
4
|
+
type ServeStaticOptions<E extends Env = Env> = {
|
|
5
|
+
/**
|
|
6
|
+
* Root path. Relative path is based on current working directory from which the app was started.
|
|
7
|
+
*/
|
|
8
|
+
root?: string;
|
|
9
|
+
path?: string;
|
|
10
|
+
index?: string;
|
|
11
|
+
precompressed?: boolean; /** Allow percent signs in the routed request path. Defaults to false. */
|
|
12
|
+
allowPercentInPath?: boolean;
|
|
13
|
+
rewriteRequestPath?: (path: string, c: Context<E>) => string;
|
|
14
|
+
onFound?: (path: string, c: Context<E>) => void | Promise<void>;
|
|
15
|
+
onNotFound?: (path: string, c: Context<E>) => void | Promise<void>;
|
|
16
|
+
};
|
|
17
|
+
declare const serveStatic: <E extends Env = any>(options?: ServeStaticOptions<E>) => MiddlewareHandler<E>;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { ServeStaticOptions, serveStatic };
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { n as UpgradeWebSocket } from "./index-UTBmM3GX.js";
|
|
2
|
+
import { ServeStaticOptions, serveStatic } from "./node-server/serve-static.js";
|
|
3
|
+
import { getConnInfo } from "./node-server/conninfo.js";
|
|
4
|
+
import { AddressInfo } from "node:net";
|
|
5
|
+
import { IncomingMessage, Server, ServerOptions, ServerResponse, createServer } from "node:http";
|
|
6
|
+
import { Http2SecureServer, Http2Server, Http2ServerRequest, Http2ServerResponse, SecureServerOptions, ServerOptions as ServerOptions$1, createSecureServer, createServer as createServer$1 } from "node:http2";
|
|
7
|
+
import { Duplex } from "node:stream";
|
|
8
|
+
import { ServerOptions as ServerOptions$2, createServer as createServer$2 } from "node:https";
|
|
9
|
+
|
|
10
|
+
//#region ../../plugins/acryl-node-server/src/adapter/websocket-types.d.ts
|
|
11
|
+
type WSReadyState = 0 | 1 | 2 | 3;
|
|
12
|
+
type WebSocketData = string | ArrayBuffer | Uint8Array | readonly Uint8Array[];
|
|
13
|
+
type WebSocketSendOptions = {
|
|
14
|
+
compress?: boolean;
|
|
15
|
+
};
|
|
16
|
+
interface WebSocketLike {
|
|
17
|
+
protocol: string;
|
|
18
|
+
readyState: WSReadyState;
|
|
19
|
+
close(code?: number, reason?: string): void;
|
|
20
|
+
send(data: string | ArrayBuffer | ArrayBufferView, options?: WebSocketSendOptions): void;
|
|
21
|
+
on(event: 'message', listener: (data: WebSocketData, isBinary: boolean) => void): this;
|
|
22
|
+
on(event: 'close', listener: (code: number, reason: Uint8Array) => void): this;
|
|
23
|
+
on(event: 'error', listener: (error: unknown) => void): this;
|
|
24
|
+
off(event: 'message', listener: (data: WebSocketData, isBinary: boolean) => void): this;
|
|
25
|
+
}
|
|
26
|
+
interface WebSocketServerLike {
|
|
27
|
+
options: {
|
|
28
|
+
noServer?: boolean;
|
|
29
|
+
};
|
|
30
|
+
on(event: 'connection', listener: (ws: WebSocketLike, request: IncomingMessage) => void): this;
|
|
31
|
+
on(event: 'headers', listener: (headers: string[]) => void): this;
|
|
32
|
+
off(event: 'headers', listener: (headers: string[]) => void): this;
|
|
33
|
+
emit(event: 'connection', ws: WebSocketLike, request: IncomingMessage): boolean;
|
|
34
|
+
handleUpgrade(request: IncomingMessage, socket: Duplex, head: Buffer, callback: (ws: WebSocketLike) => void): void;
|
|
35
|
+
close(): void;
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
//#region ../../plugins/acryl-node-server/src/adapter/types.d.ts
|
|
39
|
+
type HttpBindings = {
|
|
40
|
+
incoming: IncomingMessage;
|
|
41
|
+
outgoing: ServerResponse;
|
|
42
|
+
};
|
|
43
|
+
type Http2Bindings = {
|
|
44
|
+
incoming: Http2ServerRequest;
|
|
45
|
+
outgoing: Http2ServerResponse;
|
|
46
|
+
};
|
|
47
|
+
type FetchCallback = (request: Request, env: HttpBindings | Http2Bindings) => Promise<unknown> | unknown;
|
|
48
|
+
type ServerType = Server | Http2Server | Http2SecureServer;
|
|
49
|
+
type createHttpOptions = {
|
|
50
|
+
serverOptions?: ServerOptions;
|
|
51
|
+
createServer?: typeof createServer;
|
|
52
|
+
};
|
|
53
|
+
type createHttpsOptions = {
|
|
54
|
+
serverOptions?: ServerOptions$2;
|
|
55
|
+
createServer?: typeof createServer$2;
|
|
56
|
+
};
|
|
57
|
+
type createHttp2Options = {
|
|
58
|
+
serverOptions?: ServerOptions$1;
|
|
59
|
+
createServer?: typeof createServer$1;
|
|
60
|
+
};
|
|
61
|
+
type createSecureHttp2Options = {
|
|
62
|
+
serverOptions?: SecureServerOptions;
|
|
63
|
+
createServer?: typeof createSecureServer;
|
|
64
|
+
};
|
|
65
|
+
type ServerOptions$3 = createHttpOptions | createHttpsOptions | createHttp2Options | createSecureHttp2Options;
|
|
66
|
+
type Options = {
|
|
67
|
+
fetch: FetchCallback;
|
|
68
|
+
overrideGlobalObjects?: boolean;
|
|
69
|
+
autoCleanupIncoming?: boolean;
|
|
70
|
+
port?: number;
|
|
71
|
+
hostname?: string;
|
|
72
|
+
websocket?: {
|
|
73
|
+
server: WebSocketServerLike;
|
|
74
|
+
};
|
|
75
|
+
} & ServerOptions$3;
|
|
76
|
+
type CustomErrorHandler = (err: unknown) => void | Response | Promise<void | Response>;
|
|
77
|
+
//#endregion
|
|
78
|
+
//#region ../../plugins/acryl-node-server/src/adapter/server.d.ts
|
|
79
|
+
declare const createAdaptorServer: (options: Options) => ServerType;
|
|
80
|
+
declare const serve: (options: Options, listeningListener?: (info: AddressInfo) => void) => ServerType;
|
|
81
|
+
//#endregion
|
|
82
|
+
//#region ../../plugins/acryl-node-server/src/adapter/websocket.d.ts
|
|
83
|
+
type UpgradeWebSocketOptions = {
|
|
84
|
+
onError: (err: unknown) => void;
|
|
85
|
+
};
|
|
86
|
+
declare const upgradeWebSocket: UpgradeWebSocket<WebSocketLike, UpgradeWebSocketOptions>;
|
|
87
|
+
//#endregion
|
|
88
|
+
//#region ../../plugins/acryl-node-server/src/adapter/listener.d.ts
|
|
89
|
+
declare const getRequestListener: (fetchCallback: FetchCallback, options?: {
|
|
90
|
+
hostname?: string;
|
|
91
|
+
errorHandler?: CustomErrorHandler;
|
|
92
|
+
overrideGlobalObjects?: boolean;
|
|
93
|
+
autoCleanupIncoming?: boolean;
|
|
94
|
+
}) => (incoming: IncomingMessage | Http2ServerRequest, outgoing: ServerResponse | Http2ServerResponse) => Promise<void>;
|
|
95
|
+
//#endregion
|
|
96
|
+
//#region ../../plugins/acryl-node-server/src/adapter/error.d.ts
|
|
97
|
+
declare class RequestError extends Error {
|
|
98
|
+
constructor(message: string, options?: {
|
|
99
|
+
cause?: unknown;
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
//#endregion
|
|
103
|
+
export { type Http2Bindings, type HttpBindings, RequestError, type ServeStaticOptions, type ServerType, type WebSocketData, type WebSocketLike, type WebSocketServerLike, createAdaptorServer, getConnInfo, getRequestListener, serve, serveStatic, upgradeWebSocket };
|