@withl5e/l5e 0.3.3-alpha.4 → 1.0.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.
Files changed (71) hide show
  1. package/README.md +1 -1
  2. package/dist/action.js +10 -9
  3. package/dist/action.js.map +1 -1
  4. package/dist/defineMiddleware-D017PWDc.js +8 -0
  5. package/dist/defineMiddleware-D017PWDc.js.map +1 -0
  6. package/dist/entry-server.js +161 -176
  7. package/dist/entry-server.js.map +1 -1
  8. package/dist/exceptions-D4OdiQjY.js +30 -0
  9. package/dist/exceptions-D4OdiQjY.js.map +1 -0
  10. package/dist/generateMetadata-DcdY-XC1.js +303 -0
  11. package/dist/generateMetadata-DcdY-XC1.js.map +1 -0
  12. package/dist/global-style-BhiGjxVU.js +21 -0
  13. package/dist/global-style-BhiGjxVU.js.map +1 -0
  14. package/dist/i18n.js +8 -11
  15. package/dist/i18n.js.map +1 -1
  16. package/dist/index.js +9 -55
  17. package/dist/island/client.js +2 -5
  18. package/dist/island/runtime.js +90 -107
  19. package/dist/island/runtime.js.map +1 -1
  20. package/dist/island.js +38 -56
  21. package/dist/island.js.map +1 -1
  22. package/dist/jsx-runtime-CI0Jmr-C.js +275 -0
  23. package/dist/jsx-runtime-CI0Jmr-C.js.map +1 -0
  24. package/dist/jsx-runtime.js +2 -31
  25. package/dist/middleware-CnDqZobD.js +217 -0
  26. package/dist/middleware-CnDqZobD.js.map +1 -0
  27. package/dist/middleware.js +3 -8
  28. package/dist/render-hUQUreah.js +152 -0
  29. package/dist/render-hUQUreah.js.map +1 -0
  30. package/dist/rolldown-runtime-B0aSnxlc.js +20 -0
  31. package/dist/router.js +72 -68
  32. package/dist/router.js.map +1 -1
  33. package/dist/seo.js +3 -7
  34. package/dist/server-5BEwGAL4.js +461 -0
  35. package/dist/server-5BEwGAL4.js.map +1 -0
  36. package/dist/server.js +2 -515
  37. package/dist/strategy-registry-wmHnsHQb.js +9 -0
  38. package/dist/strategy-registry-wmHnsHQb.js.map +1 -0
  39. package/dist/swap/server.js +11 -14
  40. package/dist/swap/server.js.map +1 -1
  41. package/dist/swap.js +109 -116
  42. package/dist/swap.js.map +1 -1
  43. package/dist/tooltip.js +145 -141
  44. package/dist/tooltip.js.map +1 -1
  45. package/dist/vite-plugin.js +315 -372
  46. package/dist/vite-plugin.js.map +1 -1
  47. package/package.json +8 -8
  48. package/src/core/bundler.ts +41 -25
  49. package/src/core/vite-plugin.ts +14 -15
  50. package/dist/client-D67hK4Yy.js +0 -9
  51. package/dist/client-D67hK4Yy.js.map +0 -1
  52. package/dist/defineMiddleware-VdHQuiUc.js +0 -7
  53. package/dist/defineMiddleware-VdHQuiUc.js.map +0 -1
  54. package/dist/exceptions-CHPz01DJ.js +0 -39
  55. package/dist/exceptions-CHPz01DJ.js.map +0 -1
  56. package/dist/generateMetadata-Cn8BIxq6.js +0 -144
  57. package/dist/generateMetadata-Cn8BIxq6.js.map +0 -1
  58. package/dist/global-style-DFvaBcuR.js +0 -27
  59. package/dist/global-style-DFvaBcuR.js.map +0 -1
  60. package/dist/index-CybB8Tdk.js +0 -315
  61. package/dist/index-CybB8Tdk.js.map +0 -1
  62. package/dist/index.js.map +0 -1
  63. package/dist/island/client.js.map +0 -1
  64. package/dist/jsx-runtime-DqAp8xlt.js +0 -296
  65. package/dist/jsx-runtime-DqAp8xlt.js.map +0 -1
  66. package/dist/jsx-runtime.js.map +0 -1
  67. package/dist/middleware.js.map +0 -1
  68. package/dist/render-CRag-5V7.js +0 -202
  69. package/dist/render-CRag-5V7.js.map +0 -1
  70. package/dist/seo.js.map +0 -1
  71. package/dist/server.js.map +0 -1
