@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,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime Globals
|
|
3
|
+
*
|
|
4
|
+
* The single source of truth for the stx APIs destructured off `window.stx` at
|
|
5
|
+
* the top of every generated client script, so user code can write `state(...)`
|
|
6
|
+
* or `onMount(...)` without importing anything.
|
|
7
|
+
*
|
|
8
|
+
* This list used to be hardcoded separately in three places — the `@include`
|
|
9
|
+
* component wrapper, the page setup function, and the `<Component />` client
|
|
10
|
+
* script wrapper. They drifted, so which APIs existed depended on which kind of
|
|
11
|
+
* script you happened to be writing, and the failure was a bare `ReferenceError`
|
|
12
|
+
* at runtime with nothing at build time: `nextTick()` resolved in a component
|
|
13
|
+
* script but threw in a page, `onMounted()` resolved in a page but threw in an
|
|
14
|
+
* `@include`d component. See #1785.
|
|
15
|
+
*
|
|
16
|
+
* Two entries were also phantoms - `inject` and `nextTick` were destructured by
|
|
17
|
+
* one site but never defined on `window.stx` at all, so they silently evaluated
|
|
18
|
+
* to `undefined` and threw "is not a function" when called. Both are now
|
|
19
|
+
* implemented by the signals runtime (`inject` as of #1804).
|
|
20
|
+
*
|
|
21
|
+
* This list is also the source of `STX_AUTO_IMPORTS` (client-script.ts), which
|
|
22
|
+
* used to be a fourth hand-maintained copy for the classic `<script client>`
|
|
23
|
+
* path. It had drifted to 82 names against a runtime surface of 66, so 16 names
|
|
24
|
+
* — `h`, `Fragment`, `createStore`, `useMeta`, `getCurrentInstance` and others —
|
|
25
|
+
* were destructured off `window.stx` for every client script and silently bound
|
|
26
|
+
* to `undefined`, failing at the call site as "undefined is not a function" with
|
|
27
|
+
* nothing pointing at the missing name. One list, one guard (#1804).
|
|
28
|
+
*
|
|
29
|
+
* Adding a runtime global is now a one-line change here. `runtime-globals.test.ts`
|
|
30
|
+
* asserts every name actually exists on `window.stx` and that all three call
|
|
31
|
+
* sites emit the same set, which is what keeps this from drifting again.
|
|
32
|
+
*
|
|
33
|
+
* @module runtime-globals
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* Public stx APIs made available as bare identifiers inside client scripts.
|
|
37
|
+
*
|
|
38
|
+
* Sorted for a stable diff. Internal `window.stx` members (`_scopes`,
|
|
39
|
+
* `_cleanupContainer`, …) are deliberately excluded — they are runtime
|
|
40
|
+
* plumbing, not part of the authoring surface.
|
|
41
|
+
*/
|
|
42
|
+
export declare const STX_RUNTIME_GLOBALS: readonly string[];
|
|
43
|
+
/**
|
|
44
|
+
* Names a call site declares itself and therefore must NOT also destructure.
|
|
45
|
+
*
|
|
46
|
+
* The `<Component />` wrapper defines scope-aware `onMount`/`onDestroy` that
|
|
47
|
+
* push into that component's own callback arrays:
|
|
48
|
+
*
|
|
49
|
+
* const onMount = (fn) => __scopeVars.__mountCallbacks.push(fn)
|
|
50
|
+
*
|
|
51
|
+
* Destructuring the same names first makes that a duplicate `const` — a
|
|
52
|
+
* SyntaxError, which surfaces as the whole chunk silently failing to minify (and
|
|
53
|
+
* failing to run). This omission is deliberate, unlike the accidental drift
|
|
54
|
+
* #1785 fixed, so it is declared here rather than left implicit.
|
|
55
|
+
*/
|
|
56
|
+
export declare const COMPONENT_SCOPE_LOCAL_GLOBALS: readonly string[];
|
|
57
|
+
/**
|
|
58
|
+
* Build the destructuring statement that pulls {@link STX_RUNTIME_GLOBALS} into
|
|
59
|
+
* a generated client script's scope.
|
|
60
|
+
*
|
|
61
|
+
* @param declaration `var` for scripts that reassign a binding (the `@include`
|
|
62
|
+
* wrapper rebinds `onDestroy` to tee into its teardown channel — an assignment,
|
|
63
|
+
* which `var` permits), `const` otherwise.
|
|
64
|
+
* @param exclude names the generated wrapper or user script declares itself.
|
|
65
|
+
* A local declaration is intentionally allowed to shadow a runtime convenience
|
|
66
|
+
* global, just as an explicit import would. Omitting it from this destructure
|
|
67
|
+
* prevents duplicate-binding syntax errors.
|
|
68
|
+
* @param source optionally limits bindings to identifiers referenced by one
|
|
69
|
+
* component script. Page-level callers omit it and retain the full authoring
|
|
70
|
+
* surface.
|
|
71
|
+
*/
|
|
72
|
+
export declare function buildRuntimeGlobalsDestructure(declaration?: 'const' | 'var', exclude?: readonly string[], source?: string): string;
|
|
73
|
+
/**
|
|
74
|
+
* Runtime globals that are COMPILE-TIME macros rather than reactive APIs.
|
|
75
|
+
*
|
|
76
|
+
* Calling one of these does not make a script reactive — they are consumed by
|
|
77
|
+
* the compiler and produce no runtime subscription — so the auto-mount test
|
|
78
|
+
* below must not treat them as evidence that a block needs mounting.
|
|
79
|
+
*/
|
|
80
|
+
export declare const COMPILE_TIME_ONLY_GLOBALS: readonly string[];
|
|
81
|
+
/**
|
|
82
|
+
* Public authoring primitives that are NOT reachable as a bare identifier in a
|
|
83
|
+
* `<script client>` block, each tagged with WHY — so the client/server boundary
|
|
84
|
+
* is discoverable in source instead of inferred from a `ReferenceError` at
|
|
85
|
+
* runtime (stacksjs/stx#1846).
|
|
86
|
+
*
|
|
87
|
+
* Paired with the export-side guard in `authoring-surface.test.ts`: a newly
|
|
88
|
+
* exported composable that is reachable by neither client path — a bare global
|
|
89
|
+
* in {@link STX_RUNTIME_GLOBALS} (path 1), nor the demand-bundle allowlist
|
|
90
|
+
* `SERVER_ONLY_COMPOSABLES` (path 2) — must be classified here, or the test
|
|
91
|
+
* fails. Same "force a decision" contract that COMPILE_TIME_ONLY_GLOBALS and
|
|
92
|
+
* DELIBERATELY_NOT_GLOBAL already apply in their own directions.
|
|
93
|
+
*
|
|
94
|
+
* `client-gap` is deliberately distinct from `server-only`: it marks a primitive
|
|
95
|
+
* that SHOULD be callable from a client script but is not yet wired into either
|
|
96
|
+
* client path — a tracked gap, not a boundary.
|
|
97
|
+
*
|
|
98
|
+
* `isomorphic-import` is distinct again: the primitive is pure and WOULD run in a
|
|
99
|
+
* browser, but the project has decided it is not part of the auto-delivered
|
|
100
|
+
* client surface — an app imports it explicitly. Not a gap to close; a boundary
|
|
101
|
+
* drawn on purpose.
|
|
102
|
+
*/
|
|
103
|
+
export type NonClientCategory = 'server-only' | 'builtin-component' | 'compile-time-directive' | 'browser-composable' | 'client-gap' | 'isomorphic-import';
|
|
104
|
+
export declare const NON_CLIENT_PRIMITIVES: Readonly<Record<string, {
|
|
105
|
+
category: NonClientCategory;
|
|
106
|
+
reason: string;
|
|
107
|
+
}>>;
|
|
108
|
+
/**
|
|
109
|
+
* Names whose presence in a client script means it needs the signals runtime
|
|
110
|
+
* and an `stx.mount()` wrapper.
|
|
111
|
+
*
|
|
112
|
+
* DERIVED, not hand-maintained (stacksjs/stx#1819). This was a literal regex
|
|
113
|
+
* alternation of 36 names against 71 runtime globals, so a block built out of
|
|
114
|
+
* the newer reactive composables — `useStore`, `useQuery`, `useMutation`,
|
|
115
|
+
* `useCookie`, `watchMultiple` and a dozen more — was classified as "not using
|
|
116
|
+
* signals", skipped mounting, and fell through to the legacy IIFE path with no
|
|
117
|
+
* reactivity at all.
|
|
118
|
+
*
|
|
119
|
+
* Exactly the drift #1804 removed for STX_AUTO_IMPORTS, one file away.
|
|
120
|
+
*/
|
|
121
|
+
export declare const REACTIVE_RUNTIME_GLOBALS: readonly string[];
|
|
122
|
+
/**
|
|
123
|
+
* Does this script call anything that needs the reactive runtime?
|
|
124
|
+
*
|
|
125
|
+
* Matches a CALL, not a mention: a bare word can be a property, a string or a
|
|
126
|
+
* comment. Tolerates a generic argument list, since `state<Foo>(…)` is valid
|
|
127
|
+
* TypeScript and common.
|
|
128
|
+
*/
|
|
129
|
+
export declare function usesReactiveRuntime(source: string): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Does this template have a reactive context — a signal, a bound attribute, a
|
|
132
|
+
* reactive directive, or a client script — that will own its event handlers?
|
|
133
|
+
*
|
|
134
|
+
* This is the question `processEventDirectives` (events.ts) needs. It decides
|
|
135
|
+
* whether to leave `@click` in the markup for the signals runtime to bind, or to
|
|
136
|
+
* strip it and bind it imperatively through `__stx_runHandler`.
|
|
137
|
+
*
|
|
138
|
+
* It used to answer that with its own regex matching only `state`/`derived`/
|
|
139
|
+
* `effect` plus four directives, so a client block built out of `useStore` (or
|
|
140
|
+
* any of the other ~65 reactive globals) failed it. The handler was stripped and
|
|
141
|
+
* rebound to code that resolves it through a `[data-stx-scope]` ancestor that
|
|
142
|
+
* page-level client blocks never get, then fell back to evaluating the bare
|
|
143
|
+
* name — which lives inside the setup closure and is not a global. Every handler
|
|
144
|
+
* on the page died with a ReferenceError on click (#1824).
|
|
145
|
+
*
|
|
146
|
+
* Note this is NOT the same question as {@link templateNeedsRuntime}: a template
|
|
147
|
+
* whose only client-side behaviour is `<button @click="doIt()">` needs the
|
|
148
|
+
* runtime injected, but has no reactive scope to own the handler, so events.ts
|
|
149
|
+
* must still bind it imperatively. Conflating the two makes that fallback
|
|
150
|
+
* unreachable.
|
|
151
|
+
*/
|
|
152
|
+
export declare function templateHasReactiveContext(template: string, filePath?: string): boolean;
|
|
153
|
+
/**
|
|
154
|
+
* Will this template get the client signals runtime?
|
|
155
|
+
*
|
|
156
|
+
* A reactive context needs it, and so does a lone event handler — something has
|
|
157
|
+
* to bind that, and the runtime is what binds it when a reactive scope exists.
|
|
158
|
+
*
|
|
159
|
+
* This had three independent implementations that disagreed, and every
|
|
160
|
+
* disagreement was a bug: `hasSignalsSyntax` (signal-processing.ts) decides
|
|
161
|
+
* whether to INJECT the runtime; the auto-mount test (client-script.ts) decides
|
|
162
|
+
* whether to wrap a client block in `stx.mount()` — when it said yes and the
|
|
163
|
+
* first said no, the page emitted `stx.mount(...)` with nothing to mount onto
|
|
164
|
+
* (#1819, #1820); and events.ts asked the related-but-distinct question above
|
|
165
|
+
* (#1824).
|
|
166
|
+
*
|
|
167
|
+
* They live here because events.ts is a leaf module and importing
|
|
168
|
+
* signal-processing.ts would close a cycle through client-script.ts.
|
|
169
|
+
*/
|
|
170
|
+
export declare function templateNeedsRuntime(template: string, filePath?: string): boolean;
|
|
171
|
+
/**
|
|
172
|
+
* Colon attributes that are DIRECTIVES, not attribute bindings.
|
|
173
|
+
*
|
|
174
|
+
* `:href` and `:disabled` name a real HTML attribute and can be resolved to one.
|
|
175
|
+
* `:if`, `:for` and `:text` do not — they are instructions to the conditional
|
|
176
|
+
* processor, the loop runtime and the text binder, and the element carries no
|
|
177
|
+
* attribute of that name at any point.
|
|
178
|
+
*
|
|
179
|
+
* The distinction had never been written down, so `processServerBindings`
|
|
180
|
+
* evaluated every `:name="expr"` alike. It went unnoticed because its tag regex
|
|
181
|
+
* required each attribute chunk to start with whitespace and be a single
|
|
182
|
+
* character, so it never matched a real tag with a real attribute — the pass was
|
|
183
|
+
* effectively dead. Fixing that regex (0.2.173) switched it on for everything at
|
|
184
|
+
* once, and `<p :if="error">` started rendering as `<p if="Bad creds">`: the
|
|
185
|
+
* attribute leaked into the markup AND the conditional stopped applying, so a
|
|
186
|
+
* falsy condition no longer removed the element. Same for `:show`, `:text`,
|
|
187
|
+
* `:html`, `:model` and `:key`.
|
|
188
|
+
*
|
|
189
|
+
* `:class` and `:style` are deliberately absent: they DO resolve to real
|
|
190
|
+
* attributes, and `processServerBindings` has specific handling for them.
|
|
191
|
+
*/
|
|
192
|
+
export declare const RUNTIME_OWNED_COLON_ATTRS: readonly string[];
|
|
193
|
+
/** Is this colon attribute a directive rather than something to resolve? */
|
|
194
|
+
export declare function isRuntimeOwnedColonAttr(name: string): boolean;
|
|
195
|
+
/**
|
|
196
|
+
* `x-` attributes the signals runtime consumes itself.
|
|
197
|
+
*
|
|
198
|
+
* The runtime treats any unrecognised `x-foo` as a generic attribute binding
|
|
199
|
+
* (`x-href`, `x-src`, `x-alt` all work that way), so the ones it handles
|
|
200
|
+
* through their own code paths have to be excluded — that exclusion is what
|
|
201
|
+
* this list is.
|
|
202
|
+
*
|
|
203
|
+
* It is also what decides whether a component may carry the attribute, which
|
|
204
|
+
* is why it lives here rather than only inside the generated runtime. Those
|
|
205
|
+
* were two hand-maintained lists, and they disagreed about exactly two names:
|
|
206
|
+
* `x-tooltip` and `x-tooltip-position`, the most recently added pair (#1673).
|
|
207
|
+
* Putting one on a COMPONENT rewrote it to `:tooltip="Settings"`, a signal
|
|
208
|
+
* binding over an identifier that does not exist — so the tooltip silently
|
|
209
|
+
* vanished AND the page reported a hydration invariant failure naming the
|
|
210
|
+
* tooltip's text rather than the tooltip (#1830). The same attribute on a
|
|
211
|
+
* plain element worked, which made it unguessable from the authoring side.
|
|
212
|
+
*/
|
|
213
|
+
export declare const RUNTIME_HANDLED_X_ATTRS: readonly string[];
|
|
214
|
+
/**
|
|
215
|
+
* `x-` attributes owned by the Alpine-style reactive bridge, not the signals
|
|
216
|
+
* runtime. They never reach `X_HANDLED`, but must still survive on a component
|
|
217
|
+
* for the bridge to find them on the rendered element.
|
|
218
|
+
*/
|
|
219
|
+
export declare const ALPINE_BRIDGE_X_ATTRS: readonly string[];
|
|
220
|
+
/**
|
|
221
|
+
* Every `x-` attribute that must reach the rendered DOM element untouched when
|
|
222
|
+
* it is written on a component, rather than being captured as a prop binding.
|
|
223
|
+
*/
|
|
224
|
+
export declare const COMPONENT_PASSTHROUGH_X_ATTRS: readonly string[];
|
|
225
|
+
/** The `X_HANDLED` lookup the generated runtime embeds, as JS source. */
|
|
226
|
+
export declare function runtimeHandledXAttrsLiteral(): string;
|
|
227
|
+
/**
|
|
228
|
+
* Drop cached blanked documents.
|
|
229
|
+
*
|
|
230
|
+
* Nothing in the framework calls this, and nothing needs to. Entries are keyed
|
|
231
|
+
* on the input document itself, so an edited template is a different key and
|
|
232
|
+
* can never be answered with a stale result -- there is no invalidation to
|
|
233
|
+
* perform. It exists for callers that want a cold cache, such as tests.
|
|
234
|
+
*/
|
|
235
|
+
export declare function clearBlankCache(): void;
|
|
236
|
+
export declare function blankInertHtmlRegions(html: string): string;
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { importsSignalDeclarations } from "./imported-signals.js";
|
|
2
|
+
export const STX_RUNTIME_GLOBALS = [
|
|
3
|
+
"batch",
|
|
4
|
+
"computed",
|
|
5
|
+
"configureFetch",
|
|
6
|
+
"defineEmits",
|
|
7
|
+
"defineExpose",
|
|
8
|
+
"definePageMeta",
|
|
9
|
+
"defineProps",
|
|
10
|
+
"defineSlots",
|
|
11
|
+
"defineStore",
|
|
12
|
+
"derived",
|
|
13
|
+
"effect",
|
|
14
|
+
"goBack",
|
|
15
|
+
"goForward",
|
|
16
|
+
"inject",
|
|
17
|
+
"invalidateRoute",
|
|
18
|
+
"isDerived",
|
|
19
|
+
"isSignal",
|
|
20
|
+
"navigate",
|
|
21
|
+
"nextTick",
|
|
22
|
+
"onBeforeMount",
|
|
23
|
+
"onBeforeUnmount",
|
|
24
|
+
"onDestroy",
|
|
25
|
+
"onMount",
|
|
26
|
+
"onMounted",
|
|
27
|
+
"onUnmounted",
|
|
28
|
+
"peek",
|
|
29
|
+
"provide",
|
|
30
|
+
"reactive",
|
|
31
|
+
"ref",
|
|
32
|
+
"refresh",
|
|
33
|
+
"registerStoresClient",
|
|
34
|
+
"setRouteParams",
|
|
35
|
+
"state",
|
|
36
|
+
"untrack",
|
|
37
|
+
"useAsync",
|
|
38
|
+
"useClickOutside",
|
|
39
|
+
"useColorMode",
|
|
40
|
+
"useCookie",
|
|
41
|
+
"useCounter",
|
|
42
|
+
"useDark",
|
|
43
|
+
"useDebounce",
|
|
44
|
+
"useDebouncedValue",
|
|
45
|
+
"useEventListener",
|
|
46
|
+
"useFetch",
|
|
47
|
+
"useFocus",
|
|
48
|
+
"useHead",
|
|
49
|
+
"useId",
|
|
50
|
+
"useInterval",
|
|
51
|
+
"useLocalStorage",
|
|
52
|
+
"useMediaQuery",
|
|
53
|
+
"useMutation",
|
|
54
|
+
"useOptimistic",
|
|
55
|
+
"usePreferredContrast",
|
|
56
|
+
"usePreferredDark",
|
|
57
|
+
"usePreferredLight",
|
|
58
|
+
"usePreferredReducedMotion",
|
|
59
|
+
"useQuery",
|
|
60
|
+
"useReactiveProp",
|
|
61
|
+
"useRef",
|
|
62
|
+
"useRoute",
|
|
63
|
+
"useRouteParam",
|
|
64
|
+
"useRouteParams",
|
|
65
|
+
"useScrollLock",
|
|
66
|
+
"useSearchParams",
|
|
67
|
+
"useSeoMeta",
|
|
68
|
+
"useSessionStorage",
|
|
69
|
+
"useSlots",
|
|
70
|
+
"useStore",
|
|
71
|
+
"useThrottle",
|
|
72
|
+
"useTimeout",
|
|
73
|
+
"useToggle",
|
|
74
|
+
"useWebSocket",
|
|
75
|
+
"watch",
|
|
76
|
+
"watchEffect",
|
|
77
|
+
"watchMultiple",
|
|
78
|
+
"withDefaults"
|
|
79
|
+
], COMPONENT_SCOPE_LOCAL_GLOBALS = ["onMount", "onDestroy"];
|
|
80
|
+
export function buildRuntimeGlobalsDestructure(declaration = "const", exclude = [], source) {
|
|
81
|
+
let names = exclude.length ? STX_RUNTIME_GLOBALS.filter((name) => !exclude.includes(name)) : STX_RUNTIME_GLOBALS;
|
|
82
|
+
if (source !== void 0)
|
|
83
|
+
names = names.filter((name) => {
|
|
84
|
+
const escaped = name.replace(/[$()*+.?[\\\]^{|}-]/g, "\\$&");
|
|
85
|
+
return new RegExp(`(^|[^\\w$])${escaped}(?![\\w$])`).test(source);
|
|
86
|
+
});
|
|
87
|
+
return `${declaration} { ${names.join(", ")} } = window.stx;`;
|
|
88
|
+
}
|
|
89
|
+
export const COMPILE_TIME_ONLY_GLOBALS = [
|
|
90
|
+
"defineEmits",
|
|
91
|
+
"defineExpose",
|
|
92
|
+
"definePageMeta",
|
|
93
|
+
"defineProps",
|
|
94
|
+
"defineSlots",
|
|
95
|
+
"withDefaults"
|
|
96
|
+
], NON_CLIENT_PRIMITIVES = {
|
|
97
|
+
redirect: { category: "server-only", reason: "returns an HTTP Response for <script server>/edge/build; use navigate() on the client." },
|
|
98
|
+
useAsyncData: { category: "browser-composable", reason: "inlined on demand from src/composables when a script references it; reachable, not a bare global." },
|
|
99
|
+
Teleport: { category: "compile-time-directive", reason: "template tag resolved by processTeleportDirectives; not a script callable." },
|
|
100
|
+
StxModalBuiltin: { category: "builtin-component", reason: "builtin component used as a template tag; drive open/close from the modal store." },
|
|
101
|
+
StxToastBuiltin: { category: "builtin-component", reason: "builtin component used as a template tag; push toasts via the toast store." },
|
|
102
|
+
useForm: { category: "browser-composable", reason: "reactive form primitive; lives in src/composables/use-form.ts and is inlined on demand when a <script client> references it (#1846)." },
|
|
103
|
+
defineForm: { category: "browser-composable", reason: "deprecated alias of useForm, kept for a minor (#1843). Same delivery path \u2014 inlined on demand from src/composables/use-form.ts." },
|
|
104
|
+
validateFields: { category: "isomorphic-import", reason: "pure validation helper; import it directly, not auto-delivered to <script client> (per client-api-delivery.test.ts)." },
|
|
105
|
+
validateField: { category: "isomorphic-import", reason: "singular pure validation helper; same explicit-import boundary as validateFields." }
|
|
106
|
+
}, REACTIVE_RUNTIME_GLOBALS = STX_RUNTIME_GLOBALS.filter((name) => !COMPILE_TIME_ONLY_GLOBALS.includes(name));
|
|
107
|
+
export function usesReactiveRuntime(source) {
|
|
108
|
+
if (!source)
|
|
109
|
+
return !1;
|
|
110
|
+
return REACTIVE_RUNTIME_GLOBALS.some((name) => new RegExp(`\\b${name}\\s*(?:<[^>]*>)?\\s*\\(`).test(source));
|
|
111
|
+
}
|
|
112
|
+
const TEMPLATE_REACTIVE_PATTERNS = [
|
|
113
|
+
/@if\s*=/,
|
|
114
|
+
/@for\s*=/,
|
|
115
|
+
/@show\s*=/,
|
|
116
|
+
/@model\s*=/,
|
|
117
|
+
/@bind:/,
|
|
118
|
+
/@class\s*=/,
|
|
119
|
+
/@style\s*=/,
|
|
120
|
+
/\bx-data\s*=/,
|
|
121
|
+
/\bstate\s*(?:<[^>]*>)?\s*\(/,
|
|
122
|
+
/\bderived\s*(?:<[^>]*>)?\s*\(/,
|
|
123
|
+
/\beffect\s*(?:<[^>]*>)?\s*\(/,
|
|
124
|
+
/\bref\s*(?:<[^>]*>)?\s*\(/,
|
|
125
|
+
/\bcomputed\s*(?:<[^>]*>)?\s*\(/,
|
|
126
|
+
/\breactive\s*(?:<[^>]*>)?\s*\(/,
|
|
127
|
+
/\bwatch\s*(?:<[^>]*>)?\s*\(/,
|
|
128
|
+
/\bwatchEffect\s*(?:<[^>]*>)?\s*\(/,
|
|
129
|
+
/\s:[a-z][\w-]*\s*=\s*["']/i,
|
|
130
|
+
/\s:(?:if|else-if|else|for|show|text|html|model)\s*=/,
|
|
131
|
+
/data-stx(?:-auto)?(?![-\w])/,
|
|
132
|
+
/data-stx-scoped/
|
|
133
|
+
], HAS_EVENT_HANDLER = /\s@[a-z][\w.:-]*\s*=/i;
|
|
134
|
+
export function templateHasReactiveContext(template, filePath) {
|
|
135
|
+
if (!template)
|
|
136
|
+
return !1;
|
|
137
|
+
const live = blankInertHtmlRegions(template);
|
|
138
|
+
return liveTemplateHasReactiveContext(live, filePath);
|
|
139
|
+
}
|
|
140
|
+
function liveTemplateHasReactiveContext(live, filePath) {
|
|
141
|
+
if (TEMPLATE_REACTIVE_PATTERNS.some((pattern) => pattern.test(live)))
|
|
142
|
+
return !0;
|
|
143
|
+
if (usesReactiveRuntime(live))
|
|
144
|
+
return !0;
|
|
145
|
+
return scriptsImportSignals(live, filePath);
|
|
146
|
+
}
|
|
147
|
+
function scriptsImportSignals(template, filePath) {
|
|
148
|
+
if (!filePath)
|
|
149
|
+
return !1;
|
|
150
|
+
for (const match of template.matchAll(/<script\b(?![^>]*\bserver\b)(?![^>]*\bsrc\s*=)[^>]*>([\s\S]*?)<\/script\s*>/gi))
|
|
151
|
+
if (importsSignalDeclarations(match[1], filePath))
|
|
152
|
+
return !0;
|
|
153
|
+
return !1;
|
|
154
|
+
}
|
|
155
|
+
export function templateNeedsRuntime(template, filePath) {
|
|
156
|
+
if (!template)
|
|
157
|
+
return !1;
|
|
158
|
+
const live = blankInertHtmlRegions(template);
|
|
159
|
+
return HAS_EVENT_HANDLER.test(live) || liveTemplateHasReactiveContext(live, filePath);
|
|
160
|
+
}
|
|
161
|
+
export const RUNTIME_OWNED_COLON_ATTRS = [
|
|
162
|
+
"if",
|
|
163
|
+
"else-if",
|
|
164
|
+
"elseif",
|
|
165
|
+
"else",
|
|
166
|
+
"for",
|
|
167
|
+
"show",
|
|
168
|
+
"key",
|
|
169
|
+
"text",
|
|
170
|
+
"html",
|
|
171
|
+
"model",
|
|
172
|
+
"ref"
|
|
173
|
+
];
|
|
174
|
+
export function isRuntimeOwnedColonAttr(name) {
|
|
175
|
+
return RUNTIME_OWNED_COLON_ATTRS.includes(name.toLowerCase());
|
|
176
|
+
}
|
|
177
|
+
export const RUNTIME_HANDLED_X_ATTRS = [
|
|
178
|
+
"x-text",
|
|
179
|
+
"x-html",
|
|
180
|
+
"x-model",
|
|
181
|
+
"x-show",
|
|
182
|
+
"x-if",
|
|
183
|
+
"x-for",
|
|
184
|
+
"x-cloak",
|
|
185
|
+
"x-ref",
|
|
186
|
+
"x-data",
|
|
187
|
+
"x-bind",
|
|
188
|
+
"x-class",
|
|
189
|
+
"x-style",
|
|
190
|
+
"x-tooltip",
|
|
191
|
+
"x-tooltip-position"
|
|
192
|
+
], ALPINE_BRIDGE_X_ATTRS = [
|
|
193
|
+
"x-init",
|
|
194
|
+
"x-transition",
|
|
195
|
+
"x-effect",
|
|
196
|
+
"x-on"
|
|
197
|
+
], COMPONENT_PASSTHROUGH_X_ATTRS = [
|
|
198
|
+
...RUNTIME_HANDLED_X_ATTRS,
|
|
199
|
+
...ALPINE_BRIDGE_X_ATTRS
|
|
200
|
+
];
|
|
201
|
+
export function runtimeHandledXAttrsLiteral() {
|
|
202
|
+
return `{${RUNTIME_HANDLED_X_ATTRS.map((n) => `'${n}':1`).join(",")}}`;
|
|
203
|
+
}
|
|
204
|
+
const BLANK_CACHE_MIN_BYTES = 65536, BLANK_CACHE_MAX_ENTRIES = 4, blankCache = new Map;
|
|
205
|
+
export function clearBlankCache() {
|
|
206
|
+
blankCache.clear();
|
|
207
|
+
}
|
|
208
|
+
export function blankInertHtmlRegions(html) {
|
|
209
|
+
if (!html)
|
|
210
|
+
return html;
|
|
211
|
+
if (!html.includes("<!--") && !/<(?:pre|code)\b/i.test(html))
|
|
212
|
+
return html;
|
|
213
|
+
const cacheable = html.length >= BLANK_CACHE_MIN_BYTES;
|
|
214
|
+
if (cacheable) {
|
|
215
|
+
const hit = blankCache.get(html);
|
|
216
|
+
if (hit !== void 0)
|
|
217
|
+
return hit;
|
|
218
|
+
}
|
|
219
|
+
const blankText = (segment) => segment.replace(/(<[^>]*>)|([^<]+)/g, (_match, tag, text) => tag ?? " ".repeat(text.length)), blanked = html.replace(/(<pre\b[^>]*>)([\s\S]*?)(<\/pre>)/gi, (_m, open, body, close) => open + blankText(body) + close).replace(/(<code\b[^>]*>)([\s\S]*?)(<\/code>)/gi, (_m, open, body, close) => open + blankText(body) + close).replace(/<!--[\s\S]*?-->/g, (match) => " ".repeat(match.length));
|
|
220
|
+
if (cacheable) {
|
|
221
|
+
while (blankCache.size >= BLANK_CACHE_MAX_ENTRIES) {
|
|
222
|
+
const oldest = blankCache.keys().next();
|
|
223
|
+
if (oldest.done)
|
|
224
|
+
break;
|
|
225
|
+
blankCache.delete(oldest.value);
|
|
226
|
+
}
|
|
227
|
+
blankCache.set(html, blanked);
|
|
228
|
+
}
|
|
229
|
+
return blanked;
|
|
230
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime Injection Module
|
|
3
|
+
*
|
|
4
|
+
* Handles injecting the signals runtime, browser runtime, and SPA router
|
|
5
|
+
* script into rendered HTML templates.
|
|
6
|
+
*
|
|
7
|
+
* @module runtime-injection
|
|
8
|
+
*/
|
|
9
|
+
import type { StxOptions } from './types';
|
|
10
|
+
/**
|
|
11
|
+
* Inject an @stacksjs/browser initialization input into a template that will
|
|
12
|
+
* continue through STX client-script processing. The later bundling pass turns
|
|
13
|
+
* this package specifier into browser-ready code.
|
|
14
|
+
*
|
|
15
|
+
* IMPORTANT: Only checks CLIENT scripts (not <script server>).
|
|
16
|
+
* Server scripts should use the server ORM directly, not browser functions.
|
|
17
|
+
*/
|
|
18
|
+
export declare function injectBrowserRuntime(template: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Does this rendered page ship the signals runtime?
|
|
21
|
+
*
|
|
22
|
+
* Answers the question the SPA router cannot: a fragment never carries the
|
|
23
|
+
* runtime, so swapping one into a page that has none leaves it permanently
|
|
24
|
+
* unhydrated. The router used to guess from markers in the fragment markup and
|
|
25
|
+
* missed the shape that has no markers at all — reactive syntax with no setup
|
|
26
|
+
* function, whose only stamp is `data-stx-auto` on `<body>`, which the fragment
|
|
27
|
+
* excludes (stacksjs/stx#1827). The server knows, because it is the thing that
|
|
28
|
+
* decided; it reports the answer in `X-STX-Runtime` on fragment responses.
|
|
29
|
+
*
|
|
30
|
+
* Deliberately keyed on the same marker `injectSignalsRuntime` writes and
|
|
31
|
+
* checks below, so the two cannot disagree about what "has a runtime" means.
|
|
32
|
+
* Pass the FULL page, before it is reduced to the container's inner content.
|
|
33
|
+
*/
|
|
34
|
+
export declare function pageShipsSignalsRuntime(fullPageHtml: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Does this rendered output contain a script that will THROW without the
|
|
37
|
+
* signals runtime?
|
|
38
|
+
*
|
|
39
|
+
* The safety net for stacksjs/stx#1820. Two independent decisions used to be
|
|
40
|
+
* made about the same page — `hasSignalsSyntax` decided whether to inject the
|
|
41
|
+
* runtime, and the client-script pass separately decided to emit
|
|
42
|
+
* `window.stx.mount(...)` — and nothing reconciled them. When they disagreed
|
|
43
|
+
* the page died on its first client line with "Cannot read properties of
|
|
44
|
+
* undefined (reading 'mount')", taking every handler defined in that block
|
|
45
|
+
* with it.
|
|
46
|
+
*
|
|
47
|
+
* Widening the gate does not fix that; it only makes the disagreement rarer,
|
|
48
|
+
* and it has already been widened twice. The gate is also evaluated against a
|
|
49
|
+
* template `processEventDirectives` has already rewritten, so an `@event=`
|
|
50
|
+
* page cannot match it however many patterns are added. This asks the opposite
|
|
51
|
+
* question, of the finished output, where no ordering can hide the answer: did
|
|
52
|
+
* we emit something that requires the runtime?
|
|
53
|
+
*
|
|
54
|
+
* Keyed on an UNGUARDED reach for `window.stx`, because that is precisely what
|
|
55
|
+
* throws. The guarded spellings the compiler also emits are all safe and must
|
|
56
|
+
* not trigger injection:
|
|
57
|
+
*
|
|
58
|
+
* var { state } = window.stx || window; // falls back
|
|
59
|
+
* var s = window.stx || {}; // falls back
|
|
60
|
+
* window.stx = window.stx || {}; // self-initializing
|
|
61
|
+
* if (window.stx) window.stx._latestSetup = null; // guarded
|
|
62
|
+
*
|
|
63
|
+
* The appearance bootstrap is the reason this runs before that directive is
|
|
64
|
+
* processed: it emits a self-contained `data-stx-scoped` script on pages with
|
|
65
|
+
* no reactivity at all, so keying on the presence of a client script — the
|
|
66
|
+
* obvious invariant, and the one the issue suggested — would pull the runtime
|
|
67
|
+
* onto every static page that sets a theme.
|
|
68
|
+
*/
|
|
69
|
+
export declare function outputNeedsSignalsRuntime(html: string): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Inject STX signals runtime into the template.
|
|
72
|
+
* The runtime provides client-side reactivity.
|
|
73
|
+
*/
|
|
74
|
+
export declare function injectSignalsRuntime(template: string, options: StxOptions): Promise<string>;
|
|
75
|
+
/**
|
|
76
|
+
* Whether the finished page has an element carrying `x-tooltip`.
|
|
77
|
+
*
|
|
78
|
+
* Asked of the OUTPUT rather than the source, for the reason
|
|
79
|
+
* `outputNeedsSignalsRuntime` is: both the attribute and every rewrite that
|
|
80
|
+
* could have produced it have happened by then, so no processing order can hide
|
|
81
|
+
* the answer.
|
|
82
|
+
*
|
|
83
|
+
* Anchored on `<` … so the name has to sit inside a tag: documentation prose
|
|
84
|
+
* that merely names the attribute does not pull a runtime onto the page. The
|
|
85
|
+
* attribute value is allowed to contain `>` — a tooltip reading `a > b` is
|
|
86
|
+
* ordinary — so the scan walks to the quote rather than to the first `>`.
|
|
87
|
+
*/
|
|
88
|
+
export declare function outputNeedsTooltipRuntime(html: string): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Ship the `x-tooltip` runtime on any page that uses the attribute.
|
|
91
|
+
*
|
|
92
|
+
* `getTooltipRuntime()` was written, exported from `builtins/index.ts`, and
|
|
93
|
+
* called by nothing — two definitions and zero call sites, in stx and in
|
|
94
|
+
* `bun-plugin-stx`. `registerBuiltins()` registers ten builtins and tooltip is
|
|
95
|
+
* not one of them, so the attribute reached the DOM and nothing ever acted on
|
|
96
|
+
* it. Hovering showed the native `title` tooltip, which would have shown anyway
|
|
97
|
+
* (stacksjs/stx#1922).
|
|
98
|
+
*
|
|
99
|
+
* The dead export was not merely unused: the codemod's largest and only
|
|
100
|
+
* auto-fixable rule rewrites `title=` into `x-tooltip=`, so every consuming
|
|
101
|
+
* codebase was being pointed at an attribute that had never worked. It read as
|
|
102
|
+
* an adoption problem — `codemod.d.ts` records `x-tooltip` as "delivered and
|
|
103
|
+
* used zero times" — when the cause was that there was nothing to adopt.
|
|
104
|
+
*
|
|
105
|
+
* Not a registered builtin, because it is not a component: it is one delegated
|
|
106
|
+
* listener pair on `document`, so it costs nothing when no element matches and
|
|
107
|
+
* covers elements added later without per-element wiring. Injected only when the
|
|
108
|
+
* attribute is present, and before the CSP pass so a nonce still reaches it.
|
|
109
|
+
*/
|
|
110
|
+
export declare function injectTooltipRuntime(html: string): string;
|
|
111
|
+
/** Whether `template` already carries the SPA router. */
|
|
112
|
+
export declare function hasRouterScript(template: string): boolean;
|
|
113
|
+
export declare function injectRouterScript(template: string, options?: StxOptions): Promise<string>;
|