jskelet 0.5.5 → 0.6.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/AGENTS.md +18 -13
- package/CHANGELOG.md +95 -0
- package/README.md +9 -7
- package/bin/jskelet.mjs +24 -10
- package/docs/01-baslangic.md +4 -3
- package/docs/02-mimari.md +4 -3
- package/docs/03-routing.md +11 -6
- package/docs/04-render-ve-sablonlar.md +35 -43
- package/docs/05-islands.md +12 -8
- package/docs/07-yapilandirma.md +40 -18
- package/docs/08-build.md +15 -9
- package/docs/09-dev-araclari.md +5 -1
- package/docs/10-dagitim.md +6 -1
- package/docs/11-tasima.md +51 -17
- package/docs/12-panel-ve-oturum.md +10 -4
- package/docs/README.md +7 -5
- package/docs/en/01-getting-started.md +4 -3
- package/docs/en/02-architecture.md +5 -5
- package/docs/en/03-routing.md +12 -7
- package/docs/en/04-rendering.md +47 -59
- package/docs/en/05-islands.md +13 -8
- package/docs/en/07-configuration.md +40 -20
- package/docs/en/08-build.md +16 -10
- package/docs/en/09-dev-tools.md +6 -1
- package/docs/en/10-deployment.md +6 -1
- package/docs/en/11-migration.md +51 -16
- package/docs/en/12-dashboards-and-sessions.md +9 -4
- package/docs/en/README.md +7 -5
- package/package.json +49 -14
- package/src/build/tasks/client.mjs +91 -10
- package/src/build/tasks/icons.mjs +11 -1
- package/src/client/index.js +2 -2
- package/src/compile/codegen.js +4 -0
- package/src/compile/compile-all.js +12 -21
- package/src/compile/expr.js +5 -0
- package/src/compile/parse.js +64 -8
- package/src/compile/resolve.js +3 -0
- package/src/config/defaults.js +12 -2
- package/src/config/index.js +1 -1
- package/src/dev-server.mjs +26 -3
- package/src/http/cookies-entry.js +1 -0
- package/src/http/cookies.js +18 -0
- package/src/logo.png +0 -0
- package/src/migrate/apply.mjs +262 -0
- package/src/migrate/babel.mjs +79 -0
- package/src/migrate/classify.mjs +155 -0
- package/src/migrate/config.mjs +126 -0
- package/src/migrate/fs-walk.mjs +191 -0
- package/src/migrate/parse.mjs +26 -0
- package/src/migrate/scan.mjs +177 -0
- package/src/migrate/transform/expr-source.mjs +168 -0
- package/src/migrate/transform/island.mjs +67 -0
- package/src/migrate/transform/jsx-to-component.mjs +302 -0
- package/src/migrate/transform/jsx-to-jsk.mjs +330 -0
- package/src/migrate/transform/page-split.mjs +435 -0
- package/src/migrate/write.mjs +81 -0
- package/src/migrate.mjs +171 -0
- package/src/server/auth/handoff.js +94 -11
- package/src/server/create-app.js +28 -10
- package/src/server/ejs-adapter.js +59 -0
- package/src/server/image-optimizer.js +94 -26
- package/src/server/port-guard.js +255 -0
- package/src/server/render.js +27 -9
- package/src/server/status-page.js +105 -4
- package/src/start.mjs +18 -3
- package/src/templates/layout.ejs +8 -28
- package/src/templates/layout.jsk +30 -0
- package/src/templates/layout.render.js +41 -0
- package/src/views/helpers/tags.js +86 -3
- package/types/build/resolve-peer.d.mts +13 -0
- package/types/client/dom.d.ts +55 -0
- package/types/client/form.d.ts +19 -0
- package/types/client/index.d.ts +20 -0
- package/types/client/registry.d.ts +53 -0
- package/types/client/safe-image.d.ts +19 -0
- package/types/client/shared-cookie.d.ts +82 -0
- package/types/client/store.d.ts +18 -0
- package/types/client/swap.d.ts +46 -0
- package/types/compile/codegen.d.ts +32 -0
- package/types/compile/compile-all.d.ts +42 -0
- package/types/compile/errors.d.ts +30 -0
- package/types/compile/expr.d.ts +67 -0
- package/types/compile/index.d.ts +10 -0
- package/types/compile/parse.d.ts +82 -0
- package/types/compile/resolve.d.ts +46 -0
- package/types/compile/scan-exports.d.ts +9 -0
- package/types/config/defaults.d.ts +449 -0
- package/types/config/index.d.ts +299 -0
- package/types/config/pattern.d.ts +38 -0
- package/types/http/control-flow.d.ts +45 -0
- package/types/http/cookies-entry.d.ts +5 -0
- package/types/http/cookies.d.ts +113 -0
- package/types/http/request-cache.d.ts +13 -0
- package/types/http/request-context.d.ts +67 -0
- package/types/http/shared-cookie.d.ts +73 -0
- package/types/index.d.ts +30 -0
- package/types/log.d.mts +153 -0
- package/types/server/admin/actions.d.ts +16 -0
- package/types/server/admin/auth.d.ts +52 -0
- package/types/server/admin/event-log.d.ts +38 -0
- package/types/server/admin/gate.d.ts +43 -0
- package/types/server/admin/inventory.d.ts +40 -0
- package/types/server/admin/mount.d.ts +6 -0
- package/types/server/admin/router.d.ts +6 -0
- package/types/server/admin/snapshot.d.ts +6 -0
- package/types/server/assets.d.ts +47 -0
- package/types/server/auth/handoff.d.ts +12 -0
- package/types/server/cache-deps.d.ts +16 -0
- package/types/server/cache-vary.d.ts +30 -0
- package/types/server/cloudflare.d.ts +163 -0
- package/types/server/create-app.d.ts +25 -0
- package/types/server/data-cache.d.ts +116 -0
- package/types/server/dev/devtools.d.ts +44 -0
- package/types/server/dev/report.d.ts +229 -0
- package/types/server/dev/socket.d.ts +17 -0
- package/types/server/dev/version-check.d.mts +15 -0
- package/types/server/ejs-adapter.d.ts +11 -0
- package/types/server/head-hints.d.ts +40 -0
- package/types/server/html-cache.d.ts +173 -0
- package/types/server/image-optimizer.d.ts +68 -0
- package/types/server/logs/access-middleware.d.ts +7 -0
- package/types/server/logs/file-sink.d.ts +17 -0
- package/types/server/logs/pipeline.d.ts +37 -0
- package/types/server/logs/s3-put.d.ts +85 -0
- package/types/server/logs/s3-sink.d.ts +26 -0
- package/types/server/metadata.d.ts +38 -0
- package/types/server/middleware/compression.d.ts +17 -0
- package/types/server/middleware/csrf.d.ts +4 -0
- package/types/server/middleware/dev-gate.d.ts +2 -0
- package/types/server/middleware/headers.d.ts +2 -0
- package/types/server/middleware/redirects.d.ts +2 -0
- package/types/server/middleware/static-precompressed.d.ts +5 -0
- package/types/server/middleware/trailing-slash.d.ts +11 -0
- package/types/server/middleware/upstream-proxy.d.ts +21 -0
- package/types/server/og-image.d.ts +149 -0
- package/types/server/port-guard.d.ts +50 -0
- package/types/server/prewarm.d.ts +128 -0
- package/types/server/redis.d.ts +163 -0
- package/types/server/render.d.ts +101 -0
- package/types/server/router.d.ts +5 -0
- package/types/server/status-page.d.ts +24 -0
- package/types/server/upstream-limiter.d.ts +123 -0
- package/types/server/upstream-tracking.d.ts +42 -0
- package/types/shared/cookie-domain.d.ts +29 -0
- package/types/templates/layout.render.d.ts +7 -0
- package/types/version.d.mts +10 -0
- package/types/views/components/loader.d.ts +5 -0
- package/types/views/helpers/html.d.ts +39 -0
- package/types/views/helpers/tags.d.ts +127 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `SeoLink` karşılığı: title otomatik doldurulur.
|
|
3
|
+
* @param {{ href: string, text?: string, html?: string, class?: string,
|
|
4
|
+
* title?: string, ariaLabel?: string, target?: string, rel?: string,
|
|
5
|
+
* attrs?: Record<string, unknown> }} props
|
|
6
|
+
* @returns {string}
|
|
7
|
+
*/
|
|
8
|
+
export declare function link(props: {
|
|
9
|
+
href: string;
|
|
10
|
+
text?: string;
|
|
11
|
+
html?: string;
|
|
12
|
+
class?: string;
|
|
13
|
+
title?: string;
|
|
14
|
+
ariaLabel?: string;
|
|
15
|
+
target?: string;
|
|
16
|
+
rel?: string;
|
|
17
|
+
attrs?: Record<string, unknown>;
|
|
18
|
+
}): string;
|
|
19
|
+
/**
|
|
20
|
+
* `next/image` karşılığı. `public/` altındaki yerel görseller için build'de
|
|
21
|
+
* üretilen webp varyantları (`build/tasks/images.mjs`) otomatik olarak
|
|
22
|
+
* `srcset` + intrinsic `width`/`height` olarak eklenir; manifest'te olmayan
|
|
23
|
+
* yerel yollar olduğu gibi basılır.
|
|
24
|
+
*
|
|
25
|
+
* `images.remote.allowHosts` açıksa uzak http(s) URL'leri `/_jskelet/image`
|
|
26
|
+
* proxy'sine çevrilir (webp + `w`). `unoptimized` veya elle `srcset` bunu
|
|
27
|
+
* atlar.
|
|
28
|
+
*
|
|
29
|
+
* `priority` LCP görselleri için `fetchpriority=high` + eager yükleme yapar.
|
|
30
|
+
* @param {{ src: string, alt: string, width?: number, height?: number,
|
|
31
|
+
* class?: string, sizes?: string, srcset?: string, priority?: boolean,
|
|
32
|
+
* fill?: boolean, loading?: 'lazy' | 'eager', unoptimized?: boolean,
|
|
33
|
+
* attrs?: Record<string, unknown> }} props
|
|
34
|
+
* @returns {string}
|
|
35
|
+
*/
|
|
36
|
+
export declare function image(props: {
|
|
37
|
+
src: string;
|
|
38
|
+
alt: string;
|
|
39
|
+
width?: number;
|
|
40
|
+
height?: number;
|
|
41
|
+
class?: string;
|
|
42
|
+
sizes?: string;
|
|
43
|
+
srcset?: string;
|
|
44
|
+
priority?: boolean;
|
|
45
|
+
fill?: boolean;
|
|
46
|
+
loading?: 'lazy' | 'eager';
|
|
47
|
+
unoptimized?: boolean;
|
|
48
|
+
attrs?: Record<string, unknown>;
|
|
49
|
+
}): string;
|
|
50
|
+
/**
|
|
51
|
+
* LCP görselleri için `<head>` preload etiketi.
|
|
52
|
+
* @param {{ href: string, imagesrcset?: string, imagesizes?: string }} props
|
|
53
|
+
* @returns {string}
|
|
54
|
+
*/
|
|
55
|
+
export declare function preloadImage({ href, imagesrcset, imagesizes }: {
|
|
56
|
+
href: string;
|
|
57
|
+
imagesrcset?: string;
|
|
58
|
+
imagesizes?: string;
|
|
59
|
+
}): string;
|
|
60
|
+
/**
|
|
61
|
+
* Phosphor ikonları — build zamanı üretilen SVG sprite'tan `<use>`.
|
|
62
|
+
* `weight` sprite id'sine dahildir (regular/bold/fill).
|
|
63
|
+
* @param {{ name: string, size?: number | string, weight?: string,
|
|
64
|
+
* class?: string, attrs?: Record<string, unknown> }} props
|
|
65
|
+
* @returns {string}
|
|
66
|
+
*/
|
|
67
|
+
export declare function icon(props: {
|
|
68
|
+
name: string;
|
|
69
|
+
size?: number | string;
|
|
70
|
+
weight?: string;
|
|
71
|
+
class?: string;
|
|
72
|
+
attrs?: Record<string, unknown>;
|
|
73
|
+
}): string;
|
|
74
|
+
/**
|
|
75
|
+
* Formun içine CSRF token'ını gizli alan olarak basar.
|
|
76
|
+
*
|
|
77
|
+
* Token **burada** üretilir ve imzalı cookie olarak yazılır: bir sayfada
|
|
78
|
+
* token gerçekten gerekiyorsa o sayfa zaten kişiye özeldir. Bu yüzden çağrı
|
|
79
|
+
* render'ı işaretler (`tainted`) ve sayfa public HTML cache'ine giremez —
|
|
80
|
+
* aksi hâlde tüm ziyaretçiler cache'ten aynı token'ı alırdı ve çift gönderim
|
|
81
|
+
* kontrolü hiçbir şey doğrulamazdı.
|
|
82
|
+
*
|
|
83
|
+
* `security.csrf.token` kapalıysa boş string döner; şablon her koşulda
|
|
84
|
+
* render edilebilmeli, korumanın açık olması config'in kararı.
|
|
85
|
+
*
|
|
86
|
+
* @returns {string}
|
|
87
|
+
*/
|
|
88
|
+
export declare function csrfField(): string;
|
|
89
|
+
/**
|
|
90
|
+
* `ArrowRightIcon` / `ArrowRight` → `arrow-right`
|
|
91
|
+
* @param {string} name
|
|
92
|
+
* @returns {string}
|
|
93
|
+
*/
|
|
94
|
+
export declare function toKebab(name: string): string;
|
|
95
|
+
/**
|
|
96
|
+
* Layout `<head>` stylesheet'leri. `hasAsset` false olanları basmaz —
|
|
97
|
+
* build yokken 404 link'i istememek için. `.jsk` ifade dilinde `asset()` /
|
|
98
|
+
* `hasAsset()` çağrılamadığı için layout bu etiketi kullanır.
|
|
99
|
+
*
|
|
100
|
+
* @param {{ styles?: string[] }} [props]
|
|
101
|
+
* @returns {string}
|
|
102
|
+
*/
|
|
103
|
+
export declare function stylesheets(props?: {
|
|
104
|
+
styles?: string[];
|
|
105
|
+
}): string;
|
|
106
|
+
/**
|
|
107
|
+
* Layout gövde sonu script'leri: `main.js`, controller `entries`, isteğe
|
|
108
|
+
* bağlı dev overlay.
|
|
109
|
+
*
|
|
110
|
+
* @param {{ entries?: string[], devtools?: boolean, devBasePath?: string }} [props]
|
|
111
|
+
* @returns {string}
|
|
112
|
+
*/
|
|
113
|
+
export declare function bodyScripts(props?: {
|
|
114
|
+
entries?: string[];
|
|
115
|
+
devtools?: boolean;
|
|
116
|
+
devBasePath?: string;
|
|
117
|
+
}): string;
|
|
118
|
+
/**
|
|
119
|
+
* JSON-LD script etiketleri. `structuredData` dizisindeki her öğe için bir
|
|
120
|
+
* `<script type="application/ld+json">`.
|
|
121
|
+
*
|
|
122
|
+
* @param {{ items?: unknown[] }} [props]
|
|
123
|
+
* @returns {string}
|
|
124
|
+
*/
|
|
125
|
+
export declare function jsonLd(props?: {
|
|
126
|
+
items?: unknown[];
|
|
127
|
+
}): string;
|