@stacksjs/stx 0.2.94 → 0.2.96

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 (614) hide show
  1. package/dist/a11y.js +598 -2
  2. package/dist/analytics.js +159 -2
  3. package/dist/analyzer.js +240 -2
  4. package/dist/animation.js +688 -2
  5. package/dist/app-shell.js +220 -2
  6. package/dist/app.js +79 -2
  7. package/dist/assets.js +155 -2
  8. package/dist/ast.js +630 -2
  9. package/dist/async-components.js +428 -2
  10. package/dist/auth.js +12 -2
  11. package/dist/broadcasting.js +102 -2
  12. package/dist/browser-composables.js +565 -2
  13. package/dist/build-assets.js +29 -2
  14. package/dist/build-mode-detector.js +50 -2
  15. package/dist/build-optimizer.js +433 -2
  16. package/dist/build-views.js +180 -2
  17. package/dist/build.js +33 -2
  18. package/dist/builtins/drawer.js +37 -2
  19. package/dist/builtins/escape.js +3 -2
  20. package/dist/builtins/icon.js +83 -2
  21. package/dist/builtins/index.js +34 -2
  22. package/dist/builtins/modal.js +38 -2
  23. package/dist/builtins/safe-image.js +51 -2
  24. package/dist/builtins/stx-image.js +200 -2
  25. package/dist/builtins/stx-link.js +41 -2
  26. package/dist/builtins/stx-loading-indicator.js +35 -2
  27. package/dist/builtins/suspense.js +24 -2
  28. package/dist/builtins/toast.js +42 -2
  29. package/dist/builtins/tooltip.js +106 -2
  30. package/dist/builtins/transition-group.js +22 -2
  31. package/dist/bundle-analyzer/collector.js +233 -2
  32. package/dist/bundle-analyzer/index.js +82 -2
  33. package/dist/bundle-analyzer/report.js +318 -2
  34. package/dist/bundle-analyzer/treemap.js +594 -2
  35. package/dist/caching.js +131 -2
  36. package/dist/cli.js +11317 -10982
  37. package/dist/client/directive.js +14 -2
  38. package/dist/client/index.js +2 -2
  39. package/dist/client-helpers.js +312 -2
  40. package/dist/client-script-bundler.js +216 -6
  41. package/dist/client-script.js +754 -2
  42. package/dist/client.js +73 -4
  43. package/dist/component-hmr.js +585 -2
  44. package/dist/component-library.d.ts +6 -0
  45. package/dist/component-library.js +683 -0
  46. package/dist/component-processing.js +613 -2
  47. package/dist/component-registry.js +90 -2
  48. package/dist/component-renderer.js +660 -2
  49. package/dist/components.js +213 -2
  50. package/dist/composables/index.js +220 -2
  51. package/dist/composables/use-battery.js +101 -2
  52. package/dist/composables/use-broadcast-channel.js +80 -2
  53. package/dist/composables/use-channel.js +124 -2
  54. package/dist/composables/use-clipboard.js +79 -2
  55. package/dist/composables/use-color-mode.js +131 -2
  56. package/dist/composables/use-cookie.js +86 -2
  57. package/dist/composables/use-device-orientation.js +181 -2
  58. package/dist/composables/use-event-listener.js +27 -2
  59. package/dist/composables/use-event-source.js +166 -2
  60. package/dist/composables/use-eye-dropper.js +142 -2
  61. package/dist/composables/use-fetch.js +223 -2
  62. package/dist/composables/use-fullscreen.js +110 -2
  63. package/dist/composables/use-geolocation.js +101 -2
  64. package/dist/composables/use-idle.js +182 -2
  65. package/dist/composables/use-intersection-observer.js +168 -2
  66. package/dist/composables/use-keyboard.js +224 -2
  67. package/dist/composables/use-media-query.js +62 -2
  68. package/dist/composables/use-meta.js +48 -2
  69. package/dist/composables/use-mouse.js +286 -2
  70. package/dist/composables/use-mutation-observer.js +129 -2
  71. package/dist/composables/use-network.js +85 -2
  72. package/dist/composables/use-notification.js +94 -2
  73. package/dist/composables/use-permissions.js +132 -2
  74. package/dist/composables/use-query.js +0 -1
  75. package/dist/composables/use-resize-observer.js +157 -2
  76. package/dist/composables/use-router.js +51 -2
  77. package/dist/composables/use-share.js +104 -2
  78. package/dist/composables/use-speech.js +294 -2
  79. package/dist/composables/use-storage.js +130 -2
  80. package/dist/composables/use-text-selection.js +205 -4
  81. package/dist/composables/use-timer.js +183 -2
  82. package/dist/composables/use-utilities.js +176 -2
  83. package/dist/composables/use-wake-lock.js +122 -2
  84. package/dist/composables/use-websocket.js +165 -2
  85. package/dist/composables/use-window.js +163 -2
  86. package/dist/composables.js +552 -2
  87. package/dist/composition-api.js +190 -2
  88. package/dist/computed.js +376 -8
  89. package/dist/conditionals.js +599 -2
  90. package/dist/config.js +751 -2
  91. package/dist/craft-bridge.js +432 -2
  92. package/dist/craft-compiler.js +810 -2
  93. package/dist/craft-components.js +945 -2
  94. package/dist/craft-entry.js +5 -2
  95. package/dist/craft-ssr.js +559 -2
  96. package/dist/csp.js +220 -2
  97. package/dist/csrf.js +38 -2
  98. package/dist/custom-directives.js +136 -2
  99. package/dist/defer.js +156 -2
  100. package/dist/deploy/config-generators.js +214 -2
  101. package/dist/deploy/index.js +203 -2
  102. package/dist/deploy/netlify.js +167 -2
  103. package/dist/dev-server/crosswind.js +379 -2
  104. package/dist/dev-server/index.js +7 -2
  105. package/dist/dev-server/keyboard-shortcuts.js +81 -2
  106. package/dist/dev-server/native-window.js +91 -2
  107. package/dist/dev-server/port-utils.js +40 -2
  108. package/dist/dev-server/serve-app.js +682 -7
  109. package/dist/dev-server/serve-file.js +439 -7
  110. package/dist/dev-server/serve-markdown.js +281 -2
  111. package/dist/dev-server/serve-multi.js +424 -17
  112. package/dist/dev-server/terminal-colors.js +45 -2
  113. package/dist/dev-server/theme-selector.js +111 -2
  114. package/dist/dev-server/types.js +43 -2
  115. package/dist/dev-server.js +4 -2
  116. package/dist/devtools.js +462 -18
  117. package/dist/directive-api.js +355 -2
  118. package/dist/docs.js +567 -2
  119. package/dist/doctor.js +123 -2
  120. package/dist/document-shell.js +105 -2
  121. package/dist/dynamic-components.js +78 -2
  122. package/dist/edge-runtime.js +539 -2
  123. package/dist/env.js +9 -2
  124. package/dist/error-boundaries.js +62 -12
  125. package/dist/error-handling.js +1 -2
  126. package/dist/errors/codes.js +97 -2
  127. package/dist/errors/formatter.js +196 -2
  128. package/dist/errors/index.js +44 -2
  129. package/dist/errors/logger.js +250 -2
  130. package/dist/errors/sanitizer.js +181 -2
  131. package/dist/errors/types.js +86 -2
  132. package/dist/events.js +382 -2
  133. package/dist/expressions.js +650 -2
  134. package/dist/formatter.js +265 -2
  135. package/dist/forms-validation.js +510 -4
  136. package/dist/forms.js +709 -2
  137. package/dist/head.js +224 -2
  138. package/dist/heatmap.js +566 -2
  139. package/dist/hot-reload.js +367 -2
  140. package/dist/html-masking.js +73 -2
  141. package/dist/hydration-runtime.js +195 -2
  142. package/dist/hydration.js +654 -2
  143. package/dist/i18n.js +633 -2
  144. package/dist/image-optimization/auto-sibling.js +88 -2
  145. package/dist/image-optimization/build-plugin.js +241 -2
  146. package/dist/image-optimization/component.js +244 -2
  147. package/dist/image-optimization/directive.js +203 -2
  148. package/dist/image-optimization/index.js +54 -2
  149. package/dist/image-optimization/processor.js +262 -2
  150. package/dist/image-optimization/serve.js +102 -2
  151. package/dist/includes.js +733 -2
  152. package/dist/index.d.ts +1 -0
  153. package/dist/index.js +134 -2
  154. package/dist/init.js +505 -2
  155. package/dist/inline-assets.js +82 -2
  156. package/dist/interactive.js +383 -2
  157. package/dist/internal-markdown.js +141 -2
  158. package/dist/island-chunking.js +52 -2
  159. package/dist/js-ts.js +57 -2
  160. package/dist/jsx-runtime.js +289 -2
  161. package/dist/keep-alive.js +421 -2
  162. package/dist/lazy-loader.js +245 -2
  163. package/dist/loading-indicator.js +322 -2
  164. package/dist/loops.js +643 -2
  165. package/dist/manifest.js +31 -2
  166. package/dist/markdown.js +68 -2
  167. package/dist/media/client/blur-up.js +217 -2
  168. package/dist/media/client/index.js +53 -2
  169. package/dist/media/client/lazy-load.js +283 -2
  170. package/dist/media/client/upload-handler.js +354 -2
  171. package/dist/media/image/component.js +574 -2
  172. package/dist/media/image/directive.js +160 -2
  173. package/dist/media/image/editing.js +193 -2
  174. package/dist/media/image/index.js +80 -2
  175. package/dist/media/image/placeholder.js +188 -2
  176. package/dist/media/image/processor/cache.js +51 -2
  177. package/dist/media/image/processor/index.js +3 -2
  178. package/dist/media/image/processor/optimizer.js +202 -2
  179. package/dist/media/image/processor/responsive.js +162 -2
  180. package/dist/media/image/srcset.js +194 -2
  181. package/dist/media/index.js +198 -2
  182. package/dist/media/manager/embed.js +253 -2
  183. package/dist/media/protected/component.js +235 -2
  184. package/dist/media/protected/index.js +20 -2
  185. package/dist/media/protected/signature.js +205 -2
  186. package/dist/media/shared/cache.js +132 -2
  187. package/dist/media/shared/hash.js +35 -2
  188. package/dist/media/shared/index.js +2 -2
  189. package/dist/media/types.js +0 -1
  190. package/dist/media/upload/component.js +320 -2
  191. package/dist/media/upload/index.js +1 -2
  192. package/dist/media/video/directive.js +142 -2
  193. package/dist/media/video/index.js +583 -2
  194. package/dist/media/video/processor/cache.js +52 -2
  195. package/dist/media/video/processor/index.js +4 -2
  196. package/dist/media/video/processor/streaming.js +197 -2
  197. package/dist/media/video/processor/thumbnail.js +134 -2
  198. package/dist/media/video/processor/transcoder.js +283 -2
  199. package/dist/method-spoofing.js +17 -2
  200. package/dist/middleware.js +40 -2
  201. package/dist/misc-directives.js +222 -2
  202. package/dist/native-build.js +511 -2
  203. package/dist/parser/directive-parser.js +239 -2
  204. package/dist/parser/expression-parser.js +358 -2
  205. package/dist/parser/index.js +23 -2
  206. package/dist/parser/tokenizer.js +534 -2
  207. package/dist/partial-hydration.js +427 -2
  208. package/dist/performance-utils.js +430 -2
  209. package/dist/placeholder.js +35 -2
  210. package/dist/plugin-system.js +214 -2
  211. package/dist/plugin.js +173 -2
  212. package/dist/precompiler.js +660 -81
  213. package/dist/process.js +711 -2
  214. package/dist/production-build.js +596 -2
  215. package/dist/production-builder.js +132 -2
  216. package/dist/production-server.js +188 -2
  217. package/dist/props.js +224 -2
  218. package/dist/public-env.js +19 -2
  219. package/dist/pwa/audit.js +255 -2
  220. package/dist/pwa/directives.js +332 -2
  221. package/dist/pwa/icons.js +109 -2
  222. package/dist/pwa/index.js +47 -2
  223. package/dist/pwa/inject.js +102 -2
  224. package/dist/pwa/manifest.js +186 -2
  225. package/dist/pwa/offline.js +259 -2
  226. package/dist/pwa/precache.js +116 -2
  227. package/dist/pwa/service-worker.js +860 -2
  228. package/dist/pwa/workbox-strategies.js +167 -2
  229. package/dist/pwa/workbox.js +382 -2
  230. package/dist/pwa.js +427 -427
  231. package/dist/reactive-bindings.js +266 -2
  232. package/dist/reactive.js +569 -2
  233. package/dist/reactivity.js +559 -2
  234. package/dist/release.js +1 -2
  235. package/dist/render.js +165 -2
  236. package/dist/route-middleware.js +17 -2
  237. package/dist/router.js +9 -2
  238. package/dist/routes.js +14 -2
  239. package/dist/runtime-injection.js +120 -2
  240. package/dist/runtime.js +94 -2
  241. package/dist/safe-evaluator.js +444 -2
  242. package/dist/scaffolding.js +897 -2
  243. package/dist/screenshot.js +87 -2
  244. package/dist/script-classifier.js +32 -2
  245. package/dist/script-validation.js +158 -2
  246. package/dist/seo.js +457 -2
  247. package/dist/serve.js +237 -2
  248. package/dist/server-bindings.js +108 -2
  249. package/dist/server-components.js +338 -11
  250. package/dist/signal-processing.js +946 -2
  251. package/dist/signals-api.js +154 -2
  252. package/dist/signals.js +5287 -2
  253. package/dist/site-builder/build.js +224 -2
  254. package/dist/site-builder/i18n.js +140 -2
  255. package/dist/site-builder/index.js +15 -2
  256. package/dist/site-builder/robots.js +26 -2
  257. package/dist/site-builder/router.js +27 -2
  258. package/dist/site-builder/seo.js +36 -2
  259. package/dist/site-builder/sitemap.js +26 -2
  260. package/dist/site-builder/theme.js +33 -2
  261. package/dist/site-builder/types.js +0 -1
  262. package/dist/slots.js +201 -2
  263. package/dist/source-maps.js +350 -2
  264. package/dist/spa-shell.js +34 -2
  265. package/dist/ssg.js +389 -389
  266. package/dist/ssr.js +355 -2
  267. package/dist/state-management.js +533 -2
  268. package/dist/store-imports.js +13 -2
  269. package/dist/store-loader.js +72 -5
  270. package/dist/stores-client.js +132 -2
  271. package/dist/story/addons.js +261 -2
  272. package/dist/story/analytics.js +235 -2
  273. package/dist/story/auto-stories.js +158 -2
  274. package/dist/story/bookmarks.js +277 -2
  275. package/dist/story/bun-test.js +102 -2
  276. package/dist/story/cli.js +155 -2
  277. package/dist/story/collect/analyzer.js +305 -2
  278. package/dist/story/collect/index.js +27 -2
  279. package/dist/story/collect/parser.js +129 -2
  280. package/dist/story/collect/scanner.js +101 -2
  281. package/dist/story/collect/tree.js +110 -2
  282. package/dist/story/commands/build.js +172 -2
  283. package/dist/story/commands/dev.js +78 -2
  284. package/dist/story/commands/index.js +3 -2
  285. package/dist/story/commands/preview.js +56 -2
  286. package/dist/story/compiled-output.js +151 -2
  287. package/dist/story/composition.js +261 -2
  288. package/dist/story/config-watcher.js +67 -2
  289. package/dist/story/config.js +64 -2
  290. package/dist/story/context.js +27 -2
  291. package/dist/story/controls/index.js +320 -2
  292. package/dist/story/crosswind.js +189 -2
  293. package/dist/story/desktop-preview.js +105 -2
  294. package/dist/story/docs-generator.js +186 -2
  295. package/dist/story/errors.js +239 -2
  296. package/dist/story/figma-export.js +224 -2
  297. package/dist/story/generator.js +165 -2
  298. package/dist/story/hmr.js +131 -2
  299. package/dist/story/hot-swap.js +207 -2
  300. package/dist/story/index.js +49 -2
  301. package/dist/story/interactions.js +225 -2
  302. package/dist/story/keyboard-shortcuts.js +345 -2
  303. package/dist/story/output.js +153 -2
  304. package/dist/story/performance.js +252 -2
  305. package/dist/story/presets.js +289 -2
  306. package/dist/story/props-validation.js +215 -2
  307. package/dist/story/renderer.js +209 -2
  308. package/dist/story/search-index.js +106 -2
  309. package/dist/story/search.js +140 -2
  310. package/dist/story/server.js +965 -2
  311. package/dist/story/setup.js +78 -2
  312. package/dist/story/snapshots.js +170 -2
  313. package/dist/story/testing.js +163 -2
  314. package/dist/story/theme.js +170 -2
  315. package/dist/story/types.js +0 -2
  316. package/dist/story/ui/code-panel.js +175 -2
  317. package/dist/story/ui/controls-panel.js +168 -2
  318. package/dist/story/ui/index.js +4 -2
  319. package/dist/story/ui/navigation.js +250 -2
  320. package/dist/story/ui/preview.js +251 -2
  321. package/dist/story/visual-testing.js +247 -2
  322. package/dist/streaming.js +537 -2
  323. package/dist/strict-lint.js +288 -2
  324. package/dist/style-scoping.js +50 -2
  325. package/dist/suspense.js +398 -2
  326. package/dist/teleport.js +109 -2
  327. package/dist/template-compiler.js +63 -2
  328. package/dist/template-hydrator.js +82 -2
  329. package/dist/template-tag-balance.js +93 -2
  330. package/dist/testing.js +581 -2
  331. package/dist/transitions.js +443 -2
  332. package/dist/type-checker.js +581 -2
  333. package/dist/types/component-types.d.ts +54 -0
  334. package/dist/types/component-types.js +0 -1
  335. package/dist/types/config-types.js +0 -1
  336. package/dist/types/context-types.js +0 -1
  337. package/dist/types/csp-types.js +0 -1
  338. package/dist/types/directive-types.js +3 -2
  339. package/dist/types/index.d.ts +5 -0
  340. package/dist/types/index.js +1 -2
  341. package/dist/types/pwa-types.js +0 -1
  342. package/dist/types.js +1 -2
  343. package/dist/typescript-templates.js +386 -4
  344. package/dist/utils.js +942 -2
  345. package/dist/validator.js +171 -2
  346. package/dist/variable-extractor.js +1094 -2
  347. package/dist/view-composers.js +29 -2
  348. package/dist/virtual-scrolling.js +454 -2
  349. package/dist/visual-editor.js +688 -28
  350. package/dist/vue-template.js +475 -2
  351. package/dist/web-components/css-scoping.js +177 -2
  352. package/dist/web-components/index.js +13 -2
  353. package/dist/web-components/reactive-generator.js +121 -56
  354. package/dist/web-components.js +1447 -2
  355. package/dist/x-element.js +17 -5
  356. package/package.json +6 -7
  357. package/dist/chunk-03c26pjz.js +0 -3
  358. package/dist/chunk-04mvcmcr.js +0 -106
  359. package/dist/chunk-05hgyyqc.js +0 -4
  360. package/dist/chunk-095s3972.js +0 -99
  361. package/dist/chunk-0b9w2w1y.js +0 -1
  362. package/dist/chunk-0dz85jrp.js +0 -3
  363. package/dist/chunk-0g4gece6.js +0 -4
  364. package/dist/chunk-0jd0pndq.js +0 -3
  365. package/dist/chunk-0jkwrcwj.js +0 -3
  366. package/dist/chunk-0m9tdm7t.js +0 -71
  367. package/dist/chunk-0qakwen3.js +0 -1
  368. package/dist/chunk-0qnz93q2.js +0 -3
  369. package/dist/chunk-0tatqxj2.js +0 -57
  370. package/dist/chunk-0wdar532.js +0 -102
  371. package/dist/chunk-13yz561y.js +0 -3
  372. package/dist/chunk-174z0cd0.js +0 -3
  373. package/dist/chunk-1mmykse5.js +0 -81
  374. package/dist/chunk-1z2yq9em.js +0 -3
  375. package/dist/chunk-1z5nhbjt.js +0 -90
  376. package/dist/chunk-1zgsgk4b.js +0 -1
  377. package/dist/chunk-25s7bckb.js +0 -171
  378. package/dist/chunk-268adc7r.js +0 -2230
  379. package/dist/chunk-26r6zh3t.js +0 -194
  380. package/dist/chunk-2w3302dh.js +0 -3
  381. package/dist/chunk-2xen423s.js +0 -3
  382. package/dist/chunk-39gm08bn.js +0 -39
  383. package/dist/chunk-3bjtemm6.js +0 -128
  384. package/dist/chunk-3jm3snz8.js +0 -3
  385. package/dist/chunk-3ngm57nt.js +0 -12
  386. package/dist/chunk-3rh7va1z.js +0 -3
  387. package/dist/chunk-3yg9hbmb.js +0 -4
  388. package/dist/chunk-44hd3kab.js +0 -1
  389. package/dist/chunk-46mkpbkk.js +0 -12
  390. package/dist/chunk-48cw2nde.js +0 -2
  391. package/dist/chunk-48r3qe0k.js +0 -3
  392. package/dist/chunk-4aj7ftqb.js +0 -1
  393. package/dist/chunk-4bt81cg3.js +0 -61
  394. package/dist/chunk-4j188175.js +0 -3
  395. package/dist/chunk-4k7d8p8d.js +0 -188
  396. package/dist/chunk-4qq8ffke.js +0 -28
  397. package/dist/chunk-50vqeesm.js +0 -142
  398. package/dist/chunk-52agge4n.js +0 -38
  399. package/dist/chunk-55yp0q8t.js +0 -201
  400. package/dist/chunk-57p201gb.js +0 -83
  401. package/dist/chunk-5ggw1dyv.js +0 -3
  402. package/dist/chunk-5kt3ay7x.js +0 -10
  403. package/dist/chunk-5p568px4.js +0 -1166
  404. package/dist/chunk-5ppkfyn2.js +0 -3
  405. package/dist/chunk-5q87fgkk.js +0 -3
  406. package/dist/chunk-5qb761h2.js +0 -3
  407. package/dist/chunk-5xvbq2gs.js +0 -30
  408. package/dist/chunk-647849kf.js +0 -34
  409. package/dist/chunk-6b5k6w2q.js +0 -7
  410. package/dist/chunk-6cr3eeh4.js +0 -23
  411. package/dist/chunk-6djgb0hr.js +0 -3
  412. package/dist/chunk-6dqzky7x.js +0 -35
  413. package/dist/chunk-6e4c6g46.js +0 -3
  414. package/dist/chunk-6w03t7h6.js +0 -3
  415. package/dist/chunk-6wn85hn6.js +0 -4
  416. package/dist/chunk-6y4gqs1q.js +0 -169
  417. package/dist/chunk-75rndzbd.js +0 -6
  418. package/dist/chunk-77tga15w.js +0 -3
  419. package/dist/chunk-7a51hkpf.js +0 -3
  420. package/dist/chunk-7b0xdy5h.js +0 -386
  421. package/dist/chunk-7cgmq685.js +0 -33
  422. package/dist/chunk-7dy588as.js +0 -6
  423. package/dist/chunk-7rvh2wwv.js +0 -721
  424. package/dist/chunk-7sm05m0j.js +0 -351
  425. package/dist/chunk-7sqdeqsw.js +0 -1
  426. package/dist/chunk-7xcfy2fn.js +0 -4
  427. package/dist/chunk-82t27pvd.js +0 -5
  428. package/dist/chunk-87kx8byz.js +0 -1115
  429. package/dist/chunk-8fgwhhb8.js +0 -6
  430. package/dist/chunk-8qbax8xn.js +0 -347
  431. package/dist/chunk-91s2hres.js +0 -8
  432. package/dist/chunk-94g3cahw.js +0 -11
  433. package/dist/chunk-957amb71.js +0 -8
  434. package/dist/chunk-95w08s8v.js +0 -3
  435. package/dist/chunk-9agvhp1x.js +0 -93
  436. package/dist/chunk-9tmbrwwx.js +0 -219
  437. package/dist/chunk-9yz5d003.js +0 -51
  438. package/dist/chunk-a3hyn4we.js +0 -79
  439. package/dist/chunk-a69tvya5.js +0 -53
  440. package/dist/chunk-adjcg6wa.js +0 -498
  441. package/dist/chunk-adqh2m9z.js +0 -45
  442. package/dist/chunk-asarebzq.js +0 -292
  443. package/dist/chunk-aw3rp9ac.js +0 -24
  444. package/dist/chunk-b0cyc09a.js +0 -109
  445. package/dist/chunk-b3kkjcdh.js +0 -3
  446. package/dist/chunk-b3prs7y0.js +0 -5
  447. package/dist/chunk-b5zc9y0y.js +0 -90
  448. package/dist/chunk-baa7h4yz.js +0 -3
  449. package/dist/chunk-bgec9r1v.js +0 -5224
  450. package/dist/chunk-bjnjpsgn.js +0 -3
  451. package/dist/chunk-bk8ew8ze.js +0 -24
  452. package/dist/chunk-bn08k7yy.js +0 -3
  453. package/dist/chunk-bpgg59wa.js +0 -3
  454. package/dist/chunk-bwxda6n1.js +0 -3
  455. package/dist/chunk-bykjk6vj.js +0 -4
  456. package/dist/chunk-c53hyw5c.js +0 -477
  457. package/dist/chunk-c7jg8w13.js +0 -3
  458. package/dist/chunk-ca6qd1dx.js +0 -3
  459. package/dist/chunk-cdbwprfv.js +0 -6
  460. package/dist/chunk-ceg2c2q2.js +0 -11
  461. package/dist/chunk-cn409b69.js +0 -3
  462. package/dist/chunk-cn8az1b4.js +0 -1
  463. package/dist/chunk-cp3kwv17.js +0 -8
  464. package/dist/chunk-cpcc11vp.js +0 -5
  465. package/dist/chunk-cr3wbrcr.js +0 -10
  466. package/dist/chunk-cygfdk1n.js +0 -3
  467. package/dist/chunk-cyp4m0vh.js +0 -16
  468. package/dist/chunk-cz25azze.js +0 -4
  469. package/dist/chunk-d77yxcds.js +0 -3
  470. package/dist/chunk-dvfs1h3c.js +0 -117
  471. package/dist/chunk-dyjnn5k8.js +0 -262
  472. package/dist/chunk-dzw95th7.js +0 -3
  473. package/dist/chunk-e0zytzdh.js +0 -179
  474. package/dist/chunk-e53h9qhd.js +0 -84
  475. package/dist/chunk-eds0f8f1.js +0 -3
  476. package/dist/chunk-eh8hact1.js +0 -5
  477. package/dist/chunk-epj957jf.js +0 -4
  478. package/dist/chunk-eqeyaq6g.js +0 -77
  479. package/dist/chunk-fbxt2mrx.js +0 -5
  480. package/dist/chunk-fch9tk1k.js +0 -3
  481. package/dist/chunk-fe7r1mq1.js +0 -9
  482. package/dist/chunk-fhawx87n.js +0 -8
  483. package/dist/chunk-fk51yyrw.js +0 -3
  484. package/dist/chunk-fms20x0n.js +0 -21
  485. package/dist/chunk-fs0qezn5.js +0 -341
  486. package/dist/chunk-fzm3y0r3.js +0 -267
  487. package/dist/chunk-g2hekckm.js +0 -161
  488. package/dist/chunk-g4ps1dj8.js +0 -140
  489. package/dist/chunk-g8b81pzc.js +0 -3
  490. package/dist/chunk-ganag9dm.js +0 -3
  491. package/dist/chunk-gc84b1d2.js +0 -58
  492. package/dist/chunk-gcf5v18y.js +0 -60
  493. package/dist/chunk-ghrx0hn1.js +0 -4
  494. package/dist/chunk-gqpkp459.js +0 -3
  495. package/dist/chunk-h45py5w5.js +0 -2
  496. package/dist/chunk-h5wa62ek.js +0 -145
  497. package/dist/chunk-h82kjdr4.js +0 -83
  498. package/dist/chunk-haecq01c.js +0 -3
  499. package/dist/chunk-hepg894w.js +0 -3
  500. package/dist/chunk-hjdc99kb.js +0 -3
  501. package/dist/chunk-hje9v2zh.js +0 -3
  502. package/dist/chunk-hjv76kcw.js +0 -1
  503. package/dist/chunk-hke99a0v.js +0 -3
  504. package/dist/chunk-hpqr9e3x.js +0 -3
  505. package/dist/chunk-hq5cem49.js +0 -236
  506. package/dist/chunk-hrampcrj.js +0 -3
  507. package/dist/chunk-ht4j68cs.js +0 -3
  508. package/dist/chunk-hxx3za24.js +0 -62
  509. package/dist/chunk-j4s5qwd7.js +0 -4
  510. package/dist/chunk-jbejwejg.js +0 -8
  511. package/dist/chunk-jc0fc4ht.js +0 -11
  512. package/dist/chunk-jcs0ymw7.js +0 -3
  513. package/dist/chunk-jfm69keq.js +0 -231
  514. package/dist/chunk-jfrn43vh.js +0 -2
  515. package/dist/chunk-jjamhxpm.js +0 -139
  516. package/dist/chunk-jjvp4t5w.js +0 -27
  517. package/dist/chunk-jt44av4j.js +0 -3
  518. package/dist/chunk-jt98jhpt.js +0 -10
  519. package/dist/chunk-k8440jxh.js +0 -6
  520. package/dist/chunk-kdxa9epn.js +0 -21
  521. package/dist/chunk-kfd2hf6f.js +0 -3
  522. package/dist/chunk-kgym7ch9.js +0 -8
  523. package/dist/chunk-kh6rfz2v.js +0 -4
  524. package/dist/chunk-kkp6rs2n.js +0 -36
  525. package/dist/chunk-ktkmvaa8.js +0 -1
  526. package/dist/chunk-m59y310j.js +0 -3
  527. package/dist/chunk-mgmyr1b9.js +0 -6
  528. package/dist/chunk-mqwbpamc.js +0 -3
  529. package/dist/chunk-mrehzhxv.js +0 -5
  530. package/dist/chunk-mv03qb75.js +0 -3
  531. package/dist/chunk-mv4fb50w.js +0 -1
  532. package/dist/chunk-mwbng54r.js +0 -2
  533. package/dist/chunk-n46a5g1g.js +0 -3
  534. package/dist/chunk-n944baxp.js +0 -3
  535. package/dist/chunk-nanw7yhz.js +0 -14
  536. package/dist/chunk-nap11ntr.js +0 -21
  537. package/dist/chunk-ncnfa8ae.js +0 -29
  538. package/dist/chunk-ngxfwzq3.js +0 -3
  539. package/dist/chunk-nvwb4x04.js +0 -3
  540. package/dist/chunk-nw34xajc.js +0 -8
  541. package/dist/chunk-payfb24w.js +0 -207
  542. package/dist/chunk-pc31m5x5.js +0 -398
  543. package/dist/chunk-pg1fvqb9.js +0 -167
  544. package/dist/chunk-q60knhjf.js +0 -3
  545. package/dist/chunk-q6h6yvzb.js +0 -10
  546. package/dist/chunk-qd5461tt.js +0 -3
  547. package/dist/chunk-qdc3aav1.js +0 -3
  548. package/dist/chunk-qfwzdffx.js +0 -3
  549. package/dist/chunk-qgxwmagw.js +0 -134
  550. package/dist/chunk-qhdtssn1.js +0 -19
  551. package/dist/chunk-qk584whs.js +0 -3
  552. package/dist/chunk-qm4yppj5.js +0 -57
  553. package/dist/chunk-qwyd9a1d.js +0 -2
  554. package/dist/chunk-qxs6et76.js +0 -196
  555. package/dist/chunk-rb1e4cnb.js +0 -3
  556. package/dist/chunk-rh80q1nd.js +0 -1
  557. package/dist/chunk-rkffm9sy.js +0 -128
  558. package/dist/chunk-rv002yn0.js +0 -14
  559. package/dist/chunk-s6ja2bdg.js +0 -66
  560. package/dist/chunk-sjagg9qz.js +0 -66
  561. package/dist/chunk-sn07azv3.js +0 -3
  562. package/dist/chunk-svahbw0w.js +0 -12
  563. package/dist/chunk-svhtdb0s.js +0 -6
  564. package/dist/chunk-t37dp99j.js +0 -3
  565. package/dist/chunk-tj6zfxeb.js +0 -64
  566. package/dist/chunk-tmgz5t2g.js +0 -3
  567. package/dist/chunk-tr0z0e1g.js +0 -3
  568. package/dist/chunk-tx6br9r4.js +0 -274
  569. package/dist/chunk-v97390pe.js +0 -1
  570. package/dist/chunk-vcr5pzpx.js +0 -233
  571. package/dist/chunk-vdfwv0fp.js +0 -6
  572. package/dist/chunk-vp2395eb.js +0 -3
  573. package/dist/chunk-vpe6napb.js +0 -28
  574. package/dist/chunk-vv9wfz1c.js +0 -12
  575. package/dist/chunk-vw6ejgmy.js +0 -21
  576. package/dist/chunk-vx22he47.js +0 -1
  577. package/dist/chunk-w01y57f5.js +0 -1539
  578. package/dist/chunk-w21mwxdd.js +0 -4
  579. package/dist/chunk-w4n8fqp7.js +0 -216
  580. package/dist/chunk-w959hm8j.js +0 -358
  581. package/dist/chunk-wf7zrjsw.js +0 -138
  582. package/dist/chunk-wk07pwtd.js +0 -321
  583. package/dist/chunk-wvef3ngh.js +0 -127
  584. package/dist/chunk-wxvyj65q.js +0 -2
  585. package/dist/chunk-x1hjv24z.js +0 -11
  586. package/dist/chunk-x39sfpvm.js +0 -302
  587. package/dist/chunk-x4fze3q2.js +0 -314
  588. package/dist/chunk-x64kb787.js +0 -15
  589. package/dist/chunk-xcb0pbr6.js +0 -4
  590. package/dist/chunk-xhkjhxsp.js +0 -3
  591. package/dist/chunk-xhnpsngj.js +0 -5
  592. package/dist/chunk-xsqbk4yk.js +0 -3
  593. package/dist/chunk-xygc53vr.js +0 -68
  594. package/dist/chunk-y0qg6rrv.js +0 -3
  595. package/dist/chunk-y25pr13j.js +0 -19
  596. package/dist/chunk-y4c744dk.js +0 -3
  597. package/dist/chunk-y4md9hp0.js +0 -3
  598. package/dist/chunk-y5wazw6j.js +0 -7
  599. package/dist/chunk-y5xz0jc4.js +0 -141
  600. package/dist/chunk-y86m1wr4.js +0 -4
  601. package/dist/chunk-yaan98dd.js +0 -3
  602. package/dist/chunk-yach037f.js +0 -32
  603. package/dist/chunk-yexjrg9d.js +0 -7
  604. package/dist/chunk-ygvyc6wv.js +0 -90
  605. package/dist/chunk-yj560gp8.js +0 -8
  606. package/dist/chunk-yn38c15w.js +0 -4
  607. package/dist/chunk-yr1gdceh.js +0 -3
  608. package/dist/chunk-yw2fzq86.js +0 -3
  609. package/dist/chunk-ywkrxp2h.js +0 -147
  610. package/dist/chunk-z37xq5rx.js +0 -3
  611. package/dist/chunk-z4djtgt0.js +0 -71
  612. package/dist/chunk-z8cjr9n9.js +0 -7
  613. package/dist/chunk-znxp3zha.js +0 -71
  614. package/dist/chunk-zt2yag10.js +0 -429
