@ohos-ports/stacksjs-stx 0.2.287-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +21 -0
- package/README.md +1042 -0
- package/dist/a11y.d.ts +256 -0
- package/dist/a11y.js +671 -0
- package/dist/analytics.d.ts +40 -0
- package/dist/analytics.js +159 -0
- package/dist/analyzer.d.ts +68 -0
- package/dist/analyzer.js +240 -0
- package/dist/animation.d.ts +123 -0
- package/dist/animation.js +688 -0
- package/dist/app-shell.d.ts +76 -0
- package/dist/app-shell.js +209 -0
- package/dist/app.d.ts +65 -0
- package/dist/app.js +79 -0
- package/dist/appearance-bootstrap.d.ts +54 -0
- package/dist/appearance-bootstrap.js +92 -0
- package/dist/asset-roots.d.ts +32 -0
- package/dist/asset-roots.js +7 -0
- package/dist/assets.d.ts +21 -0
- package/dist/assets.js +155 -0
- package/dist/ast.d.ts +265 -0
- package/dist/ast.js +630 -0
- package/dist/async-components.d.ts +123 -0
- package/dist/async-components.js +428 -0
- package/dist/auth.d.ts +13 -0
- package/dist/auth.js +12 -0
- package/dist/broadcasting.d.ts +77 -0
- package/dist/broadcasting.js +103 -0
- package/dist/browser-composables.d.ts +348 -0
- package/dist/browser-composables.js +606 -0
- package/dist/browser-core-imports.d.ts +12 -0
- package/dist/browser-core-imports.js +28 -0
- package/dist/build-assets.d.ts +32 -0
- package/dist/build-assets.js +29 -0
- package/dist/build-externalize-repeated.d.ts +34 -0
- package/dist/build-externalize-repeated.js +101 -0
- package/dist/build-externalize.d.ts +73 -0
- package/dist/build-externalize.js +80 -0
- package/dist/build-id.d.ts +57 -0
- package/dist/build-id.js +25 -0
- package/dist/build-message.d.ts +81 -0
- package/dist/build-message.js +65 -0
- package/dist/build-mode-detector.d.ts +26 -0
- package/dist/build-mode-detector.js +50 -0
- package/dist/build-optimizer.d.ts +101 -0
- package/dist/build-optimizer.js +433 -0
- package/dist/build-views.d.ts +56 -0
- package/dist/build-views.js +180 -0
- package/dist/build.d.ts +31 -0
- package/dist/build.js +34 -0
- package/dist/builtins/attrs.d.ts +49 -0
- package/dist/builtins/attrs.js +39 -0
- package/dist/builtins/drawer.d.ts +24 -0
- package/dist/builtins/drawer.js +37 -0
- package/dist/builtins/escape.d.ts +12 -0
- package/dist/builtins/escape.js +3 -0
- package/dist/builtins/icon.d.ts +45 -0
- package/dist/builtins/icon.js +100 -0
- package/dist/builtins/image-delivery.d.ts +16 -0
- package/dist/builtins/image-delivery.js +115 -0
- package/dist/builtins/image-placeholder.d.ts +78 -0
- package/dist/builtins/image-placeholder.js +137 -0
- package/dist/builtins/index.d.ts +26 -0
- package/dist/builtins/index.js +34 -0
- package/dist/builtins/modal.d.ts +26 -0
- package/dist/builtins/modal.js +38 -0
- package/dist/builtins/safe-image.d.ts +44 -0
- package/dist/builtins/safe-image.js +45 -0
- package/dist/builtins/stx-image.d.ts +29 -0
- package/dist/builtins/stx-image.js +222 -0
- package/dist/builtins/stx-link.d.ts +11 -0
- package/dist/builtins/stx-link.js +35 -0
- package/dist/builtins/stx-loading-indicator.d.ts +13 -0
- package/dist/builtins/stx-loading-indicator.js +35 -0
- package/dist/builtins/suspense.d.ts +30 -0
- package/dist/builtins/suspense.js +24 -0
- package/dist/builtins/toast.d.ts +19 -0
- package/dist/builtins/toast.js +42 -0
- package/dist/builtins/tooltip.d.ts +18 -0
- package/dist/builtins/tooltip.js +106 -0
- package/dist/builtins/transition-group.d.ts +27 -0
- package/dist/builtins/transition-group.js +22 -0
- package/dist/bun-shim.js +496 -0
- package/dist/bundle-analyzer/collector.d.ts +66 -0
- package/dist/bundle-analyzer/collector.js +233 -0
- package/dist/bundle-analyzer/index.d.ts +98 -0
- package/dist/bundle-analyzer/index.js +82 -0
- package/dist/bundle-analyzer/report.d.ts +39 -0
- package/dist/bundle-analyzer/report.js +318 -0
- package/dist/bundle-analyzer/treemap.d.ts +19 -0
- package/dist/bundle-analyzer/treemap.js +594 -0
- package/dist/bundle-analyzer.js +499 -0
- package/dist/caching.d.ts +69 -0
- package/dist/caching.js +135 -0
- package/dist/chunk-0y46fbkx.js +3 -0
- package/dist/chunk-122tyfre.js +2 -0
- package/dist/chunk-19nfvxfw.js +43 -0
- package/dist/chunk-1kah92n2.js +3 -0
- package/dist/chunk-1kms3b9d.js +2 -0
- package/dist/chunk-1q4y74mh.js +1194 -0
- package/dist/chunk-248e84r1.js +4 -0
- package/dist/chunk-24ps8kft.js +2 -0
- package/dist/chunk-2et5hxfv.js +2 -0
- package/dist/chunk-2r1rd8f0.js +2 -0
- package/dist/chunk-2tk1zkrz.js +2 -0
- package/dist/chunk-38ejahd9.js +3 -0
- package/dist/chunk-3zv4wz87.js +2 -0
- package/dist/chunk-4122k1bh.js +2 -0
- package/dist/chunk-45az9zht.js +2 -0
- package/dist/chunk-4qr85f07.js +2 -0
- package/dist/chunk-4ww3znrr.js +15 -0
- package/dist/chunk-54st8g2j.js +397 -0
- package/dist/chunk-58f0mthg.js +3 -0
- package/dist/chunk-5a19dhx5.js +2 -0
- package/dist/chunk-5kk8gsj2.js +3 -0
- package/dist/chunk-5w1e3yxs.js +499 -0
- package/dist/chunk-6gdycmxr.js +2 -0
- package/dist/chunk-6hmnaza7.js +4473 -0
- package/dist/chunk-71t0yan0.js +5 -0
- package/dist/chunk-74cv4ta1.js +3 -0
- package/dist/chunk-74v15e8z.js +2 -0
- package/dist/chunk-7b329e5v.js +3 -0
- package/dist/chunk-7q9mwh4v.js +84 -0
- package/dist/chunk-866y9d8b.js +8169 -0
- package/dist/chunk-8fwerspy.js +2 -0
- package/dist/chunk-8mjdpr94.js +147 -0
- package/dist/chunk-92mj1t26.js +60 -0
- package/dist/chunk-9b22663r.js +2 -0
- package/dist/chunk-9hjdgm4d.js +2 -0
- package/dist/chunk-9n0gvfrg.js +4 -0
- package/dist/chunk-9wr7zcad.js +18 -0
- package/dist/chunk-9y0g8kzt.js +358 -0
- package/dist/chunk-a0nfbmeh.js +3 -0
- package/dist/chunk-acn1b56m.js +1280 -0
- package/dist/chunk-awkq3xfx.js +2 -0
- package/dist/chunk-b6ej2fdf.js +1814 -0
- package/dist/chunk-b8rrnqry.js +2 -0
- package/dist/chunk-bfqfs07m.js +3022 -0
- package/dist/chunk-bs6kapy7.js +2 -0
- package/dist/chunk-btav940g.js +2 -0
- package/dist/chunk-bz820epz.js +3 -0
- package/dist/chunk-ccspd3mc.js +2 -0
- package/dist/chunk-csbgwaa5.js +2 -0
- package/dist/chunk-d8t4sjsp.js +2 -0
- package/dist/chunk-dap191q2.js +2 -0
- package/dist/chunk-de7fye10.js +4 -0
- package/dist/chunk-dgrt76d2.js +2 -0
- package/dist/chunk-dhh5q7qt.js +3 -0
- package/dist/chunk-dsffsqnt.js +2 -0
- package/dist/chunk-dtq7y5ym.js +2 -0
- package/dist/chunk-fed3xsp9.js +3 -0
- package/dist/chunk-ferav3bw.js +19 -0
- package/dist/chunk-fvhm8psm.js +3 -0
- package/dist/chunk-g4vpzv6b.js +2 -0
- package/dist/chunk-g9csmj0s.js +2 -0
- package/dist/chunk-gtcrpmz1.js +2 -0
- package/dist/chunk-h4xh8cms.js +4 -0
- package/dist/chunk-h8yqsz9m.js +2 -0
- package/dist/chunk-hcq5dw7a.js +2 -0
- package/dist/chunk-hm0xha6c.js +12 -0
- package/dist/chunk-hpybjwwf.js +8 -0
- package/dist/chunk-jegt35zh.js +2 -0
- package/dist/chunk-jr3jp3ev.js +8 -0
- package/dist/chunk-k56rjjc0.js +24 -0
- package/dist/chunk-kdh37tp8.js +194 -0
- package/dist/chunk-kxzb4et3.js +29 -0
- package/dist/chunk-mf4n3x1j.js +14 -0
- package/dist/chunk-mkd9kjgb.js +3 -0
- package/dist/chunk-mxfh1nxg.js +2 -0
- package/dist/chunk-n3ggrhb3.js +3 -0
- package/dist/chunk-nkb3scg6.js +8 -0
- package/dist/chunk-nnd4wq8j.js +231 -0
- package/dist/chunk-nsp1cw38.js +11 -0
- package/dist/chunk-nx5qkm8k.js +30 -0
- package/dist/chunk-p3242nck.js +2 -0
- package/dist/chunk-p98kfh94.js +2 -0
- package/dist/chunk-pkaabd8h.js +3 -0
- package/dist/chunk-pzm13sdc.js +3 -0
- package/dist/chunk-q4p5k2p3.js +2 -0
- package/dist/chunk-q9n5swx7.js +3 -0
- package/dist/chunk-qc1f74ek.js +3 -0
- package/dist/chunk-qpyjak7z.js +2 -0
- package/dist/chunk-qr82je1m.js +22 -0
- package/dist/chunk-qy73j6m4.js +288 -0
- package/dist/chunk-qzkhpsam.js +505 -0
- package/dist/chunk-r3ayvdz3.js +2 -0
- package/dist/chunk-r7r66978.js +2 -0
- package/dist/chunk-rbb7dvja.js +30 -0
- package/dist/chunk-refwkt87.js +71 -0
- package/dist/chunk-rj4kajww.js +2 -0
- package/dist/chunk-rp4rjjmf.js +2 -0
- package/dist/chunk-se0p17c2.js +898 -0
- package/dist/chunk-sj9pmene.js +2 -0
- package/dist/chunk-sscwkffs.js +2 -0
- package/dist/chunk-svpqxn2c.js +2 -0
- package/dist/chunk-t6nseeb9.js +351 -0
- package/dist/chunk-t8y1ggdy.js +2 -0
- package/dist/chunk-tndhnk9e.js +2 -0
- package/dist/chunk-v5e1gxwm.js +3 -0
- package/dist/chunk-vqxmxgaj.js +4 -0
- package/dist/chunk-vrrax298.js +2 -0
- package/dist/chunk-w3ycm4na.js +3 -0
- package/dist/chunk-wcm80anz.js +321 -0
- package/dist/chunk-wrzwgkbx.js +22 -0
- package/dist/chunk-x650vjcp.js +302 -0
- package/dist/chunk-xgnc1wy6.js +116 -0
- package/dist/chunk-xpp135ad.js +11 -0
- package/dist/chunk-xttsqmkm.js +216 -0
- package/dist/chunk-y11cxbxd.js +3757 -0
- package/dist/chunk-y7m2dpd3.js +341 -0
- package/dist/chunk-y98jsjqq.js +2 -0
- package/dist/chunk-ya386h70.js +2 -0
- package/dist/chunk-ydrz60kr.js +2 -0
- package/dist/chunk-ypmqf7tm.js +4 -0
- package/dist/chunk-z4jhj5e5.js +28 -0
- package/dist/chunk-zg75gjns.js +2 -0
- package/dist/chunk-zqqx1qaj.js +2 -0
- package/dist/cli-flags.d.ts +34 -0
- package/dist/cli-flags.js +20 -0
- package/dist/cli.js +174 -0
- package/dist/client/directive.d.ts +17 -0
- package/dist/client/directive.js +14 -0
- package/dist/client/index.d.ts +7 -0
- package/dist/client/index.js +2 -0
- package/dist/client-helpers.d.ts +317 -0
- package/dist/client-helpers.js +312 -0
- package/dist/client-script-bundler.d.ts +103 -0
- package/dist/client-script-bundler.js +390 -0
- package/dist/client-script.d.ts +215 -0
- package/dist/client-script.js +865 -0
- package/dist/client.d.ts +21 -0
- package/dist/client.js +73 -0
- package/dist/codemod.d.ts +33 -0
- package/dist/codemod.js +244 -0
- package/dist/color-mode-boot.d.ts +92 -0
- package/dist/color-mode-boot.js +72 -0
- package/dist/component-client-factories.d.ts +33 -0
- package/dist/component-client-factories.js +77 -0
- package/dist/component-hmr.d.ts +107 -0
- package/dist/component-hmr.js +585 -0
- package/dist/component-library.d.ts +38 -0
- package/dist/component-library.js +994 -0
- package/dist/component-processing.d.ts +198 -0
- package/dist/component-processing.js +677 -0
- package/dist/component-registry.d.ts +127 -0
- package/dist/component-registry.js +90 -0
- package/dist/component-renderer.d.ts +52 -0
- package/dist/component-renderer.js +790 -0
- package/dist/components/StxImage.stx +12 -0
- package/dist/components/StxLink.stx +18 -0
- package/dist/components.d.ts +28 -0
- package/dist/components.js +213 -0
- package/dist/composable-loader.d.ts +62 -0
- package/dist/composable-loader.js +190 -0
- package/dist/composables/index.d.ts +417 -0
- package/dist/composables/index.js +222 -0
- package/dist/composables/use-battery.d.ts +46 -0
- package/dist/composables/use-battery.js +101 -0
- package/dist/composables/use-broadcast-channel.d.ts +59 -0
- package/dist/composables/use-broadcast-channel.js +80 -0
- package/dist/composables/use-channel.d.ts +67 -0
- package/dist/composables/use-channel.js +124 -0
- package/dist/composables/use-clipboard.d.ts +30 -0
- package/dist/composables/use-clipboard.js +90 -0
- package/dist/composables/use-color-mode.d.ts +67 -0
- package/dist/composables/use-color-mode.js +152 -0
- package/dist/composables/use-cookie.d.ts +59 -0
- package/dist/composables/use-cookie.js +86 -0
- package/dist/composables/use-device-orientation.d.ts +116 -0
- package/dist/composables/use-device-orientation.js +181 -0
- package/dist/composables/use-event-listener.d.ts +35 -0
- package/dist/composables/use-event-listener.js +27 -0
- package/dist/composables/use-event-source.d.ts +90 -0
- package/dist/composables/use-event-source.js +166 -0
- package/dist/composables/use-eye-dropper.d.ts +117 -0
- package/dist/composables/use-eye-dropper.js +142 -0
- package/dist/composables/use-fetch.d.ts +59 -0
- package/dist/composables/use-fetch.js +273 -0
- package/dist/composables/use-form.d.ts +91 -0
- package/dist/composables/use-form.js +112 -0
- package/dist/composables/use-fullscreen.d.ts +47 -0
- package/dist/composables/use-fullscreen.js +110 -0
- package/dist/composables/use-geolocation.d.ts +62 -0
- package/dist/composables/use-geolocation.js +101 -0
- package/dist/composables/use-idle.d.ts +102 -0
- package/dist/composables/use-idle.js +182 -0
- package/dist/composables/use-intersection-observer.d.ts +83 -0
- package/dist/composables/use-intersection-observer.js +168 -0
- package/dist/composables/use-keyboard.d.ts +100 -0
- package/dist/composables/use-keyboard.js +224 -0
- package/dist/composables/use-media-query.d.ts +56 -0
- package/dist/composables/use-media-query.js +62 -0
- package/dist/composables/use-meta.d.ts +35 -0
- package/dist/composables/use-meta.js +48 -0
- package/dist/composables/use-mouse.d.ts +65 -0
- package/dist/composables/use-mouse.js +286 -0
- package/dist/composables/use-mutation-observer.d.ts +101 -0
- package/dist/composables/use-mutation-observer.js +129 -0
- package/dist/composables/use-network.d.ts +40 -0
- package/dist/composables/use-network.js +85 -0
- package/dist/composables/use-notification.d.ts +98 -0
- package/dist/composables/use-notification.js +94 -0
- package/dist/composables/use-permissions.d.ts +119 -0
- package/dist/composables/use-permissions.js +132 -0
- package/dist/composables/use-query.d.ts +48 -0
- package/dist/composables/use-query.js +0 -0
- package/dist/composables/use-resize-observer.d.ts +60 -0
- package/dist/composables/use-resize-observer.js +157 -0
- package/dist/composables/use-router.d.ts +80 -0
- package/dist/composables/use-router.js +105 -0
- package/dist/composables/use-scroll-lock.d.ts +13 -0
- package/dist/composables/use-scroll-lock.js +55 -0
- package/dist/composables/use-share.d.ts +74 -0
- package/dist/composables/use-share.js +104 -0
- package/dist/composables/use-speech.d.ts +117 -0
- package/dist/composables/use-speech.js +294 -0
- package/dist/composables/use-storage.d.ts +69 -0
- package/dist/composables/use-storage.js +196 -0
- package/dist/composables/use-text-selection.d.ts +121 -0
- package/dist/composables/use-text-selection.js +205 -0
- package/dist/composables/use-timer.d.ts +92 -0
- package/dist/composables/use-timer.js +193 -0
- package/dist/composables/use-utilities.d.ts +103 -0
- package/dist/composables/use-utilities.js +176 -0
- package/dist/composables/use-wake-lock.d.ts +85 -0
- package/dist/composables/use-wake-lock.js +122 -0
- package/dist/composables/use-websocket.d.ts +70 -0
- package/dist/composables/use-websocket.js +165 -0
- package/dist/composables/use-window.d.ts +84 -0
- package/dist/composables/use-window.js +163 -0
- package/dist/composables.d.ts +287 -0
- package/dist/composables.js +562 -0
- package/dist/composition-api.d.ts +197 -0
- package/dist/composition-api.js +199 -0
- package/dist/compression.d.ts +30 -0
- package/dist/compression.js +107 -0
- package/dist/computed.d.ts +138 -0
- package/dist/computed.js +382 -0
- package/dist/conditionals.d.ts +48 -0
- package/dist/conditionals.js +626 -0
- package/dist/config.d.ts +77 -0
- package/dist/config.js +828 -0
- package/dist/cookie-serialize.d.ts +40 -0
- package/dist/cookie-serialize.js +18 -0
- package/dist/craft-bridge.d.ts +525 -0
- package/dist/craft-bridge.js +511 -0
- package/dist/craft-compiler.d.ts +245 -0
- package/dist/craft-compiler.js +810 -0
- package/dist/craft-components.d.ts +739 -0
- package/dist/craft-components.js +1074 -0
- package/dist/craft-entry.d.ts +6 -0
- package/dist/craft-entry.js +9 -0
- package/dist/craft-ssr.d.ts +147 -0
- package/dist/craft-ssr.js +559 -0
- package/dist/craft.js +9 -0
- package/dist/csp.d.ts +295 -0
- package/dist/csp.js +220 -0
- package/dist/csrf.d.ts +38 -0
- package/dist/csrf.js +38 -0
- package/dist/custom-directives.d.ts +5 -0
- package/dist/custom-directives.js +136 -0
- package/dist/database.d.ts +391 -0
- package/dist/database.js +5 -0
- package/dist/defer.d.ts +28 -0
- package/dist/defer.js +156 -0
- package/dist/deploy/config-generators.d.ts +75 -0
- package/dist/deploy/config-generators.js +214 -0
- package/dist/deploy/index.d.ts +88 -0
- package/dist/deploy/index.js +203 -0
- package/dist/deploy/netlify.d.ts +109 -0
- package/dist/deploy/netlify.js +167 -0
- package/dist/desktop.d.ts +16 -0
- package/dist/desktop.js +1 -0
- package/dist/dev-server/index.d.ts +22 -0
- package/dist/dev-server/index.js +7 -0
- package/dist/dev-server/keyboard-shortcuts.d.ts +34 -0
- package/dist/dev-server/keyboard-shortcuts.js +81 -0
- package/dist/dev-server/native-window.d.ts +59 -0
- package/dist/dev-server/native-window.js +91 -0
- package/dist/dev-server/port-utils.d.ts +27 -0
- package/dist/dev-server/port-utils.js +40 -0
- package/dist/dev-server/serve-app.d.ts +15 -0
- package/dist/dev-server/serve-app.js +727 -0
- package/dist/dev-server/serve-file.d.ts +3 -0
- package/dist/dev-server/serve-file.js +443 -0
- package/dist/dev-server/serve-markdown.d.ts +3 -0
- package/dist/dev-server/serve-markdown.js +284 -0
- package/dist/dev-server/serve-multi.d.ts +5 -0
- package/dist/dev-server/serve-multi.js +596 -0
- package/dist/dev-server/terminal-colors.d.ts +56 -0
- package/dist/dev-server/terminal-colors.js +45 -0
- package/dist/dev-server/theme-selector.d.ts +32 -0
- package/dist/dev-server/theme-selector.js +111 -0
- package/dist/dev-server/ts-css.d.ts +108 -0
- package/dist/dev-server/ts-css.js +438 -0
- package/dist/dev-server/types.d.ts +99 -0
- package/dist/dev-server/types.js +43 -0
- package/dist/dev-server.d.ts +6 -0
- package/dist/dev-server.js +4 -0
- package/dist/devtools.d.ts +182 -0
- package/dist/devtools.js +593 -0
- package/dist/directive-api.d.ts +154 -0
- package/dist/directive-api.js +355 -0
- package/dist/docs.d.ts +56 -0
- package/dist/docs.js +567 -0
- package/dist/doctor.d.ts +29 -0
- package/dist/doctor.js +123 -0
- package/dist/document-shell.d.ts +218 -0
- package/dist/document-shell.js +338 -0
- package/dist/dynamic-components.d.ts +23 -0
- package/dist/dynamic-components.js +197 -0
- package/dist/edge-runtime.d.ts +193 -0
- package/dist/edge-runtime.js +525 -0
- package/dist/env.d.ts +3 -0
- package/dist/env.js +9 -0
- package/dist/error-boundaries.d.ts +78 -0
- package/dist/error-boundaries.js +281 -0
- package/dist/error-handling.d.ts +14 -0
- package/dist/error-handling.js +1 -0
- package/dist/errors/codes.d.ts +92 -0
- package/dist/errors/codes.js +97 -0
- package/dist/errors/formatter.d.ts +84 -0
- package/dist/errors/formatter.js +196 -0
- package/dist/errors/index.d.ts +12 -0
- package/dist/errors/index.js +44 -0
- package/dist/errors/logger.d.ts +135 -0
- package/dist/errors/logger.js +250 -0
- package/dist/errors/sanitizer.d.ts +73 -0
- package/dist/errors/sanitizer.js +181 -0
- package/dist/errors/types.d.ts +92 -0
- package/dist/errors/types.js +86 -0
- package/dist/events.d.ts +145 -0
- package/dist/events.js +396 -0
- package/dist/expressions.d.ts +180 -0
- package/dist/expressions.js +719 -0
- package/dist/find-body-tag.d.ts +50 -0
- package/dist/find-body-tag.js +57 -0
- package/dist/formatter.d.ts +19 -0
- package/dist/formatter.js +265 -0
- package/dist/forms-validation.d.ts +189 -0
- package/dist/forms-validation.js +421 -0
- package/dist/forms.d.ts +224 -0
- package/dist/forms.js +729 -0
- package/dist/fragment-container.d.ts +57 -0
- package/dist/fragment-container.js +123 -0
- package/dist/framework-composables.d.ts +73 -0
- package/dist/framework-composables.js +126 -0
- package/dist/head-injection.d.ts +61 -0
- package/dist/head-injection.js +28 -0
- package/dist/head.d.ts +282 -0
- package/dist/head.js +231 -0
- package/dist/heatmap.d.ts +206 -0
- package/dist/heatmap.js +566 -0
- package/dist/hot-reload.d.ts +87 -0
- package/dist/hot-reload.js +373 -0
- package/dist/html-masking.d.ts +125 -0
- package/dist/html-masking.js +196 -0
- package/dist/hydration-runtime.d.ts +44 -0
- package/dist/hydration-runtime.js +195 -0
- package/dist/hydration.d.ts +135 -0
- package/dist/hydration.js +654 -0
- package/dist/i18n.d.ts +342 -0
- package/dist/i18n.js +678 -0
- package/dist/image-optimization/auto-sibling.d.ts +42 -0
- package/dist/image-optimization/auto-sibling.js +88 -0
- package/dist/image-optimization/build-plugin.d.ts +54 -0
- package/dist/image-optimization/build-plugin.js +241 -0
- package/dist/image-optimization/component.d.ts +46 -0
- package/dist/image-optimization/component.js +244 -0
- package/dist/image-optimization/directive.d.ts +30 -0
- package/dist/image-optimization/directive.js +203 -0
- package/dist/image-optimization/index.d.ts +156 -0
- package/dist/image-optimization/index.js +54 -0
- package/dist/image-optimization/processor.d.ts +140 -0
- package/dist/image-optimization/processor.js +262 -0
- package/dist/image-optimization/serve.d.ts +54 -0
- package/dist/image-optimization/serve.js +102 -0
- package/dist/import-rebase.d.ts +16 -0
- package/dist/import-rebase.js +16 -0
- package/dist/imported-signals.d.ts +43 -0
- package/dist/imported-signals.js +35 -0
- package/dist/includes.d.ts +171 -0
- package/dist/includes.js +764 -0
- package/dist/index.d.ts +365 -0
- package/dist/index.js +202 -0
- package/dist/init.d.ts +39 -0
- package/dist/init.js +505 -0
- package/dist/inline-assets.d.ts +28 -0
- package/dist/inline-assets.js +82 -0
- package/dist/interactive.d.ts +14 -0
- package/dist/interactive.js +383 -0
- package/dist/internal-markdown.d.ts +22 -0
- package/dist/internal-markdown.js +141 -0
- package/dist/island-chunking.d.ts +48 -0
- package/dist/island-chunking.js +52 -0
- package/dist/isolated-build.d.ts +12 -0
- package/dist/isolated-build.js +18 -0
- package/dist/js-ts.d.ts +10 -0
- package/dist/js-ts.js +60 -0
- package/dist/jsx-runtime.d.ts +92 -0
- package/dist/jsx-runtime.js +289 -0
- package/dist/keep-alive.d.ts +108 -0
- package/dist/keep-alive.js +421 -0
- package/dist/layout-types.d.ts +45 -0
- package/dist/layout-types.js +56 -0
- package/dist/lazy-loader.d.ts +90 -0
- package/dist/lazy-loader.js +245 -0
- package/dist/lazy-module.d.ts +11 -0
- package/dist/lazy-module.js +18 -0
- package/dist/loading-indicator.d.ts +50 -0
- package/dist/loading-indicator.js +322 -0
- package/dist/loops.d.ts +91 -0
- package/dist/loops.js +690 -0
- package/dist/manifest.d.ts +41 -0
- package/dist/manifest.js +31 -0
- package/dist/markdown-view.d.ts +25 -0
- package/dist/markdown-view.js +39 -0
- package/dist/markdown.d.ts +10 -0
- package/dist/markdown.js +68 -0
- package/dist/media/client/blur-up.d.ts +66 -0
- package/dist/media/client/blur-up.js +217 -0
- package/dist/media/client/index.d.ts +93 -0
- package/dist/media/client/index.js +53 -0
- package/dist/media/client/lazy-load.d.ts +74 -0
- package/dist/media/client/lazy-load.js +283 -0
- package/dist/media/client/upload-handler.d.ts +80 -0
- package/dist/media/client/upload-handler.js +354 -0
- package/dist/media/image/component.d.ts +60 -0
- package/dist/media/image/component.js +574 -0
- package/dist/media/image/directive.d.ts +23 -0
- package/dist/media/image/directive.js +160 -0
- package/dist/media/image/editing.d.ts +212 -0
- package/dist/media/image/editing.js +193 -0
- package/dist/media/image/index.d.ts +142 -0
- package/dist/media/image/index.js +80 -0
- package/dist/media/image/placeholder.d.ts +89 -0
- package/dist/media/image/placeholder.js +188 -0
- package/dist/media/image/processor/cache.d.ts +53 -0
- package/dist/media/image/processor/cache.js +51 -0
- package/dist/media/image/processor/index.d.ts +11 -0
- package/dist/media/image/processor/index.js +3 -0
- package/dist/media/image/processor/optimizer.d.ts +24 -0
- package/dist/media/image/processor/optimizer.js +202 -0
- package/dist/media/image/processor/responsive.d.ts +28 -0
- package/dist/media/image/processor/responsive.js +162 -0
- package/dist/media/image/srcset.d.ts +157 -0
- package/dist/media/image/srcset.js +194 -0
- package/dist/media/index.d.ts +331 -0
- package/dist/media/index.js +198 -0
- package/dist/media/manager/embed.d.ts +25 -0
- package/dist/media/manager/embed.js +253 -0
- package/dist/media/protected/component.d.ts +33 -0
- package/dist/media/protected/component.js +235 -0
- package/dist/media/protected/index.d.ts +47 -0
- package/dist/media/protected/index.js +20 -0
- package/dist/media/protected/signature.d.ts +72 -0
- package/dist/media/protected/signature.js +205 -0
- package/dist/media/shared/cache.d.ts +76 -0
- package/dist/media/shared/cache.js +132 -0
- package/dist/media/shared/hash.d.ts +31 -0
- package/dist/media/shared/hash.js +35 -0
- package/dist/media/shared/index.d.ts +7 -0
- package/dist/media/shared/index.js +2 -0
- package/dist/media/types.d.ts +1477 -0
- package/dist/media/types.js +0 -0
- package/dist/media/upload/component.d.ts +9 -0
- package/dist/media/upload/component.js +320 -0
- package/dist/media/upload/index.d.ts +8 -0
- package/dist/media/upload/index.js +1 -0
- package/dist/media/video/directive.d.ts +23 -0
- package/dist/media/video/directive.js +142 -0
- package/dist/media/video/index.d.ts +76 -0
- package/dist/media/video/index.js +583 -0
- package/dist/media/video/processor/cache.d.ts +55 -0
- package/dist/media/video/processor/cache.js +52 -0
- package/dist/media/video/processor/index.d.ts +12 -0
- package/dist/media/video/processor/index.js +4 -0
- package/dist/media/video/processor/streaming.d.ts +26 -0
- package/dist/media/video/processor/streaming.js +197 -0
- package/dist/media/video/processor/thumbnail.d.ts +35 -0
- package/dist/media/video/processor/thumbnail.js +134 -0
- package/dist/media/video/processor/transcoder.d.ts +19 -0
- package/dist/media/video/processor/transcoder.js +283 -0
- package/dist/menubar.d.ts +65 -0
- package/dist/menubar.js +99 -0
- package/dist/method-spoofing.d.ts +20 -0
- package/dist/method-spoofing.js +17 -0
- package/dist/middleware.d.ts +112 -0
- package/dist/middleware.js +40 -0
- package/dist/misc-directives.d.ts +55 -0
- package/dist/misc-directives.js +328 -0
- package/dist/native-build.d.ts +88 -0
- package/dist/native-build.js +575 -0
- package/dist/owned-routes.d.ts +42 -0
- package/dist/owned-routes.js +26 -0
- package/dist/page-action.d.ts +73 -0
- package/dist/page-action.js +91 -0
- package/dist/page-meta.d.ts +38 -0
- package/dist/page-meta.js +16 -0
- package/dist/page-response.d.ts +120 -0
- package/dist/page-response.js +117 -0
- package/dist/parser/directive-parser.d.ts +119 -0
- package/dist/parser/directive-parser.js +249 -0
- package/dist/parser/expression-parser.d.ts +58 -0
- package/dist/parser/expression-parser.js +358 -0
- package/dist/parser/index.d.ts +13 -0
- package/dist/parser/index.js +23 -0
- package/dist/parser/tokenizer.d.ts +77 -0
- package/dist/parser/tokenizer.js +534 -0
- package/dist/partial-hydration.d.ts +123 -0
- package/dist/partial-hydration.js +427 -0
- package/dist/performance-utils.d.ts +318 -0
- package/dist/performance-utils.js +466 -0
- package/dist/placeholder.d.ts +54 -0
- package/dist/placeholder.js +35 -0
- package/dist/plugin-system.d.ts +301 -0
- package/dist/plugin-system.js +214 -0
- package/dist/plugin.d.ts +3 -0
- package/dist/plugin.js +174 -0
- package/dist/precompiler.d.ts +43 -0
- package/dist/precompiler.js +670 -0
- package/dist/process.d.ts +16 -0
- package/dist/process.js +879 -0
- package/dist/production-build.d.ts +163 -0
- package/dist/production-build.js +596 -0
- package/dist/production-builder.d.ts +42 -0
- package/dist/production-builder.js +146 -0
- package/dist/production-server.d.ts +19 -0
- package/dist/production-server.js +208 -0
- package/dist/prop-sentinels.d.ts +31 -0
- package/dist/prop-sentinels.js +7 -0
- package/dist/props.d.ts +216 -0
- package/dist/props.js +224 -0
- package/dist/public-env.d.ts +29 -0
- package/dist/public-env.js +19 -0
- package/dist/pwa/audit.d.ts +42 -0
- package/dist/pwa/audit.js +255 -0
- package/dist/pwa/directives.d.ts +38 -0
- package/dist/pwa/directives.js +332 -0
- package/dist/pwa/icons.d.ts +42 -0
- package/dist/pwa/icons.js +109 -0
- package/dist/pwa/index.d.ts +104 -0
- package/dist/pwa/index.js +47 -0
- package/dist/pwa/inject.d.ts +32 -0
- package/dist/pwa/inject.js +102 -0
- package/dist/pwa/manifest.d.ts +104 -0
- package/dist/pwa/manifest.js +186 -0
- package/dist/pwa/offline.d.ts +8 -0
- package/dist/pwa/offline.js +259 -0
- package/dist/pwa/precache.d.ts +35 -0
- package/dist/pwa/precache.js +116 -0
- package/dist/pwa/service-worker.d.ts +33 -0
- package/dist/pwa/service-worker.js +860 -0
- package/dist/pwa/workbox-strategies.d.ts +100 -0
- package/dist/pwa/workbox-strategies.js +167 -0
- package/dist/pwa/workbox.d.ts +51 -0
- package/dist/pwa/workbox.js +382 -0
- package/dist/pwa.d.ts +52 -0
- package/dist/pwa.js +236 -0
- package/dist/reactive-bindings.d.ts +47 -0
- package/dist/reactive-bindings.js +268 -0
- package/dist/reactive-tracking.d.ts +81 -0
- package/dist/reactive-tracking.js +49 -0
- package/dist/reactive.d.ts +117 -0
- package/dist/reactive.js +593 -0
- package/dist/reactivity.d.ts +206 -0
- package/dist/reactivity.js +574 -0
- package/dist/release.d.ts +1 -0
- package/dist/release.js +1 -0
- package/dist/render-memo.d.ts +40 -0
- package/dist/render-memo.js +33 -0
- package/dist/render.d.ts +54 -0
- package/dist/render.js +153 -0
- package/dist/resolve-stx-targets.d.ts +49 -0
- package/dist/resolve-stx-targets.js +38 -0
- package/dist/route-middleware.d.ts +2 -0
- package/dist/route-middleware.js +17 -0
- package/dist/route-types.d.ts +134 -0
- package/dist/route-types.js +24 -0
- package/dist/router.d.ts +9 -0
- package/dist/router.js +9 -0
- package/dist/routes.d.ts +6 -0
- package/dist/routes.js +14 -0
- package/dist/runtime-globals.d.ts +236 -0
- package/dist/runtime-globals.js +230 -0
- package/dist/runtime-injection.d.ts +113 -0
- package/dist/runtime-injection.js +156 -0
- package/dist/runtime.d.ts +140 -0
- package/dist/runtime.js +94 -0
- package/dist/safe-evaluator.d.ts +165 -0
- package/dist/safe-evaluator.js +461 -0
- package/dist/scaffolding.d.ts +113 -0
- package/dist/scaffolding.js +897 -0
- package/dist/screenshot.d.ts +22 -0
- package/dist/screenshot.js +100 -0
- package/dist/script-classifier.d.ts +41 -0
- package/dist/script-classifier.js +51 -0
- package/dist/script-emit.d.ts +50 -0
- package/dist/script-emit.js +11 -0
- package/dist/script-json.d.ts +36 -0
- package/dist/script-json.js +6 -0
- package/dist/script-validation.d.ts +26 -0
- package/dist/script-validation.js +179 -0
- package/dist/seo.d.ts +225 -0
- package/dist/seo.js +486 -0
- package/dist/serve.d.ts +44 -0
- package/dist/serve.js +233 -0
- package/dist/server-bindings.d.ts +39 -0
- package/dist/server-bindings.js +171 -0
- package/dist/server-components.d.ts +138 -0
- package/dist/server-components.js +427 -0
- package/dist/sfc-template.d.ts +17 -0
- package/dist/sfc-template.js +32 -0
- package/dist/signal-processing.d.ts +222 -0
- package/dist/signal-processing.js +1081 -0
- package/dist/signals-api.d.ts +459 -0
- package/dist/signals-api.js +172 -0
- package/dist/signals.d.ts +41 -0
- package/dist/signals.js +8233 -0
- package/dist/site-builder/build.d.ts +18 -0
- package/dist/site-builder/build.js +252 -0
- package/dist/site-builder/i18n.d.ts +104 -0
- package/dist/site-builder/i18n.js +150 -0
- package/dist/site-builder/index.d.ts +27 -0
- package/dist/site-builder/index.js +16 -0
- package/dist/site-builder/robots.d.ts +2 -0
- package/dist/site-builder/robots.js +26 -0
- package/dist/site-builder/router.d.ts +10 -0
- package/dist/site-builder/router.js +27 -0
- package/dist/site-builder/seo.d.ts +8 -0
- package/dist/site-builder/seo.js +67 -0
- package/dist/site-builder/sitemap.d.ts +10 -0
- package/dist/site-builder/sitemap.js +26 -0
- package/dist/site-builder/theme.d.ts +12 -0
- package/dist/site-builder/theme.js +38 -0
- package/dist/site-builder/types.d.ts +74 -0
- package/dist/site-builder/types.js +0 -0
- package/dist/site-url.d.ts +46 -0
- package/dist/site-url.js +70 -0
- package/dist/slots.d.ts +129 -0
- package/dist/slots.js +286 -0
- package/dist/source-maps.d.ts +98 -0
- package/dist/source-maps.js +350 -0
- package/dist/source-signature.d.ts +45 -0
- package/dist/source-signature.js +20 -0
- package/dist/spa-nav.d.ts +49 -0
- package/dist/spa-nav.js +12 -0
- package/dist/spa-shell.d.ts +21 -0
- package/dist/spa-shell.js +34 -0
- package/dist/ssg.d.ts +357 -0
- package/dist/ssg.js +94 -0
- package/dist/ssr.d.ts +116 -0
- package/dist/ssr.js +339 -0
- package/dist/state-dir.d.ts +36 -0
- package/dist/state-dir.js +22 -0
- package/dist/state-management.d.ts +299 -0
- package/dist/state-management.js +519 -0
- package/dist/store-imports.d.ts +47 -0
- package/dist/store-imports.js +16 -0
- package/dist/store-loader.d.ts +15 -0
- package/dist/store-loader.js +111 -0
- package/dist/stores-client.d.ts +70 -0
- package/dist/stores-client.js +132 -0
- package/dist/story/addons.d.ts +123 -0
- package/dist/story/addons.js +261 -0
- package/dist/story/analytics.d.ts +163 -0
- package/dist/story/analytics.js +235 -0
- package/dist/story/auto-stories.d.ts +38 -0
- package/dist/story/auto-stories.js +158 -0
- package/dist/story/bookmarks.d.ts +102 -0
- package/dist/story/bookmarks.js +277 -0
- package/dist/story/bun-test.d.ts +45 -0
- package/dist/story/bun-test.js +102 -0
- package/dist/story/cli.d.ts +132 -0
- package/dist/story/cli.js +155 -0
- package/dist/story/collect/analyzer.d.ts +33 -0
- package/dist/story/collect/analyzer.js +305 -0
- package/dist/story/collect/index.d.ts +31 -0
- package/dist/story/collect/index.js +27 -0
- package/dist/story/collect/parser.d.ts +17 -0
- package/dist/story/collect/parser.js +129 -0
- package/dist/story/collect/scanner.d.ts +17 -0
- package/dist/story/collect/scanner.js +101 -0
- package/dist/story/collect/tree.d.ts +24 -0
- package/dist/story/collect/tree.js +110 -0
- package/dist/story/commands/build.d.ts +19 -0
- package/dist/story/commands/build.js +172 -0
- package/dist/story/commands/dev.d.ts +23 -0
- package/dist/story/commands/dev.js +78 -0
- package/dist/story/commands/index.d.ts +9 -0
- package/dist/story/commands/index.js +3 -0
- package/dist/story/commands/preview.d.ts +21 -0
- package/dist/story/commands/preview.js +56 -0
- package/dist/story/compiled-output.d.ts +27 -0
- package/dist/story/compiled-output.js +151 -0
- package/dist/story/composition.d.ts +47 -0
- package/dist/story/composition.js +261 -0
- package/dist/story/config-watcher.d.ts +33 -0
- package/dist/story/config-watcher.js +67 -0
- package/dist/story/config.d.ts +29 -0
- package/dist/story/config.js +64 -0
- package/dist/story/context.d.ts +27 -0
- package/dist/story/context.js +27 -0
- package/dist/story/controls/index.d.ts +54 -0
- package/dist/story/controls/index.js +320 -0
- package/dist/story/desktop-preview.d.ts +34 -0
- package/dist/story/desktop-preview.js +105 -0
- package/dist/story/docs-generator.d.ts +30 -0
- package/dist/story/docs-generator.js +187 -0
- package/dist/story/errors.d.ts +47 -0
- package/dist/story/errors.js +239 -0
- package/dist/story/figma-export.d.ts +169 -0
- package/dist/story/figma-export.js +224 -0
- package/dist/story/generator.d.ts +21 -0
- package/dist/story/generator.js +165 -0
- package/dist/story/hmr.d.ts +62 -0
- package/dist/story/hmr.js +131 -0
- package/dist/story/hot-swap.d.ts +46 -0
- package/dist/story/hot-swap.js +207 -0
- package/dist/story/index.d.ts +99 -0
- package/dist/story/index.js +49 -0
- package/dist/story/interactions.d.ts +53 -0
- package/dist/story/interactions.js +225 -0
- package/dist/story/keyboard-shortcuts.d.ts +39 -0
- package/dist/story/keyboard-shortcuts.js +345 -0
- package/dist/story/output.d.ts +115 -0
- package/dist/story/output.js +153 -0
- package/dist/story/performance.d.ts +129 -0
- package/dist/story/performance.js +252 -0
- package/dist/story/presets.d.ts +123 -0
- package/dist/story/presets.js +289 -0
- package/dist/story/props-validation.d.ts +45 -0
- package/dist/story/props-validation.js +215 -0
- package/dist/story/renderer.d.ts +69 -0
- package/dist/story/renderer.js +209 -0
- package/dist/story/search-index.d.ts +47 -0
- package/dist/story/search-index.js +106 -0
- package/dist/story/search.d.ts +56 -0
- package/dist/story/search.js +140 -0
- package/dist/story/server.d.ts +31 -0
- package/dist/story/server.js +965 -0
- package/dist/story/setup.d.ts +56 -0
- package/dist/story/setup.js +78 -0
- package/dist/story/snapshots.d.ts +65 -0
- package/dist/story/snapshots.js +171 -0
- package/dist/story/testing.d.ts +83 -0
- package/dist/story/testing.js +164 -0
- package/dist/story/theme.d.ts +68 -0
- package/dist/story/theme.js +170 -0
- package/dist/story/ts-css.d.ts +29 -0
- package/dist/story/ts-css.js +189 -0
- package/dist/story/types.d.ts +342 -0
- package/dist/story/types.js +0 -0
- package/dist/story/ui/code-panel.d.ts +43 -0
- package/dist/story/ui/code-panel.js +175 -0
- package/dist/story/ui/controls-panel.d.ts +25 -0
- package/dist/story/ui/controls-panel.js +168 -0
- package/dist/story/ui/index.d.ts +8 -0
- package/dist/story/ui/index.js +4 -0
- package/dist/story/ui/navigation.d.ts +55 -0
- package/dist/story/ui/navigation.js +250 -0
- package/dist/story/ui/preview.d.ts +46 -0
- package/dist/story/ui/preview.js +251 -0
- package/dist/story/visual-testing.d.ts +45 -0
- package/dist/story/visual-testing.js +248 -0
- package/dist/streaming.d.ts +238 -0
- package/dist/streaming.js +537 -0
- package/dist/strict-lint.d.ts +52 -0
- package/dist/strict-lint.js +269 -0
- package/dist/strip-literals.d.ts +40 -0
- package/dist/strip-literals.js +149 -0
- package/dist/stx-virtual-ts.d.ts +358 -0
- package/dist/stx-virtual-ts.js +670 -0
- package/dist/stx.d.ts +924 -0
- package/dist/style-scoping.d.ts +42 -0
- package/dist/style-scoping.js +82 -0
- package/dist/suspense.d.ts +98 -0
- package/dist/suspense.js +398 -0
- package/dist/teleport.d.ts +31 -0
- package/dist/teleport.js +109 -0
- package/dist/template-compiler.d.ts +33 -0
- package/dist/template-compiler.js +68 -0
- package/dist/template-hydrator.d.ts +28 -0
- package/dist/template-hydrator.js +95 -0
- package/dist/template-tag-balance.d.ts +32 -0
- package/dist/template-tag-balance.js +93 -0
- package/dist/testing.d.ts +330 -0
- package/dist/testing.js +588 -0
- package/dist/theme-tokens.d.ts +88 -0
- package/dist/theme-tokens.js +71 -0
- package/dist/transitions.d.ts +99 -0
- package/dist/transitions.js +443 -0
- package/dist/ts-css-config.d.ts +71 -0
- package/dist/ts-css-config.js +44 -0
- package/dist/type-checker.d.ts +85 -0
- package/dist/type-checker.js +581 -0
- package/dist/typecheck.d.ts +70 -0
- package/dist/typecheck.js +365 -0
- package/dist/types/component-types.d.ts +248 -0
- package/dist/types/component-types.js +0 -0
- package/dist/types/config-types.d.ts +938 -0
- package/dist/types/config-types.js +0 -0
- package/dist/types/context-types.d.ts +122 -0
- package/dist/types/context-types.js +0 -0
- package/dist/types/csp-types.d.ts +83 -0
- package/dist/types/csp-types.js +0 -0
- package/dist/types/directive-types.d.ts +315 -0
- package/dist/types/directive-types.js +3 -0
- package/dist/types/index.d.ts +20 -0
- package/dist/types/index.js +1 -0
- package/dist/types/pwa-types.d.ts +338 -0
- package/dist/types/pwa-types.js +0 -0
- package/dist/types.d.ts +27 -0
- package/dist/types.js +1 -0
- package/dist/typescript-templates.d.ts +156 -0
- package/dist/typescript-templates.js +386 -0
- package/dist/unresolved-identifiers.d.ts +52 -0
- package/dist/unresolved-identifiers.js +148 -0
- package/dist/utils.d.ts +112 -0
- package/dist/utils.js +1170 -0
- package/dist/validator.d.ts +80 -0
- package/dist/validator.js +171 -0
- package/dist/variable-extractor.d.ts +142 -0
- package/dist/variable-extractor.js +1306 -0
- package/dist/view-composers.d.ts +171 -0
- package/dist/view-composers.js +29 -0
- package/dist/virtual-scrolling.d.ts +127 -0
- package/dist/virtual-scrolling.js +454 -0
- package/dist/visual-editor.d.ts +185 -0
- package/dist/visual-editor.js +735 -0
- package/dist/visual-testing.d.ts +135 -0
- package/dist/visual-testing.js +126 -0
- package/dist/vue-template.d.ts +39 -0
- package/dist/vue-template.js +476 -0
- package/dist/web-components/css-scoping.d.ts +64 -0
- package/dist/web-components/css-scoping.js +210 -0
- package/dist/web-components/index.d.ts +29 -0
- package/dist/web-components/index.js +13 -0
- package/dist/web-components/reactive-generator.d.ts +72 -0
- package/dist/web-components/reactive-generator.js +484 -0
- package/dist/web-components.d.ts +253 -0
- package/dist/web-components.js +1466 -0
- package/dist/x-element.d.ts +42 -0
- package/dist/x-element.js +301 -0
- package/package.json +107 -0
- package/stx.d.ts +924 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { headInsertionPoint } from "./head-injection.js";
|
|
2
|
+
import { BROWSER_CORE_IMPORTS } from "./browser-core-imports.js";
|
|
3
|
+
import { getOwnedRouteMatchers } from "./owned-routes.js";
|
|
4
|
+
import { toScriptJson } from "./script-json.js";
|
|
5
|
+
import { findBodyOpenTag, replaceBodyOpenTag } from "./find-body-tag.js";
|
|
6
|
+
import { getTooltipRuntime } from "./builtins/tooltip.js";
|
|
7
|
+
export function injectBrowserRuntime(template) {
|
|
8
|
+
const alreadyBootstrapped = /import\s+['"]@stacksjs\/browser['"]/.test(template), pageSuppliesGlobal = /\bStacksBrowser\s*=[^=]/.test(template);
|
|
9
|
+
if (alreadyBootstrapped || pageSuppliesGlobal)
|
|
10
|
+
return template;
|
|
11
|
+
const clientScriptRegex = /<script\b(?![^>]*\bserver\b)[^>]*>([\s\S]*?)<\/script>/gi;
|
|
12
|
+
let clientCode = "", match;
|
|
13
|
+
while ((match = clientScriptRegex.exec(template)) !== null)
|
|
14
|
+
clientCode += match[1] + `
|
|
15
|
+
`;
|
|
16
|
+
const templateExprRegex = /\{\{([\s\S]*?)\}\}/g;
|
|
17
|
+
while ((match = templateExprRegex.exec(template)) !== null)
|
|
18
|
+
clientCode += match[1] + `
|
|
19
|
+
`;
|
|
20
|
+
if (!clientCode.trim())
|
|
21
|
+
return template;
|
|
22
|
+
const usesCoreSymbols = BROWSER_CORE_IMPORTS.some((sym) => {
|
|
23
|
+
return new RegExp(`\\b${sym}\\b`).test(clientCode);
|
|
24
|
+
}), jsBuiltins = new Set(["Promise", "Object", "Array", "Map", "Set", "Date", "Error", "JSON", "Math", "Number", "String", "RegExp", "Symbol", "WeakMap", "WeakSet", "Proxy", "Reflect", "Intl", "URL", "URLSearchParams", "FormData", "Headers", "Request", "Response", "AbortController", "EventTarget", "Element", "Document", "Node", "Window", "Console", "Storage", "Navigator", "Blob", "File", "FileReader", "HTMLElement", "SVGElement", "Event", "CustomEvent", "DOMParser", "XMLSerializer", "WebSocket", "Worker", "SharedWorker", "IntersectionObserver", "MutationObserver", "ResizeObserver", "PerformanceObserver", "Notification", "Bun", "Buffer", "Process"]), modelPattern = /\b([A-Z][a-zA-Z0-9]*)\s*\.\s*(all|find|first|get|where|orderBy|orderByDesc|limit|select|pluck|create|update|delete)\s*\(/g;
|
|
25
|
+
let modelMatch, usesModels = !1;
|
|
26
|
+
while ((modelMatch = modelPattern.exec(clientCode)) !== null)
|
|
27
|
+
if (!jsBuiltins.has(modelMatch[1])) {
|
|
28
|
+
usesModels = !0;
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
if (!usesCoreSymbols && !usesModels)
|
|
32
|
+
return template;
|
|
33
|
+
const browserScript = `<script type="module">
|
|
34
|
+
// STX: Auto-load @stacksjs/browser (auto-initializes API and loads models)
|
|
35
|
+
import '@stacksjs/browser'
|
|
36
|
+
</script>`;
|
|
37
|
+
if (template.includes("</head>")) {
|
|
38
|
+
const headEndPos = template.indexOf("</head>"), firstScriptPos = template.slice(0, headEndPos).indexOf("<script");
|
|
39
|
+
if (firstScriptPos !== -1)
|
|
40
|
+
return template.slice(0, firstScriptPos) + browserScript + `
|
|
41
|
+
` + template.slice(firstScriptPos);
|
|
42
|
+
return template.replace("</head>", `${browserScript}
|
|
43
|
+
</head>`);
|
|
44
|
+
}
|
|
45
|
+
if (findBodyOpenTag(template))
|
|
46
|
+
return replaceBodyOpenTag(template, (tag) => `${tag}
|
|
47
|
+
${browserScript}`);
|
|
48
|
+
return browserScript + `
|
|
49
|
+
` + template;
|
|
50
|
+
}
|
|
51
|
+
export function pageShipsSignalsRuntime(fullPageHtml) {
|
|
52
|
+
return fullPageHtml.includes("data-stx-runtime");
|
|
53
|
+
}
|
|
54
|
+
export function outputNeedsSignalsRuntime(html) {
|
|
55
|
+
const reach = /window\.stx\s*\.\s*[A-Za-z_$]|\}\s*=\s*window\.stx\s*;/g;
|
|
56
|
+
for (let m = reach.exec(html);m !== null; m = reach.exec(html)) {
|
|
57
|
+
const preceding = html.slice(Math.max(0, m.index - 80), m.index);
|
|
58
|
+
if (/if\s*\(\s*window\.stx\s*\)|window\.stx\s*&&/.test(preceding))
|
|
59
|
+
continue;
|
|
60
|
+
return !0;
|
|
61
|
+
}
|
|
62
|
+
return !1;
|
|
63
|
+
}
|
|
64
|
+
function placeRuntimeTag(template, runtimeScript) {
|
|
65
|
+
const firstScript = template.indexOf("<script"), doctype = template.search(/<!doctype\b/i);
|
|
66
|
+
if (firstScript !== -1 && (doctype === -1 || firstScript > doctype))
|
|
67
|
+
return template.slice(0, firstScript) + runtimeScript + `
|
|
68
|
+
` + template.slice(firstScript);
|
|
69
|
+
const headAt = headInsertionPoint(template);
|
|
70
|
+
if (headAt !== null)
|
|
71
|
+
return `${template.slice(0, headAt)}
|
|
72
|
+
${runtimeScript}${template.slice(headAt)}`;
|
|
73
|
+
if (template.includes("</head>")) {
|
|
74
|
+
const idx = template.indexOf("</head>");
|
|
75
|
+
return template.slice(0, idx) + runtimeScript + `
|
|
76
|
+
` + template.slice(idx);
|
|
77
|
+
}
|
|
78
|
+
if (findBodyOpenTag(template))
|
|
79
|
+
return replaceBodyOpenTag(template, (tag) => `${tag}
|
|
80
|
+
${runtimeScript}`);
|
|
81
|
+
return `${runtimeScript}
|
|
82
|
+
${template}`;
|
|
83
|
+
}
|
|
84
|
+
export async function injectSignalsRuntime(template, options) {
|
|
85
|
+
if (template.includes("data-stx-runtime") || template.includes("window.stx.state") || template.includes("STX Signals Runtime"))
|
|
86
|
+
return template;
|
|
87
|
+
if (options.buildMode === "serve")
|
|
88
|
+
return placeRuntimeTag(template, '<script data-stx-runtime src="/_stx/runtime.js"></script>');
|
|
89
|
+
if (options.buildMode === "compile")
|
|
90
|
+
return placeRuntimeTag(template, '<script data-stx-runtime src="/__stx/runtime.__STX_HASH__.js"></script>');
|
|
91
|
+
const { getCachedSignalsRuntime } = await import("./caching.js"), runtime = await getCachedSignalsRuntime(options.debug);
|
|
92
|
+
return placeRuntimeTag(template, `<script data-stx-scoped data-stx-runtime>${runtime}</script>`);
|
|
93
|
+
}
|
|
94
|
+
export function outputNeedsTooltipRuntime(html) {
|
|
95
|
+
return /<[a-z][^>]*?\sx-tooltip\s*=/i.test(html);
|
|
96
|
+
}
|
|
97
|
+
export function injectTooltipRuntime(html) {
|
|
98
|
+
if (html.includes("data-stx-tooltip-runtime") || !outputNeedsTooltipRuntime(html))
|
|
99
|
+
return html;
|
|
100
|
+
const tag = `<script data-stx-scoped data-stx-tooltip-runtime>${getTooltipRuntime()}</script>`, bodyIdx = html.lastIndexOf("</body>");
|
|
101
|
+
if (bodyIdx === -1)
|
|
102
|
+
return `${html}
|
|
103
|
+
${tag}`;
|
|
104
|
+
return `${html.slice(0, bodyIdx)}${tag}
|
|
105
|
+
${html.slice(bodyIdx)}`;
|
|
106
|
+
}
|
|
107
|
+
const ROUTER_SCRIPT_TAG = /<script\b[^>]*\sdata-stx-router(?=[\s=>])/i;
|
|
108
|
+
export function hasRouterScript(template) {
|
|
109
|
+
return ROUTER_SCRIPT_TAG.test(template) || template.includes("__stxRouter)return") || template.includes("__stxRouter=true");
|
|
110
|
+
}
|
|
111
|
+
export async function injectRouterScript(template, options) {
|
|
112
|
+
if (!template.includes("</body>"))
|
|
113
|
+
return template;
|
|
114
|
+
if (hasRouterScript(template))
|
|
115
|
+
return template;
|
|
116
|
+
const routerConfig = options?.router;
|
|
117
|
+
let configScript = "";
|
|
118
|
+
{
|
|
119
|
+
const configObj = {};
|
|
120
|
+
if (routerConfig) {
|
|
121
|
+
if (routerConfig.container)
|
|
122
|
+
configObj.container = routerConfig.container;
|
|
123
|
+
if (routerConfig.interceptAllLinks !== void 0)
|
|
124
|
+
configObj.interceptAllLinks = routerConfig.interceptAllLinks;
|
|
125
|
+
if (routerConfig.progress !== void 0)
|
|
126
|
+
configObj.progress = routerConfig.progress;
|
|
127
|
+
if (routerConfig.viewTransitions !== void 0)
|
|
128
|
+
configObj.viewTransitions = routerConfig.viewTransitions;
|
|
129
|
+
if (routerConfig.viewTransitionDuration !== void 0)
|
|
130
|
+
configObj.viewTransitionDuration = routerConfig.viewTransitionDuration;
|
|
131
|
+
if (routerConfig.viewTransitionEasing !== void 0)
|
|
132
|
+
configObj.viewTransitionEasing = routerConfig.viewTransitionEasing;
|
|
133
|
+
if (routerConfig.scrollToTop !== void 0)
|
|
134
|
+
configObj.scrollToTop = routerConfig.scrollToTop;
|
|
135
|
+
if (routerConfig.prefetch !== void 0)
|
|
136
|
+
configObj.prefetch = routerConfig.prefetch;
|
|
137
|
+
if (routerConfig.cache !== void 0)
|
|
138
|
+
configObj.cache = routerConfig.cache;
|
|
139
|
+
if (routerConfig.progressColor !== void 0)
|
|
140
|
+
configObj.progressColor = routerConfig.progressColor;
|
|
141
|
+
if (routerConfig.progressHeight !== void 0)
|
|
142
|
+
configObj.progressHeight = routerConfig.progressHeight;
|
|
143
|
+
}
|
|
144
|
+
try {
|
|
145
|
+
const owned = await getOwnedRouteMatchers(options?.pagesDir);
|
|
146
|
+
if (owned.length > 0)
|
|
147
|
+
configObj.ownedRoutes = owned;
|
|
148
|
+
} catch {}
|
|
149
|
+
if (Object.keys(configObj).length > 0)
|
|
150
|
+
configScript = `<script>window.__stxRouterConfig=${toScriptJson(configObj)};</script>
|
|
151
|
+
`;
|
|
152
|
+
}
|
|
153
|
+
const { getCachedRouterScript } = await import("./caching.js"), routerScript = options?.buildMode === "compile" ? '<script data-stx-router src="/__stx/router.__STX_HASH__.js"></script>' : options?.buildMode === "serve" ? '<script data-stx-router src="/_stx/router.js"></script>' : `<script data-stx-router>${await getCachedRouterScript()}</script>`, bodyCloseIdx = template.lastIndexOf("</body>");
|
|
154
|
+
return template.slice(0, bodyCloseIdx) + configScript + routerScript + `
|
|
155
|
+
</body>` + template.slice(bodyCloseIdx + 7);
|
|
156
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get a store by name
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* const appStore = useStore('appStore')
|
|
7
|
+
* console.log(appStore.state.count)
|
|
8
|
+
*
|
|
9
|
+
* appStore.setState({ count: appStore.state.count + 1 })
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export declare function useStore<T = unknown>(name: string): StoreRef<T>;
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated Use `useStore` — it now throws if the store is not found.
|
|
15
|
+
*/
|
|
16
|
+
export declare function useStoreOrThrow<T = unknown>(name: string): StoreRef<T>;
|
|
17
|
+
/**
|
|
18
|
+
* Check if a store exists
|
|
19
|
+
*/
|
|
20
|
+
export declare function hasStore(name: string): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Get all store names
|
|
23
|
+
*/
|
|
24
|
+
export declare function getStoreNames(): string[];
|
|
25
|
+
/**
|
|
26
|
+
* Wait for a store to be ready (for async initialization)
|
|
27
|
+
*/
|
|
28
|
+
export declare function waitForStore<T = unknown>(name: string, timeout?: number): Promise<StoreRef<T>>;
|
|
29
|
+
/**
|
|
30
|
+
* Get current route parameters
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* // URL: /users/123
|
|
35
|
+
* const params = useRouteParams()
|
|
36
|
+
* console.log(params.id) // '123'
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare function useRouteParams(): RouteParams;
|
|
40
|
+
/**
|
|
41
|
+
* Get a specific route parameter
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* const userId = useRouteParam('id')
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare function useRouteParam(name: string): string | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Get a route parameter or throw if missing
|
|
51
|
+
*/
|
|
52
|
+
export declare function useRouteParamOrThrow(name: string): string;
|
|
53
|
+
/**
|
|
54
|
+
* Get state passed from middleware
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* // In middleware:
|
|
59
|
+
* ctx.state.user = { id: 1, name: 'John' }
|
|
60
|
+
*
|
|
61
|
+
* // In component:
|
|
62
|
+
* const state = useMiddlewareState()
|
|
63
|
+
* console.log(state.user)
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export declare function useMiddlewareState<T = MiddlewareState>(): T;
|
|
67
|
+
/**
|
|
68
|
+
* Get a specific middleware state value
|
|
69
|
+
*/
|
|
70
|
+
export declare function useMiddlewareValue<T = unknown>(key: string): T | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* @internal
|
|
73
|
+
* Initialize the store registry
|
|
74
|
+
*/
|
|
75
|
+
export declare function initStoreRegistry(): void;
|
|
76
|
+
/**
|
|
77
|
+
* @internal
|
|
78
|
+
* Register a store in the registry
|
|
79
|
+
*/
|
|
80
|
+
export declare function registerStore(name: string, store: StoreRef): void;
|
|
81
|
+
/**
|
|
82
|
+
* @internal
|
|
83
|
+
* Get serialized store state for hydration
|
|
84
|
+
*/
|
|
85
|
+
export declare function getHydratedStoreState(): Record<string, unknown> | null;
|
|
86
|
+
/**
|
|
87
|
+
* @internal
|
|
88
|
+
* Set route params (called by router)
|
|
89
|
+
*/
|
|
90
|
+
export declare function setRouteParams(params: RouteParams): void;
|
|
91
|
+
/**
|
|
92
|
+
* @internal
|
|
93
|
+
* Set middleware state (called by middleware runner)
|
|
94
|
+
*/
|
|
95
|
+
export declare function setMiddlewareState(state: MiddlewareState): void;
|
|
96
|
+
/**
|
|
97
|
+
* Check if running on the server
|
|
98
|
+
*/
|
|
99
|
+
export declare function isServer(): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Check if running on the client
|
|
102
|
+
*/
|
|
103
|
+
export declare function isClient(): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Run callback only on client
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```ts
|
|
109
|
+
* onClient(() => {
|
|
110
|
+
* document.title = 'Hello'
|
|
111
|
+
* })
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
export declare function onClient(callback: () => void): void;
|
|
115
|
+
/**
|
|
116
|
+
* Run callback only on server
|
|
117
|
+
*/
|
|
118
|
+
export declare function onServer(callback: () => void): void;
|
|
119
|
+
// =============================================================================
|
|
120
|
+
// Store Access
|
|
121
|
+
// =============================================================================
|
|
122
|
+
export declare interface StoreRef<T = unknown> {
|
|
123
|
+
state: T
|
|
124
|
+
getState: () => T
|
|
125
|
+
setState: (updater: Partial<T> | ((state: T) => Partial<T>)) => void
|
|
126
|
+
subscribe: (listener: (state: T) => void) => () => void
|
|
127
|
+
reset: () => void
|
|
128
|
+
}
|
|
129
|
+
// =============================================================================
|
|
130
|
+
// Route Params
|
|
131
|
+
// =============================================================================
|
|
132
|
+
export declare interface RouteParams {
|
|
133
|
+
[key: string]: string
|
|
134
|
+
}
|
|
135
|
+
// =============================================================================
|
|
136
|
+
// Middleware State
|
|
137
|
+
// =============================================================================
|
|
138
|
+
export declare interface MiddlewareState {
|
|
139
|
+
[key: string]: unknown
|
|
140
|
+
}
|
package/dist/runtime.js
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
const STX_STORES_KEY = "__STX_STORES__", STX_ROUTE_PARAMS_KEY = "__STX_ROUTE_PARAMS__", STX_MIDDLEWARE_STATE_KEY = "__STX_MIDDLEWARE_STATE__", STX_HYDRATE_STORES_KEY = "__STX_HYDRATE_STORES__", STX_STORE_STATE_KEY = "__STX_STORE_STATE__";
|
|
2
|
+
function getGlobal(key, defaultValue) {
|
|
3
|
+
if (typeof window > "u")
|
|
4
|
+
return defaultValue;
|
|
5
|
+
return window[key] ?? defaultValue;
|
|
6
|
+
}
|
|
7
|
+
function setGlobal(key, value) {
|
|
8
|
+
if (typeof window > "u")
|
|
9
|
+
return;
|
|
10
|
+
window[key] = value;
|
|
11
|
+
}
|
|
12
|
+
export function useStore(name) {
|
|
13
|
+
const store = getGlobal(STX_STORES_KEY, {})[name];
|
|
14
|
+
if (!store)
|
|
15
|
+
throw Error(`Store "${name}" not found. Make sure it's defined with defineStore().`);
|
|
16
|
+
return store;
|
|
17
|
+
}
|
|
18
|
+
export function useStoreOrThrow(name) {
|
|
19
|
+
return useStore(name);
|
|
20
|
+
}
|
|
21
|
+
export function hasStore(name) {
|
|
22
|
+
const stores = getGlobal(STX_STORES_KEY, {});
|
|
23
|
+
return name in stores;
|
|
24
|
+
}
|
|
25
|
+
export function getStoreNames() {
|
|
26
|
+
const stores = getGlobal(STX_STORES_KEY, {});
|
|
27
|
+
return Object.keys(stores);
|
|
28
|
+
}
|
|
29
|
+
export function waitForStore(name, timeout = 5000) {
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
const startTime = Date.now(), check = () => {
|
|
32
|
+
const store = useStore(name);
|
|
33
|
+
if (store)
|
|
34
|
+
resolve(store);
|
|
35
|
+
else if (Date.now() - startTime > timeout)
|
|
36
|
+
reject(Error(`Timeout waiting for store "${name}"`));
|
|
37
|
+
else
|
|
38
|
+
requestAnimationFrame(check);
|
|
39
|
+
};
|
|
40
|
+
check();
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
export function useRouteParams() {
|
|
44
|
+
return getGlobal(STX_ROUTE_PARAMS_KEY, {});
|
|
45
|
+
}
|
|
46
|
+
export function useRouteParam(name) {
|
|
47
|
+
return useRouteParams()[name];
|
|
48
|
+
}
|
|
49
|
+
export function useRouteParamOrThrow(name) {
|
|
50
|
+
const value = useRouteParam(name);
|
|
51
|
+
if (value === void 0)
|
|
52
|
+
throw Error(`Route parameter "${name}" not found`);
|
|
53
|
+
return value;
|
|
54
|
+
}
|
|
55
|
+
export function useMiddlewareState() {
|
|
56
|
+
return getGlobal(STX_MIDDLEWARE_STATE_KEY, {});
|
|
57
|
+
}
|
|
58
|
+
export function useMiddlewareValue(key) {
|
|
59
|
+
return useMiddlewareState()[key];
|
|
60
|
+
}
|
|
61
|
+
export function initStoreRegistry() {
|
|
62
|
+
if (typeof window > "u")
|
|
63
|
+
return;
|
|
64
|
+
if (!getGlobal(STX_STORES_KEY, null))
|
|
65
|
+
setGlobal(STX_STORES_KEY, {});
|
|
66
|
+
}
|
|
67
|
+
export function registerStore(name, store) {
|
|
68
|
+
const stores = getGlobal(STX_STORES_KEY, {});
|
|
69
|
+
stores[name] = store;
|
|
70
|
+
setGlobal(STX_STORES_KEY, stores);
|
|
71
|
+
}
|
|
72
|
+
export function getHydratedStoreState() {
|
|
73
|
+
return getGlobal(STX_STORE_STATE_KEY, null);
|
|
74
|
+
}
|
|
75
|
+
export function setRouteParams(params) {
|
|
76
|
+
setGlobal(STX_ROUTE_PARAMS_KEY, params);
|
|
77
|
+
}
|
|
78
|
+
export function setMiddlewareState(state) {
|
|
79
|
+
setGlobal(STX_MIDDLEWARE_STATE_KEY, state);
|
|
80
|
+
}
|
|
81
|
+
export function isServer() {
|
|
82
|
+
return typeof window > "u";
|
|
83
|
+
}
|
|
84
|
+
export function isClient() {
|
|
85
|
+
return typeof window < "u";
|
|
86
|
+
}
|
|
87
|
+
export function onClient(callback) {
|
|
88
|
+
if (isClient())
|
|
89
|
+
callback();
|
|
90
|
+
}
|
|
91
|
+
export function onServer(callback) {
|
|
92
|
+
if (isServer())
|
|
93
|
+
callback();
|
|
94
|
+
}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Safe expression evaluator that reduces security risks from using new Function()
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Safe evaluator configuration options
|
|
6
|
+
*/
|
|
7
|
+
export interface SafeEvaluatorConfig {
|
|
8
|
+
/** Maximum depth for object sanitization (default: 10) */
|
|
9
|
+
maxSanitizeDepth: number;
|
|
10
|
+
/**
|
|
11
|
+
* Allow bracket notation with string literals like `obj["key"]` (default: false).
|
|
12
|
+
*
|
|
13
|
+
* SECURITY WARNING: Enabling bracket notation broadens the attack surface.
|
|
14
|
+
* Bracket notation can access properties that dot-notation filters block
|
|
15
|
+
* (e.g. `obj["__proto__"]`, `obj["constructor"]`), and a dynamic key path
|
|
16
|
+
* assembled at runtime (`obj[userInput]`) cannot be statically proven safe.
|
|
17
|
+
* Only enable when all bracket keys are known string literals authored by
|
|
18
|
+
* the template writer — never based on untrusted input.
|
|
19
|
+
*/
|
|
20
|
+
allowBracketNotation: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Configure the safe evaluator
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* configureSafeEvaluator({
|
|
28
|
+
* maxSanitizeDepth: 20,
|
|
29
|
+
* allowBracketNotation: true
|
|
30
|
+
* })
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function configureSafeEvaluator(config: Partial<SafeEvaluatorConfig>): void;
|
|
34
|
+
/**
|
|
35
|
+
* Reset configuration to defaults
|
|
36
|
+
*/
|
|
37
|
+
export declare function resetSafeEvaluatorConfig(): void;
|
|
38
|
+
/**
|
|
39
|
+
* Get current configuration
|
|
40
|
+
*/
|
|
41
|
+
export declare function getSafeEvaluatorConfig(): SafeEvaluatorConfig;
|
|
42
|
+
/**
|
|
43
|
+
* Sanitize an expression by checking for dangerous patterns
|
|
44
|
+
*/
|
|
45
|
+
export declare function sanitizeExpression(expression: string): string;
|
|
46
|
+
/**
|
|
47
|
+
* Create a safer context object that only exposes safe properties
|
|
48
|
+
*/
|
|
49
|
+
export declare function createSafeContext(context: Record<string, unknown>): Record<string, unknown>;
|
|
50
|
+
/**
|
|
51
|
+
* Safely evaluate an expression with the given context
|
|
52
|
+
*
|
|
53
|
+
* @param expression - The JavaScript expression to evaluate
|
|
54
|
+
* @param context - Variables available during evaluation
|
|
55
|
+
* @returns The result of the expression evaluation, or undefined on error
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* // Basic usage
|
|
60
|
+
* const result = safeEvaluate('name.toUpperCase()', { name: 'hello' })
|
|
61
|
+
*
|
|
62
|
+
* // With type parameter for typed result
|
|
63
|
+
* const count = safeEvaluate<number>('items.length', { items: [1, 2, 3] })
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export declare function safeEvaluate<T = unknown>(expression: string, context: Record<string, unknown>): T | undefined;
|
|
67
|
+
/**
|
|
68
|
+
* Check if an expression is safe to evaluate
|
|
69
|
+
*/
|
|
70
|
+
export declare function isExpressionSafe(expression: string): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Return the reason an expression is unsafe, or `null` if it passes all
|
|
73
|
+
* sanitization checks. Useful for tooling and debugging — lets callers
|
|
74
|
+
* report a structured reason without `try/catch`ing sanitize errors.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* getExpressionSafetyReason('eval(x)') // → 'matched pattern /\\beval\\b/'
|
|
78
|
+
* getExpressionSafetyReason('a + b') // → null
|
|
79
|
+
*/
|
|
80
|
+
export declare function getExpressionSafetyReason(expression: string): string | null;
|
|
81
|
+
/**
|
|
82
|
+
* Safely evaluate an expression and return a boolean result
|
|
83
|
+
* Used for conditional expressions in @if, @unless, etc.
|
|
84
|
+
*
|
|
85
|
+
* @param expression - The condition expression to evaluate
|
|
86
|
+
* @param context - Variables available during evaluation
|
|
87
|
+
* @returns Boolean result, defaults to false on error
|
|
88
|
+
*/
|
|
89
|
+
export declare function safeEvaluateCondition(expression: string, context: Record<string, unknown>): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Safely evaluate an expression that returns an array
|
|
92
|
+
* Used for loop iterations in @foreach, @for, etc.
|
|
93
|
+
*
|
|
94
|
+
* @param expression - The array expression to evaluate
|
|
95
|
+
* @param context - Variables available during evaluation
|
|
96
|
+
* @returns Array result, defaults to empty array on error
|
|
97
|
+
*/
|
|
98
|
+
export declare function safeEvaluateArray(expression: string, context: Record<string, unknown>): unknown[];
|
|
99
|
+
/**
|
|
100
|
+
* Safely evaluate an expression that returns an object
|
|
101
|
+
* Used for props, attributes, configuration objects
|
|
102
|
+
*
|
|
103
|
+
* @param expression - The object expression to evaluate
|
|
104
|
+
* @param context - Variables available during evaluation
|
|
105
|
+
* @returns Object result, defaults to empty object on error
|
|
106
|
+
*/
|
|
107
|
+
export declare function safeEvaluateObject(expression: string, context: Record<string, unknown>): Record<string, unknown>;
|
|
108
|
+
/**
|
|
109
|
+
* The variables an expression actually reads from its surrounding scope.
|
|
110
|
+
*
|
|
111
|
+
* Deliberately not every identifier in the string. A property name is not a
|
|
112
|
+
* variable, and treating it as one is how `:label="section.label"` came to be
|
|
113
|
+
* misclassified: the section had no `label`, the expression evaluated to
|
|
114
|
+
* `undefined`, and the check for "does this reference something the server
|
|
115
|
+
* does not have?" found `label` — a key, not a binding — reported it as
|
|
116
|
+
* unresolved, and shipped the expression to the client as a reactive prop.
|
|
117
|
+
*
|
|
118
|
+
* On the client it could never resolve either: `section` is a server-side
|
|
119
|
+
* `@foreach` variable that does not exist in the browser. So every page with a
|
|
120
|
+
* component in a loop and one absent optional prop logged stx's own hydration
|
|
121
|
+
* invariant, once per prop, forever.
|
|
122
|
+
*
|
|
123
|
+
* Three things are stripped before identifiers are read: string contents, so a
|
|
124
|
+
* word inside a quote is not a variable; member access after `.` or `?.`, so a
|
|
125
|
+
* property is not a variable; and object-literal keys, for the same reason.
|
|
126
|
+
* What is left is the free variables, which is the question actually being
|
|
127
|
+
* asked.
|
|
128
|
+
*/
|
|
129
|
+
export declare function freeIdentifiers(expression: string): string[];
|
|
130
|
+
/**
|
|
131
|
+
* Whether `name` can be a `new Function` parameter name.
|
|
132
|
+
*
|
|
133
|
+
* Rejects the three classes JS refuses: non-identifiers (`data-id`, `1bad`),
|
|
134
|
+
* reserved words (`class`, `true`, `if`) and strict-mode-reserved words
|
|
135
|
+
* (`let`, `static`) -- the bodies here are always strict.
|
|
136
|
+
*
|
|
137
|
+
* Exported because every caller that spreads a template context into
|
|
138
|
+
* `new Function` needs exactly this test, and a near-miss copy is worse than
|
|
139
|
+
* none: an `isIdentifier`-only filter in variable-extractor.ts let `true`
|
|
140
|
+
* through, and one such key threw before the function was built, so the whole
|
|
141
|
+
* server script of six shipped components fell back to static extraction on
|
|
142
|
+
* every render (stacksjs/stx#1945 profiling, found via the fallback's cost).
|
|
143
|
+
*/
|
|
144
|
+
export declare function isUsableParamName(name: string): boolean;
|
|
145
|
+
export declare function createSafeFunction(expression: string, contextKeys: string[]): (...args: unknown[]) => unknown;
|
|
146
|
+
export declare function safeEvaluateCode(code: string, context: Record<string, unknown>): unknown;
|
|
147
|
+
/**
|
|
148
|
+
* Validate a for loop expression for safety
|
|
149
|
+
* Checks for dangerous patterns like eval, Function, import, etc.
|
|
150
|
+
*
|
|
151
|
+
* @param expression - The for loop expression (e.g., "let i = 0; i < n; i++")
|
|
152
|
+
* @returns true if safe, false if potentially dangerous
|
|
153
|
+
*/
|
|
154
|
+
export declare function isForExpressionSafe(expression: string): boolean;
|
|
155
|
+
/**
|
|
156
|
+
* Create a safe loop function with iteration limits
|
|
157
|
+
*
|
|
158
|
+
* @param loopType - 'for' or 'while'
|
|
159
|
+
* @param expression - The loop expression or condition
|
|
160
|
+
* @param body - The loop body template
|
|
161
|
+
* @param contextKeys - Variable names available in context
|
|
162
|
+
* @param maxIterations - Maximum iterations allowed (for while loops)
|
|
163
|
+
* @returns A function that executes the loop safely
|
|
164
|
+
*/
|
|
165
|
+
export declare function createSafeLoopFunction(loopType: 'for' | 'while', expression: string, body: string, contextKeys: string[], maxIterations?: number): (...args: unknown[]) => string;
|