acrylblends 0.8.1 → 0.9.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/dist/index.d.ts +2 -0
- package/dist/index.js +83 -7
- package/dist/index.js.map +1 -1
- package/lib/audit-BXnYsLge.d.ts +58 -0
- package/lib/cell-ChU41DZD.d.ts +32 -0
- package/lib/client-modules-CLvWOjbd.js +267 -0
- package/lib/connection-ZLEso7XL.d.ts +25 -0
- package/lib/conninfo.d.ts +1 -23
- package/lib/cordis/db-sqlite.d.ts +56 -0
- package/lib/cordis/db-sqlite.js +58 -0
- package/lib/cordis/db.d.ts +8 -0
- package/lib/cordis/db.js +1 -0
- package/lib/cordis/door.d.ts +159 -0
- package/lib/cordis/door.js +757 -0
- package/lib/cordis/inspect.d.ts +77 -0
- package/lib/cordis/inspect.js +149 -0
- package/lib/cordis/kv-db.d.ts +16 -0
- package/lib/cordis/kv-db.js +18 -0
- package/lib/cordis/kv-json.d.ts +16 -0
- package/lib/cordis/kv-json.js +44 -0
- package/lib/cordis/kv.d.ts +8 -0
- package/lib/cordis/kv.js +1 -0
- package/lib/cordis/node-server.d.ts +45 -0
- package/lib/cordis/node-server.js +93 -0
- package/lib/cordis/router-http.d.ts +56 -0
- package/lib/cordis/router-http.js +117 -0
- package/lib/cordis/router.d.ts +8 -0
- package/lib/cordis/router.js +7 -0
- package/lib/cordis/state/react.d.ts +6 -0
- package/lib/cordis/state/react.js +11 -0
- package/lib/cordis/state.d.ts +33 -0
- package/lib/cordis/state.js +163 -0
- package/lib/core-CaY8XDZ6.js +19 -0
- package/lib/database-DBHdwefi.d.ts +44 -0
- package/lib/db/conformance.d.ts +11 -0
- package/lib/db/conformance.js +267 -0
- package/lib/db/sqlite.d.ts +1 -1
- package/lib/db/sqlite.js +1 -196
- package/lib/db.d.ts +2 -1
- package/lib/{src-0hI7M7cN.js → deprecated-BP4fPt38.js} +0 -17
- package/lib/door/host.d.ts +24 -0
- package/lib/door/host.js +2 -0
- package/lib/door/page.d.ts +105 -0
- package/lib/door/page.js +1030 -0
- package/lib/door/protocol.d.ts +2 -0
- package/lib/door/protocol.js +197 -0
- package/lib/error-t4N2js2I.d.ts +8 -0
- package/lib/etag-DaKMOjty.js +135 -0
- package/lib/etag.js +1 -134
- package/lib/helpers-CvTauQT5.js +5 -0
- package/lib/http-exception-kpGJkmpi.d.ts +57 -0
- package/lib/http-exception.d.ts +1 -56
- package/lib/{index-BLTYsyc1.d.ts → index-BnGgRKTv.d.ts} +3 -39
- package/lib/index-BqVQkTnu.d.ts +98 -0
- package/lib/index-Dmst2QCQ.d.ts +44 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -1
- package/lib/jwk-LkzeoaU8.js +117 -0
- package/lib/jwk.js +1 -116
- package/lib/jwt-CskdhEW9.js +115 -0
- package/lib/jwt.js +2 -114
- package/lib/kv/conformance.d.ts +13 -0
- package/lib/kv/conformance.js +301 -0
- package/lib/kv/db.d.ts +2 -2
- package/lib/kv/json.d.ts +1 -1
- package/lib/kv-9f-AlRKN.d.ts +39 -0
- package/lib/kv.d.ts +2 -1
- package/lib/language-D9a4zqvn.js +198 -0
- package/lib/language.js +1 -197
- package/lib/middleware-CPQ8himN.js +12 -0
- package/lib/node-server/serve-static.d.ts +0 -1
- package/lib/node-server/serve-static.js +1 -1
- package/lib/node-server.d.ts +1 -7
- package/lib/node-server.js +3 -1586
- package/lib/open-CMhnJODn.js +197 -0
- package/lib/protocol-BizVt4J6.d.ts +144 -0
- package/lib/request-id-CKVvHOO1.js +34 -0
- package/lib/request-id.js +1 -33
- package/lib/secure-headers-mP3j6Hm6.js +163 -0
- package/lib/secure-headers.js +1 -162
- package/lib/{serve-static-B849HlX2.js → serve-static-3uo_9rjF.js} +1 -4
- package/lib/server-DvgMGtzo.js +1323 -0
- package/lib/snapshot-text-D3NspDyT.js +338 -0
- package/lib/src-CwABFr6r.js +328 -0
- package/lib/timeout.d.ts +1 -1
- package/lib/timing-Cky7C1Jf.js +183 -0
- package/lib/timing.js +1 -182
- package/package.json +89 -1
- package/plugins/acryl-db/plugin.json +6 -1
- package/plugins/acryl-db-sqlite/plugin.json +4 -0
- package/plugins/acryl-db-sqlite/src/facade/node.ts +1 -1
- package/plugins/acryl-db-sqlite/src/index.ts +2 -2
- package/plugins/acryl-db-sqlite/src/open.ts +2 -2
- package/plugins/acryl-door/plugin.json +4 -1
- package/plugins/acryl-door/src/host/http.ts +2 -2
- package/plugins/acryl-door/src/host/mcp-routes.ts +1 -1
- package/plugins/acryl-door/src/host/operator-routes.ts +1 -1
- package/plugins/acryl-door/src/host/page-routes.ts +3 -3
- package/plugins/acryl-door/src/index.ts +2 -2
- package/plugins/acryl-inspect/plugin.json +4 -1
- package/plugins/acryl-inspect/src/service.ts +2 -2
- package/plugins/acryl-kv/plugin.json +6 -1
- package/plugins/acryl-kv-db/plugin.json +4 -0
- package/plugins/acryl-kv-db/src/index.ts +1 -1
- package/plugins/acryl-kv-db/src/open.ts +3 -3
- package/plugins/acryl-kv-json/plugin.json +4 -0
- package/plugins/acryl-kv-json/src/index.ts +1 -1
- package/plugins/acryl-kv-json/src/open.ts +2 -2
- package/plugins/acryl-node-server/plugin.json +5 -1
- package/plugins/acryl-node-server/src/adapter/conninfo.ts +1 -1
- package/plugins/acryl-node-server/src/adapter/early-hints.ts +1 -1
- package/plugins/acryl-node-server/src/adapter/serve-static.ts +2 -2
- package/plugins/acryl-node-server/src/adapter/websocket.ts +2 -2
- package/plugins/acryl-node-server/src/client-modules.ts +2 -2
- package/plugins/acryl-node-server/src/index.ts +1 -1
- package/plugins/acryl-router/plugin.json +11 -1
- package/plugins/acryl-router/src/connection.d.ts +25 -0
- package/plugins/acryl-router/src/core/app-base.d.ts +215 -0
- package/plugins/acryl-router/src/core/app.d.ts +19 -0
- package/plugins/acryl-router/src/core/client/client.d.ts +4 -0
- package/plugins/acryl-router/src/core/client/fetch-result-please.d.ts +35 -0
- package/plugins/acryl-router/src/core/client/index.d.ts +7 -0
- package/plugins/acryl-router/src/core/client/types.d.ts +229 -0
- package/plugins/acryl-router/src/core/client/utils.d.ts +18 -0
- package/plugins/acryl-router/src/core/compose.d.ts +14 -0
- package/plugins/acryl-router/src/core/context.d.ts +443 -0
- package/plugins/acryl-router/src/core/helper/accepts/accepts.d.ts +30 -0
- package/plugins/acryl-router/src/core/helper/accepts/index.d.ts +5 -0
- package/plugins/acryl-router/src/core/helper/conninfo/index.d.ts +5 -0
- package/plugins/acryl-router/src/core/helper/conninfo/types.d.ts +36 -0
- package/plugins/acryl-router/src/core/helper/cookie/index.d.ts +25 -0
- package/plugins/acryl-router/src/core/helper/css/common.d.ts +59 -0
- package/plugins/acryl-router/src/core/helper/css/index.d.ts +80 -0
- package/plugins/acryl-router/src/core/helper/dev/index.d.ts +20 -0
- package/plugins/acryl-router/src/core/helper/factory/index.d.ts +82 -0
- package/plugins/acryl-router/src/core/helper/html/index.d.ts +8 -0
- package/plugins/acryl-router/src/core/helper/proxy/index.d.ts +73 -0
- package/plugins/acryl-router/src/core/helper/route/index.d.ts +75 -0
- package/plugins/acryl-router/src/core/helper/ssg/index.d.ts +7 -0
- package/plugins/acryl-router/src/core/helper/ssg/middleware.d.ts +44 -0
- package/plugins/acryl-router/src/core/helper/ssg/plugins.d.ts +27 -0
- package/plugins/acryl-router/src/core/helper/ssg/ssg.d.ts +91 -0
- package/plugins/acryl-router/src/core/helper/ssg/utils.d.ts +16 -0
- package/plugins/acryl-router/src/core/helper/streaming/index.d.ts +8 -0
- package/plugins/acryl-router/src/core/helper/streaming/sse.d.ts +13 -0
- package/plugins/acryl-router/src/core/helper/streaming/stream.d.ts +3 -0
- package/plugins/acryl-router/src/core/helper/streaming/text.d.ts +3 -0
- package/plugins/acryl-router/src/core/helper/streaming/utils.d.ts +1 -0
- package/plugins/acryl-router/src/core/helper/testing/index.d.ts +13 -0
- package/plugins/acryl-router/src/core/helper/websocket/index.d.ts +70 -0
- package/plugins/acryl-router/src/core/http-exception.d.ts +58 -0
- package/plugins/acryl-router/src/core/index.d.ts +37 -0
- package/plugins/acryl-router/src/core/jsx/base.d.ts +61 -0
- package/plugins/acryl-router/src/core/jsx/children.d.ts +9 -0
- package/plugins/acryl-router/src/core/jsx/components.d.ts +15 -0
- package/plugins/acryl-router/src/core/jsx/constants.d.ts +6 -0
- package/plugins/acryl-router/src/core/jsx/context.d.ts +51 -0
- package/plugins/acryl-router/src/core/jsx/dom/components.d.ts +10 -0
- package/plugins/acryl-router/src/core/jsx/dom/context.d.ts +3 -0
- package/plugins/acryl-router/src/core/jsx/dom/css.d.ts +83 -0
- package/plugins/acryl-router/src/core/jsx/dom/hooks/index.d.ts +39 -0
- package/plugins/acryl-router/src/core/jsx/dom/intrinsic-element/components.d.ts +16 -0
- package/plugins/acryl-router/src/core/jsx/dom/jsx-dev-runtime.d.ts +8 -0
- package/plugins/acryl-router/src/core/jsx/dom/jsx-runtime.d.ts +7 -0
- package/plugins/acryl-router/src/core/jsx/dom/render.d.ts +73 -0
- package/plugins/acryl-router/src/core/jsx/dom/utils.d.ts +1 -0
- package/plugins/acryl-router/src/core/jsx/hooks/index.d.ts +47 -0
- package/plugins/acryl-router/src/core/jsx/index.d.ts +76 -0
- package/plugins/acryl-router/src/core/jsx/intrinsic-element/common.d.ts +6 -0
- package/plugins/acryl-router/src/core/jsx/intrinsic-element/components.d.ts +13 -0
- package/plugins/acryl-router/src/core/jsx/intrinsic-elements.d.ts +735 -0
- package/plugins/acryl-router/src/core/jsx/streaming.d.ts +36 -0
- package/plugins/acryl-router/src/core/jsx/types.d.ts +36 -0
- package/plugins/acryl-router/src/core/jsx/utils.d.ts +4 -0
- package/plugins/acryl-router/src/core/request/constants.d.ts +1 -0
- package/plugins/acryl-router/src/core/request.d.ts +306 -0
- package/plugins/acryl-router/src/core/router/reg-exp-router/index.d.ts +6 -0
- package/plugins/acryl-router/src/core/router/reg-exp-router/matcher.d.ts +7 -0
- package/plugins/acryl-router/src/core/router/reg-exp-router/node.d.ts +13 -0
- package/plugins/acryl-router/src/core/router/reg-exp-router/prepared-router.d.ts +17 -0
- package/plugins/acryl-router/src/core/router/reg-exp-router/router.d.ts +11 -0
- package/plugins/acryl-router/src/core/router/reg-exp-router/trie.d.ts +8 -0
- package/plugins/acryl-router/src/core/router/smart-router/index.d.ts +5 -0
- package/plugins/acryl-router/src/core/router/smart-router/router.d.ts +11 -0
- package/plugins/acryl-router/src/core/router/trie-router/index.d.ts +5 -0
- package/plugins/acryl-router/src/core/router/trie-router/node.d.ts +6 -0
- package/plugins/acryl-router/src/core/router/trie-router/router.d.ts +7 -0
- package/plugins/acryl-router/src/core/router/utils.d.ts +1 -0
- package/plugins/acryl-router/src/core/router.d.ts +97 -0
- package/plugins/acryl-router/src/core/types.d.ts +573 -0
- package/plugins/acryl-router/src/core/utils/accept.d.ts +6 -0
- package/plugins/acryl-router/src/core/utils/body.d.ts +79 -0
- package/plugins/acryl-router/src/core/utils/buffer.d.ts +17 -0
- package/plugins/acryl-router/src/core/utils/color.d.ts +21 -0
- package/plugins/acryl-router/src/core/utils/concurrent.d.ts +11 -0
- package/plugins/acryl-router/src/core/utils/constants.d.ts +4 -0
- package/plugins/acryl-router/src/core/utils/cookie.d.ts +41 -0
- package/plugins/acryl-router/src/core/utils/crypto.d.ts +15 -0
- package/plugins/acryl-router/src/core/utils/handler.d.ts +6 -0
- package/plugins/acryl-router/src/core/utils/headers.d.ts +8 -0
- package/plugins/acryl-router/src/core/utils/html.d.ts +44 -0
- package/plugins/acryl-router/src/core/utils/http-status.d.ts +32 -0
- package/plugins/acryl-router/src/core/utils/mime.d.ts +70 -0
- package/plugins/acryl-router/src/core/utils/stream.d.ts +31 -0
- package/plugins/acryl-router/src/core/utils/types.d.ts +128 -0
- package/plugins/acryl-router/src/core/utils/url.d.ts +44 -0
- package/plugins/acryl-router/src/core/validator/index.d.ts +7 -0
- package/plugins/acryl-router/src/core/validator/utils.d.ts +29 -0
- package/plugins/acryl-router/src/core/validator/validator.d.ts +16 -0
- package/plugins/acryl-router/src/helpers/index.d.ts +17 -0
- package/plugins/acryl-router/src/helpers/schema-validator.d.ts +54 -0
- package/plugins/acryl-router-http/plugin.json +4 -1
- package/plugins/acryl-router-http/src/index.ts +1 -1
- package/plugins/acryl-state/plugin.json +5 -1
- package/plugins/acryl-state/src/service.ts +3 -3
- package/plugins/tsconfig.json +32 -20
- package/docs/framework/UPSTREAM.md +0 -3
- package/docs/framework/upstream.json +0 -9
- package/lib/index-D4FAsBZu.d.ts +0 -85
- package/plugins/acryl-db/upstream.json +0 -18
- package/plugins/acryl-db-sqlite/upstream.json +0 -21
- package/plugins/acryl-door/upstream.json +0 -28
- package/plugins/acryl-inspect/upstream.json +0 -18
- package/plugins/acryl-kv/upstream.json +0 -18
- package/plugins/acryl-kv-db/upstream.json +0 -21
- package/plugins/acryl-kv-json/upstream.json +0 -22
- package/plugins/acryl-node-server/upstream.json +0 -21
- package/plugins/acryl-router/upstream.json +0 -20
- package/plugins/acryl-router-http/upstream.json +0 -22
- package/plugins/acryl-state/NOTICE +0 -30
- package/plugins/acryl-state/upstream.json +0 -22
- package/plugins/desktop/upstream.json +0 -12
- package/plugins/desktop-web/upstream.json +0 -12
- package/templates/todo/upstream.json +0 -12
- /package/lib/{index-CTy4N7ng.d.ts → deprecated-CTy4N7ng.d.ts} +0 -0
package/lib/language.js
CHANGED
|
@@ -1,198 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { getCookie, setCookie } from "./cookie.js";
|
|
3
|
-
//#region ../../plugins/acryl-router/src/core/middleware/language/language.ts
|
|
4
|
-
const DEFAULT_OPTIONS = {
|
|
5
|
-
order: [
|
|
6
|
-
"querystring",
|
|
7
|
-
"cookie",
|
|
8
|
-
"header"
|
|
9
|
-
],
|
|
10
|
-
lookupQueryString: "lang",
|
|
11
|
-
lookupCookie: "language",
|
|
12
|
-
lookupFromHeaderKey: "accept-language",
|
|
13
|
-
lookupFromPathIndex: 0,
|
|
14
|
-
caches: ["cookie"],
|
|
15
|
-
ignoreCase: true,
|
|
16
|
-
fallbackLanguage: "en",
|
|
17
|
-
supportedLanguages: ["en"],
|
|
18
|
-
cookieOptions: {
|
|
19
|
-
sameSite: "Strict",
|
|
20
|
-
secure: true,
|
|
21
|
-
maxAge: 365 * 24 * 60 * 60,
|
|
22
|
-
httpOnly: true
|
|
23
|
-
},
|
|
24
|
-
debug: false
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* Parse Accept-Language header values with quality scores
|
|
28
|
-
* @param header Accept-Language header string
|
|
29
|
-
* @returns Array of parsed languages with quality scores
|
|
30
|
-
*/
|
|
31
|
-
function parseAcceptLanguage(header) {
|
|
32
|
-
return parseAccept(header).map(({ type, q }) => ({
|
|
33
|
-
lang: type,
|
|
34
|
-
q
|
|
35
|
-
}));
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Validate and normalize language codes
|
|
39
|
-
* @param lang Language code to normalize
|
|
40
|
-
* @param options Detector options
|
|
41
|
-
* @returns Normalized language code or undefined
|
|
42
|
-
*/
|
|
43
|
-
const normalizeLanguage = (lang, options) => {
|
|
44
|
-
if (!lang) return;
|
|
45
|
-
try {
|
|
46
|
-
let normalizedLang = lang.trim();
|
|
47
|
-
if (options.convertDetectedLanguage) normalizedLang = options.convertDetectedLanguage(normalizedLang);
|
|
48
|
-
const compLang = options.ignoreCase ? normalizedLang.toLowerCase() : normalizedLang;
|
|
49
|
-
const compSupported = options.supportedLanguages.map((l) => options.ignoreCase ? l.toLowerCase() : l);
|
|
50
|
-
const exactIndex = compSupported.indexOf(compLang);
|
|
51
|
-
if (exactIndex !== -1) return options.supportedLanguages[exactIndex];
|
|
52
|
-
let longestMatchIndex = -1;
|
|
53
|
-
let longestMatchLength = -1;
|
|
54
|
-
for (let i = 0; i < compSupported.length; i++) {
|
|
55
|
-
const candidate = compSupported[i];
|
|
56
|
-
if (candidate.length < compLang.length && candidate.length > longestMatchLength && compLang.startsWith(candidate) && compLang[candidate.length] === "-") {
|
|
57
|
-
longestMatchIndex = i;
|
|
58
|
-
longestMatchLength = candidate.length;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
if (longestMatchIndex !== -1) return options.supportedLanguages[longestMatchIndex];
|
|
62
|
-
return;
|
|
63
|
-
} catch {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
/**
|
|
68
|
-
* Detects language from query parameter
|
|
69
|
-
*/
|
|
70
|
-
const detectFromQuery = (c, options) => {
|
|
71
|
-
const query = c.req.query(options.lookupQueryString);
|
|
72
|
-
return normalizeLanguage(query, options);
|
|
73
|
-
};
|
|
74
|
-
/**
|
|
75
|
-
* Detects language from cookie
|
|
76
|
-
*/
|
|
77
|
-
const detectFromCookie = (c, options) => {
|
|
78
|
-
const cookie = getCookie(c, options.lookupCookie);
|
|
79
|
-
return normalizeLanguage(cookie, options);
|
|
80
|
-
};
|
|
81
|
-
/**
|
|
82
|
-
* Detects language from Accept-Language header
|
|
83
|
-
*/
|
|
84
|
-
function detectFromHeader(c, options) {
|
|
85
|
-
try {
|
|
86
|
-
const acceptLanguage = c.req.header(options.lookupFromHeaderKey);
|
|
87
|
-
if (!acceptLanguage) return;
|
|
88
|
-
const languages = parseAcceptLanguage(acceptLanguage);
|
|
89
|
-
for (const { lang, q } of languages) {
|
|
90
|
-
if (q === 0) continue;
|
|
91
|
-
const normalizedLang = normalizeLanguage(lang, options);
|
|
92
|
-
if (normalizedLang) return normalizedLang;
|
|
93
|
-
}
|
|
94
|
-
return;
|
|
95
|
-
} catch {
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Detects language from URL path
|
|
101
|
-
*/
|
|
102
|
-
function detectFromPath(c, options) {
|
|
103
|
-
const langSegment = new URL(c.req.url).pathname.split("/").filter(Boolean)[options.lookupFromPathIndex];
|
|
104
|
-
return normalizeLanguage(langSegment, options);
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Collection of all language detection strategies
|
|
108
|
-
*/
|
|
109
|
-
const detectors = {
|
|
110
|
-
querystring: detectFromQuery,
|
|
111
|
-
cookie: detectFromCookie,
|
|
112
|
-
header: detectFromHeader,
|
|
113
|
-
path: detectFromPath
|
|
114
|
-
};
|
|
115
|
-
/**
|
|
116
|
-
* Validate detector options
|
|
117
|
-
* @param options Detector options to validate
|
|
118
|
-
* @throws Error if options are invalid
|
|
119
|
-
*/
|
|
120
|
-
function validateOptions(options) {
|
|
121
|
-
if (!options.supportedLanguages.includes(options.fallbackLanguage)) throw new Error("Fallback language must be included in supported languages");
|
|
122
|
-
if (options.lookupFromPathIndex < 0) throw new Error("Path index must be non-negative");
|
|
123
|
-
if (!options.order.every((detector) => Object.keys(detectors).includes(detector))) throw new Error("Invalid detector type in order array");
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Cache detected language
|
|
127
|
-
*/
|
|
128
|
-
function cacheLanguage(c, language, options) {
|
|
129
|
-
if (!Array.isArray(options.caches) || !options.caches.includes("cookie")) return;
|
|
130
|
-
try {
|
|
131
|
-
setCookie(c, options.lookupCookie, language, options.cookieOptions);
|
|
132
|
-
} catch (error) {
|
|
133
|
-
if (options.debug) console.error("Failed to cache language:", error);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Detect language from request
|
|
138
|
-
*/
|
|
139
|
-
const detectLanguage = (c, options) => {
|
|
140
|
-
let detectedLang;
|
|
141
|
-
for (const detectorName of options.order) {
|
|
142
|
-
const detector = detectors[detectorName];
|
|
143
|
-
try {
|
|
144
|
-
detectedLang = detector(c, options);
|
|
145
|
-
if (detectedLang) {
|
|
146
|
-
if (options.debug) console.log(`Language detected from ${detectorName}: ${detectedLang}`);
|
|
147
|
-
break;
|
|
148
|
-
}
|
|
149
|
-
} catch (error) {
|
|
150
|
-
if (options.debug) console.error(`Error in ${detectorName} detector:`, error);
|
|
151
|
-
continue;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
const finalLang = detectedLang || options.fallbackLanguage;
|
|
155
|
-
if (detectedLang && options.caches) cacheLanguage(c, finalLang, options);
|
|
156
|
-
return finalLang;
|
|
157
|
-
};
|
|
158
|
-
/**
|
|
159
|
-
* Language detector middleware factory
|
|
160
|
-
* @param userOptions Configuration options for the language detector
|
|
161
|
-
* @returns Acryl middleware function
|
|
162
|
-
*
|
|
163
|
-
* @example
|
|
164
|
-
* ```ts
|
|
165
|
-
* type Variables = LanguageVariables
|
|
166
|
-
* const app = new Acryl<{ Variables: Variables }>()
|
|
167
|
-
*
|
|
168
|
-
* app.use(
|
|
169
|
-
* languageDetector({
|
|
170
|
-
* supportedLanguages: ['en', 'ja'], // Must include fallback
|
|
171
|
-
* fallbackLanguage: 'en', // Required
|
|
172
|
-
* })
|
|
173
|
-
* )
|
|
174
|
-
*
|
|
175
|
-
* app.get('/', (c) => {
|
|
176
|
-
* const lang = c.get('language')
|
|
177
|
-
* return c.text(`Current language: ${lang}`)
|
|
178
|
-
* })
|
|
179
|
-
* ```
|
|
180
|
-
*/
|
|
181
|
-
const languageDetector = (userOptions) => {
|
|
182
|
-
const options = {
|
|
183
|
-
...DEFAULT_OPTIONS,
|
|
184
|
-
...userOptions,
|
|
185
|
-
cookieOptions: {
|
|
186
|
-
...DEFAULT_OPTIONS.cookieOptions,
|
|
187
|
-
...userOptions.cookieOptions
|
|
188
|
-
}
|
|
189
|
-
};
|
|
190
|
-
validateOptions(options);
|
|
191
|
-
return async function languageDetector(ctx, next) {
|
|
192
|
-
const lang = detectLanguage(ctx, options);
|
|
193
|
-
ctx.set("language", lang);
|
|
194
|
-
await next();
|
|
195
|
-
};
|
|
196
|
-
};
|
|
197
|
-
//#endregion
|
|
1
|
+
import { a as languageDetector, i as detectFromQuery, n as detectFromHeader, r as detectFromPath, t as detectFromCookie } from "./language-D9a4zqvn.js";
|
|
198
2
|
export { detectFromCookie, detectFromHeader, detectFromPath, detectFromQuery, languageDetector };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import "./basic-auth.js";
|
|
2
|
+
import "./combine.js";
|
|
3
|
+
import "./context-storage.js";
|
|
4
|
+
import "./ip-restriction.js";
|
|
5
|
+
import "./jsx-renderer.js";
|
|
6
|
+
import "./jwk-LkzeoaU8.js";
|
|
7
|
+
import "./jwt-CskdhEW9.js";
|
|
8
|
+
import "./method-not-allowed.js";
|
|
9
|
+
import "./serve-static-Cp5adzGo.js";
|
|
10
|
+
import "./timeout.js";
|
|
11
|
+
import "./loopback-only.js";
|
|
12
|
+
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as serveStatic } from "../serve-static-
|
|
1
|
+
import { t as serveStatic } from "../serve-static-3uo_9rjF.js";
|
|
2
2
|
export { serveStatic };
|
package/lib/node-server.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { t as Acryl } from "./app-D8riatvv.js";
|
|
2
2
|
import { n as UpgradeWebSocket } from "./index-BvFh1Gfx.js";
|
|
3
|
+
import { t as RequestError } from "./error-t4N2js2I.js";
|
|
3
4
|
import { ServeStaticOptions, serveStatic } from "./node-server/serve-static.js";
|
|
4
5
|
import { getConnInfo } from "./node-server/conninfo.js";
|
|
5
6
|
import { AddressInfo } from "node:net";
|
|
@@ -120,13 +121,6 @@ declare const getRequestListener: (fetchCallback: FetchCallback, options?: {
|
|
|
120
121
|
autoCleanupIncoming?: boolean;
|
|
121
122
|
}) => (incoming: IncomingMessage | Http2ServerRequest, outgoing: ServerResponse | Http2ServerResponse) => Promise<void>;
|
|
122
123
|
//#endregion
|
|
123
|
-
//#region ../../plugins/acryl-node-server/src/adapter/error.d.ts
|
|
124
|
-
declare class RequestError extends Error {
|
|
125
|
-
constructor(message: string, options?: {
|
|
126
|
-
cause?: unknown;
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
//#endregion
|
|
130
124
|
//#region ../../plugins/acryl-node-server/src/client-modules.d.ts
|
|
131
125
|
/** Options of {@link clientModules}. */
|
|
132
126
|
interface ClientModulesOptions {
|