@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
package/dist/render.js
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { dirname, resolve } from "node:path";
|
|
2
|
+
import { defaultConfig } from "./config.js";
|
|
3
|
+
import { extractVariables } from "./variable-extractor.js";
|
|
4
|
+
import { injectRouterScript, processDirectives } from "./process.js";
|
|
5
|
+
import { extractBridgeData, processClientScript } from "./client-script.js";
|
|
6
|
+
import { findSfcTemplateBlock } from "./sfc-template.js";
|
|
7
|
+
import { isMarkdownPath, renderMarkdownView } from "./markdown-view.js";
|
|
8
|
+
import { responseBindings, syncRecordedResponse } from "./page-response.js";
|
|
9
|
+
function parseTemplate(content) {
|
|
10
|
+
let workingContent = content;
|
|
11
|
+
const templateBlock = findSfcTemplateBlock(content);
|
|
12
|
+
if (templateBlock)
|
|
13
|
+
workingContent = templateBlock.content.trim();
|
|
14
|
+
const scriptRegex = /<script\b([^>]*)>([\s\S]*?)<\/script>/gi, clientScripts = [], serverScripts = [], signalsScripts = [], usesSignalsAPI = (scriptContent) => /\b(?:state|derived|effect|batch)\s*(?:<[^<>()]*>)?\s*\(/.test(scriptContent);
|
|
15
|
+
let scriptMatch;
|
|
16
|
+
while ((scriptMatch = scriptRegex.exec(content)) !== null) {
|
|
17
|
+
const attrs = scriptMatch[1], scriptContent = scriptMatch[2], fullScript = scriptMatch[0], isServerScript = attrs.includes("server");
|
|
18
|
+
if (usesSignalsAPI(scriptContent))
|
|
19
|
+
signalsScripts.push(fullScript);
|
|
20
|
+
else if (isServerScript)
|
|
21
|
+
serverScripts.push(scriptContent);
|
|
22
|
+
else
|
|
23
|
+
clientScripts.push(fullScript);
|
|
24
|
+
}
|
|
25
|
+
let templateContent = workingContent;
|
|
26
|
+
{
|
|
27
|
+
const serverScriptOpenRe = /<script\b(?![^>]*\b(?:client|type\s*=\s*["']module["']|src\s*=))[^>]*>/gi;
|
|
28
|
+
let sMatch;
|
|
29
|
+
const removeRanges = [];
|
|
30
|
+
while ((sMatch = serverScriptOpenRe.exec(templateContent)) !== null) {
|
|
31
|
+
const tagEnd = sMatch.index + sMatch[0].length, closeAt = templateContent.indexOf("</script>", tagEnd);
|
|
32
|
+
if (closeAt === -1)
|
|
33
|
+
continue;
|
|
34
|
+
removeRanges.push({ start: sMatch.index, end: closeAt + 9 });
|
|
35
|
+
serverScriptOpenRe.lastIndex = closeAt + 9;
|
|
36
|
+
}
|
|
37
|
+
for (let ri = removeRanges.length - 1;ri >= 0; ri--)
|
|
38
|
+
templateContent = templateContent.substring(0, removeRanges[ri].start) + templateContent.substring(removeRanges[ri].end);
|
|
39
|
+
}
|
|
40
|
+
for (const script of clientScripts)
|
|
41
|
+
templateContent = templateContent.replace(script, "");
|
|
42
|
+
return { templateContent, serverScripts, clientScripts, signalsScripts };
|
|
43
|
+
}
|
|
44
|
+
function wrapInHtmlDocument(html, title) {
|
|
45
|
+
return `<!DOCTYPE html>
|
|
46
|
+
<html lang="en">
|
|
47
|
+
<head>
|
|
48
|
+
<meta charset="UTF-8">
|
|
49
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
50
|
+
<title>${(title || "stx").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">")}</title>
|
|
51
|
+
</head>
|
|
52
|
+
<body>
|
|
53
|
+
${html}
|
|
54
|
+
</body>
|
|
55
|
+
</html>`;
|
|
56
|
+
}
|
|
57
|
+
export async function renderTemplate(filePath, renderOptions = {}) {
|
|
58
|
+
const resolvedPath = resolve(filePath), file = Bun.file(resolvedPath);
|
|
59
|
+
if (!await file.exists())
|
|
60
|
+
throw Error(`Template file not found: ${resolvedPath}`);
|
|
61
|
+
let content = await file.text(), markdownFrontmatter = null;
|
|
62
|
+
if (isMarkdownPath(resolvedPath)) {
|
|
63
|
+
const view = await renderMarkdownView(content, { renderer: renderOptions.markdownRenderer });
|
|
64
|
+
content = view.html;
|
|
65
|
+
markdownFrontmatter = view.frontmatter;
|
|
66
|
+
}
|
|
67
|
+
if (markdownFrontmatter)
|
|
68
|
+
renderOptions = {
|
|
69
|
+
...renderOptions,
|
|
70
|
+
context: { ...markdownFrontmatter, ...renderOptions.context || {} }
|
|
71
|
+
};
|
|
72
|
+
if (renderOptions.layout) {
|
|
73
|
+
const layoutPath = resolve(renderOptions.layout), layoutFile = Bun.file(layoutPath);
|
|
74
|
+
if (!await layoutFile.exists())
|
|
75
|
+
throw Error(`Layout template not found: ${layoutPath}`);
|
|
76
|
+
const { layout, injectCSS, ...pageOptions } = renderOptions, pageHtml = await renderTemplateString(content, resolvedPath, { ...pageOptions, injectCSS: !1 }), layoutContent = await layoutFile.text(), layoutContext = {
|
|
77
|
+
...renderOptions.context || {},
|
|
78
|
+
content: pageHtml
|
|
79
|
+
}, layoutOptions = {
|
|
80
|
+
...pageOptions,
|
|
81
|
+
context: layoutContext,
|
|
82
|
+
injectCSS
|
|
83
|
+
};
|
|
84
|
+
return renderTemplateString(layoutContent, layoutPath, layoutOptions);
|
|
85
|
+
}
|
|
86
|
+
return renderTemplateString(content, resolvedPath, renderOptions);
|
|
87
|
+
}
|
|
88
|
+
export async function renderString(template, context = {}, options = {}) {
|
|
89
|
+
return renderTemplateString(template, process.cwd(), { context, ...options });
|
|
90
|
+
}
|
|
91
|
+
export async function renderTemplateString(content, filePath, renderOptions = {}) {
|
|
92
|
+
const { templateContent, serverScripts, clientScripts } = parseTemplate(content), options = {
|
|
93
|
+
...defaultConfig,
|
|
94
|
+
...renderOptions.options
|
|
95
|
+
}, context = {
|
|
96
|
+
__filename: filePath,
|
|
97
|
+
__dirname: dirname(filePath),
|
|
98
|
+
__stx: {},
|
|
99
|
+
__stx_options: options,
|
|
100
|
+
__stx_sfc_mode: !0,
|
|
101
|
+
__stx_inject_css: renderOptions.injectCSS === !0,
|
|
102
|
+
__stxServeContext: void 0,
|
|
103
|
+
...responseBindings(renderOptions.context ?? {}),
|
|
104
|
+
definePageMeta: () => {},
|
|
105
|
+
...renderOptions.context || {}
|
|
106
|
+
};
|
|
107
|
+
for (const scriptContent of serverScripts)
|
|
108
|
+
await extractVariables(scriptContent, context, filePath);
|
|
109
|
+
const dependencies = new Set;
|
|
110
|
+
let output = templateContent;
|
|
111
|
+
output = await processDirectives(output, context, filePath, options, dependencies);
|
|
112
|
+
syncRecordedResponse(context, renderOptions.context);
|
|
113
|
+
if (renderOptions.templateOnly) {
|
|
114
|
+
output = output.replace(/<script data-stx-scoped>[\s\S]*?<\/script>\s*/gi, "");
|
|
115
|
+
output = output.replace(/<!-- stx SEO Tags -->[\s\S]*?(?=<)/i, "");
|
|
116
|
+
if (clientScripts.length > 0)
|
|
117
|
+
output += `
|
|
118
|
+
${clientScripts.join(`
|
|
119
|
+
`)}`;
|
|
120
|
+
} else {
|
|
121
|
+
if (renderOptions.processClientScripts !== !1 && clientScripts.length > 0) {
|
|
122
|
+
const eventBindings = context.__stx_event_bindings || [], serverData = extractBridgeData(context), scriptsHtml = (await Promise.all(clientScripts.map(async (fullScript) => {
|
|
123
|
+
const contentMatch = fullScript.match(/<script\b[^>]*>([\s\S]*?)<\/script>/);
|
|
124
|
+
if (!contentMatch)
|
|
125
|
+
return fullScript;
|
|
126
|
+
return await processClientScript(contentMatch[1], {
|
|
127
|
+
eventBindings,
|
|
128
|
+
templateContent: output,
|
|
129
|
+
serverData,
|
|
130
|
+
filePath
|
|
131
|
+
});
|
|
132
|
+
}))).join(`
|
|
133
|
+
`);
|
|
134
|
+
if (output.match(/(<\/body>)/i))
|
|
135
|
+
output = output.replace(/(<\/body>)/i, `${scriptsHtml}
|
|
136
|
+
$1`);
|
|
137
|
+
else
|
|
138
|
+
output += `
|
|
139
|
+
${scriptsHtml}`;
|
|
140
|
+
}
|
|
141
|
+
output = await injectRouterScript(output);
|
|
142
|
+
}
|
|
143
|
+
if (renderOptions.wrapInDocument) {
|
|
144
|
+
if (!output.trim().toLowerCase().startsWith("<!doctype") && !output.trim().toLowerCase().startsWith("<html"))
|
|
145
|
+
output = wrapInHtmlDocument(output, renderOptions.title);
|
|
146
|
+
}
|
|
147
|
+
if (renderOptions.injectCSS)
|
|
148
|
+
try {
|
|
149
|
+
const { injectCss } = await import("./dev-server/ts-css.js");
|
|
150
|
+
output = await injectCss(output);
|
|
151
|
+
} catch {}
|
|
152
|
+
return output;
|
|
153
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve whatever a user typed — a directory, a file, or a glob — to `.stx` files.
|
|
3
|
+
*
|
|
4
|
+
* The CLI commands disagreed about which of those they took, and each was silent
|
|
5
|
+
* about the shape it did not accept. `stx a11y` joined its argument into a scan
|
|
6
|
+
* pattern (`path.join(arg, '**' + '/*.stx')`), so a FILE path became
|
|
7
|
+
* `file.stx/**` + `/*.stx` and matched nothing, and a glob became
|
|
8
|
+
* `'x/**' + '/*.stx/**' + '/*.stx'` and also matched nothing. Both then took the
|
|
9
|
+
* empty branch, which printed
|
|
10
|
+
*
|
|
11
|
+
* ✓ No accessibility issues found!
|
|
12
|
+
*
|
|
13
|
+
* and exited 0 — on a file with three SERIOUS findings. Meanwhile `typecheck`
|
|
14
|
+
* globbed and, handed a directory, said it matched nothing. Both halves
|
|
15
|
+
* inverted, and inverted silently in the direction that costs you: the natural
|
|
16
|
+
* way to add a checker to CI is to copy the line that already works, so
|
|
17
|
+
*
|
|
18
|
+
* - run: stx a11y 'resources/**' + '/*.stx'
|
|
19
|
+
*
|
|
20
|
+
* passes on every commit for the life of the project, indistinguishable from a
|
|
21
|
+
* project with no accessibility problems (stacksjs/stx#1918).
|
|
22
|
+
*
|
|
23
|
+
* So there is one resolver and every command uses it. The separate half of that
|
|
24
|
+
* fix lives at the call sites and matters more: **an empty match set is not a
|
|
25
|
+
* pass.** A run that read no files has verified nothing, and has to say so.
|
|
26
|
+
*
|
|
27
|
+
* @module resolve-stx-targets
|
|
28
|
+
*/
|
|
29
|
+
/** Is this argument a glob pattern rather than a plain path? */
|
|
30
|
+
export declare function looksLikeGlob(target: string): boolean;
|
|
31
|
+
export interface ResolveStxTargetsOptions {
|
|
32
|
+
/** Directory to resolve relative targets against. Defaults to the cwd. */
|
|
33
|
+
cwd?: string;
|
|
34
|
+
/** Recurse into subdirectories when the target is a directory. Default true. */
|
|
35
|
+
recursive?: boolean;
|
|
36
|
+
/** Substrings that exclude a matched path. */
|
|
37
|
+
ignorePaths?: readonly string[];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Expand targets to absolute `.stx` file paths, de-duplicated and sorted.
|
|
41
|
+
*
|
|
42
|
+
* A named FILE is returned whether or not it ends in `.stx`: naming one is an
|
|
43
|
+
* explicit request, and silently dropping it is the failure this module exists
|
|
44
|
+
* to remove. Directories and globs are filtered to `.stx`.
|
|
45
|
+
*
|
|
46
|
+
* `node_modules` and `dist` are always excluded — a glob like `**` + `/*.stx`
|
|
47
|
+
* otherwise sweeps up every template in every installed package.
|
|
48
|
+
*/
|
|
49
|
+
export declare function resolveStxTargets(targets: readonly string[], options?: ResolveStxTargetsOptions): Promise<string[]>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { existsSync, statSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
const GLOB_MAGIC = /[*?[\]{}]/;
|
|
4
|
+
export function looksLikeGlob(target) {
|
|
5
|
+
return GLOB_MAGIC.test(target);
|
|
6
|
+
}
|
|
7
|
+
export async function resolveStxTargets(targets, options = {}) {
|
|
8
|
+
const cwd = options.cwd ?? process.cwd(), recursive = options.recursive !== !1, ignorePaths = options.ignorePaths ?? [], Glob = globalThis.Bun.Glob, found = new Set, accept = (file) => {
|
|
9
|
+
if (file.includes(`${path.sep}node_modules${path.sep}`) || file.includes(`${path.sep}dist${path.sep}`))
|
|
10
|
+
return;
|
|
11
|
+
if (ignorePaths.some((ignore) => ignore && file.includes(path.normalize(ignore))))
|
|
12
|
+
return;
|
|
13
|
+
found.add(file);
|
|
14
|
+
}, scan = async (pattern) => {
|
|
15
|
+
try {
|
|
16
|
+
for await (const file of new Glob(pattern).scan({ cwd, absolute: !0 }))
|
|
17
|
+
accept(file);
|
|
18
|
+
} catch {}
|
|
19
|
+
};
|
|
20
|
+
for (const target of targets) {
|
|
21
|
+
if (!target)
|
|
22
|
+
continue;
|
|
23
|
+
if (looksLikeGlob(target)) {
|
|
24
|
+
await scan(target);
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
const absolute = path.resolve(cwd, target);
|
|
28
|
+
if (!existsSync(absolute))
|
|
29
|
+
continue;
|
|
30
|
+
if (statSync(absolute).isDirectory()) {
|
|
31
|
+
for await (const file of new Glob(recursive ? "**/*.stx" : "*.stx").scan({ cwd: absolute, absolute: !0 }))
|
|
32
|
+
accept(file);
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
accept(absolute);
|
|
36
|
+
}
|
|
37
|
+
return [...found].sort();
|
|
38
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { abortNavigation, clearMiddleware, createClientCookieManager, createMiddlewareContext, createRouteLocation, createServerCookieManager, createStorageManager, defineMiddleware, getMiddleware, getMiddlewareNames, hasMiddleware, loadMiddlewareFromDirectory, navigateTo, registerMiddleware, runMiddleware, } from 'stx-router';
|
|
2
|
+
export type { AbortNavigationResult, CookieManager, CookieOptions, MiddlewareContext, MiddlewareMode, MiddlewareOptions, MiddlewareResult, NavigateToOptions, NavigateToResult, NavigationError, NavigationResult, RouteLocation, RouteMiddlewareDefinition, RouteMiddlewareHandler, StorageManager, } from 'stx-router';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export {
|
|
2
|
+
abortNavigation,
|
|
3
|
+
clearMiddleware,
|
|
4
|
+
createClientCookieManager,
|
|
5
|
+
createMiddlewareContext,
|
|
6
|
+
createRouteLocation,
|
|
7
|
+
createServerCookieManager,
|
|
8
|
+
createStorageManager,
|
|
9
|
+
defineMiddleware,
|
|
10
|
+
getMiddleware,
|
|
11
|
+
getMiddlewareNames,
|
|
12
|
+
hasMiddleware,
|
|
13
|
+
loadMiddlewareFromDirectory,
|
|
14
|
+
navigateTo,
|
|
15
|
+
registerMiddleware,
|
|
16
|
+
runMiddleware
|
|
17
|
+
} from "stx-router";
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build a concrete URL from a route pattern.
|
|
3
|
+
*
|
|
4
|
+
* The strict half of the pair: `navigate()` stays permissive so computed URLs
|
|
5
|
+
* keep working, and `$path()` is where a dynamic route gets checked —
|
|
6
|
+
* `navigate($path('/cars/:id', { id: car.id }))`.
|
|
7
|
+
*
|
|
8
|
+
* Consumes the `?`/`*` sigil, drops the preceding slash when an optional
|
|
9
|
+
* segment is absent, encodes catch-all segments individually so their slashes
|
|
10
|
+
* survive, and appends anything left over as a query string.
|
|
11
|
+
*/
|
|
12
|
+
export declare function $path<P extends RoutePattern>(pattern: P, ...args: ParamsArg<P>): string;
|
|
13
|
+
/**
|
|
14
|
+
* Typed route paths that actually type-check (stacksjs/stx#1887).
|
|
15
|
+
*
|
|
16
|
+
* `generateRouteTypes()` emitted `declare module "stx/routes" { interface
|
|
17
|
+
* RouteMap … }` and nothing in the source tree declared or imported
|
|
18
|
+
* `stx/routes`. Because that specifier does not resolve, TypeScript treated it
|
|
19
|
+
* as an ambient module declaration rather than an augmentation — so it parsed,
|
|
20
|
+
* shipped, and constrained nothing. `navigate('/dashbaord')` type-checked.
|
|
21
|
+
*
|
|
22
|
+
* ## Why the obvious fix does not work
|
|
23
|
+
*
|
|
24
|
+
* The tempting shape is `type RoutePath = KnownRoute | (string & {})`. It
|
|
25
|
+
* cannot catch anything: a parameter that accepts a computed `string`
|
|
26
|
+
* necessarily accepts every string literal too. It buys autocomplete and zero
|
|
27
|
+
* checking, which is the same trade the dangling declaration already made.
|
|
28
|
+
*
|
|
29
|
+
* The other tempting shape — a plain union — rejects real code. This repo's own
|
|
30
|
+
* tests navigate to `'?status=resolved'`, `'guide'` and
|
|
31
|
+
* `'https://example.com/pricing'`; apps build URLs with template literals and
|
|
32
|
+
* ternaries. A union rejects all of it, and measured against a real app it
|
|
33
|
+
* would have produced zero true positives against five false ones, because the
|
|
34
|
+
* generated union holds *patterns* (`/cars/:id`) while callers pass *URLs*
|
|
35
|
+
* (`/cars/42`).
|
|
36
|
+
*
|
|
37
|
+
* ## What this does instead
|
|
38
|
+
*
|
|
39
|
+
* {@link CheckHref} is a generic gate applied to the argument's own literal
|
|
40
|
+
* type. Non-literals pass through untouched, so anything computed still
|
|
41
|
+
* compiles; only a leading-slash string literal is checked, against the routes
|
|
42
|
+
* expanded from patterns. A typo in a hand-written path is the one thing that
|
|
43
|
+
* fails — which is the only thing worth failing.
|
|
44
|
+
*
|
|
45
|
+
* @module route-types
|
|
46
|
+
*/
|
|
47
|
+
/**
|
|
48
|
+
* Routes that exist, augmented by the generated
|
|
49
|
+
* `<state-dir>/route-types.d.ts`.
|
|
50
|
+
*
|
|
51
|
+
* Empty here on purpose: while it is empty every route type widens to `string`,
|
|
52
|
+
* so a project that has not generated the declaration — or has not added the
|
|
53
|
+
* state directory to its tsconfig — is unaffected.
|
|
54
|
+
*
|
|
55
|
+
* The value type is the route's params, so one interface serves both the
|
|
56
|
+
* pattern union and per-route param lookup.
|
|
57
|
+
*/
|
|
58
|
+
export declare interface KnownRoutes {}
|
|
59
|
+
/**
|
|
60
|
+
* Error carriers. TypeScript reports the property names, so the message says
|
|
61
|
+
* what is wrong rather than naming an internal type.
|
|
62
|
+
*/
|
|
63
|
+
export declare interface UnknownRoute<T extends string> {
|
|
64
|
+
'stx: no page matches this path': T
|
|
65
|
+
'known routes': RoutePattern
|
|
66
|
+
}
|
|
67
|
+
export declare interface RoutePatternUsedAsHref<T extends string> {
|
|
68
|
+
'stx: that is a route pattern, not a URL — use $path() to fill its params': T
|
|
69
|
+
}
|
|
70
|
+
declare type RouteKeys = keyof KnownRoutes & string;
|
|
71
|
+
/** Tuple-wrapped so a `never` key set does not distribute into `true`. */
|
|
72
|
+
declare type NoRoutes = [RouteKeys] extends [never] ? true : false;
|
|
73
|
+
/** Every known route pattern, or `string` when none were generated. */
|
|
74
|
+
export type RoutePattern = NoRoutes extends true ? string : RouteKeys;
|
|
75
|
+
/** The params a pattern declares. */
|
|
76
|
+
export type RouteParams<P extends RoutePattern> = P extends RouteKeys
|
|
77
|
+
? KnownRoutes[P]
|
|
78
|
+
: Record<string, string>;
|
|
79
|
+
/**
|
|
80
|
+
* A pattern with its params replaced by wildcards, so a concrete URL matches.
|
|
81
|
+
*
|
|
82
|
+
* `/cars/:id` becomes `` `/cars/${string}` ``, which is what a caller actually
|
|
83
|
+
* passes. Comparing against the raw pattern would reject every dynamic-route
|
|
84
|
+
* navigation in existence.
|
|
85
|
+
*/
|
|
86
|
+
declare type PatternPrefix<P extends string> = P extends `${infer Head}:${string}` ? `${Head}${string}` : P;
|
|
87
|
+
/** `/settings/:tab?` also matches `/settings` with the segment omitted. */
|
|
88
|
+
declare type OptionalBase<P extends string> = P extends `${infer Base}/:${string}?` ? Base : never;
|
|
89
|
+
/** Every shape a caller may legitimately pass for a known route. */
|
|
90
|
+
export type RouteHref = PatternPrefix<RoutePattern> | OptionalBase<RoutePattern>;
|
|
91
|
+
declare type StripHash<S extends string> = S extends `${infer Base}#${string}` ? Base : S;
|
|
92
|
+
declare type StripQuery<S extends string> = S extends `${infer Base}?${string}` ? Base : S;
|
|
93
|
+
/**
|
|
94
|
+
* Gate a route argument on its own literal type.
|
|
95
|
+
*
|
|
96
|
+
* Each step is load-bearing:
|
|
97
|
+
*
|
|
98
|
+
* 1. Not a string literal (a variable, a template literal, a concatenation) —
|
|
99
|
+
* pass. This is what keeps computed URLs compiling.
|
|
100
|
+
* 2. No routes generated — pass, so an un-adopted project is unaffected.
|
|
101
|
+
* 3. Only absolute paths are checked. A relative href, a bare `?query`, a
|
|
102
|
+
* `#hash` and `https://…` all fall through, because the router genuinely
|
|
103
|
+
* accepts them.
|
|
104
|
+
* 4. A raw pattern is a mistake worth naming separately: `/cars/:id` is not a
|
|
105
|
+
* URL.
|
|
106
|
+
* 5. Otherwise the path, minus any query or hash, must match a known route.
|
|
107
|
+
*/
|
|
108
|
+
export type CheckHref<T extends string> = string extends T
|
|
109
|
+
? T
|
|
110
|
+
: string extends RoutePattern
|
|
111
|
+
? T
|
|
112
|
+
: T extends `/${string}`
|
|
113
|
+
? T extends `${string}/:${string}`
|
|
114
|
+
? RoutePatternUsedAsHref<T>
|
|
115
|
+
: StripQuery<StripHash<T>> extends RouteHref ? T : UnknownRoute<T>
|
|
116
|
+
: T;
|
|
117
|
+
/**
|
|
118
|
+
* A route in an assignment position (a config field, an interface property),
|
|
119
|
+
* where no generic parameter exists to gate on.
|
|
120
|
+
*
|
|
121
|
+
* Autocomplete only — it cannot reject a typo, for the reason given at the top
|
|
122
|
+
* of this file. Prefer a `CheckHref`-gated function parameter where one is
|
|
123
|
+
* available.
|
|
124
|
+
*/
|
|
125
|
+
export type RoutePath = RoutePattern | (string & {});
|
|
126
|
+
declare type RouteParamsInput<P extends RoutePattern> = {
|
|
127
|
+
[K in keyof RouteParams<P>]: string | number | readonly string[]
|
|
128
|
+
}
|
|
129
|
+
/** Params are required only when the pattern has non-optional ones. */
|
|
130
|
+
declare type ParamsArg<P extends RoutePattern> = [keyof RouteParams<P>] extends [never]
|
|
131
|
+
? []
|
|
132
|
+
: Record<never, never> extends RouteParams<P>
|
|
133
|
+
? [params?: RouteParamsInput<P>]
|
|
134
|
+
: [params: RouteParamsInput<P>];
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export function $path(pattern, ...args) {
|
|
2
|
+
const params = args[0] ?? {}, used = new Set, filled = String(pattern).replace(/(\/)?:([^/?*]+)([?*])?/g, (whole, slash, name, sigil) => {
|
|
3
|
+
const value = params[name];
|
|
4
|
+
used.add(name);
|
|
5
|
+
if (value === void 0 || value === null || value === "") {
|
|
6
|
+
if (sigil === "?")
|
|
7
|
+
return "";
|
|
8
|
+
return whole;
|
|
9
|
+
}
|
|
10
|
+
const encoded = Array.isArray(value) ? value.map((part) => encodeURIComponent(String(part))).join("/") : sigil === "*" ? String(value).split("/").map((part) => encodeURIComponent(part)).join("/") : encodeURIComponent(String(value));
|
|
11
|
+
return `${slash ?? ""}${encoded}`;
|
|
12
|
+
}), extra = Object.keys(params).filter((key) => !used.has(key));
|
|
13
|
+
if (extra.length === 0)
|
|
14
|
+
return filled;
|
|
15
|
+
const query = new URLSearchParams;
|
|
16
|
+
for (const key of extra) {
|
|
17
|
+
const value = params[key];
|
|
18
|
+
if (Array.isArray(value))
|
|
19
|
+
value.forEach((part) => query.append(key, String(part)));
|
|
20
|
+
else if (value !== void 0 && value !== null)
|
|
21
|
+
query.set(key, String(value));
|
|
22
|
+
}
|
|
23
|
+
return `${filled}?${query.toString()}`;
|
|
24
|
+
}
|
package/dist/router.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Route } from 'stx-router';
|
|
2
|
+
export type { Route, RouteMatch } from 'stx-router';
|
|
3
|
+
export { findErrorPage, formatRoutes, generateRouteManifest, generateRouteTypes, matchRoute } from 'stx-router';
|
|
4
|
+
export interface RouterOptions {
|
|
5
|
+
pagesDir?: string;
|
|
6
|
+
extensions?: string[];
|
|
7
|
+
}
|
|
8
|
+
export declare function createRouter(baseDir: string, options?: RouterOptions): Route[];
|
|
9
|
+
export declare function getRouteParams(pathname: string, routes: Route[]): Record<string, string> | null;
|
package/dist/router.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { matchRoute, Router as _Router } from "stx-router";
|
|
2
|
+
export { findErrorPage, formatRoutes, generateRouteManifest, generateRouteTypes, matchRoute } from "stx-router";
|
|
3
|
+
export function createRouter(baseDir, options = {}) {
|
|
4
|
+
return new _Router(baseDir, options).routes;
|
|
5
|
+
}
|
|
6
|
+
export function getRouteParams(pathname, routes) {
|
|
7
|
+
const result = matchRoute(pathname, routes);
|
|
8
|
+
return result ? result.params : null;
|
|
9
|
+
}
|
package/dist/routes.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { defineRoute, defineRoutes, resetRoutes, route, setAppUrl } from 'stx-router';
|
|
2
|
+
/**
|
|
3
|
+
* Process @route directives in stx templates
|
|
4
|
+
* (Kept in core stx because it depends on safe-evaluator)
|
|
5
|
+
*/
|
|
6
|
+
export declare function processRouteDirectives(template: string): string;
|
package/dist/routes.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { defineRoute, defineRoutes, resetRoutes, route, setAppUrl } from "stx-router";
|
|
2
|
+
import { route } from "stx-router";
|
|
3
|
+
import { safeEvaluateObject } from "./safe-evaluator.js";
|
|
4
|
+
export function processRouteDirectives(template) {
|
|
5
|
+
return template.replace(/@route\(\s*(['"])([^'"]+)\1(?:\s*,\s*(\{[^}]+\}))?\s*(?:,\s*(true|false)\s*)?\)/g, (_, _quote, routeName, paramsJson, absolute) => {
|
|
6
|
+
try {
|
|
7
|
+
const params = paramsJson ? safeEvaluateObject(paramsJson, {}) : {};
|
|
8
|
+
return route(routeName, params, absolute === "true");
|
|
9
|
+
} catch (error) {
|
|
10
|
+
console.error(`Error processing @route directive: ${error}`);
|
|
11
|
+
return "#route-error";
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
}
|