jskelet 0.5.5 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/AGENTS.md +19 -15
  2. package/CHANGELOG.md +165 -15
  3. package/README.md +16 -21
  4. package/bin/jskelet.mjs +23 -9
  5. package/docs/01-baslangic.md +4 -3
  6. package/docs/02-mimari.md +10 -4
  7. package/docs/03-routing.md +14 -7
  8. package/docs/04-render-ve-sablonlar.md +60 -43
  9. package/docs/05-islands.md +12 -8
  10. package/docs/06-cache.md +18 -7
  11. package/docs/07-yapilandirma.md +69 -27
  12. package/docs/08-build.md +15 -9
  13. package/docs/09-dev-araclari.md +22 -8
  14. package/docs/10-dagitim.md +14 -13
  15. package/docs/11-tasima.md +51 -17
  16. package/docs/12-panel-ve-oturum.md +10 -4
  17. package/docs/README.md +10 -33
  18. package/docs/en/01-getting-started.md +4 -3
  19. package/docs/en/02-architecture.md +12 -6
  20. package/docs/en/03-routing.md +15 -8
  21. package/docs/en/04-rendering.md +71 -59
  22. package/docs/en/05-islands.md +13 -8
  23. package/docs/en/06-caching.md +21 -7
  24. package/docs/en/07-configuration.md +69 -29
  25. package/docs/en/08-build.md +16 -10
  26. package/docs/en/09-dev-tools.md +24 -8
  27. package/docs/en/10-deployment.md +14 -14
  28. package/docs/en/11-migration.md +51 -16
  29. package/docs/en/12-dashboards-and-sessions.md +9 -4
  30. package/docs/en/README.md +10 -35
  31. package/package.json +48 -13
  32. package/src/build/tasks/client.mjs +91 -10
  33. package/src/build/tasks/icons.mjs +11 -1
  34. package/src/client/index.js +2 -2
  35. package/src/compile/codegen.js +4 -0
  36. package/src/compile/compile-all.js +12 -21
  37. package/src/compile/expr.js +5 -0
  38. package/src/compile/parse.js +64 -8
  39. package/src/compile/resolve.js +3 -0
  40. package/src/config/defaults.js +48 -5
  41. package/src/config/index.js +138 -27
  42. package/src/dev-server.mjs +26 -3
  43. package/src/http/cookies-entry.js +1 -0
  44. package/src/http/cookies.js +18 -0
  45. package/src/logo.png +0 -0
  46. package/src/migrate/apply.mjs +262 -0
  47. package/src/migrate/babel.mjs +79 -0
  48. package/src/migrate/classify.mjs +155 -0
  49. package/src/migrate/config.mjs +126 -0
  50. package/src/migrate/fs-walk.mjs +191 -0
  51. package/src/migrate/parse.mjs +26 -0
  52. package/src/migrate/scan.mjs +177 -0
  53. package/src/migrate/transform/expr-source.mjs +168 -0
  54. package/src/migrate/transform/island.mjs +67 -0
  55. package/src/migrate/transform/jsx-to-component.mjs +302 -0
  56. package/src/migrate/transform/jsx-to-jsk.mjs +330 -0
  57. package/src/migrate/transform/page-split.mjs +435 -0
  58. package/src/migrate/write.mjs +81 -0
  59. package/src/migrate.mjs +171 -0
  60. package/src/server/auth/handoff.js +94 -11
  61. package/src/server/create-app.js +37 -10
  62. package/src/server/ejs-adapter.js +59 -0
  63. package/src/server/html-cache.js +178 -32
  64. package/src/server/image-optimizer.js +94 -26
  65. package/src/server/middleware/dev-gate.js +21 -8
  66. package/src/server/middleware/robots-txt.js +341 -0
  67. package/src/server/port-guard.js +255 -0
  68. package/src/server/prewarm.js +137 -51
  69. package/src/server/render.js +30 -10
  70. package/src/server/status-page.js +105 -4
  71. package/src/start.mjs +18 -3
  72. package/src/templates/layout.ejs +8 -28
  73. package/src/templates/layout.jsk +30 -0
  74. package/src/templates/layout.render.js +41 -0
  75. package/src/views/helpers/tags.js +86 -3
  76. package/types/build/resolve-peer.d.mts +13 -0
  77. package/types/client/dom.d.ts +55 -0
  78. package/types/client/form.d.ts +19 -0
  79. package/types/client/index.d.ts +20 -0
  80. package/types/client/registry.d.ts +53 -0
  81. package/types/client/safe-image.d.ts +19 -0
  82. package/types/client/shared-cookie.d.ts +82 -0
  83. package/types/client/store.d.ts +18 -0
  84. package/types/client/swap.d.ts +46 -0
  85. package/types/compile/codegen.d.ts +32 -0
  86. package/types/compile/compile-all.d.ts +42 -0
  87. package/types/compile/errors.d.ts +30 -0
  88. package/types/compile/expr.d.ts +67 -0
  89. package/types/compile/index.d.ts +10 -0
  90. package/types/compile/parse.d.ts +82 -0
  91. package/types/compile/resolve.d.ts +46 -0
  92. package/types/compile/scan-exports.d.ts +9 -0
  93. package/types/config/defaults.d.ts +477 -0
  94. package/types/config/index.d.ts +304 -0
  95. package/types/config/pattern.d.ts +38 -0
  96. package/types/http/control-flow.d.ts +45 -0
  97. package/types/http/cookies-entry.d.ts +5 -0
  98. package/types/http/cookies.d.ts +113 -0
  99. package/types/http/request-cache.d.ts +13 -0
  100. package/types/http/request-context.d.ts +67 -0
  101. package/types/http/shared-cookie.d.ts +73 -0
  102. package/types/index.d.ts +30 -0
  103. package/types/log.d.mts +153 -0
  104. package/types/server/admin/actions.d.ts +16 -0
  105. package/types/server/admin/auth.d.ts +52 -0
  106. package/types/server/admin/event-log.d.ts +38 -0
  107. package/types/server/admin/gate.d.ts +43 -0
  108. package/types/server/admin/inventory.d.ts +40 -0
  109. package/types/server/admin/mount.d.ts +6 -0
  110. package/types/server/admin/router.d.ts +6 -0
  111. package/types/server/admin/snapshot.d.ts +6 -0
  112. package/types/server/assets.d.ts +47 -0
  113. package/types/server/auth/handoff.d.ts +12 -0
  114. package/types/server/cache-deps.d.ts +16 -0
  115. package/types/server/cache-vary.d.ts +30 -0
  116. package/types/server/cloudflare.d.ts +163 -0
  117. package/types/server/create-app.d.ts +25 -0
  118. package/types/server/data-cache.d.ts +116 -0
  119. package/types/server/dev/devtools.d.ts +44 -0
  120. package/types/server/dev/report.d.ts +229 -0
  121. package/types/server/dev/socket.d.ts +17 -0
  122. package/types/server/dev/version-check.d.mts +15 -0
  123. package/types/server/ejs-adapter.d.ts +11 -0
  124. package/types/server/head-hints.d.ts +40 -0
  125. package/types/server/html-cache.d.ts +207 -0
  126. package/types/server/image-optimizer.d.ts +68 -0
  127. package/types/server/logs/access-middleware.d.ts +7 -0
  128. package/types/server/logs/file-sink.d.ts +17 -0
  129. package/types/server/logs/pipeline.d.ts +37 -0
  130. package/types/server/logs/s3-put.d.ts +85 -0
  131. package/types/server/logs/s3-sink.d.ts +26 -0
  132. package/types/server/metadata.d.ts +38 -0
  133. package/types/server/middleware/compression.d.ts +17 -0
  134. package/types/server/middleware/csrf.d.ts +4 -0
  135. package/types/server/middleware/dev-gate.d.ts +2 -0
  136. package/types/server/middleware/headers.d.ts +2 -0
  137. package/types/server/middleware/redirects.d.ts +2 -0
  138. package/types/server/middleware/robots-txt.d.ts +33 -0
  139. package/types/server/middleware/static-precompressed.d.ts +5 -0
  140. package/types/server/middleware/trailing-slash.d.ts +11 -0
  141. package/types/server/middleware/upstream-proxy.d.ts +21 -0
  142. package/types/server/og-image.d.ts +149 -0
  143. package/types/server/port-guard.d.ts +50 -0
  144. package/types/server/prewarm.d.ts +131 -0
  145. package/types/server/redis.d.ts +163 -0
  146. package/types/server/render.d.ts +101 -0
  147. package/types/server/router.d.ts +5 -0
  148. package/types/server/status-page.d.ts +24 -0
  149. package/types/server/upstream-limiter.d.ts +123 -0
  150. package/types/server/upstream-tracking.d.ts +42 -0
  151. package/types/shared/cookie-domain.d.ts +29 -0
  152. package/types/templates/layout.render.d.ts +7 -0
  153. package/types/version.d.mts +10 -0
  154. package/types/views/components/loader.d.ts +5 -0
  155. package/types/views/helpers/html.d.ts +39 -0
  156. 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;