@stacksjs/stx 0.2.95 → 0.2.97

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 (612) 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 -2
  109. package/dist/dev-server/serve-file.js +439 -2
  110. package/dist/dev-server/serve-markdown.js +281 -2
  111. package/dist/dev-server/serve-multi.js +579 -2
  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 +5 -6
  357. package/dist/chunk-04n64bnt.js +0 -5
  358. package/dist/chunk-06w68hyg.js +0 -7
  359. package/dist/chunk-07y6m5xx.js +0 -3
  360. package/dist/chunk-095s3972.js +0 -99
  361. package/dist/chunk-09k66d8a.js +0 -3
  362. package/dist/chunk-0a61y94n.js +0 -24
  363. package/dist/chunk-0b9w2w1y.js +0 -1
  364. package/dist/chunk-0dx4q6yq.js +0 -3
  365. package/dist/chunk-0dz85jrp.js +0 -3
  366. package/dist/chunk-0jd0pndq.js +0 -3
  367. package/dist/chunk-0p0nyq50.js +0 -6
  368. package/dist/chunk-0p1h3p3w.js +0 -3
  369. package/dist/chunk-0qakwen3.js +0 -1
  370. package/dist/chunk-0qnz93q2.js +0 -3
  371. package/dist/chunk-10debkj5.js +0 -71
  372. package/dist/chunk-15nesxgt.js +0 -5224
  373. package/dist/chunk-1sr54zp8.js +0 -3
  374. package/dist/chunk-1v49fwr5.js +0 -3
  375. package/dist/chunk-1xz0w746.js +0 -1539
  376. package/dist/chunk-1z5nhbjt.js +0 -90
  377. package/dist/chunk-1zgsgk4b.js +0 -1
  378. package/dist/chunk-20swzkx3.js +0 -216
  379. package/dist/chunk-27zsyhrd.js +0 -4
  380. package/dist/chunk-29y0hk5z.js +0 -3
  381. package/dist/chunk-2cdvw21b.js +0 -274
  382. package/dist/chunk-2j21d3ka.js +0 -161
  383. package/dist/chunk-2jxbwnkz.js +0 -2
  384. package/dist/chunk-31dr4bys.js +0 -6
  385. package/dist/chunk-35faj94w.js +0 -15
  386. package/dist/chunk-39gm08bn.js +0 -39
  387. package/dist/chunk-3a4qsygv.js +0 -51
  388. package/dist/chunk-3te20hqw.js +0 -3
  389. package/dist/chunk-43t7faps.js +0 -24
  390. package/dist/chunk-44hd3kab.js +0 -1
  391. package/dist/chunk-47kpewks.js +0 -71
  392. package/dist/chunk-4aj7ftqb.js +0 -1
  393. package/dist/chunk-4d2y57k7.js +0 -3
  394. package/dist/chunk-4deg33rw.js +0 -57
  395. package/dist/chunk-4k7d8p8d.js +0 -188
  396. package/dist/chunk-4qcy5tx6.js +0 -53
  397. package/dist/chunk-4x7kae4j.js +0 -3
  398. package/dist/chunk-55nwdnsd.js +0 -3
  399. package/dist/chunk-55yp0q8t.js +0 -201
  400. package/dist/chunk-5f43yz6z.js +0 -12
  401. package/dist/chunk-5shey2e4.js +0 -3
  402. package/dist/chunk-6b5k6w2q.js +0 -7
  403. package/dist/chunk-6djzdes9.js +0 -14
  404. package/dist/chunk-6e4c6g46.js +0 -3
  405. package/dist/chunk-6eqbxcrd.js +0 -8
  406. package/dist/chunk-7074g241.js +0 -3
  407. package/dist/chunk-7b6s3g65.js +0 -179
  408. package/dist/chunk-7cgmq685.js +0 -33
  409. package/dist/chunk-7dkz6z2s.js +0 -3
  410. package/dist/chunk-7ed3tean.js +0 -3
  411. package/dist/chunk-7gd339hd.js +0 -109
  412. package/dist/chunk-7j5e8sdj.js +0 -3
  413. package/dist/chunk-7n8g0nfn.js +0 -38
  414. package/dist/chunk-7sqdeqsw.js +0 -1
  415. package/dist/chunk-80g54ncj.js +0 -3
  416. package/dist/chunk-8a5bxece.js +0 -4
  417. package/dist/chunk-8ahwt6a4.js +0 -721
  418. package/dist/chunk-8b3z0zd5.js +0 -8
  419. package/dist/chunk-8dhdpa5h.js +0 -4
  420. package/dist/chunk-8n9nnqr6.js +0 -3
  421. package/dist/chunk-8qc1bsym.js +0 -3
  422. package/dist/chunk-8va64c9n.js +0 -3
  423. package/dist/chunk-8vtm0m84.js +0 -3
  424. package/dist/chunk-8xj7c3mf.js +0 -8
  425. package/dist/chunk-988dw6q3.js +0 -9
  426. package/dist/chunk-9b6cec0v.js +0 -321
  427. package/dist/chunk-9cf97f9p.js +0 -3
  428. package/dist/chunk-9ecv8aqj.js +0 -14
  429. package/dist/chunk-9eq3ht5f.js +0 -8
  430. package/dist/chunk-9jtj77jx.js +0 -3
  431. package/dist/chunk-9t14se2t.js +0 -83
  432. package/dist/chunk-9wmq2272.js +0 -3
  433. package/dist/chunk-9zbk5zx5.js +0 -57
  434. package/dist/chunk-a2g2qb2y.js +0 -386
  435. package/dist/chunk-a3hyn4we.js +0 -79
  436. package/dist/chunk-a87qqft6.js +0 -194
  437. package/dist/chunk-ah88wzbg.js +0 -10
  438. package/dist/chunk-akf1r75r.js +0 -102
  439. package/dist/chunk-amaa1bev.js +0 -2
  440. package/dist/chunk-avx8aydt.js +0 -3
  441. package/dist/chunk-ay9qf4zj.js +0 -6
  442. package/dist/chunk-aywxfqev.js +0 -3
  443. package/dist/chunk-azkegjd8.js +0 -61
  444. package/dist/chunk-b77wjyn7.js +0 -84
  445. package/dist/chunk-baf1hfwh.js +0 -231
  446. package/dist/chunk-bdk6g1vj.js +0 -3
  447. package/dist/chunk-bhqgmyqw.js +0 -36
  448. package/dist/chunk-bk3j0n82.js +0 -341
  449. package/dist/chunk-bndmdahk.js +0 -3
  450. package/dist/chunk-bpgg59wa.js +0 -3
  451. package/dist/chunk-bs3gmfxz.js +0 -5
  452. package/dist/chunk-bxc7kjsk.js +0 -32
  453. package/dist/chunk-c7jg8w13.js +0 -3
  454. package/dist/chunk-ckxjqqn9.js +0 -3
  455. package/dist/chunk-cn8az1b4.js +0 -1
  456. package/dist/chunk-d0zjtdw4.js +0 -29
  457. package/dist/chunk-d1qh1x2g.js +0 -3
  458. package/dist/chunk-djddhmcc.js +0 -60
  459. package/dist/chunk-dqn9gyhb.js +0 -21
  460. package/dist/chunk-drjq2zwg.js +0 -3
  461. package/dist/chunk-dvfs1h3c.js +0 -117
  462. package/dist/chunk-e2q9c5vq.js +0 -8
  463. package/dist/chunk-e98v1bc6.js +0 -12
  464. package/dist/chunk-ejayeex8.js +0 -2
  465. package/dist/chunk-ejh8fyak.js +0 -3
  466. package/dist/chunk-ek2w6zvy.js +0 -4
  467. package/dist/chunk-ewa88139.js +0 -6
  468. package/dist/chunk-fjk3x41y.js +0 -3
  469. package/dist/chunk-frg705zq.js +0 -302
  470. package/dist/chunk-fzm3y0r3.js +0 -267
  471. package/dist/chunk-g1vt329s.js +0 -21
  472. package/dist/chunk-g4ps1dj8.js +0 -140
  473. package/dist/chunk-gkzq8zw4.js +0 -23
  474. package/dist/chunk-gz5fmp3q.js +0 -3
  475. package/dist/chunk-h0hjy0kn.js +0 -292
  476. package/dist/chunk-h5jxydqq.js +0 -147
  477. package/dist/chunk-h5wa62ek.js +0 -145
  478. package/dist/chunk-h7aq56qj.js +0 -28
  479. package/dist/chunk-h82kjdr4.js +0 -83
  480. package/dist/chunk-hbehnm18.js +0 -3
  481. package/dist/chunk-hbgxbgam.js +0 -58
  482. package/dist/chunk-hc2mf5h6.js +0 -4
  483. package/dist/chunk-hjm2xab3.js +0 -3
  484. package/dist/chunk-hjv76kcw.js +0 -1
  485. package/dist/chunk-hrnnh4tq.js +0 -142
  486. package/dist/chunk-ht43ds42.js +0 -236
  487. package/dist/chunk-hxx3za24.js +0 -62
  488. package/dist/chunk-hy8820vc.js +0 -6
  489. package/dist/chunk-j447q024.js +0 -28
  490. package/dist/chunk-j58vh0w6.js +0 -314
  491. package/dist/chunk-j8tn8enq.js +0 -3
  492. package/dist/chunk-jc0fc4ht.js +0 -11
  493. package/dist/chunk-jcs0ymw7.js +0 -3
  494. package/dist/chunk-jjamhxpm.js +0 -139
  495. package/dist/chunk-jjb05d21.js +0 -3
  496. package/dist/chunk-jjdq01dv.js +0 -128
  497. package/dist/chunk-jnmgm2xw.js +0 -5
  498. package/dist/chunk-jpndqst5.js +0 -3
  499. package/dist/chunk-jt0ezawy.js +0 -351
  500. package/dist/chunk-jz73j3qs.js +0 -169
  501. package/dist/chunk-k21df0pg.js +0 -10
  502. package/dist/chunk-k848dzsa.js +0 -429
  503. package/dist/chunk-kdfe4t91.js +0 -3
  504. package/dist/chunk-keawsbpn.js +0 -5
  505. package/dist/chunk-kgym7ch9.js +0 -8
  506. package/dist/chunk-khdn7jwe.js +0 -3
  507. package/dist/chunk-km25cwz6.js +0 -3
  508. package/dist/chunk-knm8a8yx.js +0 -398
  509. package/dist/chunk-krqn0ddk.js +0 -3
  510. package/dist/chunk-ktkmvaa8.js +0 -1
  511. package/dist/chunk-kx6eb6ma.js +0 -4
  512. package/dist/chunk-kypas8vy.js +0 -4
  513. package/dist/chunk-m167kjhv.js +0 -4
  514. package/dist/chunk-m491r0rj.js +0 -358
  515. package/dist/chunk-m8448qby.js +0 -11
  516. package/dist/chunk-mgj88zeq.js +0 -64
  517. package/dist/chunk-mhgk632d.js +0 -3
  518. package/dist/chunk-mv4fb50w.js +0 -1
  519. package/dist/chunk-n5kg7fpx.js +0 -7
  520. package/dist/chunk-n98x35xd.js +0 -8
  521. package/dist/chunk-n9dhs1dw.js +0 -106
  522. package/dist/chunk-nd9rmddh.js +0 -6
  523. package/dist/chunk-ngxfwzq3.js +0 -3
  524. package/dist/chunk-nhv099jv.js +0 -19
  525. package/dist/chunk-nm15ccsg.js +0 -5
  526. package/dist/chunk-npfmdb6y.js +0 -71
  527. package/dist/chunk-nvwb4x04.js +0 -3
  528. package/dist/chunk-nw34xajc.js +0 -8
  529. package/dist/chunk-p077sw22.js +0 -3
  530. package/dist/chunk-p1h8065h.js +0 -3
  531. package/dist/chunk-p3e0cqtt.js +0 -34
  532. package/dist/chunk-p3fpb79v.js +0 -477
  533. package/dist/chunk-p52yzjq6.js +0 -498
  534. package/dist/chunk-p73meypx.js +0 -134
  535. package/dist/chunk-pa9zb7ty.js +0 -4
  536. package/dist/chunk-payfb24w.js +0 -207
  537. package/dist/chunk-pcm1vd8w.js +0 -3
  538. package/dist/chunk-pcntd9h4.js +0 -3
  539. package/dist/chunk-pg1fvqb9.js +0 -167
  540. package/dist/chunk-psc3wfcf.js +0 -1115
  541. package/dist/chunk-pznnww6k.js +0 -6
  542. package/dist/chunk-q6zhd9yf.js +0 -3
  543. package/dist/chunk-qa59zejf.js +0 -246
  544. package/dist/chunk-qvrbjpdc.js +0 -3
  545. package/dist/chunk-qygvvygy.js +0 -12
  546. package/dist/chunk-r0jcmpv6.js +0 -68
  547. package/dist/chunk-r5m9xtm7.js +0 -3
  548. package/dist/chunk-rh80q1nd.js +0 -1
  549. package/dist/chunk-rkffm9sy.js +0 -128
  550. package/dist/chunk-rpx5fa65.js +0 -3
  551. package/dist/chunk-rqxf5hns.js +0 -3
  552. package/dist/chunk-rtr974rc.js +0 -30
  553. package/dist/chunk-rvptcndz.js +0 -3
  554. package/dist/chunk-rw26rpek.js +0 -171
  555. package/dist/chunk-rw7937v4.js +0 -19
  556. package/dist/chunk-rwrv9wbf.js +0 -3
  557. package/dist/chunk-rz2ec6g7.js +0 -347
  558. package/dist/chunk-s6ja2bdg.js +0 -66
  559. package/dist/chunk-scpkdrdb.js +0 -4
  560. package/dist/chunk-shv88d2d.js +0 -10
  561. package/dist/chunk-t0c9wvpr.js +0 -3
  562. package/dist/chunk-tffh3b1e.js +0 -35
  563. package/dist/chunk-tg2f1mzq.js +0 -11
  564. package/dist/chunk-trfswy66.js +0 -77
  565. package/dist/chunk-tzwtg722.js +0 -3
  566. package/dist/chunk-v7f8jj15.js +0 -4
  567. package/dist/chunk-v8j49spx.js +0 -3
  568. package/dist/chunk-v97390pe.js +0 -1
  569. package/dist/chunk-vcr5pzpx.js +0 -233
  570. package/dist/chunk-veeerpwa.js +0 -3
  571. package/dist/chunk-vg5kt6az.js +0 -4
  572. package/dist/chunk-vgv7jvyz.js +0 -219
  573. package/dist/chunk-vjbefncc.js +0 -3
  574. package/dist/chunk-vmxjghsm.js +0 -3
  575. package/dist/chunk-vw7vqd76.js +0 -3
  576. package/dist/chunk-vx22he47.js +0 -1
  577. package/dist/chunk-w3b6m427.js +0 -45
  578. package/dist/chunk-wazkqv7n.js +0 -3
  579. package/dist/chunk-wf7zrjsw.js +0 -138
  580. package/dist/chunk-wfg2gm11.js +0 -3
  581. package/dist/chunk-wg9k6h8w.js +0 -12
  582. package/dist/chunk-wkz2vwkr.js +0 -81
  583. package/dist/chunk-wvef3ngh.js +0 -127
  584. package/dist/chunk-wvf31nzs.js +0 -3
  585. package/dist/chunk-x05nxhyv.js +0 -262
  586. package/dist/chunk-x0770gt9.js +0 -4
  587. package/dist/chunk-x24s4heg.js +0 -1166
  588. package/dist/chunk-x3r64r0c.js +0 -6
  589. package/dist/chunk-x5g9w4hh.js +0 -5
  590. package/dist/chunk-xgkv66q5.js +0 -2230
  591. package/dist/chunk-xqq1vxb6.js +0 -1
  592. package/dist/chunk-xs03kc1h.js +0 -196
  593. package/dist/chunk-xv34zbp4.js +0 -3
  594. package/dist/chunk-xw36p73h.js +0 -90
  595. package/dist/chunk-xyg1r5w0.js +0 -4
  596. package/dist/chunk-xys2sxh6.js +0 -16
  597. package/dist/chunk-y0qg6rrv.js +0 -3
  598. package/dist/chunk-y1k17c8b.js +0 -21
  599. package/dist/chunk-y5xz0jc4.js +0 -141
  600. package/dist/chunk-y6xsqe9a.js +0 -10
  601. package/dist/chunk-yb1t2h8h.js +0 -11
  602. package/dist/chunk-ygvyc6wv.js +0 -90
  603. package/dist/chunk-yj4x5ehw.js +0 -21
  604. package/dist/chunk-yn38c15w.js +0 -4
  605. package/dist/chunk-ynhngsdh.js +0 -3
  606. package/dist/chunk-yrsb6j3z.js +0 -3
  607. package/dist/chunk-yywfvfph.js +0 -2
  608. package/dist/chunk-zcxzdrn7.js +0 -5
  609. package/dist/chunk-zen6ax1y.js +0 -27
  610. package/dist/chunk-zf2pek72.js +0 -3
  611. package/dist/chunk-zk3d0jjf.js +0 -7
  612. package/dist/chunk-zy3rp1ab.js +0 -93