@@ -1,2 +1,539 @@
1
- // @bun
2
- import{An as l,Bn as m,Cn as n,Dn as o,En as p,Fn as q,Gn as r,Hn as s,pn as a,qn as b,rn as c,sn as d,tn as e,un as f,vn as g,wn as h,xn as i,yn as j,zn as k}from"./chunk-b3kkjcdh.js";import"./chunk-3jm3snz8.js";export{j as stringToStream,r as redirect,o as parseCookies,s as notFound,q as jsonResponse,c as isServerEnvironment,b as isEdgeEnvironment,a as detectRuntime,m as createVercelHandler,i as createTextEncoderStream,h as createStreamingResponse,n as createNetlifyHandler,e as createKVNamespace,d as createEnvAccessor,g as createEdgeHandler,f as createEdgeCache,l as createDenoHandler,p as createCookie,k as createCloudflareHandler};
1
+ import nodeProcess from "node:process";
2
+ export function detectRuntime() {
3
+ if (typeof globalThis < "u" && "caches" in globalThis && "CF" in globalThis)
4
+ return {
5
+ platform: "cloudflare",
6
+ supportsStreaming: !0,
7
+ supportsCrypto: !0,
8
+ supportsKV: !0,
9
+ supportsCache: !0,
10
+ capabilities: ["kv", "r2", "d1", "durable-objects", "queues"]
11
+ };
12
+ if (typeof globalThis < "u" && "Deno" in globalThis)
13
+ return {
14
+ platform: "deno",
15
+ version: globalThis.Deno.version?.deno,
16
+ supportsStreaming: !0,
17
+ supportsCrypto: !0,
18
+ supportsKV: !0,
19
+ supportsCache: !0,
20
+ capabilities: ["kv", "deploy", "ffi"]
21
+ };
22
+ if (typeof globalThis < "u" && "Bun" in globalThis)
23
+ return {
24
+ platform: "bun",
25
+ version: globalThis.Bun.version,
26
+ supportsStreaming: !0,
27
+ supportsCrypto: !0,
28
+ supportsKV: !1,
29
+ supportsCache: !1,
30
+ capabilities: ["sqlite", "ffi", "native-modules"]
31
+ };
32
+ if (typeof globalThis < "u" && "EdgeRuntime" in globalThis)
33
+ return {
34
+ platform: "vercel",
35
+ supportsStreaming: !0,
36
+ supportsCrypto: !0,
37
+ supportsKV: !0,
38
+ supportsCache: !0,
39
+ capabilities: ["edge-config", "blob"]
40
+ };
41
+ if (typeof globalThis < "u" && "Netlify" in globalThis)
42
+ return {
43
+ platform: "netlify",
44
+ supportsStreaming: !0,
45
+ supportsCrypto: !0,
46
+ supportsKV: !0,
47
+ supportsCache: !1,
48
+ capabilities: ["blobs", "edge-functions"]
49
+ };
50
+ if (typeof globalThis < "u" && "fastly" in globalThis)
51
+ return {
52
+ platform: "fastly",
53
+ supportsStreaming: !0,
54
+ supportsCrypto: !0,
55
+ supportsKV: !0,
56
+ supportsCache: !0,
57
+ capabilities: ["dictionary", "backend", "geolocation"]
58
+ };
59
+ if (nodeProcess.versions?.node)
60
+ return {
61
+ platform: "node",
62
+ version: nodeProcess.versions.node,
63
+ supportsStreaming: !0,
64
+ supportsCrypto: !0,
65
+ supportsKV: !1,
66
+ supportsCache: !1,
67
+ capabilities: ["fs", "child-process", "native-modules"]
68
+ };
69
+ return {
70
+ platform: "unknown",
71
+ supportsStreaming: !1,
72
+ supportsCrypto: !1,
73
+ supportsKV: !1,
74
+ supportsCache: !1,
75
+ capabilities: []
76
+ };
77
+ }
78
+ export function isEdgeEnvironment() {
79
+ const runtime = detectRuntime();
80
+ return ["cloudflare", "deno", "vercel", "netlify", "fastly"].includes(runtime.platform);
81
+ }
82
+ export function isServerEnvironment() {
83
+ return detectRuntime().platform !== "unknown";
84
+ }
85
+ export function createEnvAccessor(platformEnv) {
86
+ return {
87
+ get(key) {
88
+ if (platformEnv && key in platformEnv) {
89
+ const value = platformEnv[key];
90
+ return typeof value === "string" ? value : void 0;
91
+ }
92
+ if (typeof globalThis < "u" && "Deno" in globalThis)
93
+ return globalThis.Deno.env.get(key);
94
+ if (nodeProcess.env)
95
+ return nodeProcess.env[key];
96
+ return;
97
+ },
98
+ getOrThrow(key) {
99
+ const value = this.get(key);
100
+ if (value === void 0)
101
+ throw Error(`Environment variable "${key}" is not set`);
102
+ return value;
103
+ },
104
+ has(key) {
105
+ return this.get(key) !== void 0;
106
+ },
107
+ all() {
108
+ const result = {};
109
+ if (platformEnv) {
110
+ for (const [key, value] of Object.entries(platformEnv))
111
+ if (typeof value === "string")
112
+ result[key] = value;
113
+ }
114
+ if (typeof globalThis < "u" && "Deno" in globalThis) {
115
+ const denoEnv = globalThis.Deno.env.toObject();
116
+ Object.assign(result, denoEnv);
117
+ }
118
+ if (nodeProcess.env) {
119
+ for (const [key, value] of Object.entries(nodeProcess.env))
120
+ if (value !== void 0)
121
+ result[key] = value;
122
+ }
123
+ return result;
124
+ }
125
+ };
126
+ }
127
+ export function createKVNamespace(platformKV) {
128
+ const runtime = detectRuntime();
129
+ if (runtime.platform === "cloudflare" && platformKV)
130
+ return platformKV;
131
+ if (runtime.platform === "deno" && "Deno" in globalThis)
132
+ return createDenoKVAdapter();
133
+ if (runtime.platform === "node" || runtime.platform === "bun")
134
+ return createInMemoryKV();
135
+ return;
136
+ }
137
+ function createDenoKVAdapter() {
138
+ let kvInstance = null;
139
+ const getKV = async () => {
140
+ if (!kvInstance)
141
+ kvInstance = await globalThis.Deno.openKv();
142
+ return kvInstance;
143
+ };
144
+ return {
145
+ async get(key) {
146
+ return (await (await getKV()).get(["stx", key])).value;
147
+ },
148
+ async getWithMetadata(key) {
149
+ const kv = await getKV(), result = await kv.get(["stx", key]), metaResult = await kv.get(["stx-meta", key]);
150
+ return {
151
+ value: result.value,
152
+ metadata: metaResult.value
153
+ };
154
+ },
155
+ async put(key, value, options) {
156
+ const kv = await getKV(), expireIn = options?.expirationTtl ? options.expirationTtl * 1000 : void 0;
157
+ await kv.set(["stx", key], value, expireIn ? { expireIn } : void 0);
158
+ if (options?.metadata)
159
+ await kv.set(["stx-meta", key], options.metadata, expireIn ? { expireIn } : void 0);
160
+ },
161
+ async delete(key) {
162
+ const kv = await getKV();
163
+ await kv.delete(["stx", key]);
164
+ await kv.delete(["stx-meta", key]);
165
+ },
166
+ async list(options) {
167
+ const kv = await getKV(), prefix = options?.prefix ? ["stx", options.prefix] : ["stx"], iter = kv.list({ prefix, limit: options?.limit || 100 }), keys = [];
168
+ for await (const entry of iter) {
169
+ const name = entry.key.slice(1).join("/");
170
+ if (!name.startsWith("stx-meta/"))
171
+ keys.push({ name });
172
+ }
173
+ return { keys, list_complete: !0 };
174
+ }
175
+ };
176
+ }
177
+ function createInMemoryKV() {
178
+ const store = new Map, cleanup = () => {
179
+ const now = Date.now();
180
+ for (const [key, data] of store.entries())
181
+ if (data.expiration && data.expiration < now)
182
+ store.delete(key);
183
+ };
184
+ return {
185
+ async get(key) {
186
+ cleanup();
187
+ const data = store.get(key);
188
+ if (!data)
189
+ return null;
190
+ if (data.expiration && data.expiration < Date.now()) {
191
+ store.delete(key);
192
+ return null;
193
+ }
194
+ return data.value;
195
+ },
196
+ async getWithMetadata(key) {
197
+ cleanup();
198
+ const data = store.get(key);
199
+ if (!data)
200
+ return { value: null, metadata: null };
201
+ if (data.expiration && data.expiration < Date.now()) {
202
+ store.delete(key);
203
+ return { value: null, metadata: null };
204
+ }
205
+ return { value: data.value, metadata: data.metadata || null };
206
+ },
207
+ async put(key, value, options) {
208
+ const expiration = options?.expiration ? options.expiration * 1000 : options?.expirationTtl ? Date.now() + options.expirationTtl * 1000 : void 0;
209
+ store.set(key, { value, metadata: options?.metadata, expiration });
210
+ },
211
+ async delete(key) {
212
+ store.delete(key);
213
+ },
214
+ async list(options) {
215
+ cleanup();
216
+ const keys = [];
217
+ for (const [name, data] of store.entries()) {
218
+ if (options?.prefix && !name.startsWith(options.prefix))
219
+ continue;
220
+ keys.push({ name, expiration: data.expiration, metadata: data.metadata });
221
+ if (options?.limit && keys.length >= options.limit)
222
+ break;
223
+ }
224
+ return { keys, list_complete: !0 };
225
+ }
226
+ };
227
+ }
228
+ export function createEdgeCache() {
229
+ const runtime = detectRuntime();
230
+ if (runtime.platform === "cloudflare" && "caches" in globalThis)
231
+ return createCacheAPIAdapter();
232
+ if (runtime.supportsStreaming)
233
+ return createInMemoryCache();
234
+ return;
235
+ }
236
+ function createCacheAPIAdapter() {
237
+ return {
238
+ async match(request) {
239
+ return (await caches.default).match(request);
240
+ },
241
+ async put(request, response) {
242
+ await (await caches.default).put(request, response.clone());
243
+ },
244
+ async delete(request) {
245
+ return (await caches.default).delete(request);
246
+ }
247
+ };
248
+ }
249
+ function createInMemoryCache() {
250
+ const cache = new Map, DEFAULT_TTL = 60000;
251
+ return {
252
+ async match(request) {
253
+ const key = request.url, entry = cache.get(key);
254
+ if (!entry)
255
+ return;
256
+ if (Date.now() > entry.expiration) {
257
+ cache.delete(key);
258
+ return;
259
+ }
260
+ return entry.response.clone();
261
+ },
262
+ async put(request, response) {
263
+ const key = request.url, cacheControl = response.headers.get("Cache-Control");
264
+ let ttl = DEFAULT_TTL;
265
+ if (cacheControl) {
266
+ const maxAgeMatch = cacheControl.match(/max-age=(\d+)/);
267
+ if (maxAgeMatch)
268
+ ttl = Number.parseInt(maxAgeMatch[1], 10) * 1000;
269
+ }
270
+ cache.set(key, {
271
+ response: response.clone(),
272
+ expiration: Date.now() + ttl
273
+ });
274
+ },
275
+ async delete(request) {
276
+ return cache.delete(request.url);
277
+ }
278
+ };
279
+ }
280
+ function generateRequestId() {
281
+ return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 9)}`;
282
+ }
283
+ function extractGeoInfo(request, runtime) {
284
+ if (runtime.platform === "cloudflare") {
285
+ const cf = request.cf;
286
+ if (cf)
287
+ return {
288
+ city: cf.city,
289
+ country: cf.country,
290
+ countryCode: cf.country,
291
+ region: cf.region,
292
+ latitude: cf.latitude ? Number.parseFloat(cf.latitude) : void 0,
293
+ longitude: cf.longitude ? Number.parseFloat(cf.longitude) : void 0,
294
+ timezone: cf.timezone
295
+ };
296
+ }
297
+ if (runtime.platform === "vercel") {
298
+ const geo = {}, city = request.headers.get("x-vercel-ip-city"), country = request.headers.get("x-vercel-ip-country"), region = request.headers.get("x-vercel-ip-country-region"), lat = request.headers.get("x-vercel-ip-latitude"), lng = request.headers.get("x-vercel-ip-longitude");
299
+ if (city)
300
+ geo.city = decodeURIComponent(city);
301
+ if (country)
302
+ geo.countryCode = country;
303
+ if (region)
304
+ geo.region = region;
305
+ if (lat)
306
+ geo.latitude = Number.parseFloat(lat);
307
+ if (lng)
308
+ geo.longitude = Number.parseFloat(lng);
309
+ return Object.keys(geo).length > 0 ? geo : void 0;
310
+ }
311
+ if (runtime.platform === "netlify") {
312
+ const geo = {}, city = request.headers.get("x-nf-geo-city"), country = request.headers.get("x-nf-geo-country");
313
+ if (city)
314
+ geo.city = city;
315
+ if (country)
316
+ geo.countryCode = country;
317
+ return Object.keys(geo).length > 0 ? geo : void 0;
318
+ }
319
+ return;
320
+ }
321
+ function applyCorsHeaders(response, config, origin) {
322
+ const headers = new Headers(response.headers);
323
+ if (config.origins === "*")
324
+ headers.set("Access-Control-Allow-Origin", "*");
325
+ else if (config.origins && origin && config.origins.includes(origin)) {
326
+ headers.set("Access-Control-Allow-Origin", origin);
327
+ headers.set("Vary", "Origin");
328
+ }
329
+ if (config.methods)
330
+ headers.set("Access-Control-Allow-Methods", config.methods.join(", "));
331
+ if (config.headers)
332
+ headers.set("Access-Control-Allow-Headers", config.headers.join(", "));
333
+ if (config.exposeHeaders)
334
+ headers.set("Access-Control-Expose-Headers", config.exposeHeaders.join(", "));
335
+ if (config.credentials)
336
+ headers.set("Access-Control-Allow-Credentials", "true");
337
+ if (config.maxAge)
338
+ headers.set("Access-Control-Max-Age", String(config.maxAge));
339
+ return new Response(response.body, {
340
+ status: response.status,
341
+ statusText: response.statusText,
342
+ headers
343
+ });
344
+ }
345
+ export function createEdgeHandler(config) {
346
+ const runtime = detectRuntime();
347
+ return async (request, platformContext) => {
348
+ const startTime = performance.now(), requestId = generateRequestId(), context = {
349
+ runtime,
350
+ platform: platformContext || {},
351
+ requestId,
352
+ geo: extractGeoInfo(request, runtime),
353
+ timing: {
354
+ start: startTime,
355
+ getElapsed: () => performance.now() - startTime
356
+ },
357
+ kv: createKVNamespace(platformContext?.KV),
358
+ cache: createEdgeCache(),
359
+ env: createEnvAccessor(platformContext?.env)
360
+ };
361
+ try {
362
+ if (request.method === "OPTIONS" && config.cors) {
363
+ let response = new Response(null, { status: 204 });
364
+ response = applyCorsHeaders(response, config.cors, request.headers.get("Origin") || void 0);
365
+ return response;
366
+ }
367
+ if (config.cache?.enabled && request.method === "GET" && context.cache) {
368
+ if (shouldCacheRequest(request, config.cache)) {
369
+ const cached = await context.cache.match(request);
370
+ if (cached) {
371
+ const response = new Response(cached.body, cached);
372
+ response.headers.set("X-Cache", "HIT");
373
+ response.headers.set("X-Request-Id", requestId);
374
+ return config.cors ? applyCorsHeaders(response, config.cors, request.headers.get("Origin") || void 0) : response;
375
+ }
376
+ }
377
+ }
378
+ let response;
379
+ if (config.middleware && config.middleware.length > 0)
380
+ response = await executeMiddleware(request, context, config.middleware, async () => {
381
+ const result = await config.render(request, context);
382
+ return typeof result === "string" ? new Response(result, { headers: { "Content-Type": "text/html; charset=utf-8" } }) : result;
383
+ });
384
+ else {
385
+ const result = await config.render(request, context);
386
+ response = typeof result === "string" ? new Response(result, { headers: { "Content-Type": "text/html; charset=utf-8" } }) : result;
387
+ }
388
+ response.headers.set("X-Request-Id", requestId);
389
+ response.headers.set("X-Response-Time", `${context.timing.getElapsed().toFixed(2)}ms`);
390
+ if (config.cache?.enabled && request.method === "GET" && context.cache) {
391
+ if (shouldCacheRequest(request, config.cache) && response.status === 200) {
392
+ const ttl = config.cache.ttl || 60, cacheResponse = response.clone();
393
+ cacheResponse.headers.set("Cache-Control", `public, max-age=${ttl}`);
394
+ await context.cache.put(request, cacheResponse);
395
+ response.headers.set("X-Cache", "MISS");
396
+ }
397
+ }
398
+ if (config.cors)
399
+ response = applyCorsHeaders(response, config.cors, request.headers.get("Origin") || void 0);
400
+ return response;
401
+ } catch (error) {
402
+ const err = error instanceof Error ? error : Error(String(error));
403
+ if (config.onError)
404
+ return config.onError(err, request);
405
+ return new Response(`Internal Server Error: ${err.message}`, {
406
+ status: 500,
407
+ headers: {
408
+ "Content-Type": "text/plain",
409
+ "X-Request-Id": requestId
410
+ }
411
+ });
412
+ }
413
+ };
414
+ }
415
+ function shouldCacheRequest(request, config) {
416
+ const path = new URL(request.url).pathname;
417
+ if (config.excludePaths) {
418
+ for (const pattern of config.excludePaths)
419
+ if (pattern.test(path))
420
+ return !1;
421
+ }
422
+ if (config.includePaths) {
423
+ for (const pattern of config.includePaths)
424
+ if (pattern.test(path))
425
+ return !0;
426
+ return !1;
427
+ }
428
+ return !0;
429
+ }
430
+ async function executeMiddleware(request, context, middleware, final) {
431
+ let index = 0;
432
+ const next = async () => {
433
+ if (index >= middleware.length)
434
+ return final();
435
+ const mw = middleware[index];
436
+ index++;
437
+ return mw(request, context, next);
438
+ };
439
+ return next();
440
+ }
441
+ export function createStreamingResponse(stream, options) {
442
+ const headers = new Headers(options?.headers);
443
+ headers.set("Content-Type", "text/html; charset=utf-8");
444
+ headers.set("Transfer-Encoding", "chunked");
445
+ return new Response(stream, {
446
+ ...options,
447
+ headers
448
+ });
449
+ }
450
+ export function createTextEncoderStream() {
451
+ const encoder = new TextEncoder;
452
+ return new TransformStream({
453
+ transform(chunk, controller) {
454
+ controller.enqueue(encoder.encode(chunk));
455
+ }
456
+ });
457
+ }
458
+ export function stringToStream(strings) {
459
+ const encoder = new TextEncoder;
460
+ return new ReadableStream({
461
+ async start(controller) {
462
+ for await (const str of strings)
463
+ controller.enqueue(encoder.encode(str));
464
+ controller.close();
465
+ }
466
+ });
467
+ }
468
+ export function createCloudflareHandler(config) {
469
+ const handler = createEdgeHandler(config);
470
+ return {
471
+ async fetch(request, env, ctx) {
472
+ return handler(request, { env, ctx, KV: env.KV });
473
+ }
474
+ };
475
+ }
476
+ export function createDenoHandler(config) {
477
+ const handler = createEdgeHandler(config);
478
+ return (request) => handler(request, {});
479
+ }
480
+ export function createVercelHandler(config) {
481
+ const handler = createEdgeHandler(config);
482
+ return (request) => handler(request, {});
483
+ }
484
+ export function createNetlifyHandler(config) {
485
+ const handler = createEdgeHandler(config);
486
+ return (request, context) => {
487
+ return handler(request, { netlifyContext: context });
488
+ };
489
+ }
490
+ export function parseCookies(request) {
491
+ const cookieHeader = request.headers.get("Cookie");
492
+ if (!cookieHeader)
493
+ return {};
494
+ const cookies = {};
495
+ for (const pair of cookieHeader.split(";")) {
496
+ const [key, value] = pair.split("=").map((s) => s.trim());
497
+ if (key && value)
498
+ cookies[key] = decodeURIComponent(value);
499
+ }
500
+ return cookies;
501
+ }
502
+ export function createCookie(name, value, options) {
503
+ let cookie = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;
504
+ if (options?.maxAge !== void 0)
505
+ cookie += `; Max-Age=${options.maxAge}`;
506
+ if (options?.expires)
507
+ cookie += `; Expires=${options.expires.toUTCString()}`;
508
+ if (options?.path)
509
+ cookie += `; Path=${options.path}`;
510
+ if (options?.domain)
511
+ cookie += `; Domain=${options.domain}`;
512
+ if (options?.secure)
513
+ cookie += "; Secure";
514
+ if (options?.httpOnly)
515
+ cookie += "; HttpOnly";
516
+ if (options?.sameSite)
517
+ cookie += `; SameSite=${options.sameSite}`;
518
+ return cookie;
519
+ }
520
+ export function jsonResponse(data, init) {
521
+ const headers = new Headers(init?.headers);
522
+ headers.set("Content-Type", "application/json; charset=utf-8");
523
+ return new Response(JSON.stringify(data), {
524
+ ...init,
525
+ headers
526
+ });
527
+ }
528
+ export function redirect(url, status = 302) {
529
+ return new Response(null, {
530
+ status,
531
+ headers: { Location: url }
532
+ });
533
+ }
534
+ export function notFound(message = "Not Found") {
535
+ return new Response(message, {
536
+ status: 404,
537
+ headers: { "Content-Type": "text/plain" }
538
+ });
539
+ }
package/dist/env.js CHANGED
@@ -1,2 +1,9 @@
1
- // @bun
2
- import{Ky as a,Ly as b,My as c}from"./chunk-fch9tk1k.js";import"./chunk-3jm3snz8.js";export{c as isTest,a as isProduction,b as isDevelopment};
1
+ export function isProduction() {
2
+ return !1;
3
+ }
4
+ export function isDevelopment() {
5
+ return !isProduction() || process.env.STX_DEBUG === "true";
6
+ }
7
+ export function isTest() {
8
+ return !1;
9
+ }
@@ -1,17 +1,45 @@
1
- // @bun
2
- import"./chunk-3jm3snz8.js";var N=0;function P(){return`eb-${++N}-${Date.now().toString(36)}`}function W(q,z={},A){let j=/@errorBoundary(?:\s*\(([^)]*)\))?\s*([\s\S]*?)@fallback\s*([\s\S]*?)@enderrorBoundary/gi;return q.replace(j,(D,F,J,K)=>{let L=P(),M=Q(F||"");return T(L,J.trim(),K.trim(),M)})}function Q(q){let z={},A=/(\w+)\s*:\s*(?:'([^']*)'|"([^"]*)"|(\w+))/g,j;while((j=A.exec(q))!==null){let D=j[1],F=j[2]||j[3]||j[4];switch(D){case"id":z.id=F;break;case"logErrors":z.logErrors=F==="true";break}}return z}function T(q,z,A,j){let D=j.logErrors!==!1;return`
3
- <div class="stx-error-boundary" data-boundary-id="${q}" data-has-error="false">
4
- <div class="stx-error-boundary-content" data-boundary-content="${q}">
5
- ${z}
1
+ let boundaryIdCounter = 0;
2
+ function generateBoundaryId() {
3
+ return `eb-${++boundaryIdCounter}-${Date.now().toString(36)}`;
4
+ }
5
+ export function processErrorBoundaryDirectives(template, context = {}, _filePath) {
6
+ const boundaryRegex = /@errorBoundary(?:\s*\(([^)]*)\))?\s*([\s\S]*?)@fallback\s*([\s\S]*?)@enderrorBoundary/gi;
7
+ return template.replace(boundaryRegex, (_match, optionsStr, content, fallback) => {
8
+ const boundaryId = generateBoundaryId(), options = parseErrorBoundaryOptions(optionsStr || "");
9
+ return generateErrorBoundaryHtml(boundaryId, content.trim(), fallback.trim(), options);
10
+ });
11
+ }
12
+ function parseErrorBoundaryOptions(optionsStr) {
13
+ const options = {}, keyValueRegex = /(\w+)\s*:\s*(?:'([^']*)'|"([^"]*)"|(\w+))/g;
14
+ let match;
15
+ while ((match = keyValueRegex.exec(optionsStr)) !== null) {
16
+ const key = match[1], value = match[2] || match[3] || match[4];
17
+ switch (key) {
18
+ case "id":
19
+ options.id = value;
20
+ break;
21
+ case "logErrors":
22
+ options.logErrors = value === "true";
23
+ break;
24
+ }
25
+ }
26
+ return options;
27
+ }
28
+ function generateErrorBoundaryHtml(boundaryId, content, fallback, options) {
29
+ const logErrors = options.logErrors !== !1;
30
+ return `
31
+ <div class="stx-error-boundary" data-boundary-id="${boundaryId}" data-has-error="false">
32
+ <div class="stx-error-boundary-content" data-boundary-content="${boundaryId}">
33
+ ${content}
6
34
  </div>
7
- <div class="stx-error-boundary-fallback" data-boundary-fallback="${q}" style="display: none;">
8
- ${A}
35
+ <div class="stx-error-boundary-fallback" data-boundary-fallback="${boundaryId}" style="display: none;">
36
+ ${fallback}
9
37
  </div>
10
38
  </div>
11
39
  <script>
12
40
  (function() {
13
- const boundaryId = '${q}';
14
- const logErrors = ${D};
41
+ const boundaryId = '${boundaryId}';
42
+ const logErrors = ${logErrors};
15
43
  const boundary = document.querySelector('[data-boundary-id="' + boundaryId + '"]');
16
44
  const contentEl = document.querySelector('[data-boundary-content="' + boundaryId + '"]');
17
45
  const fallbackEl = document.querySelector('[data-boundary-fallback="' + boundaryId + '"]');
@@ -119,7 +147,25 @@ import"./chunk-3jm3snz8.js";var N=0;function P(){return`eb-${++N}-${Date.now().t
119
147
  };
120
148
  })();
