jskelet 0.6.3 → 0.6.5
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/AGENTS.md +136 -136
- package/CHANGELOG.md +633 -620
- package/LICENSE +21 -21
- package/README.md +2 -0
- package/bin/jskelet.mjs +130 -130
- package/docs/01-baslangic.md +291 -291
- package/docs/02-mimari.md +310 -310
- package/docs/03-routing.md +515 -515
- package/docs/04-render-ve-sablonlar.md +700 -661
- package/docs/05-islands.md +486 -486
- package/docs/06-cache.md +1467 -1443
- package/docs/07-yapilandirma.md +1208 -1197
- package/docs/08-build.md +429 -429
- package/docs/09-dev-araclari.md +364 -364
- package/docs/10-dagitim.md +351 -338
- package/docs/12-panel-ve-oturum.md +479 -478
- package/docs/README.md +83 -83
- package/docs/en/01-getting-started.md +298 -298
- package/docs/en/02-architecture.md +329 -329
- package/docs/en/03-routing.md +531 -531
- package/docs/en/04-rendering.md +708 -669
- package/docs/en/05-islands.md +497 -497
- package/docs/en/06-caching.md +1476 -1453
- package/docs/en/07-configuration.md +1229 -1219
- package/docs/en/08-build.md +447 -447
- package/docs/en/09-dev-tools.md +373 -373
- package/docs/en/10-deployment.md +355 -340
- package/docs/en/11-migration.md +398 -398
- package/docs/en/12-dashboards-and-sessions.md +489 -488
- package/docs/en/README.md +87 -87
- package/package.json +137 -137
- package/src/build/ensure-build.mjs +19 -19
- package/src/build/paths.mjs +153 -153
- package/src/build/resolve-peer.mjs +36 -36
- package/src/build/tasks/client.mjs +349 -349
- package/src/build/tasks/css.mjs +235 -235
- package/src/build/tasks/fonts.mjs +146 -146
- package/src/build/tasks/icons.mjs +357 -357
- package/src/build/tasks/images.mjs +244 -244
- package/src/build/tasks/precompress.mjs +78 -78
- package/src/build/tasks/templates.mjs +20 -20
- package/src/client/admin/i18n.js +764 -764
- package/src/client/admin/login.html +74 -74
- package/src/client/admin/panel.css +809 -809
- package/src/client/admin/panel.html +495 -495
- package/src/client/admin/panel.js +1251 -1251
- package/src/client/devtools/report.html +185 -185
- package/src/client/devtools/report.js +745 -745
- package/src/client/devtools/seo.js +628 -628
- package/src/client/dom.js +95 -95
- package/src/client/form.js +192 -192
- package/src/client/index.js +45 -45
- package/src/client/registry.js +305 -305
- package/src/client/safe-image.js +91 -91
- package/src/client/shared-cookie.js +225 -225
- package/src/client/store.js +36 -36
- package/src/client/swap.js +188 -188
- package/src/compile/codegen.js +336 -336
- package/src/compile/compile-all.js +149 -149
- package/src/compile/errors.js +66 -66
- package/src/compile/expr.js +409 -409
- package/src/compile/index.js +17 -17
- package/src/compile/parse.js +541 -541
- package/src/compile/resolve.js +211 -211
- package/src/compile/scan-exports.js +51 -51
- package/src/config/defaults.js +541 -534
- package/src/config/index.js +1500 -1469
- package/src/config/pattern.js +107 -107
- package/src/generate.mjs +163 -163
- package/src/http/control-flow.js +71 -71
- package/src/http/cookies-entry.js +21 -21
- package/src/http/cookies.js +277 -277
- package/src/http/request-cache.js +46 -46
- package/src/http/request-context.js +165 -165
- package/src/http/shared-cookie.js +178 -178
- package/src/index.js +101 -101
- package/src/init.mjs +232 -230
- package/src/migrate/apply.mjs +262 -262
- package/src/migrate/babel.mjs +79 -79
- package/src/migrate/classify.mjs +155 -155
- package/src/migrate/config.mjs +126 -126
- package/src/migrate/fs-walk.mjs +191 -191
- package/src/migrate/parse.mjs +26 -26
- package/src/migrate/scan.mjs +177 -177
- package/src/migrate/transform/expr-source.mjs +168 -168
- package/src/migrate/transform/island.mjs +67 -67
- package/src/migrate/transform/jsx-to-component.mjs +302 -302
- package/src/migrate/transform/jsx-to-jsk.mjs +330 -330
- package/src/migrate/transform/page-split.mjs +435 -435
- package/src/migrate/write.mjs +81 -81
- package/src/migrate.mjs +171 -171
- package/src/runtime/alias-hooks.mjs +119 -119
- package/src/runtime/register.mjs +4 -4
- package/src/server/admin/actions.js +229 -229
- package/src/server/admin/auth.js +125 -125
- package/src/server/admin/event-log.js +151 -151
- package/src/server/admin/gate.js +209 -209
- package/src/server/admin/inventory.js +188 -188
- package/src/server/admin/mount.js +56 -56
- package/src/server/admin/router.js +216 -216
- package/src/server/admin/snapshot.js +241 -241
- package/src/server/assets.js +147 -147
- package/src/server/auth/handoff.js +309 -309
- package/src/server/cache-blob.js +70 -70
- package/src/server/cache-control.js +45 -0
- package/src/server/cache-deps.js +42 -42
- package/src/server/cache-vary.js +113 -113
- package/src/server/cloudflare.js +607 -607
- package/src/server/create-app.js +366 -366
- package/src/server/data-cache.js +553 -553
- package/src/server/dev/report.js +485 -485
- package/src/server/dev/socket.js +170 -170
- package/src/server/dev/version-check.mjs +139 -139
- package/src/server/disk-cache.js +233 -233
- package/src/server/ejs-adapter.js +59 -59
- package/src/server/html-cache.js +1196 -1196
- package/src/server/image-optimizer.js +500 -500
- package/src/server/logs/access-middleware.js +66 -66
- package/src/server/logs/file-sink.js +193 -193
- package/src/server/logs/pipeline.js +165 -165
- package/src/server/logs/s3-put.js +214 -214
- package/src/server/logs/s3-sink.js +112 -112
- package/src/server/metadata.js +102 -102
- package/src/server/middleware/compression.js +205 -205
- package/src/server/middleware/csrf.js +134 -134
- package/src/server/middleware/dev-gate.js +75 -75
- package/src/server/middleware/headers.js +37 -37
- package/src/server/middleware/redirects.js +32 -32
- package/src/server/middleware/robots-txt.js +341 -341
- package/src/server/middleware/static-precompressed.js +121 -121
- package/src/server/middleware/trailing-slash.js +53 -53
- package/src/server/middleware/upstream-proxy.js +141 -141
- package/src/server/og-image.js +965 -356
- package/src/server/og-raster.mjs +21 -0
- package/src/server/port-guard.js +255 -255
- package/src/server/prewarm.js +1082 -1082
- package/src/server/redis.js +588 -588
- package/src/server/render.js +910 -910
- package/src/server/router.js +157 -157
- package/src/server/status-page.js +265 -265
- package/src/server/upstream-limiter.js +376 -376
- package/src/server/upstream-tracking.js +166 -166
- package/src/shared/cookie-domain.js +66 -66
- package/src/start.mjs +22 -22
- package/src/templates/layout.ejs +30 -30
- package/src/templates/layout.jsk +30 -30
- package/src/version.mjs +31 -31
- package/src/views/components/loader.js +101 -101
- package/src/views/helpers/html.js +102 -102
- package/src/views/helpers/tags.js +375 -375
- package/types/config/defaults.d.ts +6 -0
- package/types/config/index.d.ts +6 -0
- package/types/server/cache-control.d.ts +28 -0
- package/types/server/og-image.d.ts +51 -3
|
@@ -131,6 +131,12 @@ export declare const CLASSIC_PREWARM_KEYS: string[];
|
|
|
131
131
|
* `vary.host` kopyası sayı tavanının altında da RSS'i şişirir.
|
|
132
132
|
*/
|
|
133
133
|
export declare const DEFAULT_HTML_CACHE_MAX_ENTRIES = 500;
|
|
134
|
+
/**
|
|
135
|
+
* Edge taze penceresi bittikten sonra eski HTML'in sunulacağı süre (saniye).
|
|
136
|
+
* `cache().staleWhileRevalidate`. 0 ise `stale-while-revalidate` direktifi
|
|
137
|
+
* basılmaz. Süreç içi HTML cache'in stale penceresinden bağımsızdır.
|
|
138
|
+
*/
|
|
139
|
+
export declare const DEFAULT_STALE_WHILE_REVALIDATE = 60;
|
|
134
140
|
/** `cache().maxEntries` için sert tavan. Üstü uyarıyla bu değere çekilir. */
|
|
135
141
|
export declare const HTML_CACHE_MAX_ENTRIES_CEILING = 800;
|
|
136
142
|
/**
|
package/types/config/index.d.ts
CHANGED
|
@@ -124,6 +124,12 @@ export type ResolvedConfig = {
|
|
|
124
124
|
* HTML önbelleğinin girdi sınırı.
|
|
125
125
|
*/
|
|
126
126
|
htmlMaxEntries: number;
|
|
127
|
+
/**
|
|
128
|
+
* Edge taze penceresi bittikten sonra
|
|
129
|
+
* eski HTML'in sunulacağı süre (saniye). 0 ise direktif basılmaz. Süreç içi
|
|
130
|
+
* HTML cache'in stale penceresinden bağımsızdır.
|
|
131
|
+
*/
|
|
132
|
+
staleWhileRevalidate: number;
|
|
127
133
|
/**
|
|
128
134
|
* Upstream veri önbelleği ayarları.
|
|
129
135
|
*/
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tarayıcıya `max-age=0`, edge'e `CDN-Cache-Control`.
|
|
3
|
+
*
|
|
4
|
+
* `s-maxage` yazılmaz: Cloudflare `max-age=0` ile birlikte görünce nesneyi
|
|
5
|
+
* EXPIRED sayar. `must-revalidate`, `proxy-revalidate` ve `no-cache` aynı
|
|
6
|
+
* yanıtta stale penceresini keser; burada üretilmez. `s-maxage`'e dönen bir
|
|
7
|
+
* anahtar da yok — o mod aynı EXPIRED sonucunu geri getirir.
|
|
8
|
+
*
|
|
9
|
+
* Süreç içi HTML cache (`X-JSkelet-Cache: STALE`) ayrı katmandır; bu modül
|
|
10
|
+
* ona dokunmaz. Görsel optimizer kendi `max-age` + `stale-while-revalidate`
|
|
11
|
+
* yolunu kullanır.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* @param {number} maxAge Edge'in taze penceresi (saniye). HTML'de route TTL.
|
|
15
|
+
* @param {number} staleWhileRevalidate Taze pencere bitince eski kopyanın
|
|
16
|
+
* sunulacağı süre. 0 ise direktif basılmaz.
|
|
17
|
+
* @returns {{ cacheControl: string, cdnCacheControl: string }}
|
|
18
|
+
*/
|
|
19
|
+
export declare function edgeCacheControl(maxAge: number, staleWhileRevalidate: number): {
|
|
20
|
+
cacheControl: string;
|
|
21
|
+
cdnCacheControl: string;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* @param {import('express').Response} res
|
|
25
|
+
* @param {number} maxAge
|
|
26
|
+
* @param {number} staleWhileRevalidate
|
|
27
|
+
*/
|
|
28
|
+
export declare function setEdgeCacheHeaders(res: import('express').Response, maxAge: number, staleWhileRevalidate: number): void;
|
|
@@ -24,12 +24,31 @@ export type OgCardOptions = {
|
|
|
24
24
|
*/
|
|
25
25
|
accent?: string;
|
|
26
26
|
};
|
|
27
|
+
export type OgFontFace = {
|
|
28
|
+
/**
|
|
29
|
+
* Font dosyası. PNG için `ttf` veya `otf`
|
|
30
|
+
* (librsvg `woff` / `woff2` dosyasından kare basar). Uygulama köküne
|
|
31
|
+
* göreli ya da mutlak.
|
|
32
|
+
*/
|
|
33
|
+
path: string;
|
|
34
|
+
/**
|
|
35
|
+
* SVG `font-family` adı. Dosyanın içindeki adla
|
|
36
|
+
* aynı olmak zorunda değil.
|
|
37
|
+
*/
|
|
38
|
+
family: string;
|
|
39
|
+
/**
|
|
40
|
+
* Tek ağırlık (`700`) ya da aralık (`"100 900"`).
|
|
41
|
+
*/
|
|
42
|
+
weight?: number | string;
|
|
43
|
+
style?: 'normal' | 'italic' | 'oblique';
|
|
44
|
+
};
|
|
27
45
|
export type OgImageOptions = OgCardOptions & {
|
|
28
46
|
svg?: string;
|
|
29
47
|
width?: number;
|
|
30
48
|
height?: number;
|
|
31
49
|
format?: 'png' | 'svg';
|
|
32
50
|
cacheControl?: string;
|
|
51
|
+
fonts?: OgFontFace[];
|
|
33
52
|
};
|
|
34
53
|
export type OgImageResult = {
|
|
35
54
|
body: Buffer;
|
|
@@ -47,6 +66,19 @@ export type OgImageResult = {
|
|
|
47
66
|
* @property {string} [mutedColor] Açıklama / site adı
|
|
48
67
|
* @property {string} [accent] Sol şerit rengi
|
|
49
68
|
*/
|
|
69
|
+
/**
|
|
70
|
+
* OG metnine gömülen yüz. `path` + `family` yeter. PNG, dosyanın içindeki
|
|
71
|
+
* ağırlığı kullanır; `weight` yalnızca SVG yanıtındaki `@font-face` içindir.
|
|
72
|
+
*
|
|
73
|
+
* @typedef {object} OgFontFace
|
|
74
|
+
* @property {string} path Font dosyası. PNG için `ttf` veya `otf`
|
|
75
|
+
* (librsvg `woff` / `woff2` dosyasından kare basar). Uygulama köküne
|
|
76
|
+
* göreli ya da mutlak.
|
|
77
|
+
* @property {string} family SVG `font-family` adı. Dosyanın içindeki adla
|
|
78
|
+
* aynı olmak zorunda değil.
|
|
79
|
+
* @property {number | string} [weight] Tek ağırlık (`700`) ya da aralık (`"100 900"`).
|
|
80
|
+
* @property {'normal' | 'italic' | 'oblique'} [style]
|
|
81
|
+
*/
|
|
50
82
|
/**
|
|
51
83
|
* @typedef {OgCardOptions & {
|
|
52
84
|
* svg?: string,
|
|
@@ -54,6 +86,7 @@ export type OgImageResult = {
|
|
|
54
86
|
* height?: number,
|
|
55
87
|
* format?: 'png' | 'svg',
|
|
56
88
|
* cacheControl?: string,
|
|
89
|
+
* fonts?: OgFontFace[],
|
|
57
90
|
* }} OgImageOptions
|
|
58
91
|
*/
|
|
59
92
|
/**
|
|
@@ -79,21 +112,34 @@ export declare function escapeXml(value: unknown): string;
|
|
|
79
112
|
export declare function wrapText(text: string, maxChars: number, maxLines: number): string[];
|
|
80
113
|
/**
|
|
81
114
|
* Hazır kart SVG'si. Uygulama kendi SVG'sini vermek isterse `svg` kullanır.
|
|
82
|
-
* @param {OgCardOptions & { width?: number, height?: number }} options
|
|
115
|
+
* @param {OgCardOptions & { width?: number, height?: number, fontFamily?: string }} options
|
|
83
116
|
* @returns {string}
|
|
84
117
|
*/
|
|
85
118
|
export declare function buildOgSvg(options?: OgCardOptions & {
|
|
86
119
|
width?: number;
|
|
87
120
|
height?: number;
|
|
121
|
+
fontFamily?: string;
|
|
88
122
|
}): string;
|
|
89
123
|
/**
|
|
90
124
|
* SVG veya kart alanlarından PNG/SVG gövde üretir.
|
|
125
|
+
*
|
|
126
|
+
* PNG'de `ttf` / `otf` fontconfig'e eklenir ve kart bu `family` adlarını
|
|
127
|
+
* kullanır. `woff` / `woff2` yalnızca sharp yokken (ya da `format: "svg"`)
|
|
128
|
+
* `@font-face` olarak gömülür; librsvg onlardan kare basar. Dosya okunamazsa
|
|
129
|
+
* görsel yine üretilir, o yüz atlanır. Çalışma imajında `fontconfig` paketi
|
|
130
|
+
* gerekir.
|
|
131
|
+
*
|
|
91
132
|
* @param {OgImageOptions} [options]
|
|
92
133
|
* @returns {Promise<OgImageResult>}
|
|
93
134
|
*/
|
|
94
135
|
export declare function ogImage(options?: OgImageOptions): Promise<OgImageResult>;
|
|
95
136
|
/**
|
|
96
137
|
* Express yanıtına OG görseli basar.
|
|
138
|
+
*
|
|
139
|
+
* Varsayılan edge penceresi 86400 / 604800'tür ve HTML TTL'ye bağlı değildir.
|
|
140
|
+
* `cacheControl` verilirse yalnızca `Cache-Control` yazılır;
|
|
141
|
+
* `CDN-Cache-Control` basılmaz.
|
|
142
|
+
*
|
|
97
143
|
* @param {import('express').Response} res
|
|
98
144
|
* @param {OgImageOptions} [options]
|
|
99
145
|
* @returns {Promise<OgImageResult>}
|
|
@@ -130,10 +176,12 @@ export declare function ogHandler(factory: (ctx: {
|
|
|
130
176
|
export declare class ImageResponse {
|
|
131
177
|
#private;
|
|
132
178
|
/**
|
|
133
|
-
* @param {string | OgCardOptions} element
|
|
179
|
+
* @param {string | (OgCardOptions & { fonts?: OgFontFace[] })} element
|
|
134
180
|
* @param {Omit<OgImageOptions, keyof OgCardOptions | 'svg'> & { width?: number, height?: number }} [init]
|
|
135
181
|
*/
|
|
136
|
-
constructor(element: string | OgCardOptions
|
|
182
|
+
constructor(element: string | (OgCardOptions & {
|
|
183
|
+
fonts?: OgFontFace[];
|
|
184
|
+
}), init?: Omit<OgImageOptions, keyof OgCardOptions | 'svg'> & {
|
|
137
185
|
width?: number;
|
|
138
186
|
height?: number;
|
|
139
187
|
});
|