@@ -1,2 +1,539 @@
1
- // @bun
2
- import{An as i,Bn as j,Cn as k,Dn as l,En as m,Fn as n,Gn as o,Hn as p,In as q,Jn as r,Kn as s,sn as a,tn as b,un as c,vn as d,wn as e,xn as f,yn as g,zn as h}from"./chunk-09k66d8a.js";import"./chunk-xv34zbp4.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{Iy as a,Jy as b,Ky as c}from"./chunk-5shey2e4.js";import"./chunk-xv34zbp4.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-xv34zbp4.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-xv34zbp4.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-xv34zbp4.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-xv34zbp4.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{iy as C,jy as D,ky as E,ly as F,my as G,ny as H}from"./chunk-2jxbwnkz.js";import{oy as s,py as t,qy as u,ry as v,sy as w,ty as x}from"./chunk-zen6ax1y.js";import{uy as y,vy as z,wy as A,xy as B}from"./chunk-yb1t2h8h.js";import{Ay as k,By as l,Cy as m,Dy as n,Ey as o,Fy as p,Gy as q,Hy as r,yy as i,zy as j}from"./chunk-fjk3x41y.js";import"./chunk-5shey2e4.js";import{Ly as a,My as b,Ny as c,Oy as d,Py as e,Qy as f,Ry as g,Sy as h}from"./chunk-27zsyhrd.js";import"./chunk-xv34zbp4.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";