@@ -0,0 +1,303 @@
1
+ import { E as e, O as t, k as n, n as r, t as i, x as a } from "./jsx-runtime-CI0Jmr-C.js";
2
+ import { Fragment as o, jsxFactory as s } from "@withl5e/l5e/jsx-runtime";
3
+ //#region src/seo/generateMetadata.tsx
4
+ function c({ metadata: c }) {
5
+ let { request: l } = e(), u = a(), d = c ? t(u, c) : u;
6
+ if (!d) return null;
7
+ let f = () => d.title ? typeof d.title == "string" ? d.title : d.title.default : null, p = () => {
8
+ if (Object.keys(l.query || {}).filter((e) => typeof d.robots == "string" ? !1 : Array.isArray(d.robots?.allowQueryNames) ? !d.robots.allowQueryNames.includes(e) : e !== d.robots?.allowQueryNames).length > 0) return "noindex, follow";
9
+ if (!d.robots) return null;
10
+ if (typeof d.robots == "string") return d.robots;
11
+ let e = [];
12
+ return d.robots.index === !1 ? e.push("noindex") : d.robots.index === !0 && e.push("index"), d.robots.follow === !1 ? e.push("nofollow") : d.robots.follow === !0 && e.push("follow"), d.robots.noarchive && e.push("noarchive"), d.robots.nosnippet && e.push("nosnippet"), d.robots.noimageindex && e.push("noimageindex"), d.robots.nocache && e.push("nocache"), e.length > 0 ? e.join(", ") : null;
13
+ }, m = () => {
14
+ if (!d.viewport) return null;
15
+ if (typeof d.viewport == "string") return d.viewport;
16
+ let e = [];
17
+ return d.viewport.width && e.push(`width=${d.viewport.width}`), d.viewport.height && e.push(`height=${d.viewport.height}`), d.viewport.initialScale && e.push(`initial-scale=${d.viewport.initialScale}`), d.viewport.maximumScale && e.push(`maximum-scale=${d.viewport.maximumScale}`), d.viewport.minimumScale && e.push(`minimum-scale=${d.viewport.minimumScale}`), d.viewport.userScalable !== void 0 && e.push(`user-scalable=${d.viewport.userScalable ? "yes" : "no"}`), e.length > 0 ? e.join(", ") : null;
18
+ }, h = () => d.keywords ? Array.isArray(d.keywords) ? d.keywords.join(", ") : d.keywords : null, g = () => d.author ? typeof d.author == "string" ? [{ name: d.author }] : Array.isArray(d.author) ? d.author : [d.author] : [], _ = () => {
19
+ if (!d.formatDetection) return null;
20
+ let e = [];
21
+ return d.formatDetection.telephone === !1 && e.push("telephone=no"), d.formatDetection.date === !1 && e.push("date=no"), d.formatDetection.address === !1 && e.push("address=no"), d.formatDetection.email === !1 && e.push("email=no"), e.length > 0 ? e.join(", ") : null;
22
+ }, v = () => d.openGraph?.images ? (Array.isArray(d.openGraph.images) ? d.openGraph.images : [d.openGraph.images]).map((e) => typeof e == "string" ? { url: e } : e) : [], y = () => d.twitter?.images ? (Array.isArray(d.twitter.images) ? d.twitter.images : [d.twitter.images]).map((e) => typeof e == "string" ? { url: e } : e) : [], b = () => d.icons ? {
23
+ icon: d.icons.icon ? Array.isArray(d.icons.icon) ? d.icons.icon : [d.icons.icon] : [],
24
+ apple: d.icons.apple ? Array.isArray(d.icons.apple) ? d.icons.apple : [d.icons.apple] : [],
25
+ shortcut: d.icons.shortcut || null,
26
+ other: d.icons.other || []
27
+ } : {
28
+ icon: [],
29
+ apple: [],
30
+ shortcut: null,
31
+ other: []
32
+ }, x = f(), S = p(), C = m(), w = h(), T = g(), E = _(), D = v(), O = y(), k = b(), A = Array.isArray(d.themeColor) ? d.themeColor : d.themeColor ? [d.themeColor] : [];
33
+ return /* @__PURE__ */ s(o, null, (d.charset || C) && /* @__PURE__ */ s(r, { priority: n.CRITICAL }, d.charset && /* @__PURE__ */ s("meta", { charset: d.charset }), C && /* @__PURE__ */ s("meta", {
34
+ name: "viewport",
35
+ content: C
36
+ })), (x || d.description || d.canonical || d.prev || d.next || d.alternateLocales) && /* @__PURE__ */ s(r, { priority: n.HIGH }, x && /* @__PURE__ */ s("title", null, x), d.description && /* @__PURE__ */ s("meta", {
37
+ name: "description",
38
+ content: d.description
39
+ }), d.canonical && /* @__PURE__ */ s("link", {
40
+ rel: "canonical",
41
+ href: d.canonical
42
+ }), d.prev && /* @__PURE__ */ s("link", {
43
+ rel: "prev",
44
+ href: d.prev
45
+ }), d.next && /* @__PURE__ */ s("link", {
46
+ rel: "next",
47
+ href: d.next
48
+ }), d.alternateLocales && Object.entries(d.alternateLocales).map(([e, t]) => /* @__PURE__ */ s("link", {
49
+ rel: "alternate",
50
+ hreflang: e,
51
+ href: t
52
+ }))), /* @__PURE__ */ s(r, { priority: n.MEDIUM }, w && /* @__PURE__ */ s("meta", {
53
+ name: "keywords",
54
+ content: w
55
+ }), S && /* @__PURE__ */ s("meta", {
56
+ name: "robots",
57
+ content: S
58
+ }), d.colorScheme && /* @__PURE__ */ s("meta", {
59
+ name: "color-scheme",
60
+ content: d.colorScheme
61
+ }), A.map((e, t) => /* @__PURE__ */ s("meta", {
62
+ name: "theme-color",
63
+ content: e
64
+ })), d.generator && /* @__PURE__ */ s("meta", {
65
+ name: "generator",
66
+ content: d.generator
67
+ }), d.creator && /* @__PURE__ */ s("meta", {
68
+ name: "creator",
69
+ content: d.creator
70
+ }), d.publisher && /* @__PURE__ */ s("meta", {
71
+ name: "publisher",
72
+ content: d.publisher
73
+ }), d.referrer && /* @__PURE__ */ s("meta", {
74
+ name: "referrer",
75
+ content: d.referrer
76
+ }), d.category && /* @__PURE__ */ s("meta", {
77
+ name: "category",
78
+ content: d.category
79
+ }), d.classification && /* @__PURE__ */ s("meta", {
80
+ name: "classification",
81
+ content: d.classification
82
+ }), E && /* @__PURE__ */ s("meta", {
83
+ name: "format-detection",
84
+ content: E
85
+ }), T.map((e, t) => /* @__PURE__ */ s(i, null, /* @__PURE__ */ s("meta", {
86
+ name: "author",
87
+ content: e.name
88
+ }), e.url && /* @__PURE__ */ s("link", {
89
+ rel: "author",
90
+ href: e.url
91
+ }))), k.icon.map((e, t) => /* @__PURE__ */ s("link", {
92
+ rel: "icon",
93
+ href: e
94
+ })), k.shortcut && /* @__PURE__ */ s("link", {
95
+ rel: "shortcut icon",
96
+ href: k.shortcut
97
+ }), k.apple.map((e, t) => /* @__PURE__ */ s("link", {
98
+ rel: "apple-touch-icon",
99
+ href: e
100
+ })), k.other.map((e, t) => /* @__PURE__ */ s("link", {
101
+ rel: e.rel || "icon",
102
+ href: e.url,
103
+ ...e.sizes && { sizes: e.sizes },
104
+ ...e.type && { type: e.type }
105
+ })), d.manifest && /* @__PURE__ */ s("link", {
106
+ rel: "manifest",
107
+ href: d.manifest
108
+ }), d.feed && /* @__PURE__ */ s("link", {
109
+ rel: "alternate",
110
+ type: "application/rss+xml",
111
+ href: d.feed
112
+ }), d.verification?.google && /* @__PURE__ */ s("meta", {
113
+ name: "google-site-verification",
114
+ content: d.verification.google
115
+ }), d.verification?.yahoo && /* @__PURE__ */ s("meta", {
116
+ name: "y_key",
117
+ content: d.verification.yahoo
118
+ }), d.verification?.yandex && /* @__PURE__ */ s("meta", {
119
+ name: "yandex-verification",
120
+ content: d.verification.yandex
121
+ }), d.verification?.me && (Array.isArray(d.verification.me) ? d.verification.me.map((e, t) => /* @__PURE__ */ s("link", {
122
+ rel: "me",
123
+ href: e
124
+ })) : /* @__PURE__ */ s("link", {
125
+ rel: "me",
126
+ href: d.verification.me
127
+ })), d.verification?.other && Object.entries(d.verification.other).map(([e, t]) => Array.isArray(t) ? t.map((t, n) => /* @__PURE__ */ s("meta", {
128
+ name: e,
129
+ content: t
130
+ })) : /* @__PURE__ */ s("meta", {
131
+ name: e,
132
+ content: t
133
+ })), d.appLinks && /* @__PURE__ */ s(i, null, d.appLinks.ios?.url && /* @__PURE__ */ s("meta", {
134
+ property: "al:ios:url",
135
+ content: d.appLinks.ios.url
136
+ }), d.appLinks.ios?.app_store_id && /* @__PURE__ */ s("meta", {
137
+ property: "al:ios:app_store_id",
138
+ content: d.appLinks.ios.app_store_id
139
+ }), d.appLinks.ios?.app_name && /* @__PURE__ */ s("meta", {
140
+ property: "al:ios:app_name",
141
+ content: d.appLinks.ios.app_name
142
+ }), d.appLinks.android?.package && /* @__PURE__ */ s("meta", {
143
+ property: "al:android:package",
144
+ content: d.appLinks.android.package
145
+ }), d.appLinks.android?.app_name && /* @__PURE__ */ s("meta", {
146
+ property: "al:android:app_name",
147
+ content: d.appLinks.android.app_name
148
+ }), d.appLinks.android?.url && /* @__PURE__ */ s("meta", {
149
+ property: "al:android:url",
150
+ content: d.appLinks.android.url
151
+ }), d.appLinks.web?.url && /* @__PURE__ */ s("meta", {
152
+ property: "al:web:url",
153
+ content: d.appLinks.web.url
154
+ }), d.appLinks.web?.should_fallback !== void 0 && /* @__PURE__ */ s("meta", {
155
+ property: "al:web:should_fallback",
156
+ content: String(d.appLinks.web.should_fallback)
157
+ })), d.other && Object.entries(d.other).map(([e, t]) => Array.isArray(t) ? t.map((t, n) => /* @__PURE__ */ s("meta", {
158
+ name: e,
159
+ content: String(t)
160
+ })) : /* @__PURE__ */ s("meta", {
161
+ name: e,
162
+ content: String(t)
163
+ }))), (d.openGraph || d.twitter) && /* @__PURE__ */ s(r, { priority: n.SEO }, d.openGraph && /* @__PURE__ */ s(i, null, d.openGraph.title && /* @__PURE__ */ s("meta", {
164
+ property: "og:title",
165
+ content: d.openGraph.title
166
+ }), d.openGraph.description && /* @__PURE__ */ s("meta", {
167
+ property: "og:description",
168
+ content: d.openGraph.description
169
+ }), d.openGraph.type && /* @__PURE__ */ s("meta", {
170
+ property: "og:type",
171
+ content: d.openGraph.type
172
+ }), d.openGraph.url && /* @__PURE__ */ s("meta", {
173
+ property: "og:url",
174
+ content: d.openGraph.url
175
+ }), d.openGraph.siteName && /* @__PURE__ */ s("meta", {
176
+ property: "og:site_name",
177
+ content: d.openGraph.siteName
178
+ }), d.openGraph.locale && /* @__PURE__ */ s("meta", {
179
+ property: "og:locale",
180
+ content: d.openGraph.locale
181
+ }), d.openGraph.alternateLocale && (Array.isArray(d.openGraph.alternateLocale) ? d.openGraph.alternateLocale.map((e, t) => /* @__PURE__ */ s("meta", {
182
+ property: "og:locale:alternate",
183
+ content: e
184
+ })) : /* @__PURE__ */ s("meta", {
185
+ property: "og:locale:alternate",
186
+ content: d.openGraph.alternateLocale
187
+ })), d.openGraph.determiner && /* @__PURE__ */ s("meta", {
188
+ property: "og:determiner",
189
+ content: d.openGraph.determiner
190
+ }), D.map((e, t) => /* @__PURE__ */ s(i, null, /* @__PURE__ */ s("meta", {
191
+ property: "og:image",
192
+ content: e.url
193
+ }), e.secureUrl && /* @__PURE__ */ s("meta", {
194
+ property: "og:image:secure_url",
195
+ content: e.secureUrl
196
+ }), e.alt && /* @__PURE__ */ s("meta", {
197
+ property: "og:image:alt",
198
+ content: e.alt
199
+ }), e.type && /* @__PURE__ */ s("meta", {
200
+ property: "og:image:type",
201
+ content: e.type
202
+ }), e.width && /* @__PURE__ */ s("meta", {
203
+ property: "og:image:width",
204
+ content: String(e.width)
205
+ }), e.height && /* @__PURE__ */ s("meta", {
206
+ property: "og:image:height",
207
+ content: String(e.height)
208
+ }))), d.openGraph.publishedTime && /* @__PURE__ */ s("meta", {
209
+ property: "article:published_time",
210
+ content: d.openGraph.publishedTime
211
+ }), d.openGraph.modifiedTime && /* @__PURE__ */ s("meta", {
212
+ property: "article:modified_time",
213
+ content: d.openGraph.modifiedTime
214
+ }), d.openGraph.expirationTime && /* @__PURE__ */ s("meta", {
215
+ property: "article:expiration_time",
216
+ content: d.openGraph.expirationTime
217
+ }), d.openGraph.authors && (Array.isArray(d.openGraph.authors) ? d.openGraph.authors.map((e, t) => /* @__PURE__ */ s("meta", {
218
+ property: "article:author",
219
+ content: e
220
+ })) : /* @__PURE__ */ s("meta", {
221
+ property: "article:author",
222
+ content: d.openGraph.authors
223
+ })), d.openGraph.section && /* @__PURE__ */ s("meta", {
224
+ property: "article:section",
225
+ content: d.openGraph.section
226
+ }), d.openGraph.tags && (Array.isArray(d.openGraph.tags) ? d.openGraph.tags.map((e, t) => /* @__PURE__ */ s("meta", {
227
+ property: "article:tag",
228
+ content: e
229
+ })) : /* @__PURE__ */ s("meta", {
230
+ property: "article:tag",
231
+ content: d.openGraph.tags
232
+ })), d.openGraph.isbn && /* @__PURE__ */ s("meta", {
233
+ property: "book:isbn",
234
+ content: d.openGraph.isbn
235
+ }), d.openGraph.releaseDate && /* @__PURE__ */ s("meta", {
236
+ property: "book:release_date",
237
+ content: d.openGraph.releaseDate
238
+ }), d.openGraph.firstName && /* @__PURE__ */ s("meta", {
239
+ property: "profile:first_name",
240
+ content: d.openGraph.firstName
241
+ }), d.openGraph.lastName && /* @__PURE__ */ s("meta", {
242
+ property: "profile:last_name",
243
+ content: d.openGraph.lastName
244
+ }), d.openGraph.username && /* @__PURE__ */ s("meta", {
245
+ property: "profile:username",
246
+ content: d.openGraph.username
247
+ }), d.openGraph.gender && /* @__PURE__ */ s("meta", {
248
+ property: "profile:gender",
249
+ content: d.openGraph.gender
250
+ })), d.twitter && /* @__PURE__ */ s(i, null, d.twitter.card && /* @__PURE__ */ s("meta", {
251
+ name: "twitter:card",
252
+ content: d.twitter.card
253
+ }), d.twitter.site && /* @__PURE__ */ s("meta", {
254
+ name: "twitter:site",
255
+ content: d.twitter.site
256
+ }), d.twitter.siteId && /* @__PURE__ */ s("meta", {
257
+ name: "twitter:site:id",
258
+ content: d.twitter.siteId
259
+ }), d.twitter.creator && /* @__PURE__ */ s("meta", {
260
+ name: "twitter:creator",
261
+ content: d.twitter.creator
262
+ }), d.twitter.creatorId && /* @__PURE__ */ s("meta", {
263
+ name: "twitter:creator:id",
264
+ content: d.twitter.creatorId
265
+ }), d.twitter.title && /* @__PURE__ */ s("meta", {
266
+ name: "twitter:title",
267
+ content: d.twitter.title
268
+ }), d.twitter.description && /* @__PURE__ */ s("meta", {
269
+ name: "twitter:description",
270
+ content: d.twitter.description
271
+ }), O.map((e, t) => /* @__PURE__ */ s(i, null, /* @__PURE__ */ s("meta", {
272
+ name: "twitter:image",
273
+ content: e.url
274
+ }), e.alt && /* @__PURE__ */ s("meta", {
275
+ name: "twitter:image:alt",
276
+ content: e.alt
277
+ }))), d.twitter.app && /* @__PURE__ */ s(i, null, d.twitter.app.name && /* @__PURE__ */ s("meta", {
278
+ name: "twitter:app:name",
279
+ content: d.twitter.app.name
280
+ }), d.twitter.app.id.iphone && /* @__PURE__ */ s("meta", {
281
+ name: "twitter:app:id:iphone",
282
+ content: d.twitter.app.id.iphone
283
+ }), d.twitter.app.id.ipad && /* @__PURE__ */ s("meta", {
284
+ name: "twitter:app:id:ipad",
285
+ content: d.twitter.app.id.ipad
286
+ }), d.twitter.app.id.googleplay && /* @__PURE__ */ s("meta", {
287
+ name: "twitter:app:id:googleplay",
288
+ content: d.twitter.app.id.googleplay
289
+ }), d.twitter.app.url?.iphone && /* @__PURE__ */ s("meta", {
290
+ name: "twitter:app:url:iphone",
291
+ content: d.twitter.app.url.iphone
292
+ }), d.twitter.app.url?.ipad && /* @__PURE__ */ s("meta", {
293
+ name: "twitter:app:url:ipad",
294
+ content: d.twitter.app.url.ipad
295
+ }), d.twitter.app.url?.googleplay && /* @__PURE__ */ s("meta", {
296
+ name: "twitter:app:url:googleplay",
297
+ content: d.twitter.app.url.googleplay
298
+ })))));
299
+ }
300
+ //#endregion
301
+ export { c as t };
302
+
303
+ //# sourceMappingURL=generateMetadata-DcdY-XC1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateMetadata-DcdY-XC1.js","names":[],"sources":["../src/seo/generateMetadata.tsx"],"sourcesContent":["/// <reference types=\"../core/jsx-types\" />\nimport { HEAD_PRIORITY } from '../core/head-priority';\nimport { Fragment, Head, resolveMetadata, useRequest } from '../core/jsx-runtime';\n\nimport { mergeMetadata } from './mergeMetadata';\nimport type { Metadata } from './types';\n\n/**\n * Converts Metadata object to SEO meta tags\n * This is the core function that transforms the metadata object into actual HTML tags\n *\n * If metadata is provided, it will be merged with metadata from the stack (from global/page loaders)\n * If no metadata is provided, it will use resolved metadata from the stack\n */\nexport function MetadataRenderer({ metadata }: { metadata?: Metadata }) {\n const { request } = useRequest();\n\n // Resolve metadata from stack (hierarchical metadata from loaders)\n const stackMetadata = resolveMetadata();\n\n // Merge: stack metadata (parent) + provided metadata (child)\n // If metadata is provided, it overrides stack metadata\n // If not provided, use stack metadata only\n const resolvedMetadata = metadata ? mergeMetadata(stackMetadata, metadata) : stackMetadata;\n\n if (!resolvedMetadata) return null;\n\n // Helper to normalize title\n const getTitle = () => {\n if (!resolvedMetadata.title) return null;\n if (typeof resolvedMetadata.title === 'string') return resolvedMetadata.title;\n // Handle TemplateString\n return resolvedMetadata.title.default;\n };\n\n // Helper to normalize robots\n const getRobots = () => {\n // tránh tiêm query\n const queryNames = Object.keys(request.query || {});\n // mặc định nếu có query sẽ ép robots về noindex\n // tuy nhiên 1 số trường hợp đặc biệt ví dụ như page=1 có chủ đích `allowQueryNames` sẽ bỏ qua nguyên tắc này\n\n const noindex =\n queryNames.filter((name) => {\n if (typeof resolvedMetadata.robots === 'string') return false;\n if (Array.isArray(resolvedMetadata.robots?.allowQueryNames))\n return !resolvedMetadata.robots.allowQueryNames.includes(name);\n return name !== resolvedMetadata.robots?.allowQueryNames;\n }).length > 0;\n\n if (noindex) return 'noindex, follow';\n\n if (!resolvedMetadata.robots) return null;\n if (typeof resolvedMetadata.robots === 'string') return resolvedMetadata.robots;\n\n const parts: string[] = [];\n if (resolvedMetadata.robots.index === false) parts.push('noindex');\n else if (resolvedMetadata.robots.index === true) parts.push('index');\n\n if (resolvedMetadata.robots.follow === false) parts.push('nofollow');\n else if (resolvedMetadata.robots.follow === true) parts.push('follow');\n\n if (resolvedMetadata.robots.noarchive) parts.push('noarchive');\n if (resolvedMetadata.robots.nosnippet) parts.push('nosnippet');\n if (resolvedMetadata.robots.noimageindex) parts.push('noimageindex');\n if (resolvedMetadata.robots.nocache) parts.push('nocache');\n\n return parts.length > 0 ? parts.join(', ') : null;\n };\n\n // Helper to normalize viewport\n const getViewport = () => {\n if (!resolvedMetadata.viewport) return null;\n if (typeof resolvedMetadata.viewport === 'string') return resolvedMetadata.viewport;\n\n const parts: string[] = [];\n if (resolvedMetadata.viewport.width) parts.push(`width=${resolvedMetadata.viewport.width}`);\n if (resolvedMetadata.viewport.height) parts.push(`height=${resolvedMetadata.viewport.height}`);\n if (resolvedMetadata.viewport.initialScale)\n parts.push(`initial-scale=${resolvedMetadata.viewport.initialScale}`);\n if (resolvedMetadata.viewport.maximumScale)\n parts.push(`maximum-scale=${resolvedMetadata.viewport.maximumScale}`);\n if (resolvedMetadata.viewport.minimumScale)\n parts.push(`minimum-scale=${resolvedMetadata.viewport.minimumScale}`);\n if (resolvedMetadata.viewport.userScalable !== undefined) {\n parts.push(`user-scalable=${resolvedMetadata.viewport.userScalable ? 'yes' : 'no'}`);\n }\n\n return parts.length > 0 ? parts.join(', ') : null;\n };\n\n // Helper to normalize keywords\n const getKeywords = () => {\n if (!resolvedMetadata.keywords) return null;\n if (Array.isArray(resolvedMetadata.keywords)) return resolvedMetadata.keywords.join(', ');\n return resolvedMetadata.keywords;\n };\n\n // Helper to normalize authors\n const getAuthors = () => {\n if (!resolvedMetadata.author) return [];\n if (typeof resolvedMetadata.author === 'string') return [{ name: resolvedMetadata.author }];\n if (Array.isArray(resolvedMetadata.author)) return resolvedMetadata.author;\n return [resolvedMetadata.author];\n };\n\n // Helper to normalize format detection\n const getFormatDetection = () => {\n if (!resolvedMetadata.formatDetection) return null;\n\n const parts: string[] = [];\n if (resolvedMetadata.formatDetection.telephone === false) parts.push('telephone=no');\n if (resolvedMetadata.formatDetection.date === false) parts.push('date=no');\n if (resolvedMetadata.formatDetection.address === false) parts.push('address=no');\n if (resolvedMetadata.formatDetection.email === false) parts.push('email=no');\n\n return parts.length > 0 ? parts.join(', ') : null;\n };\n\n // Helper to normalize Open Graph images\n const getOgImages = () => {\n if (!resolvedMetadata.openGraph?.images) return [];\n\n const images = Array.isArray(resolvedMetadata.openGraph.images)\n ? resolvedMetadata.openGraph.images\n : [resolvedMetadata.openGraph.images];\n\n return images.map((img) => {\n if (typeof img === 'string') return { url: img };\n return img;\n });\n };\n\n // Helper to normalize Twitter images\n const getTwitterImages = () => {\n if (!resolvedMetadata.twitter?.images) return [];\n\n const images = Array.isArray(resolvedMetadata.twitter.images)\n ? resolvedMetadata.twitter.images\n : [resolvedMetadata.twitter.images];\n\n return images.map((img) => {\n if (typeof img === 'string') return { url: img };\n return img;\n });\n };\n\n // Helper to get icon URLs\n const getIcons = () => {\n if (!resolvedMetadata.icons) return { icon: [], apple: [], shortcut: null, other: [] };\n\n const iconUrls = resolvedMetadata.icons.icon\n ? Array.isArray(resolvedMetadata.icons.icon)\n ? resolvedMetadata.icons.icon\n : [resolvedMetadata.icons.icon]\n : [];\n\n const appleUrls = resolvedMetadata.icons.apple\n ? Array.isArray(resolvedMetadata.icons.apple)\n ? resolvedMetadata.icons.apple\n : [resolvedMetadata.icons.apple]\n : [];\n\n return {\n icon: iconUrls,\n apple: appleUrls,\n shortcut: resolvedMetadata.icons.shortcut || null,\n other: resolvedMetadata.icons.other || [],\n };\n };\n\n const title = getTitle();\n const robots = getRobots();\n const viewport = getViewport();\n const keywords = getKeywords();\n const authors = getAuthors();\n const formatDetection = getFormatDetection();\n const ogImages = getOgImages();\n const twitterImages = getTwitterImages();\n const icons = getIcons();\n const themeColors = Array.isArray(resolvedMetadata.themeColor)\n ? resolvedMetadata.themeColor\n : resolvedMetadata.themeColor\n ? [resolvedMetadata.themeColor]\n : [];\n\n return (\n <>\n {/* Critical: charset, viewport - must be first */}\n {(resolvedMetadata.charset || viewport) && (\n <Head priority={HEAD_PRIORITY.CRITICAL}>\n {resolvedMetadata.charset && <meta charset={resolvedMetadata.charset} />}\n {viewport && <meta name=\"viewport\" content={viewport} />}\n </Head>\n )}\n\n {/* High priority: title, description, canonical, prev/next, hreflang alternates */}\n {(title ||\n resolvedMetadata.description ||\n resolvedMetadata.canonical ||\n resolvedMetadata.prev ||\n resolvedMetadata.next ||\n resolvedMetadata.alternateLocales) && (\n <Head priority={HEAD_PRIORITY.HIGH}>\n {title && <title>{title}</title>}\n {resolvedMetadata.description && (\n <meta name=\"description\" content={resolvedMetadata.description} />\n )}\n {resolvedMetadata.canonical && <link rel=\"canonical\" href={resolvedMetadata.canonical} />}\n {resolvedMetadata.prev && <link rel=\"prev\" href={resolvedMetadata.prev} />}\n {resolvedMetadata.next && <link rel=\"next\" href={resolvedMetadata.next} />}\n {resolvedMetadata.alternateLocales &&\n Object.entries(resolvedMetadata.alternateLocales).map(([hreflang, href]) => (\n <link rel=\"alternate\" hreflang={hreflang} href={href} />\n ))}\n </Head>\n )}\n\n {/* Medium priority: meta tags, robots */}\n <Head priority={HEAD_PRIORITY.MEDIUM}>\n {keywords && <meta name=\"keywords\" content={keywords} />}\n {robots && <meta name=\"robots\" content={robots} />}\n {resolvedMetadata.colorScheme && (\n <meta name=\"color-scheme\" content={resolvedMetadata.colorScheme} />\n )}\n\n {/* Theme colors */}\n {themeColors.map((color, index) => (\n <meta name=\"theme-color\" content={color} />\n ))}\n\n {resolvedMetadata.generator && (\n <meta name=\"generator\" content={resolvedMetadata.generator} />\n )}\n {resolvedMetadata.creator && <meta name=\"creator\" content={resolvedMetadata.creator} />}\n {resolvedMetadata.publisher && (\n <meta name=\"publisher\" content={resolvedMetadata.publisher} />\n )}\n {resolvedMetadata.referrer && <meta name=\"referrer\" content={resolvedMetadata.referrer} />}\n {resolvedMetadata.category && <meta name=\"category\" content={resolvedMetadata.category} />}\n {resolvedMetadata.classification && (\n <meta name=\"classification\" content={resolvedMetadata.classification} />\n )}\n {formatDetection && <meta name=\"format-detection\" content={formatDetection} />}\n\n {/* Authors */}\n {authors.map((author, index) => (\n <Fragment>\n <meta name=\"author\" content={author.name} />\n {author.url && <link rel=\"author\" href={author.url} />}\n </Fragment>\n ))}\n\n {/* Icons */}\n {icons.icon.map((url, index) => (\n <link rel=\"icon\" href={url} />\n ))}\n {icons.shortcut && <link rel=\"shortcut icon\" href={icons.shortcut} />}\n {icons.apple.map((url, index) => (\n <link rel=\"apple-touch-icon\" href={url} />\n ))}\n {icons.other.map((icon, index) => (\n <link\n rel={icon.rel || 'icon'}\n href={icon.url}\n {...(icon.sizes && { sizes: icon.sizes })}\n {...(icon.type && { type: icon.type })}\n />\n ))}\n\n {/* Manifest */}\n {resolvedMetadata.manifest && <link rel=\"manifest\" href={resolvedMetadata.manifest} />}\n\n {/* Feeds */}\n {resolvedMetadata.feed && (\n <link rel=\"alternate\" type=\"application/rss+xml\" href={resolvedMetadata.feed} />\n )}\n\n {/* Verification */}\n {resolvedMetadata.verification?.google && (\n <meta name=\"google-site-verification\" content={resolvedMetadata.verification.google} />\n )}\n {resolvedMetadata.verification?.yahoo && (\n <meta name=\"y_key\" content={resolvedMetadata.verification.yahoo} />\n )}\n {resolvedMetadata.verification?.yandex && (\n <meta name=\"yandex-verification\" content={resolvedMetadata.verification.yandex} />\n )}\n {resolvedMetadata.verification?.me &&\n (Array.isArray(resolvedMetadata.verification.me) ? (\n resolvedMetadata.verification.me.map((url, index) => <link rel=\"me\" href={url} />)\n ) : (\n <link rel=\"me\" href={resolvedMetadata.verification.me} />\n ))}\n {resolvedMetadata.verification?.other &&\n Object.entries(resolvedMetadata.verification.other).map(([key, value]) =>\n Array.isArray(value) ? (\n value.map((v, index) => <meta name={key} content={v} />)\n ) : (\n <meta name={key} content={value} />\n ),\n )}\n\n {/* App Links */}\n {resolvedMetadata.appLinks && (\n <Fragment>\n {resolvedMetadata.appLinks.ios?.url && (\n <meta property=\"al:ios:url\" content={resolvedMetadata.appLinks.ios.url} />\n )}\n {resolvedMetadata.appLinks.ios?.app_store_id && (\n <meta\n property=\"al:ios:app_store_id\"\n content={resolvedMetadata.appLinks.ios.app_store_id}\n />\n )}\n {resolvedMetadata.appLinks.ios?.app_name && (\n <meta property=\"al:ios:app_name\" content={resolvedMetadata.appLinks.ios.app_name} />\n )}\n {resolvedMetadata.appLinks.android?.package && (\n <meta\n property=\"al:android:package\"\n content={resolvedMetadata.appLinks.android.package}\n />\n )}\n {resolvedMetadata.appLinks.android?.app_name && (\n <meta\n property=\"al:android:app_name\"\n content={resolvedMetadata.appLinks.android.app_name}\n />\n )}\n {resolvedMetadata.appLinks.android?.url && (\n <meta property=\"al:android:url\" content={resolvedMetadata.appLinks.android.url} />\n )}\n {resolvedMetadata.appLinks.web?.url && (\n <meta property=\"al:web:url\" content={resolvedMetadata.appLinks.web.url} />\n )}\n {resolvedMetadata.appLinks.web?.should_fallback !== undefined && (\n <meta\n property=\"al:web:should_fallback\"\n content={String(resolvedMetadata.appLinks.web.should_fallback)}\n />\n )}\n </Fragment>\n )}\n\n {/* Additional meta tags */}\n {resolvedMetadata.other &&\n Object.entries(resolvedMetadata.other).map(([key, value]) =>\n Array.isArray(value) ? (\n value.map((v, index) => <meta name={key} content={String(v)} />)\n ) : (\n <meta name={key} content={String(value)} />\n ),\n )}\n </Head>\n\n {/* SEO: OpenGraph, Twitter - lower priority */}\n {(resolvedMetadata.openGraph || resolvedMetadata.twitter) && (\n <Head priority={HEAD_PRIORITY.SEO}>\n {/* Open Graph */}\n {resolvedMetadata.openGraph && (\n <Fragment>\n {resolvedMetadata.openGraph.title && (\n <meta property=\"og:title\" content={resolvedMetadata.openGraph.title} />\n )}\n {resolvedMetadata.openGraph.description && (\n <meta property=\"og:description\" content={resolvedMetadata.openGraph.description} />\n )}\n {resolvedMetadata.openGraph.type && (\n <meta property=\"og:type\" content={resolvedMetadata.openGraph.type} />\n )}\n {resolvedMetadata.openGraph.url && (\n <meta property=\"og:url\" content={resolvedMetadata.openGraph.url} />\n )}\n {resolvedMetadata.openGraph.siteName && (\n <meta property=\"og:site_name\" content={resolvedMetadata.openGraph.siteName} />\n )}\n {resolvedMetadata.openGraph.locale && (\n <meta property=\"og:locale\" content={resolvedMetadata.openGraph.locale} />\n )}\n {resolvedMetadata.openGraph.alternateLocale &&\n (Array.isArray(resolvedMetadata.openGraph.alternateLocale) ? (\n resolvedMetadata.openGraph.alternateLocale.map((locale, index) => (\n <meta property=\"og:locale:alternate\" content={locale} />\n ))\n ) : (\n <meta\n property=\"og:locale:alternate\"\n content={resolvedMetadata.openGraph.alternateLocale}\n />\n ))}\n {resolvedMetadata.openGraph.determiner && (\n <meta property=\"og:determiner\" content={resolvedMetadata.openGraph.determiner} />\n )}\n\n {/* OG Images */}\n {ogImages.map((image, index) => (\n <Fragment>\n <meta property=\"og:image\" content={image.url} />\n {image.secureUrl && (\n <meta property=\"og:image:secure_url\" content={image.secureUrl} />\n )}\n {image.alt && <meta property=\"og:image:alt\" content={image.alt} />}\n {image.type && <meta property=\"og:image:type\" content={image.type} />}\n {image.width && <meta property=\"og:image:width\" content={String(image.width)} />}\n {image.height && (\n <meta property=\"og:image:height\" content={String(image.height)} />\n )}\n </Fragment>\n ))}\n\n {/* Article specific */}\n {resolvedMetadata.openGraph.publishedTime && (\n <meta\n property=\"article:published_time\"\n content={resolvedMetadata.openGraph.publishedTime}\n />\n )}\n {resolvedMetadata.openGraph.modifiedTime && (\n <meta\n property=\"article:modified_time\"\n content={resolvedMetadata.openGraph.modifiedTime}\n />\n )}\n {resolvedMetadata.openGraph.expirationTime && (\n <meta\n property=\"article:expiration_time\"\n content={resolvedMetadata.openGraph.expirationTime}\n />\n )}\n {resolvedMetadata.openGraph.authors &&\n (Array.isArray(resolvedMetadata.openGraph.authors) ? (\n resolvedMetadata.openGraph.authors.map((author, index) => (\n <meta property=\"article:author\" content={author} />\n ))\n ) : (\n <meta property=\"article:author\" content={resolvedMetadata.openGraph.authors} />\n ))}\n {resolvedMetadata.openGraph.section && (\n <meta property=\"article:section\" content={resolvedMetadata.openGraph.section} />\n )}\n {resolvedMetadata.openGraph.tags &&\n (Array.isArray(resolvedMetadata.openGraph.tags) ? (\n resolvedMetadata.openGraph.tags.map((tag, index) => (\n <meta property=\"article:tag\" content={tag} />\n ))\n ) : (\n <meta property=\"article:tag\" content={resolvedMetadata.openGraph.tags} />\n ))}\n\n {/* Book specific */}\n {resolvedMetadata.openGraph.isbn && (\n <meta property=\"book:isbn\" content={resolvedMetadata.openGraph.isbn} />\n )}\n {resolvedMetadata.openGraph.releaseDate && (\n <meta\n property=\"book:release_date\"\n content={resolvedMetadata.openGraph.releaseDate}\n />\n )}\n\n {/* Profile specific */}\n {resolvedMetadata.openGraph.firstName && (\n <meta\n property=\"profile:first_name\"\n content={resolvedMetadata.openGraph.firstName}\n />\n )}\n {resolvedMetadata.openGraph.lastName && (\n <meta property=\"profile:last_name\" content={resolvedMetadata.openGraph.lastName} />\n )}\n {resolvedMetadata.openGraph.username && (\n <meta property=\"profile:username\" content={resolvedMetadata.openGraph.username} />\n )}\n {resolvedMetadata.openGraph.gender && (\n <meta property=\"profile:gender\" content={resolvedMetadata.openGraph.gender} />\n )}\n </Fragment>\n )}\n\n {/* Twitter Card */}\n {resolvedMetadata.twitter && (\n <Fragment>\n {resolvedMetadata.twitter.card && (\n <meta name=\"twitter:card\" content={resolvedMetadata.twitter.card} />\n )}\n {resolvedMetadata.twitter.site && (\n <meta name=\"twitter:site\" content={resolvedMetadata.twitter.site} />\n )}\n {resolvedMetadata.twitter.siteId && (\n <meta name=\"twitter:site:id\" content={resolvedMetadata.twitter.siteId} />\n )}\n {resolvedMetadata.twitter.creator && (\n <meta name=\"twitter:creator\" content={resolvedMetadata.twitter.creator} />\n )}\n {resolvedMetadata.twitter.creatorId && (\n <meta name=\"twitter:creator:id\" content={resolvedMetadata.twitter.creatorId} />\n )}\n {resolvedMetadata.twitter.title && (\n <meta name=\"twitter:title\" content={resolvedMetadata.twitter.title} />\n )}\n {resolvedMetadata.twitter.description && (\n <meta name=\"twitter:description\" content={resolvedMetadata.twitter.description} />\n )}\n\n {/* Twitter Images */}\n {twitterImages.map((image, index) => (\n <Fragment>\n <meta name=\"twitter:image\" content={image.url} />\n {image.alt && <meta name=\"twitter:image:alt\" content={image.alt} />}\n </Fragment>\n ))}\n\n {/* Twitter App */}\n {resolvedMetadata.twitter.app && (\n <Fragment>\n {resolvedMetadata.twitter.app.name && (\n <meta name=\"twitter:app:name\" content={resolvedMetadata.twitter.app.name} />\n )}\n {resolvedMetadata.twitter.app.id.iphone && (\n <meta\n name=\"twitter:app:id:iphone\"\n content={resolvedMetadata.twitter.app.id.iphone}\n />\n )}\n {resolvedMetadata.twitter.app.id.ipad && (\n <meta\n name=\"twitter:app:id:ipad\"\n content={resolvedMetadata.twitter.app.id.ipad}\n />\n )}\n {resolvedMetadata.twitter.app.id.googleplay && (\n <meta\n name=\"twitter:app:id:googleplay\"\n content={resolvedMetadata.twitter.app.id.googleplay}\n />\n )}\n {resolvedMetadata.twitter.app.url?.iphone && (\n <meta\n name=\"twitter:app:url:iphone\"\n content={resolvedMetadata.twitter.app.url.iphone}\n />\n )}\n {resolvedMetadata.twitter.app.url?.ipad && (\n <meta\n name=\"twitter:app:url:ipad\"\n content={resolvedMetadata.twitter.app.url.ipad}\n />\n )}\n {resolvedMetadata.twitter.app.url?.googleplay && (\n <meta\n name=\"twitter:app:url:googleplay\"\n content={resolvedMetadata.twitter.app.url.googleplay}\n />\n )}\n </Fragment>\n )}\n </Fragment>\n )}\n </Head>\n )}\n </>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { join as e } from "node:path";
2
+ import { existsSync as t } from "node:fs";
3
+ //#region src/core/global-style.ts
4
+ var n = "/src/global.css", r = "src/global.css";
5
+ function i(n) {
6
+ let i = e(n, r);
7
+ return t(i) ? i : null;
8
+ }
9
+ function a(e, t) {
10
+ let n = t.replace(/^\/+/, "");
11
+ return `${e.endsWith("/") ? e : `${e}/`}${n}`;
12
+ }
13
+ function o({ root: e, manifest: t, isProduction: o, base: s }) {
14
+ if (!o) return i(e) ? a(s, n) : null;
15
+ let c = t?.[r]?.file;
16
+ return typeof c == "string" ? a(s, c) : null;
17
+ }
18
+ //#endregion
19
+ export { o as n, i as t };
20
+
21
+ //# sourceMappingURL=global-style-BhiGjxVU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-style-BhiGjxVU.js","names":[],"sources":["../src/core/global-style.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport { join } from 'node:path';\n\nexport const GLOBAL_STYLE_SOURCE = '/src/global.css';\nexport const GLOBAL_STYLE_MANIFEST_KEY = 'src/global.css';\n\nexport function findGlobalStyleInput(root: string): string | null {\n const absolutePath = join(root, GLOBAL_STYLE_MANIFEST_KEY);\n return existsSync(absolutePath) ? absolutePath : null;\n}\n\nexport function withAssetBase(base: string, assetPath: string): string {\n const cleanPath = assetPath.replace(/^\\/+/, '');\n const normalizedBase = base.endsWith('/') ? base : `${base}/`;\n return `${normalizedBase}${cleanPath}`;\n}\n\nexport function resolveGlobalStyleHref({\n root,\n manifest,\n isProduction,\n base,\n}: {\n root: string;\n manifest?: Record<string, any>;\n isProduction: boolean;\n base: string;\n}): string | null {\n if (!isProduction) {\n return findGlobalStyleInput(root) ? withAssetBase(base, GLOBAL_STYLE_SOURCE) : null;\n }\n\n const file = manifest?.[GLOBAL_STYLE_MANIFEST_KEY]?.file;\n return typeof file === 'string' ? withAssetBase(base, file) : null;\n}\n"],"mappings":";;;AAGA,IAAa,IAAsB,mBACtB,IAA4B;AAEzC,SAAgB,EAAqB,GAA6B;CAChE,IAAM,IAAe,EAAK,GAAM,CAAyB;CACzD,OAAO,EAAW,CAAY,IAAI,IAAe;AACnD;AAEA,SAAgB,EAAc,GAAc,GAA2B;CACrE,IAAM,IAAY,EAAU,QAAQ,QAAQ,EAAE;CAE9C,OAAO,GADgB,EAAK,SAAS,GAAG,IAAI,IAAO,GAAG,EAAK,KAChC;AAC7B;AAEA,SAAgB,EAAuB,EACrC,SACA,aACA,iBACA,WAMgB;CAChB,IAAI,CAAC,GACH,OAAO,EAAqB,CAAI,IAAI,EAAc,GAAM,CAAmB,IAAI;CAGjF,IAAM,IAAO,IAAW,EAA0B,EAAE;CACpD,OAAO,OAAO,KAAS,WAAW,EAAc,GAAM,CAAI,IAAI;AAChE"}
package/dist/i18n.js CHANGED
@@ -1,12 +1,9 @@
1
- import { d as a } from "./defineMiddleware-VdHQuiUc.js";
2
- function n(r, d) {
3
- return a((e, l) => r(
4
- e.request,
5
- ({ request: o, locale: t }) => (e.locals.locale = t, l(o)),
6
- d
7
- ));
1
+ import { t as e } from "./defineMiddleware-D017PWDc.js";
2
+ //#region src/i18n/middleware.ts
3
+ function t(t, n) {
4
+ return e((e, r) => t(e.request, ({ request: t, locale: n }) => (e.locals.locale = n, r(t)), n));
8
5
  }
9
- export {
10
- n as fromFetchMiddleware
11
- };
12
- //# sourceMappingURL=i18n.js.map
6
+ //#endregion
7
+ export { t as fromFetchMiddleware };
8
+
9
+ //# sourceMappingURL=i18n.js.map
package/dist/i18n.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sources":["../src/i18n/middleware.ts"],"sourcesContent":["import { defineMiddleware } from '../middleware/defineMiddleware';\nimport type { MiddlewareHandler } from '../middleware/types';\nimport type { FetchLocaleMiddleware } from './types';\n\n/**\n * Adapt a fetch-based locale middleware — e.g. Paraglide's own\n * `paraglideMiddleware` — into an l5e `MiddlewareHandler`.\n *\n * l5e doesn't ship its own locale-detection/URL-localization logic (strip\n * prefix, cookie, redirect) or its own `getLocale()`: libraries like\n * Paraglide already do both well, including an ambient `getLocale()` backed\n * by their own `AsyncLocalStorage`. This adapter is only the bridge — it\n * hands `context.request` to the library's middleware and, once resolved,\n * (1) continues the chain by calling `next(request)` *synchronously inside*\n * the library's own resolve callback, so the library's `AsyncLocalStorage`\n * scope (already wrapping that callback) naturally extends over the rest of\n * the request — loaders, route handler, every component — meaning the\n * library's own `getLocale()` just works, no bridging needed; and (2) writes\n * the resolved locale onto `context.locals.locale` too, since that's the\n * idiomatic place other l5e code (global-loader's `lang`, cache tags, ...)\n * already reads request-scoped values from — see the `locals` docs.\n *\n * @example\n * ```ts\n * // src/middleware.ts\n * import { sequence } from '@withl5e/l5e/middleware';\n * import { fromFetchMiddleware } from '@withl5e/l5e/i18n';\n * import { paraglideMiddleware } from '~/paraglide/server.js';\n *\n * export const onRequest = sequence(fromFetchMiddleware(paraglideMiddleware));\n *\n * // Anywhere in the app — loaders, components, plain utils:\n * import { getLocale } from '~/paraglide/runtime.js'; // Paraglide's own, ambient\n * ```\n */\nexport function fromFetchMiddleware<TLocale extends string = string, TOptions = unknown>(\n middleware: FetchLocaleMiddleware<TLocale, TOptions>,\n options?: TOptions,\n): MiddlewareHandler {\n return defineMiddleware((context, next) => {\n return middleware(\n context.request,\n ({ request, locale }) => {\n context.locals.locale = locale;\n return next(request);\n },\n options,\n );\n });\n}\n"],"names":["fromFetchMiddleware","middleware","options","defineMiddleware","context","next","request","locale"],"mappings":";AAmCO,SAASA,EACdC,GACAC,GACmB;AACnB,SAAOC,EAAiB,CAACC,GAASC,MACzBJ;AAAA,IACLG,EAAQ;AAAA,IACR,CAAC,EAAE,SAAAE,GAAS,QAAAC,SACVH,EAAQ,OAAO,SAASG,GACjBF,EAAKC,CAAO;AAAA,IAErBJ;AAAA,EAAA,CAEH;AACH;"}
1
+ {"version":3,"file":"i18n.js","names":[],"sources":["../src/i18n/middleware.ts"],"sourcesContent":["import { defineMiddleware } from '../middleware/defineMiddleware';\nimport type { MiddlewareHandler } from '../middleware/types';\nimport type { FetchLocaleMiddleware } from './types';\n\n/**\n * Adapt a fetch-based locale middleware — e.g. Paraglide's own\n * `paraglideMiddleware` — into an l5e `MiddlewareHandler`.\n *\n * l5e doesn't ship its own locale-detection/URL-localization logic (strip\n * prefix, cookie, redirect) or its own `getLocale()`: libraries like\n * Paraglide already do both well, including an ambient `getLocale()` backed\n * by their own `AsyncLocalStorage`. This adapter is only the bridge — it\n * hands `context.request` to the library's middleware and, once resolved,\n * (1) continues the chain by calling `next(request)` *synchronously inside*\n * the library's own resolve callback, so the library's `AsyncLocalStorage`\n * scope (already wrapping that callback) naturally extends over the rest of\n * the request — loaders, route handler, every component — meaning the\n * library's own `getLocale()` just works, no bridging needed; and (2) writes\n * the resolved locale onto `context.locals.locale` too, since that's the\n * idiomatic place other l5e code (global-loader's `lang`, cache tags, ...)\n * already reads request-scoped values from — see the `locals` docs.\n *\n * @example\n * ```ts\n * // src/middleware.ts\n * import { sequence } from '@withl5e/l5e/middleware';\n * import { fromFetchMiddleware } from '@withl5e/l5e/i18n';\n * import { paraglideMiddleware } from '~/paraglide/server.js';\n *\n * export const onRequest = sequence(fromFetchMiddleware(paraglideMiddleware));\n *\n * // Anywhere in the app — loaders, components, plain utils:\n * import { getLocale } from '~/paraglide/runtime.js'; // Paraglide's own, ambient\n * ```\n */\nexport function fromFetchMiddleware<TLocale extends string = string, TOptions = unknown>(\n middleware: FetchLocaleMiddleware<TLocale, TOptions>,\n options?: TOptions,\n): MiddlewareHandler {\n return defineMiddleware((context, next) => {\n return middleware(\n context.request,\n ({ request, locale }) => {\n context.locals.locale = locale;\n return next(request);\n },\n options,\n );\n });\n}\n"],"mappings":";;AAmCA,SAAgB,EACd,GACA,GACmB;CACnB,OAAO,GAAkB,GAAS,MACzB,EACL,EAAQ,UACP,EAAE,YAAS,iBACV,EAAQ,OAAO,SAAS,GACjB,EAAK,CAAO,IAErB,CACF,CACD;AACH"}
package/dist/index.js CHANGED
@@ -1,55 +1,9 @@
1
- import { B as a, H as r, I as t, N as n, R as o, S as d } from "./exceptions-CHPz01DJ.js";
2
- import { F as p, H as c, a as l, b as x, c as m, g, d as E, e as u, f as I, h as f, i as S, j as C, k as h, l as H, m as R, n as v, p as T, q as P, r as q, s as F, t as M, u as N, v as b, w, x as J, y as V, z as j } from "./jsx-runtime-DqAp8xlt.js";
3
- import { coreVite as z } from "./vite-plugin.js";
4
- import { c as k, s as A } from "./index-CybB8Tdk.js";
5
- import { createServer as L, startServer as O } from "./server.js";
6
- import { d as Y } from "./defineMiddleware-VdHQuiUc.js";
7
- import { e as G, a as K, r as Q, b as W } from "./render-CRag-5V7.js";
8
- import { render as Z } from "./entry-server.js";
9
- export {
10
- a as BadRequestException,
11
- p as Fragment,
12
- c as HEAD_PRIORITY,
13
- l as Head,
14
- r as HttpException,
15
- t as InternalServerErrorException,
16
- n as NotFoundException,
17
- o as RedirectException,
18
- d as ServiceUnavailableException,
19
- x as addCacheTag,
20
- m as cloneElement,
21
- z as coreVite,
22
- k as createContext,
23
- L as createServer,
24
- Y as defineMiddleware,
25
- G as escapeHTML,
26
- K as escapeProp,
27
- g as getCacheTags,
28
- E as getClientJsEntries,
29
- u as getCssEntries,
30
- I as getHeadContent,
31
- f as getIslandEntries,
32
- S as getIslandProps,
33
- C as getSchemas,
34
- h as getSsrIslands,
35
- H as isIslandPropsExternalized,
36
- R as isValidElement,
37
- v as jsxFactory,
38
- T as pushIslandProps,
39
- P as pushMetadata,
40
- q as pushSchema,
41
- F as registerIsland,
42
- M as registerSsrIsland,
43
- Z as render,
44
- Q as renderJsxToHtmlString,
45
- W as renderToRenderedNode,
46
- N as resolveMetadata,
47
- b as runInRenderContext,
48
- A as sequence,
49
- w as setViewName,
50
- O as startServer,
51
- J as useClientJs,
52
- V as useCss,
53
- j as useRequest
54
- };
55
- //# sourceMappingURL=index.js.map
1
+ import { i as e, n as t, r as n, t as r } from "./render-hUQUreah.js";
2
+ import { C as i, E as a, S as o, T as s, _ as c, a as l, b as u, c as d, d as f, f as p, g as m, h, i as g, k as _, l as v, m as y, n as b, o as x, p as S, r as C, s as w, t as T, u as E, v as D, w as O, x as k, y as A } from "./jsx-runtime-CI0Jmr-C.js";
3
+ import { a as j, i as M, n as N, o as P, r as F, t as I } from "./exceptions-D4OdiQjY.js";
4
+ import { render as L } from "./entry-server.js";
5
+ import { n as R, t as z } from "./middleware-CnDqZobD.js";
6
+ import { t as B } from "./defineMiddleware-D017PWDc.js";
7
+ import { a as V, n as H } from "./server-5BEwGAL4.js";
8
+ import { coreVite as U } from "./vite-plugin.js";
9
+ export { I as BadRequestException, T as Fragment, _ as HEAD_PRIORITY, b as Head, N as HttpException, F as InternalServerErrorException, M as NotFoundException, j as RedirectException, P as ServiceUnavailableException, C as addCacheTag, g as cloneElement, U as coreVite, z as createContext, H as createServer, B as defineMiddleware, r as escapeHTML, t as escapeProp, l as getCacheTags, x as getClientJsEntries, w as getCssEntries, d as getHeadContent, v as getIslandEntries, E as getIslandProps, f as getSchemas, p as getSsrIslands, S as isIslandPropsExternalized, y as isValidElement, h as jsxFactory, m as pushIslandProps, c as pushMetadata, D as pushSchema, A as registerIsland, u as registerSsrIsland, L as render, n as renderJsxToHtmlString, e as renderToRenderedNode, k as resolveMetadata, o as runInRenderContext, R as sequence, i as setViewName, V as startServer, O as useClientJs, s as useCss, a as useRequest };
@@ -1,5 +1,2 @@
1
- import { r as e } from "../client-D67hK4Yy.js";
2
- export {
3
- e as registerMountStrategy
4
- };
5
- //# sourceMappingURL=client.js.map
1
+ import { t as e } from "../strategy-registry-wmHnsHQb.js";
2
+ export { e as registerMountStrategy };