121
149
  </script>
122
- `}async function U(q,z,A){try{return await q()}catch(j){if(A)A(j instanceof Error?j:Error(String(j)));else console.error("[stx:errorBoundary] SSR Error:",j);return z}}function X(q,z={}){let A=z.onError?(j)=>z.onError(j,{timestamp:Date.now(),boundaryId:"ssr"}):void 0;return(j)=>U(j,q,A)}function Y(){return`
150
+ `;
151
+ }
152
+ export async function withErrorBoundary(render, fallback, onError) {
153
+ try {
154
+ return await render();
155
+ } catch (error) {
156
+ if (onError)
157
+ onError(error instanceof Error ? error : Error(String(error)));
158
+ else
159
+ console.error("[stx:errorBoundary] SSR Error:", error);
160
+ return fallback;
161
+ }
162
+ }
163
+ export function createErrorBoundary(fallback, options = {}) {
164
+ const onError = options.onError ? (error) => options.onError(error, { timestamp: Date.now(), boundaryId: "ssr" }) : void 0;
165
+ return (render) => withErrorBoundary(render, fallback, onError);
166
+ }
167
+ export function generateErrorBoundaryCSS() {
168
+ return `
123
169
  /* STX Error Boundary Styles */
124
170
  .stx-error-boundary {
125
171
  position: relative;
@@ -163,7 +209,10 @@ import"./chunk-3jm3snz8.js";var N=0;function P(){return`eb-${++N}-${Date.now().t
163
209
  color: #fecaca;
164
210
  }
165
211
  }
166
- `}function Z(){return`
212
+ `;
213
+ }
214
+ export function generateErrorBoundaryRuntime() {
215
+ return `
167
216
  // STX Error Boundary Runtime
168
217
  (function() {
169
218
  if (typeof window === 'undefined') return;
@@ -228,4 +277,5 @@ import"./chunk-3jm3snz8.js";var N=0;function P(){return`eb-${++N}-${Date.now().t
228
277
 
229
278
  console.log('[stx] Error boundary runtime initialized');
230
279
  })();
231
- `}export{U as withErrorBoundary,W as processErrorBoundaryDirectives,Z as generateErrorBoundaryRuntime,Y as generateErrorBoundaryCSS,X as createErrorBoundary};
280
+ `;
281
+ }
@@ -1,2 +1 @@
1
- // @bun
2
- import"./chunk-1zgsgk4b.js";import{ky as C,ly as D,my as E,ny as F,oy as G,py as H}from"./chunk-48cw2nde.js";import{qy as s,ry as t,sy as u,ty as v,uy as w,vy as x}from"./chunk-jjvp4t5w.js";import{wy as y,xy as z,yy as A,zy as B}from"./chunk-94g3cahw.js";import{Ay as i,By as j,Cy as k,Dy as l,Ey as m,Fy as n,Gy as o,Hy as p,Iy as q,Jy as r}from"./chunk-ht4j68cs.js";import"./chunk-fch9tk1k.js";import{Ny as a,Oy as b,Py as c,Qy as d,Ry as e,Sy as f,Ty as g,Uy as h}from"./chunk-cz25azze.js";import"./chunk-3jm3snz8.js";export{H as validators,a as setErrorLocale,G as sanitizeFilePath,F as sanitizeExpression,E as sanitizeDirectiveParams,D as sanitizeDirectiveParam,C as sanitizeComponentProps,x as safeExecuteAsync,w as safeExecute,k as resetErrorConfig,c as registerErrorMessages,t as inlineError,e as getErrorMessage,b as getErrorLocale,j as getErrorConfig,h as getErrorCodeName,f as formatLocalizedError,l as formatFilePath,s as formatError,y as errorRecovery,A as errorLogger,B as devHelpers,v as createEnhancedError,u as consoleError,i as configureErrorHandling,d as clearErrorMessages,r as StxValidationError,n as StxSyntaxError,p as StxSecurityError,o as StxRuntimeError,q as StxFileError,m as StxError,z as ErrorLogger,g as ErrorCodes};
1
+ export * from "./errors/index.js";