vorma 0.85.0-pre.0 → 0.85.0-pre.2
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/README.md +2 -3
- package/npm_dist/.buildts_cache.json +1 -0
- package/npm_dist/{kit/_typescript → typescript/kit}/converters/converters.d.ts +4 -4
- package/npm_dist/typescript/kit/converters/converters.d.ts.map +1 -0
- package/npm_dist/{kit/_typescript → typescript/kit}/converters/converters.js +1 -1
- package/npm_dist/typescript/kit/converters/converters.js.map +7 -0
- package/npm_dist/typescript/kit/cookies/cookies.d.ts.map +1 -0
- package/npm_dist/typescript/kit/cookies/cookies.js +20 -0
- package/npm_dist/typescript/kit/cookies/cookies.js.map +7 -0
- package/npm_dist/typescript/kit/csrf/csrf.d.ts.map +1 -0
- package/npm_dist/{kit/_typescript → typescript/kit}/csrf/csrf.js +1 -1
- package/npm_dist/{kit/_typescript → typescript/kit}/csrf/csrf.js.map +1 -1
- package/npm_dist/typescript/kit/debounce/debounce.d.ts.map +1 -0
- package/npm_dist/{kit/_typescript → typescript/kit}/debounce/debounce.js +7 -3
- package/npm_dist/typescript/kit/debounce/debounce.js.map +7 -0
- package/npm_dist/typescript/kit/fmt/fmt.d.ts.map +1 -0
- package/npm_dist/{kit/_typescript → typescript/kit}/fmt/fmt.js +1 -1
- package/npm_dist/{kit/_typescript → typescript/kit}/fmt/fmt.js.map +1 -1
- package/npm_dist/typescript/kit/json/deep_equals.d.ts.map +1 -0
- package/npm_dist/typescript/kit/json/json.d.ts.map +1 -0
- package/npm_dist/{kit/_typescript → typescript/kit}/json/json.js +21 -10
- package/npm_dist/typescript/kit/json/json.js.map +7 -0
- package/npm_dist/typescript/kit/json/search_param_serializer.d.ts +2 -0
- package/npm_dist/typescript/kit/json/search_param_serializer.d.ts.map +1 -0
- package/npm_dist/typescript/kit/json/stringify_stable.d.ts.map +1 -0
- package/npm_dist/typescript/kit/listeners/listeners.d.ts.map +1 -0
- package/npm_dist/{kit/_typescript → typescript/kit}/listeners/listeners.js +2 -2
- package/npm_dist/typescript/kit/listeners/listeners.js.map +7 -0
- package/npm_dist/{kit/_typescript → typescript/kit}/matcher/find_best_match.d.ts +1 -1
- package/npm_dist/typescript/kit/matcher/find_best_match.d.ts.map +1 -0
- package/npm_dist/{kit/_typescript → typescript/kit}/matcher/find_best_match.js +30 -22
- package/npm_dist/typescript/kit/matcher/find_best_match.js.map +7 -0
- package/npm_dist/{kit/_typescript → typescript/kit}/matcher/find_nested_matches.d.ts +1 -1
- package/npm_dist/typescript/kit/matcher/find_nested_matches.d.ts.map +1 -0
- package/npm_dist/{kit/_typescript → typescript/kit}/matcher/find_nested_matches.js +4 -8
- package/npm_dist/typescript/kit/matcher/find_nested_matches.js.map +7 -0
- package/npm_dist/typescript/kit/matcher/register.d.ts.map +1 -0
- package/npm_dist/{kit/_typescript/chunk-YBAPNBS2.js → typescript/kit/matcher/register.js} +20 -39
- package/npm_dist/typescript/kit/matcher/register.js.map +7 -0
- package/npm_dist/typescript/kit/matcher/utils.d.ts +3 -0
- package/npm_dist/typescript/kit/matcher/utils.d.ts.map +1 -0
- package/npm_dist/typescript/kit/matcher/utils.js +32 -0
- package/npm_dist/typescript/kit/matcher/utils.js.map +7 -0
- package/npm_dist/typescript/kit/theme/theme.d.ts.map +1 -0
- package/npm_dist/{kit/_typescript → typescript/kit}/theme/theme.js +27 -17
- package/npm_dist/typescript/kit/theme/theme.js.map +7 -0
- package/npm_dist/{kit/_typescript → typescript/kit}/url/url.d.ts +19 -0
- package/npm_dist/typescript/kit/url/url.d.ts.map +1 -0
- package/npm_dist/{kit/_typescript → typescript/kit}/url/url.js +50 -13
- package/npm_dist/typescript/kit/url/url.js.map +7 -0
- package/npm_dist/typescript/vorma/client/buildtime.d.ts +3 -0
- package/npm_dist/typescript/vorma/client/buildtime.d.ts.map +1 -0
- package/npm_dist/typescript/vorma/client/buildtime.js +7 -0
- package/npm_dist/typescript/vorma/client/buildtime.js.map +7 -0
- package/npm_dist/typescript/vorma/client/chunk-6TANZ7A3.js +3927 -0
- package/npm_dist/typescript/vorma/client/chunk-6TANZ7A3.js.map +7 -0
- package/npm_dist/typescript/vorma/client/index.d.ts +13 -0
- package/npm_dist/typescript/vorma/client/index.d.ts.map +1 -0
- package/npm_dist/typescript/vorma/client/index.js +49 -0
- package/npm_dist/typescript/vorma/client/internal/hmr_dev.d.ts +28 -0
- package/npm_dist/typescript/vorma/client/internal/hmr_dev.d.ts.map +1 -0
- package/npm_dist/typescript/vorma/client/internal/hmr_dev.js +231 -0
- package/npm_dist/typescript/vorma/client/internal/hmr_dev.js.map +7 -0
- package/npm_dist/typescript/vorma/client/internal.d.ts +8 -0
- package/npm_dist/typescript/vorma/client/internal.d.ts.map +1 -0
- package/npm_dist/typescript/vorma/client/internal.js +51 -0
- package/npm_dist/typescript/vorma/client/internal.js.map +7 -0
- package/npm_dist/typescript/vorma/client/src/runtime.d.ts +643 -0
- package/npm_dist/typescript/vorma/client/src/runtime.d.ts.map +1 -0
- package/npm_dist/typescript/vorma/client/testing.d.ts +71 -0
- package/npm_dist/typescript/vorma/client/testing.d.ts.map +1 -0
- package/npm_dist/typescript/vorma/client/testing.js +309 -0
- package/npm_dist/typescript/vorma/client/testing.js.map +7 -0
- package/npm_dist/typescript/vorma/client/vitest.dist.config.d.ts +3 -0
- package/npm_dist/typescript/vorma/client/vitest.dist.config.d.ts.map +1 -0
- package/npm_dist/typescript/vorma/create/main.d.ts.map +1 -0
- package/npm_dist/typescript/vorma/create/runtime_helpers.d.ts +28 -0
- package/npm_dist/typescript/vorma/create/runtime_helpers.d.ts.map +1 -0
- package/npm_dist/typescript/vorma/ui-adapters/preact/index.d.ts +2 -0
- package/npm_dist/typescript/vorma/ui-adapters/preact/index.d.ts.map +1 -0
- package/npm_dist/typescript/vorma/ui-adapters/preact/index.js +203 -0
- package/npm_dist/typescript/vorma/ui-adapters/preact/index.js.map +7 -0
- package/npm_dist/typescript/vorma/ui-adapters/preact/src/preact.d.ts +337 -0
- package/npm_dist/typescript/vorma/ui-adapters/preact/src/preact.d.ts.map +1 -0
- package/npm_dist/typescript/vorma/ui-adapters/react/index.d.ts +2 -0
- package/npm_dist/typescript/vorma/ui-adapters/react/index.d.ts.map +1 -0
- package/npm_dist/typescript/vorma/ui-adapters/react/index.js +242 -0
- package/npm_dist/typescript/vorma/ui-adapters/react/index.js.map +7 -0
- package/npm_dist/typescript/vorma/ui-adapters/react/src/react.d.ts +25 -0
- package/npm_dist/typescript/vorma/ui-adapters/react/src/react.d.ts.map +1 -0
- package/npm_dist/typescript/vorma/ui-adapters/solid/index.d.ts +2 -0
- package/npm_dist/typescript/vorma/ui-adapters/solid/index.d.ts.map +1 -0
- package/npm_dist/typescript/vorma/ui-adapters/solid/index.js +290 -0
- package/npm_dist/typescript/vorma/ui-adapters/solid/index.js.map +7 -0
- package/npm_dist/typescript/vorma/ui-adapters/solid/src/solid.d.ts +28 -0
- package/npm_dist/typescript/vorma/ui-adapters/solid/src/solid.d.ts.map +1 -0
- package/npm_dist/{internal/framework/_typescript → typescript/vorma}/vite/vite.d.ts +4 -5
- package/npm_dist/typescript/vorma/vite/vite.d.ts.map +1 -0
- package/npm_dist/typescript/vorma/vite/vite.js +243 -0
- package/npm_dist/typescript/vorma/vite/vite.js.map +7 -0
- package/package.json +74 -56
- package/{kit/_typescript → typescript/kit}/converters/converters.ts +6 -5
- package/{kit/_typescript → typescript/kit}/cookies/cookies.ts +9 -2
- package/typescript/kit/csrf/AGENTS.md +2 -0
- package/{kit/_typescript → typescript/kit}/debounce/debounce.ts +6 -2
- package/{kit/_typescript → typescript/kit}/json/deep_equals.ts +14 -5
- package/{kit/_typescript → typescript/kit}/json/search_param_serializer.ts +4 -3
- package/{kit/_typescript → typescript/kit}/json/stringify_stable.ts +7 -2
- package/{kit/_typescript → typescript/kit}/listeners/listeners.ts +1 -1
- package/typescript/kit/matcher/AGENTS.md +2 -0
- package/{kit/_typescript → typescript/kit}/matcher/find_best_match.ts +36 -27
- package/{kit/_typescript → typescript/kit}/matcher/find_nested_matches.ts +7 -9
- package/{kit/_typescript → typescript/kit}/matcher/register.ts +23 -17
- package/{kit/_typescript/matcher/parse_segments.ts → typescript/kit/matcher/utils.ts} +6 -2
- package/{kit/_typescript → typescript/kit}/theme/theme.ts +41 -16
- package/typescript/kit/url/url.ts +205 -0
- package/typescript/vorma/black_box_tests/dist/public_api_types.typecheck.ts +1031 -0
- package/typescript/vorma/black_box_tests/dist/tsconfig.json +9 -0
- package/typescript/vorma/black_box_tests/dist/vitest.config.ts +85 -0
- package/typescript/vorma/black_box_tests/src/tsconfig.json +8 -0
- package/typescript/vorma/client/README.md +48 -0
- package/typescript/vorma/client/buildtime.ts +15 -0
- package/typescript/vorma/client/index.ts +66 -0
- package/typescript/vorma/client/internal/hmr_dev.ts +353 -0
- package/typescript/vorma/client/internal.ts +40 -0
- package/typescript/vorma/client/src/import_meta.d.ts +21 -0
- package/typescript/vorma/client/src/runtime.ts +5721 -0
- package/typescript/vorma/client/testing.ts +487 -0
- package/typescript/vorma/client/tsconfig.json +10 -0
- package/typescript/vorma/client/vitest.dist.config.ts +85 -0
- package/{internal/framework/_typescript → typescript/vorma}/create/main.ts +59 -44
- package/{internal/framework/_typescript → typescript/vorma}/create/package.json +6 -3
- package/typescript/vorma/create/runtime_helpers.ts +164 -0
- package/typescript/vorma/create/tsconfig.json +3 -0
- package/typescript/vorma/ui-adapters/README.md +7 -0
- package/{internal/framework/_typescript/solid/index.tsx → typescript/vorma/ui-adapters/preact/index.ts} +5 -3
- package/typescript/vorma/ui-adapters/preact/src/preact.tsx +319 -0
- package/{internal/framework/_typescript/preact/index.tsx → typescript/vorma/ui-adapters/react/index.ts} +5 -3
- package/typescript/vorma/ui-adapters/react/src/react.tsx +372 -0
- package/{internal/framework/_typescript/react/index.tsx → typescript/vorma/ui-adapters/solid/index.ts} +5 -3
- package/typescript/vorma/ui-adapters/solid/src/solid.tsx +446 -0
- package/typescript/vorma/vite/tsconfig.json +3 -0
- package/typescript/vorma/vite/vite.ts +341 -0
- package/internal/framework/_typescript/client/index.ts +0 -64
- package/internal/framework/_typescript/client/src/asset_manager.ts +0 -67
- package/internal/framework/_typescript/client/src/client.ts +0 -1425
- package/internal/framework/_typescript/client/src/client_loaders.ts +0 -249
- package/internal/framework/_typescript/client/src/component_loader.ts +0 -105
- package/internal/framework/_typescript/client/src/error_boundary.ts +0 -7
- package/internal/framework/_typescript/client/src/events.ts +0 -54
- package/internal/framework/_typescript/client/src/global_loading_indicator/global_loading_indicator.ts +0 -125
- package/internal/framework/_typescript/client/src/hard_reload.ts +0 -1
- package/internal/framework/_typescript/client/src/head_elements/head_elements.ts +0 -193
- package/internal/framework/_typescript/client/src/history/history.ts +0 -118
- package/internal/framework/_typescript/client/src/history/npm_history_types.ts +0 -83
- package/internal/framework/_typescript/client/src/hmr/hmr.ts +0 -71
- package/internal/framework/_typescript/client/src/init_client.ts +0 -134
- package/internal/framework/_typescript/client/src/links.ts +0 -252
- package/internal/framework/_typescript/client/src/redirects/redirects.ts +0 -203
- package/internal/framework/_typescript/client/src/rendering.ts +0 -135
- package/internal/framework/_typescript/client/src/resolve_public_href.ts +0 -15
- package/internal/framework/_typescript/client/src/scroll_state_manager.ts +0 -100
- package/internal/framework/_typescript/client/src/static_route_defs/route_def_helpers.ts +0 -22
- package/internal/framework/_typescript/client/src/ui_lib_impl_helpers/link_components.ts +0 -131
- package/internal/framework/_typescript/client/src/ui_lib_impl_helpers/route_components.ts +0 -56
- package/internal/framework/_typescript/client/src/ui_lib_impl_helpers/typed_navigate.ts +0 -58
- package/internal/framework/_typescript/client/src/utils/errors.ts +0 -10
- package/internal/framework/_typescript/client/src/utils/logging.ts +0 -7
- package/internal/framework/_typescript/client/src/vorma_app_helpers/vorma_app_helpers.ts +0 -290
- package/internal/framework/_typescript/client/src/vorma_ctx/vorma_ctx.ts +0 -128
- package/internal/framework/_typescript/client/src/window_focus_revalidation/window_focus_revalidation.ts +0 -32
- package/internal/framework/_typescript/client/tsconfig.json +0 -3
- package/internal/framework/_typescript/create/pnpm-lock.yaml +0 -70
- package/internal/framework/_typescript/create/tsconfig.json +0 -3
- package/internal/framework/_typescript/preact/src/helpers.ts +0 -113
- package/internal/framework/_typescript/preact/src/link.tsx +0 -107
- package/internal/framework/_typescript/preact/src/preact.tsx +0 -191
- package/internal/framework/_typescript/react/src/helpers.ts +0 -118
- package/internal/framework/_typescript/react/src/link.tsx +0 -115
- package/internal/framework/_typescript/react/src/react.tsx +0 -299
- package/internal/framework/_typescript/solid/src/helpers.ts +0 -114
- package/internal/framework/_typescript/solid/src/link.tsx +0 -104
- package/internal/framework/_typescript/solid/src/solid.tsx +0 -204
- package/internal/framework/_typescript/vite/tsconfig.json +0 -3
- package/internal/framework/_typescript/vite/vite.ts +0 -189
- package/kit/_typescript/url/url.ts +0 -132
- package/npm_dist/internal/framework/_typescript/client/index.d.ts +0 -17
- package/npm_dist/internal/framework/_typescript/client/index.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/index.js +0 -2671
- package/npm_dist/internal/framework/_typescript/client/index.js.map +0 -7
- package/npm_dist/internal/framework/_typescript/client/src/asset_manager.d.ts +0 -6
- package/npm_dist/internal/framework/_typescript/client/src/asset_manager.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/client.d.ts +0 -128
- package/npm_dist/internal/framework/_typescript/client/src/client.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/client_loaders.d.ts +0 -18
- package/npm_dist/internal/framework/_typescript/client/src/client_loaders.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/component_loader.d.ts +0 -10
- package/npm_dist/internal/framework/_typescript/client/src/component_loader.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/error_boundary.d.ts +0 -3
- package/npm_dist/internal/framework/_typescript/client/src/error_boundary.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/events.d.ts +0 -26
- package/npm_dist/internal/framework/_typescript/client/src/events.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/global_loading_indicator/global_loading_indicator.d.ts +0 -12
- package/npm_dist/internal/framework/_typescript/client/src/global_loading_indicator/global_loading_indicator.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/hard_reload.d.ts +0 -2
- package/npm_dist/internal/framework/_typescript/client/src/hard_reload.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/head_elements/head_elements.d.ts +0 -7
- package/npm_dist/internal/framework/_typescript/client/src/head_elements/head_elements.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/history/history.d.ts +0 -14
- package/npm_dist/internal/framework/_typescript/client/src/history/history.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/history/npm_history_types.d.ts +0 -84
- package/npm_dist/internal/framework/_typescript/client/src/history/npm_history_types.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/hmr/hmr.d.ts +0 -3
- package/npm_dist/internal/framework/_typescript/client/src/hmr/hmr.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/init_client.d.ts +0 -9
- package/npm_dist/internal/framework/_typescript/client/src/init_client.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/links.d.ts +0 -33
- package/npm_dist/internal/framework/_typescript/client/src/links.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/redirects/redirects.d.ts +0 -26
- package/npm_dist/internal/framework/_typescript/client/src/redirects/redirects.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/rendering.d.ts +0 -18
- package/npm_dist/internal/framework/_typescript/client/src/rendering.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/resolve_public_href.d.ts +0 -2
- package/npm_dist/internal/framework/_typescript/client/src/resolve_public_href.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/scroll_state_manager.d.ts +0 -22
- package/npm_dist/internal/framework/_typescript/client/src/scroll_state_manager.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/static_route_defs/route_def_helpers.d.ts +0 -12
- package/npm_dist/internal/framework/_typescript/client/src/static_route_defs/route_def_helpers.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/ui_lib_impl_helpers/link_components.d.ts +0 -28
- package/npm_dist/internal/framework/_typescript/client/src/ui_lib_impl_helpers/link_components.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/ui_lib_impl_helpers/route_components.d.ts +0 -18
- package/npm_dist/internal/framework/_typescript/client/src/ui_lib_impl_helpers/route_components.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/ui_lib_impl_helpers/typed_navigate.d.ts +0 -11
- package/npm_dist/internal/framework/_typescript/client/src/ui_lib_impl_helpers/typed_navigate.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/utils/errors.d.ts +0 -3
- package/npm_dist/internal/framework/_typescript/client/src/utils/errors.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/utils/logging.d.ts +0 -3
- package/npm_dist/internal/framework/_typescript/client/src/utils/logging.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/vorma_app_helpers/vorma_app_helpers.d.ts +0 -119
- package/npm_dist/internal/framework/_typescript/client/src/vorma_app_helpers/vorma_app_helpers.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/vorma_ctx/vorma_ctx.d.ts +0 -88
- package/npm_dist/internal/framework/_typescript/client/src/vorma_ctx/vorma_ctx.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/client/src/window_focus_revalidation/window_focus_revalidation.d.ts +0 -10
- package/npm_dist/internal/framework/_typescript/client/src/window_focus_revalidation/window_focus_revalidation.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/create/main.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/preact/index.d.ts +0 -4
- package/npm_dist/internal/framework/_typescript/preact/index.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/preact/index.js +0 -283
- package/npm_dist/internal/framework/_typescript/preact/index.js.map +0 -7
- package/npm_dist/internal/framework/_typescript/preact/src/helpers.d.ts +0 -21
- package/npm_dist/internal/framework/_typescript/preact/src/helpers.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/preact/src/link.d.ts +0 -11
- package/npm_dist/internal/framework/_typescript/preact/src/link.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/preact/src/preact.d.ts +0 -21
- package/npm_dist/internal/framework/_typescript/preact/src/preact.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/react/index.d.ts +0 -4
- package/npm_dist/internal/framework/_typescript/react/index.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/react/index.js +0 -370
- package/npm_dist/internal/framework/_typescript/react/index.js.map +0 -7
- package/npm_dist/internal/framework/_typescript/react/src/helpers.d.ts +0 -21
- package/npm_dist/internal/framework/_typescript/react/src/helpers.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/react/src/link.d.ts +0 -11
- package/npm_dist/internal/framework/_typescript/react/src/link.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/react/src/react.d.ts +0 -20
- package/npm_dist/internal/framework/_typescript/react/src/react.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/solid/index.d.ts +0 -4
- package/npm_dist/internal/framework/_typescript/solid/index.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/solid/index.js +0 -314
- package/npm_dist/internal/framework/_typescript/solid/index.js.map +0 -7
- package/npm_dist/internal/framework/_typescript/solid/src/helpers.d.ts +0 -22
- package/npm_dist/internal/framework/_typescript/solid/src/helpers.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/solid/src/link.d.ts +0 -11
- package/npm_dist/internal/framework/_typescript/solid/src/link.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/solid/src/solid.d.ts +0 -22
- package/npm_dist/internal/framework/_typescript/solid/src/solid.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/vite/vite.d.ts.map +0 -1
- package/npm_dist/internal/framework/_typescript/vite/vite.js +0 -140
- package/npm_dist/internal/framework/_typescript/vite/vite.js.map +0 -7
- package/npm_dist/kit/_typescript/chunk-YBAPNBS2.js.map +0 -7
- package/npm_dist/kit/_typescript/converters/converters.d.ts.map +0 -1
- package/npm_dist/kit/_typescript/converters/converters.js.map +0 -7
- package/npm_dist/kit/_typescript/cookies/cookies.d.ts.map +0 -1
- package/npm_dist/kit/_typescript/cookies/cookies.js +0 -13
- package/npm_dist/kit/_typescript/cookies/cookies.js.map +0 -7
- package/npm_dist/kit/_typescript/csrf/csrf.d.ts.map +0 -1
- package/npm_dist/kit/_typescript/debounce/debounce.d.ts.map +0 -1
- package/npm_dist/kit/_typescript/debounce/debounce.js.map +0 -7
- package/npm_dist/kit/_typescript/fmt/fmt.d.ts.map +0 -1
- package/npm_dist/kit/_typescript/json/deep_equals.d.ts.map +0 -1
- package/npm_dist/kit/_typescript/json/json.d.ts.map +0 -1
- package/npm_dist/kit/_typescript/json/json.js.map +0 -7
- package/npm_dist/kit/_typescript/json/search_param_serializer.d.ts +0 -2
- package/npm_dist/kit/_typescript/json/search_param_serializer.d.ts.map +0 -1
- package/npm_dist/kit/_typescript/json/stringify_stable.d.ts.map +0 -1
- package/npm_dist/kit/_typescript/listeners/listeners.d.ts.map +0 -1
- package/npm_dist/kit/_typescript/listeners/listeners.js.map +0 -7
- package/npm_dist/kit/_typescript/matcher/find_best_match.d.ts.map +0 -1
- package/npm_dist/kit/_typescript/matcher/find_best_match.js.map +0 -7
- package/npm_dist/kit/_typescript/matcher/find_nested_matches.d.ts.map +0 -1
- package/npm_dist/kit/_typescript/matcher/find_nested_matches.js.map +0 -7
- package/npm_dist/kit/_typescript/matcher/parse_segments.d.ts +0 -2
- package/npm_dist/kit/_typescript/matcher/parse_segments.d.ts.map +0 -1
- package/npm_dist/kit/_typescript/matcher/register.d.ts.map +0 -1
- package/npm_dist/kit/_typescript/matcher/register.js +0 -21
- package/npm_dist/kit/_typescript/theme/theme.d.ts.map +0 -1
- package/npm_dist/kit/_typescript/theme/theme.js.map +0 -7
- package/npm_dist/kit/_typescript/url/url.d.ts.map +0 -1
- package/npm_dist/kit/_typescript/url/url.js.map +0 -7
- /package/npm_dist/{kit/_typescript → typescript/kit}/cookies/cookies.d.ts +0 -0
- /package/npm_dist/{kit/_typescript → typescript/kit}/csrf/csrf.d.ts +0 -0
- /package/npm_dist/{kit/_typescript → typescript/kit}/debounce/debounce.d.ts +0 -0
- /package/npm_dist/{kit/_typescript → typescript/kit}/fmt/fmt.d.ts +0 -0
- /package/npm_dist/{kit/_typescript → typescript/kit}/json/deep_equals.d.ts +0 -0
- /package/npm_dist/{kit/_typescript → typescript/kit}/json/json.d.ts +0 -0
- /package/npm_dist/{kit/_typescript → typescript/kit}/json/stringify_stable.d.ts +0 -0
- /package/npm_dist/{kit/_typescript → typescript/kit}/listeners/listeners.d.ts +0 -0
- /package/npm_dist/{kit/_typescript → typescript/kit}/matcher/register.d.ts +0 -0
- /package/npm_dist/{kit/_typescript → typescript/kit}/theme/theme.d.ts +0 -0
- /package/npm_dist/{kit/_typescript/matcher/register.js.map → typescript/vorma/client/index.js.map} +0 -0
- /package/npm_dist/{internal/framework/_typescript → typescript/vorma}/create/main.d.ts +0 -0
- /package/{kit/_typescript → typescript/kit}/csrf/csrf.ts +0 -0
- /package/{kit/_typescript → typescript/kit}/fmt/fmt.ts +0 -0
- /package/{kit/_typescript → typescript/kit}/json/json.ts +0 -0
- /package/{kit/_typescript → typescript/kit}/tsconfig.json +0 -0
- /package/{internal/framework/_typescript → typescript/vorma/ui-adapters}/preact/tsconfig.json +0 -0
- /package/{internal/framework/_typescript → typescript/vorma/ui-adapters}/react/tsconfig.json +0 -0
- /package/{internal/framework/_typescript → typescript/vorma/ui-adapters}/solid/tsconfig.json +0 -0
package/README.md
CHANGED
|
@@ -4,14 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
The
|
|
7
|
+
The Golang metaframework, powered by Vite.
|
|
8
8
|
|
|
9
9
|
## Links
|
|
10
10
|
|
|
11
11
|
[vorma.dev](https://vorma.dev) | [github.com](https://github.com/vormadev/vorma)
|
|
12
12
|
| [pkg.go.dev](https://pkg.go.dev/github.com/vormadev/vorma) |
|
|
13
|
-
[
|
|
14
|
-
[x.com](https://x.com/vormadev)
|
|
13
|
+
[npmx.dev](https://npmx.dev/package/vorma) | [x.com](https://x.com/vormadev)
|
|
15
14
|
|
|
16
15
|
## Quick Start
|
|
17
16
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":2,"input_hash":"2320072537c0a83ee830136e2fc3a50e5051de550b168e48095834c75c228cba","output_hash":"561a71cc2877b9f58c352c39c08372ea11615cada04dc772e797f64f1f2dc4d3"}
|
|
@@ -6,19 +6,19 @@ export type Base64URL = string;
|
|
|
6
6
|
export declare function bytesToUTF8(bytes: Uint8Array): UTF8;
|
|
7
7
|
export declare function bytesToHex(bytes: Uint8Array): Hex;
|
|
8
8
|
export declare function bytesToBase64(bytes: Uint8Array): Base64;
|
|
9
|
-
export declare function bytesToBase64URL(bytes: Uint8Array):
|
|
9
|
+
export declare function bytesToBase64URL(bytes: Uint8Array): Base64URL;
|
|
10
10
|
export declare function utf8ToBytes(utf8: UTF8): Uint8Array;
|
|
11
11
|
export declare function utf8ToHex(utf8: UTF8): Hex;
|
|
12
12
|
export declare function utf8ToBase64(utf8: UTF8): Base64;
|
|
13
|
-
export declare function utf8ToBase64URL(utf8: UTF8):
|
|
13
|
+
export declare function utf8ToBase64URL(utf8: UTF8): Base64URL;
|
|
14
14
|
export declare function hexToBytes(hex: Hex): Uint8Array;
|
|
15
15
|
export declare function hexToUTF8(hex: Hex): UTF8;
|
|
16
16
|
export declare function hexToBase64(hex: Hex): Base64;
|
|
17
|
-
export declare function hexToBase64URL(hex: Hex):
|
|
17
|
+
export declare function hexToBase64URL(hex: Hex): Base64URL;
|
|
18
18
|
export declare function base64ToBytes(base64: Base64): Uint8Array;
|
|
19
19
|
export declare function base64ToUTF8(base64: Base64): UTF8;
|
|
20
20
|
export declare function base64ToHex(base64: Base64): Hex;
|
|
21
|
-
export declare function base64ToBase64URL(base64: Base64):
|
|
21
|
+
export declare function base64ToBase64URL(base64: Base64): Base64URL;
|
|
22
22
|
export declare function base64URLToBytes(base64URL: Base64URL): Uint8Array;
|
|
23
23
|
export declare function base64URLToUTF8(base64URL: Base64URL): UTF8;
|
|
24
24
|
export declare function base64URLToHex(base64URL: Base64URL): Hex;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"converters.d.ts","sourceRoot":"","sources":["../../../../typescript/kit/converters/converters.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC;AAC/B,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC;AAC1B,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC;AACzB,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAC5B,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAO/B,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAEnD;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAEjD;AAGD,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAGvD;AAGD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAG7D;AAOD,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAElD;AAGD,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG,CAGzC;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAG/C;AAGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAGrD;AAOD,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAM/C;AAGD,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAGxC;AAGD,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAG5C;AAGD,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,CAGlD;AAOD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAExD;AAGD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAGjD;AAGD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAG/C;AAGD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAM3D;AAOD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAGjE;AAGD,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAG1D;AAGD,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,GAAG,CAGxD;AAGD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAK9D"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../typescript/kit/converters/converters.ts"],
|
|
4
|
+
"sourcesContent": ["/////////////////////////////////////////////////////////////////////\n/////// TYPE ALIASES\n/////////////////////////////////////////////////////////////////////\n\nexport type Bytes = Uint8Array;\nexport type UTF8 = string;\nexport type Hex = string;\nexport type Base64 = string;\nexport type Base64URL = string;\n\n/////////////////////////////////////////////////////////////////////\n/////// BYTES --> X\n/////////////////////////////////////////////////////////////////////\n\n// --> UTF8\nexport function bytesToUTF8(bytes: Uint8Array): UTF8 {\n\treturn new TextDecoder().decode(bytes);\n}\n\n// --> HEX\nexport function bytesToHex(bytes: Uint8Array): Hex {\n\treturn Array.from(bytes, (x) => x.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\n// --> BASE64\nexport function bytesToBase64(bytes: Uint8Array): Base64 {\n\tconst callback = (x: number) => String.fromCodePoint(x);\n\treturn btoa(Array.from(bytes, callback).join(\"\"));\n}\n\n// --> BASE64URL\nexport function bytesToBase64URL(bytes: Uint8Array): Base64URL {\n\tconst base64 = bytesToBase64(bytes);\n\treturn base64ToBase64URL(base64);\n}\n\n/////////////////////////////////////////////////////////////////////\n/////// UTF8 --> X\n/////////////////////////////////////////////////////////////////////\n\n// --> BYTES\nexport function utf8ToBytes(utf8: UTF8): Uint8Array {\n\treturn new TextEncoder().encode(utf8);\n}\n\n// --> HEX\nexport function utf8ToHex(utf8: UTF8): Hex {\n\tconst bytes = utf8ToBytes(utf8);\n\treturn bytesToHex(bytes);\n}\n\n// --> BASE64\nexport function utf8ToBase64(utf8: UTF8): Base64 {\n\tconst bytes = utf8ToBytes(utf8);\n\treturn bytesToBase64(bytes);\n}\n\n// --> BASE64URL\nexport function utf8ToBase64URL(utf8: UTF8): Base64URL {\n\tconst bytes = utf8ToBytes(utf8);\n\treturn bytesToBase64URL(bytes);\n}\n\n/////////////////////////////////////////////////////////////////////\n/////// HEX --> X\n/////////////////////////////////////////////////////////////////////\n\n// --> BYTES\nexport function hexToBytes(hex: Hex): Uint8Array {\n\tconst cleanHex = hex.startsWith(\"0x\") ? hex.slice(2) : hex;\n\tconst bytes =\n\t\tcleanHex.match(/.{1,2}/g)?.map((byte) => Number.parseInt(byte, 16)) ||\n\t\t[];\n\treturn new Uint8Array(bytes);\n}\n\n// --> UTF8\nexport function hexToUTF8(hex: Hex): UTF8 {\n\tconst bytes = hexToBytes(hex);\n\treturn bytesToUTF8(bytes);\n}\n\n// --> BASE64\nexport function hexToBase64(hex: Hex): Base64 {\n\tconst bytes = hexToBytes(hex);\n\treturn bytesToBase64(bytes);\n}\n\n// --> BASE64URL\nexport function hexToBase64URL(hex: Hex): Base64URL {\n\tconst bytes = hexToBytes(hex);\n\treturn bytesToBase64URL(bytes);\n}\n\n/////////////////////////////////////////////////////////////////////\n/////// BASE64 --> X\n/////////////////////////////////////////////////////////////////////\n\n// --> BYTES\nexport function base64ToBytes(base64: Base64): Uint8Array {\n\treturn Uint8Array.from(atob(base64), (m) => m.codePointAt(0) || 0);\n}\n\n// --> UTF8\nexport function base64ToUTF8(base64: Base64): UTF8 {\n\tconst bytes = base64ToBytes(base64);\n\treturn bytesToUTF8(bytes);\n}\n\n// --> HEX\nexport function base64ToHex(base64: Base64): Hex {\n\tconst bytes = base64ToBytes(base64);\n\treturn bytesToHex(bytes);\n}\n\n// --> BASE64URL\nexport function base64ToBase64URL(base64: Base64): Base64URL {\n\treturn base64\n\t\t.replace(/[\\r\\n\\t ]+/g, \"\")\n\t\t.replace(/\\+/g, \"-\")\n\t\t.replace(/\\//g, \"_\")\n\t\t.replace(/=+$/, \"\");\n}\n\n/////////////////////////////////////////////////////////////////////\n/////// BASE64URL --> X\n/////////////////////////////////////////////////////////////////////\n\n// --> BYTES\nexport function base64URLToBytes(base64URL: Base64URL): Uint8Array {\n\tconst base64 = base64URLToBase64(base64URL);\n\treturn base64ToBytes(base64);\n}\n\n// --> UTF8\nexport function base64URLToUTF8(base64URL: Base64URL): UTF8 {\n\tconst bytes = base64URLToBytes(base64URL);\n\treturn bytesToUTF8(bytes);\n}\n\n// --> HEX\nexport function base64URLToHex(base64URL: Base64URL): Hex {\n\tconst bytes = base64URLToBytes(base64URL);\n\treturn bytesToHex(bytes);\n}\n\n// --> BASE64\nexport function base64URLToBase64(base64URL: Base64URL): Base64 {\n\treturn base64URL\n\t\t.padEnd(base64URL.length + ((4 - (base64URL.length % 4)) % 4), \"=\")\n\t\t.replace(/-/g, \"+\")\n\t\t.replace(/_/g, \"/\");\n}\n"],
|
|
5
|
+
"mappings": ";AAeO,SAAS,YAAY,OAAyB;AACpD,SAAO,IAAI,YAAY,EAAE,OAAO,KAAK;AACtC;AAGO,SAAS,WAAW,OAAwB;AAClD,SAAO,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE;AACzE;AAGO,SAAS,cAAc,OAA2B;AACxD,QAAM,WAAW,CAAC,MAAc,OAAO,cAAc,CAAC;AACtD,SAAO,KAAK,MAAM,KAAK,OAAO,QAAQ,EAAE,KAAK,EAAE,CAAC;AACjD;AAGO,SAAS,iBAAiB,OAA8B;AAC9D,QAAM,SAAS,cAAc,KAAK;AAClC,SAAO,kBAAkB,MAAM;AAChC;AAOO,SAAS,YAAY,MAAwB;AACnD,SAAO,IAAI,YAAY,EAAE,OAAO,IAAI;AACrC;AAGO,SAAS,UAAU,MAAiB;AAC1C,QAAM,QAAQ,YAAY,IAAI;AAC9B,SAAO,WAAW,KAAK;AACxB;AAGO,SAAS,aAAa,MAAoB;AAChD,QAAM,QAAQ,YAAY,IAAI;AAC9B,SAAO,cAAc,KAAK;AAC3B;AAGO,SAAS,gBAAgB,MAAuB;AACtD,QAAM,QAAQ,YAAY,IAAI;AAC9B,SAAO,iBAAiB,KAAK;AAC9B;AAOO,SAAS,WAAW,KAAsB;AAChD,QAAM,WAAW,IAAI,WAAW,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI;AACvD,QAAM,QACL,SAAS,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,OAAO,SAAS,MAAM,EAAE,CAAC,KAClE,CAAC;AACF,SAAO,IAAI,WAAW,KAAK;AAC5B;AAGO,SAAS,UAAU,KAAgB;AACzC,QAAM,QAAQ,WAAW,GAAG;AAC5B,SAAO,YAAY,KAAK;AACzB;AAGO,SAAS,YAAY,KAAkB;AAC7C,QAAM,QAAQ,WAAW,GAAG;AAC5B,SAAO,cAAc,KAAK;AAC3B;AAGO,SAAS,eAAe,KAAqB;AACnD,QAAM,QAAQ,WAAW,GAAG;AAC5B,SAAO,iBAAiB,KAAK;AAC9B;AAOO,SAAS,cAAc,QAA4B;AACzD,SAAO,WAAW,KAAK,KAAK,MAAM,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC;AAClE;AAGO,SAAS,aAAa,QAAsB;AAClD,QAAM,QAAQ,cAAc,MAAM;AAClC,SAAO,YAAY,KAAK;AACzB;AAGO,SAAS,YAAY,QAAqB;AAChD,QAAM,QAAQ,cAAc,MAAM;AAClC,SAAO,WAAW,KAAK;AACxB;AAGO,SAAS,kBAAkB,QAA2B;AAC5D,SAAO,OACL,QAAQ,eAAe,EAAE,EACzB,QAAQ,OAAO,GAAG,EAClB,QAAQ,OAAO,GAAG,EAClB,QAAQ,OAAO,EAAE;AACpB;AAOO,SAAS,iBAAiB,WAAkC;AAClE,QAAM,SAAS,kBAAkB,SAAS;AAC1C,SAAO,cAAc,MAAM;AAC5B;AAGO,SAAS,gBAAgB,WAA4B;AAC3D,QAAM,QAAQ,iBAAiB,SAAS;AACxC,SAAO,YAAY,KAAK;AACzB;AAGO,SAAS,eAAe,WAA2B;AACzD,QAAM,QAAQ,iBAAiB,SAAS;AACxC,SAAO,WAAW,KAAK;AACxB;AAGO,SAAS,kBAAkB,WAA8B;AAC/D,SAAO,UACL,OAAO,UAAU,UAAW,IAAK,UAAU,SAAS,KAAM,GAAI,GAAG,EACjE,QAAQ,MAAM,GAAG,EACjB,QAAQ,MAAM,GAAG;AACpB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../../../typescript/kit/cookies/cookies.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,sBAU3C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAE1D"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// typescript/kit/cookies/cookies.ts
|
|
2
|
+
function getClientCookie(name) {
|
|
3
|
+
const expectedPrefix = `${name}=`;
|
|
4
|
+
const cookiePairs = document.cookie.split(";");
|
|
5
|
+
for (const cookiePair of cookiePairs) {
|
|
6
|
+
const trimmedPair = cookiePair.trim();
|
|
7
|
+
if (trimmedPair.startsWith(expectedPrefix)) {
|
|
8
|
+
return trimmedPair.slice(expectedPrefix.length);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return void 0;
|
|
12
|
+
}
|
|
13
|
+
function setClientCookie(name, value) {
|
|
14
|
+
document.cookie = `${name}=${value}; path=/; max-age=31536000; SameSite=Lax`;
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
getClientCookie,
|
|
18
|
+
setClientCookie
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=cookies.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../typescript/kit/cookies/cookies.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Checks the client cookie for a specific name. Returns the value if\n * found, otherwise undefined. Does not do any encoding or decoding.\n */\nexport function getClientCookie(name: string) {\n\tconst expectedPrefix = `${name}=`;\n\tconst cookiePairs = document.cookie.split(\";\");\n\tfor (const cookiePair of cookiePairs) {\n\t\tconst trimmedPair = cookiePair.trim();\n\t\tif (trimmedPair.startsWith(expectedPrefix)) {\n\t\t\treturn trimmedPair.slice(expectedPrefix.length);\n\t\t}\n\t}\n\treturn undefined;\n}\n\n/**\n * Sets a client cookie with the specified name and value. The cookie\n * is set to expire in one year and is accessible to all paths on the\n * domain. The SameSite attribute is set to Lax. Does not do any\n * encoding or decoding.\n */\nexport function setClientCookie(name: string, value: string) {\n\tdocument.cookie = `${name}=${value}; path=/; max-age=31536000; SameSite=Lax`;\n}\n"],
|
|
5
|
+
"mappings": ";AAIO,SAAS,gBAAgB,MAAc;AAC7C,QAAM,iBAAiB,GAAG,IAAI;AAC9B,QAAM,cAAc,SAAS,OAAO,MAAM,GAAG;AAC7C,aAAW,cAAc,aAAa;AACrC,UAAM,cAAc,WAAW,KAAK;AACpC,QAAI,YAAY,WAAW,cAAc,GAAG;AAC3C,aAAO,YAAY,MAAM,eAAe,MAAM;AAAA,IAC/C;AAAA,EACD;AACA,SAAO;AACR;AAQO,SAAS,gBAAgB,MAAc,OAAe;AAC5D,WAAS,SAAS,GAAG,IAAI,IAAI,KAAK;AACnC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csrf.d.ts","sourceRoot":"","sources":["../../../../typescript/kit/csrf/csrf.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,GAAG,SAAS,CAIrB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../kit/
|
|
3
|
+
"sources": ["../../../../typescript/kit/csrf/csrf.ts"],
|
|
4
4
|
"sourcesContent": ["import { getClientCookie } from \"vorma/kit/cookies\";\n\nexport function getCSRFToken(opts: {\n\tisDev: boolean;\n\tcookieName?: string;\n}): string | undefined {\n\tconst prefix = opts.isDev ? \"__Dev-\" : \"__Host-\";\n\tconst name = opts.cookieName || \"csrf_token\";\n\treturn getClientCookie(prefix + name);\n}\n"],
|
|
5
5
|
"mappings": ";AAAA,SAAS,uBAAuB;AAEzB,SAAS,aAAa,MAGN;AACtB,QAAM,SAAS,KAAK,QAAQ,WAAW;AACvC,QAAM,OAAO,KAAK,cAAc;AAChC,SAAO,gBAAgB,SAAS,IAAI;AACrC;",
|
|
6
6
|
"names": []
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../../../typescript/kit/debounce/debounce.ts"],"names":[],"mappings":"AAAA,KAAK,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;AAEvC,wBAAgB,QAAQ,CAAC,CAAC,SAAS,EAAE,EACpC,EAAE,EAAE,CAAC,EACL,SAAS,EAAE,MAAM,GACf,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAe7D"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
// kit/
|
|
1
|
+
// typescript/kit/debounce/debounce.ts
|
|
2
2
|
function debounce(fn, delayInMs) {
|
|
3
3
|
let timeoutID;
|
|
4
4
|
return (...args) => {
|
|
5
|
-
return new Promise((resolve) => {
|
|
5
|
+
return new Promise((resolve, reject) => {
|
|
6
6
|
clearTimeout(timeoutID);
|
|
7
7
|
timeoutID = window.setTimeout(() => {
|
|
8
|
-
|
|
8
|
+
try {
|
|
9
|
+
resolve(fn(...args));
|
|
10
|
+
} catch (error) {
|
|
11
|
+
reject(error);
|
|
12
|
+
}
|
|
9
13
|
}, delayInMs);
|
|
10
14
|
});
|
|
11
15
|
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../typescript/kit/debounce/debounce.ts"],
|
|
4
|
+
"sourcesContent": ["type Fn = (...args: Array<any>) => any;\n\nexport function debounce<T extends Fn>(\n\tfn: T,\n\tdelayInMs: number,\n): (...args: Parameters<T>) => Promise<Awaited<ReturnType<T>>> {\n\tlet timeoutID: number;\n\n\treturn (...args: Parameters<T>) => {\n\t\treturn new Promise<Awaited<ReturnType<T>>>((resolve, reject) => {\n\t\t\tclearTimeout(timeoutID);\n\t\t\ttimeoutID = window.setTimeout(() => {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fn(...args));\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t}, delayInMs);\n\t\t});\n\t};\n}\n"],
|
|
5
|
+
"mappings": ";AAEO,SAAS,SACf,IACA,WAC8D;AAC9D,MAAI;AAEJ,SAAO,IAAI,SAAwB;AAClC,WAAO,IAAI,QAAgC,CAAC,SAAS,WAAW;AAC/D,mBAAa,SAAS;AACtB,kBAAY,OAAO,WAAW,MAAM;AACnC,YAAI;AACH,kBAAQ,GAAG,GAAG,IAAI,CAAC;AAAA,QACpB,SAAS,OAAO;AACf,iBAAO,KAAK;AAAA,QACb;AAAA,MACD,GAAG,SAAS;AAAA,IACb,CAAC;AAAA,EACF;AACD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fmt.d.ts","sourceRoot":"","sources":["../../../../typescript/kit/fmt/fmt.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAE3C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../kit/
|
|
3
|
+
"sources": ["../../../../typescript/kit/fmt/fmt.ts"],
|
|
4
4
|
"sourcesContent": ["export function prettyJSON(obj: any): string {\n\treturn JSON.stringify(obj, null, 2);\n}\n"],
|
|
5
5
|
"mappings": ";AAAO,SAAS,WAAW,KAAkB;AAC5C,SAAO,KAAK,UAAU,KAAK,MAAM,CAAC;AACnC;",
|
|
6
6
|
"names": []
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep_equals.d.ts","sourceRoot":"","sources":["../../../../typescript/kit/json/deep_equals.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAyD9D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../../typescript/kit/json/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// kit/
|
|
1
|
+
// typescript/kit/json/deep_equals.ts
|
|
2
2
|
function jsonDeepEquals(a, b) {
|
|
3
3
|
if (a === b) {
|
|
4
4
|
return true;
|
|
@@ -15,25 +15,31 @@ function jsonDeepEquals(a, b) {
|
|
|
15
15
|
return false;
|
|
16
16
|
}
|
|
17
17
|
if (aIsArray && bIsArray) {
|
|
18
|
-
|
|
18
|
+
const leftArray = a;
|
|
19
|
+
const rightArray = b;
|
|
20
|
+
if (leftArray.length !== rightArray.length) {
|
|
19
21
|
return false;
|
|
20
22
|
}
|
|
21
|
-
return
|
|
23
|
+
return leftArray.every(
|
|
24
|
+
(item, index) => jsonDeepEquals(item, rightArray[index])
|
|
25
|
+
);
|
|
22
26
|
}
|
|
23
27
|
if (typeof a === "object" && typeof b === "object") {
|
|
24
|
-
const
|
|
25
|
-
const
|
|
28
|
+
const leftObject = a;
|
|
29
|
+
const rightObject = b;
|
|
30
|
+
const aKeys = Object.keys(leftObject);
|
|
31
|
+
const bKeys = Object.keys(rightObject);
|
|
26
32
|
if (aKeys.length !== bKeys.length) {
|
|
27
33
|
return false;
|
|
28
34
|
}
|
|
29
35
|
return aKeys.every((key) => {
|
|
30
|
-
return Object.hasOwn(
|
|
36
|
+
return Object.hasOwn(rightObject, key) && jsonDeepEquals(leftObject[key], rightObject[key]);
|
|
31
37
|
});
|
|
32
38
|
}
|
|
33
39
|
return false;
|
|
34
40
|
}
|
|
35
41
|
|
|
36
|
-
// kit/
|
|
42
|
+
// typescript/kit/json/search_param_serializer.ts
|
|
37
43
|
function serializeToSearchParams(obj) {
|
|
38
44
|
const params = new URLSearchParams();
|
|
39
45
|
function appendValue(key, value) {
|
|
@@ -76,7 +82,7 @@ function serializeToSearchParams(obj) {
|
|
|
76
82
|
return params;
|
|
77
83
|
}
|
|
78
84
|
|
|
79
|
-
// kit/
|
|
85
|
+
// typescript/kit/json/stringify_stable.ts
|
|
80
86
|
function jsonStringifyStable(input) {
|
|
81
87
|
const stabilized = stabilizeStructure(input, /* @__PURE__ */ new WeakSet());
|
|
82
88
|
return JSON.stringify(stabilized);
|
|
@@ -86,7 +92,9 @@ function stabilizeStructure(value, visited) {
|
|
|
86
92
|
return value;
|
|
87
93
|
}
|
|
88
94
|
if (visited.has(value)) {
|
|
89
|
-
throw new Error(
|
|
95
|
+
throw new Error(
|
|
96
|
+
"Circular reference detected during stable JSON stringification"
|
|
97
|
+
);
|
|
90
98
|
}
|
|
91
99
|
visited.add(value);
|
|
92
100
|
if (Array.isArray(value)) {
|
|
@@ -97,7 +105,10 @@ function stabilizeStructure(value, visited) {
|
|
|
97
105
|
const keys = Object.keys(value).sort();
|
|
98
106
|
const stable = {};
|
|
99
107
|
for (const key of keys) {
|
|
100
|
-
stable[key] = stabilizeStructure(
|
|
108
|
+
stable[key] = stabilizeStructure(
|
|
109
|
+
value[key],
|
|
110
|
+
visited
|
|
111
|
+
);
|
|
101
112
|
}
|
|
102
113
|
visited.delete(value);
|
|
103
114
|
return stable;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../typescript/kit/json/deep_equals.ts", "../../../../typescript/kit/json/search_param_serializer.ts", "../../../../typescript/kit/json/stringify_stable.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Performs a deep equality comparison of two JSON-compatible values.\n * Handles null, undefined, primitives, arrays, and plain objects, recursively.\n * Does not support Maps, Sets, Functions, or other non-JSON types.\n */\nexport function jsonDeepEquals(a: unknown, b: unknown): boolean {\n\t// Tautology\n\tif (a === b) {\n\t\treturn true;\n\t}\n\n\t// If both were null or both were undefined, we would have early returned above.\n\t// So if either at this point is loosely null, we know they're not equal.\n\tif (a == null || b == null) {\n\t\treturn false;\n\t}\n\n\t// If types are different, we know they're not equal.\n\tif (typeof a !== typeof b) {\n\t\treturn false;\n\t}\n\n\tconst aIsArray = Array.isArray(a);\n\tconst bIsArray = Array.isArray(b);\n\n\t// If one is an array and the other is not, we know they're not equal.\n\tif (aIsArray !== bIsArray) {\n\t\treturn false;\n\t}\n\n\t// Handle arrays\n\tif (aIsArray && bIsArray) {\n\t\tconst leftArray = a as unknown[];\n\t\tconst rightArray = b as unknown[];\n\t\tif (leftArray.length !== rightArray.length) {\n\t\t\treturn false;\n\t\t}\n\t\treturn leftArray.every((item, index) =>\n\t\t\tjsonDeepEquals(item, rightArray[index]),\n\t\t);\n\t}\n\n\t// Handle objects\n\tif (typeof a === \"object\" && typeof b === \"object\") {\n\t\tconst leftObject = a as Record<string, unknown>;\n\t\tconst rightObject = b as Record<string, unknown>;\n\t\tconst aKeys = Object.keys(leftObject);\n\t\tconst bKeys = Object.keys(rightObject);\n\n\t\tif (aKeys.length !== bKeys.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn aKeys.every((key) => {\n\t\t\treturn (\n\t\t\t\tObject.hasOwn(rightObject, key) &&\n\t\t\t\tjsonDeepEquals(leftObject[key], rightObject[key])\n\t\t\t);\n\t\t});\n\t}\n\n\treturn false;\n}\n", "export function serializeToSearchParams(obj: unknown): URLSearchParams {\n\tconst params = new URLSearchParams();\n\n\tfunction appendValue(key: string, value: unknown) {\n\t\tif (value === null || value === undefined) {\n\t\t\tparams.append(key, \"\");\n\t\t\treturn;\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0) {\n\t\t\t\tparams.append(key, \"\");\n\t\t\t} else {\n\t\t\t\tfor (const item of value) {\n\t\t\t\t\tappendValue(key, item);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (typeof value === \"object\") {\n\t\t\tconst entries = Object.entries(value as Record<string, unknown>);\n\t\t\tif (entries.length === 0) {\n\t\t\t\tparams.append(key, \"\");\n\t\t\t} else {\n\t\t\t\t// Sort nested keys alphabetically\n\t\t\t\tentries.sort(([keyA], [keyB]) => keyA.localeCompare(keyB));\n\t\t\t\tfor (const [subKey, subValue] of entries) {\n\t\t\t\t\tconst newKey = key ? `${key}.${subKey}` : subKey;\n\t\t\t\t\tappendValue(newKey, subValue);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// oxlint-disable-next-line no-base-to-string\n\t\tparams.append(key, String(value));\n\t}\n\n\tif (typeof obj === \"object\" && obj !== null) {\n\t\t// Sort top-level keys alphabetically\n\t\tconst entries = Object.entries(obj);\n\t\tentries.sort(([keyA], [keyB]) => keyA.localeCompare(keyB));\n\t\tfor (const [key, value] of entries) {\n\t\t\tappendValue(key, value);\n\t\t}\n\t}\n\n\treturn params;\n}\n", "/**\n * Deterministically serializes a JSON-compatible value to a stable string.\n * Throws if it detects a circular reference. Does not support Maps, Sets,\n * Functions, or other non-JSON types.\n */\nexport function jsonStringifyStable(input: unknown): string {\n\t// First stabilize the structure, then JSON.stringify\n\tconst stabilized = stabilizeStructure(input, new WeakSet());\n\n\treturn JSON.stringify(stabilized);\n}\n\nfunction stabilizeStructure(value: unknown, visited: WeakSet<object>): unknown {\n\t// Handle primitives and null\n\tif (value === null || typeof value !== \"object\") {\n\t\treturn value;\n\t}\n\n\t// Prevent circular references\n\tif (visited.has(value)) {\n\t\tthrow new Error(\n\t\t\t\"Circular reference detected during stable JSON stringification\",\n\t\t);\n\t}\n\tvisited.add(value);\n\n\t// Handle arrays - recursively stabilize each element\n\tif (Array.isArray(value)) {\n\t\tconst result = value.map((item) => stabilizeStructure(item, visited));\n\t\tvisited.delete(value); // Clean up after processing\n\t\treturn result;\n\t}\n\n\t// Handle objects - sort keys and recursively stabilize values\n\tconst keys = Object.keys(value).sort();\n\tconst stable: Record<string, unknown> = {};\n\n\t// Add sorted keys with stabilized values\n\tfor (const key of keys) {\n\t\tstable[key] = stabilizeStructure(\n\t\t\t(value as Record<string, unknown>)[key],\n\t\t\tvisited,\n\t\t);\n\t}\n\n\tvisited.delete(value); // Clean up after processing\n\treturn stable;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search_param_serializer.d.ts","sourceRoot":"","sources":["../../../../typescript/kit/json/search_param_serializer.ts"],"names":[],"mappings":"AAAA,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,CAiDrE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringify_stable.d.ts","sourceRoot":"","sources":["../../../../typescript/kit/json/stringify_stable.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAK1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listeners.d.ts","sourceRoot":"","sources":["../../../../typescript/kit/listeners/listeners.ts"],"names":[],"mappings":"AAEA,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAazE"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
// kit/
|
|
1
|
+
// typescript/kit/listeners/listeners.ts
|
|
2
2
|
import { debounce } from "vorma/kit/debounce";
|
|
3
3
|
function addOnWindowFocusListener(callback) {
|
|
4
4
|
const debouncedCallback = debounce(callback, 30);
|
|
5
5
|
const ifVisibleCallback = () => {
|
|
6
6
|
if (document.visibilityState === "visible") {
|
|
7
|
-
debouncedCallback();
|
|
7
|
+
void debouncedCallback();
|
|
8
8
|
}
|
|
9
9
|
};
|
|
10
10
|
window.addEventListener("focus", debouncedCallback);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../typescript/kit/listeners/listeners.ts"],
|
|
4
|
+
"sourcesContent": ["import { debounce } from \"vorma/kit/debounce\";\n\nexport function addOnWindowFocusListener(callback: () => void): () => void {\n\tconst debouncedCallback = debounce(callback, 30);\n\tconst ifVisibleCallback = () => {\n\t\tif (document.visibilityState === \"visible\") {\n\t\t\tvoid debouncedCallback();\n\t\t}\n\t};\n\twindow.addEventListener(\"focus\", debouncedCallback);\n\twindow.addEventListener(\"visibilitychange\", ifVisibleCallback);\n\treturn () => {\n\t\twindow.removeEventListener(\"focus\", debouncedCallback);\n\t\twindow.removeEventListener(\"visibilitychange\", ifVisibleCallback);\n\t};\n}\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,gBAAgB;AAElB,SAAS,yBAAyB,UAAkC;AAC1E,QAAM,oBAAoB,SAAS,UAAU,EAAE;AAC/C,QAAM,oBAAoB,MAAM;AAC/B,QAAI,SAAS,oBAAoB,WAAW;AAC3C,WAAK,kBAAkB;AAAA,IACxB;AAAA,EACD;AACA,SAAO,iBAAiB,SAAS,iBAAiB;AAClD,SAAO,iBAAiB,oBAAoB,iBAAiB;AAC7D,SAAO,MAAM;AACZ,WAAO,oBAAoB,SAAS,iBAAiB;AACrD,WAAO,oBAAoB,oBAAoB,iBAAiB;AAAA,EACjE;AACD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Params, type PatternRegistry, type RegisteredPattern } from "
|
|
1
|
+
import { type Params, type PatternRegistry, type RegisteredPattern } from "vorma/kit/matcher/register";
|
|
2
2
|
type BestMatch = {
|
|
3
3
|
registeredPattern: RegisteredPattern;
|
|
4
4
|
params: Params;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find_best_match.d.ts","sourceRoot":"","sources":["../../../../typescript/kit/matcher/find_best_match.ts"],"names":[],"mappings":"AAAA,OAAO,EAMN,KAAK,MAAM,EACX,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAEtB,MAAM,4BAA4B,CAAC;AAGpC,KAAK,SAAS,GAAG;IAChB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AA6GF,wBAAgB,aAAa,CAC5B,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,GACd,SAAS,GAAG,IAAI,CAmFlB"}
|
|
@@ -1,14 +1,22 @@
|
|
|
1
|
+
// typescript/kit/matcher/find_best_match.ts
|
|
1
2
|
import {
|
|
2
3
|
NODE_DYNAMIC,
|
|
3
4
|
NODE_SPLAT,
|
|
4
5
|
SCORE_DYNAMIC,
|
|
5
6
|
SCORE_STATIC_MATCH,
|
|
6
|
-
SEG_TYPES
|
|
7
|
-
|
|
8
|
-
} from "
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
SEG_TYPES
|
|
8
|
+
} from "vorma/kit/matcher/register";
|
|
9
|
+
import { parseSegments } from "vorma/kit/matcher/utils";
|
|
10
|
+
function dfsBest(props) {
|
|
11
|
+
const {
|
|
12
|
+
registry,
|
|
13
|
+
node,
|
|
14
|
+
segments,
|
|
15
|
+
depth,
|
|
16
|
+
score,
|
|
17
|
+
state,
|
|
18
|
+
checkTrailingSlash
|
|
19
|
+
} = props;
|
|
12
20
|
const atNormalEnd = checkTrailingSlash && depth === segments.length - 1;
|
|
13
21
|
if (node.pattern.length > 0) {
|
|
14
22
|
const rp = registry.dynamicPatterns.get(node.pattern);
|
|
@@ -31,15 +39,15 @@ function dfsBest(registry, node, segments, depth, score, state, checkTrailingSla
|
|
|
31
39
|
if (node.children !== null) {
|
|
32
40
|
const child = node.children.get(segments[depth]);
|
|
33
41
|
if (child) {
|
|
34
|
-
dfsBest(
|
|
42
|
+
dfsBest({
|
|
35
43
|
registry,
|
|
36
|
-
child,
|
|
44
|
+
node: child,
|
|
37
45
|
segments,
|
|
38
|
-
depth + 1,
|
|
39
|
-
score + SCORE_STATIC_MATCH,
|
|
46
|
+
depth: depth + 1,
|
|
47
|
+
score: score + SCORE_STATIC_MATCH,
|
|
40
48
|
state,
|
|
41
49
|
checkTrailingSlash
|
|
42
|
-
);
|
|
50
|
+
});
|
|
43
51
|
if (state.foundMatch && depth + 1 === segments.length && child.pattern !== "") {
|
|
44
52
|
return;
|
|
45
53
|
}
|
|
@@ -49,15 +57,15 @@ function dfsBest(registry, node, segments, depth, score, state, checkTrailingSla
|
|
|
49
57
|
switch (child.nodeType) {
|
|
50
58
|
case NODE_DYNAMIC:
|
|
51
59
|
if (segments[depth] !== "") {
|
|
52
|
-
dfsBest(
|
|
60
|
+
dfsBest({
|
|
53
61
|
registry,
|
|
54
|
-
child,
|
|
62
|
+
node: child,
|
|
55
63
|
segments,
|
|
56
|
-
depth + 1,
|
|
57
|
-
score + SCORE_DYNAMIC,
|
|
64
|
+
depth: depth + 1,
|
|
65
|
+
score: score + SCORE_DYNAMIC,
|
|
58
66
|
state,
|
|
59
67
|
checkTrailingSlash
|
|
60
|
-
);
|
|
68
|
+
});
|
|
61
69
|
}
|
|
62
70
|
break;
|
|
63
71
|
case NODE_SPLAT:
|
|
@@ -111,15 +119,15 @@ function findBestMatch(registry, realPath) {
|
|
|
111
119
|
bestScore: 0,
|
|
112
120
|
foundMatch: false
|
|
113
121
|
};
|
|
114
|
-
dfsBest(
|
|
122
|
+
dfsBest({
|
|
115
123
|
registry,
|
|
116
|
-
registry.rootNode,
|
|
124
|
+
node: registry.rootNode,
|
|
117
125
|
segments,
|
|
118
|
-
0,
|
|
119
|
-
0,
|
|
126
|
+
depth: 0,
|
|
127
|
+
score: 0,
|
|
120
128
|
state,
|
|
121
|
-
hasTrailingSlash
|
|
122
|
-
);
|
|
129
|
+
checkTrailingSlash: hasTrailingSlash
|
|
130
|
+
});
|
|
123
131
|
if (!state.foundMatch || !state.best) {
|
|
124
132
|
return null;
|
|
125
133
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../typescript/kit/matcher/find_best_match.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n\tNODE_DYNAMIC,\n\tNODE_SPLAT,\n\tSCORE_DYNAMIC,\n\tSCORE_STATIC_MATCH,\n\tSEG_TYPES,\n\ttype Params,\n\ttype PatternRegistry,\n\ttype RegisteredPattern,\n\ttype SegmentNode,\n} from \"vorma/kit/matcher/register\";\nimport { parseSegments } from \"vorma/kit/matcher/utils\";\n\ntype BestMatch = {\n\tregisteredPattern: RegisteredPattern;\n\tparams: Params;\n\tsplatValues: string[];\n\tscore: number;\n};\n\ntype DfsBestState = {\n\tbest: BestMatch | null;\n\tbestScore: number;\n\tfoundMatch: boolean;\n};\n\nfunction dfsBest(props: {\n\tregistry: PatternRegistry;\n\tnode: SegmentNode;\n\tsegments: string[];\n\tdepth: number;\n\tscore: number;\n\tstate: DfsBestState;\n\tcheckTrailingSlash: boolean;\n}): void {\n\tconst {\n\t\tregistry,\n\t\tnode,\n\t\tsegments,\n\t\tdepth,\n\t\tscore,\n\t\tstate,\n\t\tcheckTrailingSlash,\n\t} = props;\n\tconst atNormalEnd = checkTrailingSlash && depth === segments.length - 1;\n\n\tif (node.pattern.length > 0) {\n\t\tconst rp = registry.dynamicPatterns.get(node.pattern);\n\t\tif (rp) {\n\t\t\tif (\n\t\t\t\tdepth === segments.length ||\n\t\t\t\tnode.nodeType === NODE_SPLAT ||\n\t\t\t\tatNormalEnd\n\t\t\t) {\n\t\t\t\tif (!state.foundMatch || score > state.bestScore) {\n\t\t\t\t\tstate.best = {\n\t\t\t\t\t\tregisteredPattern: rp,\n\t\t\t\t\t\tparams: {},\n\t\t\t\t\t\tsplatValues: [],\n\t\t\t\t\t\tscore,\n\t\t\t\t\t};\n\t\t\t\t\tstate.bestScore = score;\n\t\t\t\t\tstate.foundMatch = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (depth >= segments.length) return;\n\n\tif (node.children !== null) {\n\t\tconst child = node.children.get(segments[depth]!);\n\t\tif (child) {\n\t\t\tdfsBest({\n\t\t\t\tregistry,\n\t\t\t\tnode: child,\n\t\t\t\tsegments,\n\t\t\t\tdepth: depth + 1,\n\t\t\t\tscore: score + SCORE_STATIC_MATCH,\n\t\t\t\tstate,\n\t\t\t\tcheckTrailingSlash,\n\t\t\t});\n\n\t\t\tif (\n\t\t\t\tstate.foundMatch &&\n\t\t\t\tdepth + 1 === segments.length &&\n\t\t\t\tchild.pattern !== \"\"\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (const child of node.dynChildren) {\n\t\tswitch (child.nodeType) {\n\t\t\tcase NODE_DYNAMIC:\n\t\t\t\tif (segments[depth] !== \"\") {\n\t\t\t\t\tdfsBest({\n\t\t\t\t\t\tregistry,\n\t\t\t\t\t\tnode: child,\n\t\t\t\t\t\tsegments,\n\t\t\t\t\t\tdepth: depth + 1,\n\t\t\t\t\t\tscore: score + SCORE_DYNAMIC,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tcheckTrailingSlash,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase NODE_SPLAT:\n\t\t\t\tif (child.pattern.length > 0) {\n\t\t\t\t\tconst rp = registry.dynamicPatterns.get(child.pattern);\n\t\t\t\t\tif (rp && !state.foundMatch) {\n\t\t\t\t\t\tstate.best = {\n\t\t\t\t\t\t\tregisteredPattern: rp,\n\t\t\t\t\t\t\tparams: {},\n\t\t\t\t\t\t\tsplatValues: [],\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tstate.foundMatch = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport function findBestMatch(\n\tregistry: PatternRegistry,\n\trealPath: string,\n): BestMatch | null {\n\t// Check static patterns first\n\tconst rr = registry.staticPatterns.get(realPath);\n\tif (rr) {\n\t\treturn {\n\t\t\tregisteredPattern: rr,\n\t\t\tparams: {},\n\t\t\tsplatValues: [],\n\t\t\tscore: 0,\n\t\t};\n\t}\n\n\tconst segments = parseSegments(realPath);\n\tconst hasTrailingSlash =\n\t\trealPath.length > 0 && realPath[realPath.length - 1] === \"/\";\n\n\t// Check static pattern without trailing slash\n\tif (hasTrailingSlash) {\n\t\tconst pathWithoutTrailingSlash = realPath.substring(\n\t\t\t0,\n\t\t\trealPath.length - 1,\n\t\t);\n\t\tconst rrWithoutSlash = registry.staticPatterns.get(\n\t\t\tpathWithoutTrailingSlash,\n\t\t);\n\t\tif (rrWithoutSlash) {\n\t\t\treturn {\n\t\t\t\tregisteredPattern: rrWithoutSlash,\n\t\t\t\tparams: {},\n\t\t\t\tsplatValues: [],\n\t\t\t\tscore: 0,\n\t\t\t};\n\t\t}\n\t}\n\n\t// Search for dynamic patterns\n\tconst state: DfsBestState = {\n\t\tbest: null,\n\t\tbestScore: 0,\n\t\tfoundMatch: false,\n\t};\n\n\tdfsBest({\n\t\tregistry,\n\t\tnode: registry.rootNode,\n\t\tsegments,\n\t\tdepth: 0,\n\t\tscore: 0,\n\t\tstate,\n\t\tcheckTrailingSlash: hasTrailingSlash,\n\t});\n\n\tif (!state.foundMatch || !state.best) {\n\t\treturn null;\n\t}\n\n\t// Populate params\n\tif (state.best.registeredPattern.numberOfDynamicParamSegs > 0) {\n\t\tconst params: Params = {};\n\t\tfor (\n\t\t\tlet i = 0;\n\t\t\ti < state.best.registeredPattern.normalizedSegments.length;\n\t\t\ti++\n\t\t) {\n\t\t\tconst seg = state.best.registeredPattern.normalizedSegments[i]!;\n\t\t\tif (seg.segType === SEG_TYPES.dynamic) {\n\t\t\t\tparams[seg.normalizedVal.substring(1)] = segments[i]!;\n\t\t\t}\n\t\t}\n\t\tstate.best.params = params;\n\t}\n\n\t// Populate splat values\n\tif (\n\t\tstate.best.registeredPattern.normalizedPattern === \"/*\" ||\n\t\tstate.best.registeredPattern.lastSegIsNonRootSplat\n\t) {\n\t\tstate.best.splatValues = segments.slice(\n\t\t\tstate.best.registeredPattern.normalizedSegments.length - 1,\n\t\t);\n\t}\n\n\treturn state.best;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find_nested_matches.d.ts","sourceRoot":"","sources":["../../../../typescript/kit/matcher/find_nested_matches.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,MAAM,EACN,eAAe,EACf,iBAAiB,EAEjB,MAAM,4BAA4B,CAAC;AAQpC,MAAM,MAAM,KAAK,GAAG;IACnB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAqJF,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,GACd,uBAAuB,GAAG,IAAI,CAmLhC"}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
+
// typescript/kit/matcher/find_nested_matches.ts
|
|
1
2
|
import {
|
|
2
3
|
NODE_DYNAMIC,
|
|
3
4
|
NODE_SPLAT,
|
|
4
|
-
SEG_TYPES
|
|
5
|
-
|
|
6
|
-
} from "
|
|
7
|
-
|
|
8
|
-
// kit/_typescript/matcher/find_nested_matches.ts
|
|
9
|
-
function stripTrailingSlash(pattern) {
|
|
10
|
-
return pattern.length > 0 && pattern[pattern.length - 1] === "/" ? pattern.substring(0, pattern.length - 1) : pattern;
|
|
11
|
-
}
|
|
5
|
+
SEG_TYPES
|
|
6
|
+
} from "vorma/kit/matcher/register";
|
|
7
|
+
import { parseSegments, stripTrailingSlash } from "vorma/kit/matcher/utils";
|
|
12
8
|
function dfsNestedMatches(registry, node, segments, depth, params, matches) {
|
|
13
9
|
if (node.pattern.length > 0) {
|
|
14
10
|
const rp = registry.dynamicPatterns.get(node.pattern);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../typescript/kit/matcher/find_nested_matches.ts"],
|
|
4
|
+
"sourcesContent": ["import type {\n\tParams,\n\tPatternRegistry,\n\tRegisteredPattern,\n\tSegmentNode,\n} from \"vorma/kit/matcher/register\";\nimport {\n\tNODE_DYNAMIC,\n\tNODE_SPLAT,\n\tSEG_TYPES,\n} from \"vorma/kit/matcher/register\";\nimport { parseSegments, stripTrailingSlash } from \"vorma/kit/matcher/utils\";\n\nexport type Match = {\n\tregisteredPattern: RegisteredPattern;\n\tparams: Params;\n\tsplatValues: string[];\n};\n\ntype FindNestedMatchesResult = {\n\tparams: Params;\n\tsplatValues: string[];\n\tmatches: Match[];\n};\n\nfunction dfsNestedMatches(\n\tregistry: PatternRegistry,\n\tnode: SegmentNode,\n\tsegments: string[],\n\tdepth: number,\n\tparams: Params,\n\tmatches: Map<string, Match>,\n): void {\n\tif (node.pattern.length > 0) {\n\t\tconst rp = registry.dynamicPatterns.get(node.pattern);\n\t\tif (rp && node.pattern !== \"/*\") {\n\t\t\tconst paramsCopy = { ...params };\n\t\t\tlet splatValues: string[] = [];\n\n\t\t\tif (node.nodeType === NODE_SPLAT && depth < segments.length) {\n\t\t\t\tsplatValues = segments.slice(depth);\n\t\t\t}\n\n\t\t\tmatches.set(node.pattern, {\n\t\t\t\tregisteredPattern: rp,\n\t\t\t\tparams: paramsCopy,\n\t\t\t\tsplatValues,\n\t\t\t});\n\n\t\t\tif (depth === segments.length) {\n\t\t\t\tconst indexPattern = node.pattern + \"/\";\n\t\t\t\tconst rpIndex = registry.dynamicPatterns.get(indexPattern);\n\t\t\t\tif (rpIndex) {\n\t\t\t\t\tmatches.set(indexPattern, {\n\t\t\t\t\t\tregisteredPattern: rpIndex,\n\t\t\t\t\t\tparams: paramsCopy,\n\t\t\t\t\t\tsplatValues: [],\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (depth >= segments.length) return;\n\n\tconst seg = segments[depth]!;\n\n\tif (node.children !== null) {\n\t\tconst child = node.children.get(seg);\n\t\tif (child) {\n\t\t\tdfsNestedMatches(\n\t\t\t\tregistry,\n\t\t\t\tchild,\n\t\t\t\tsegments,\n\t\t\t\tdepth + 1,\n\t\t\t\tparams,\n\t\t\t\tmatches,\n\t\t\t);\n\t\t}\n\t}\n\n\tfor (const child of node.dynChildren) {\n\t\tswitch (child.nodeType) {\n\t\t\tcase NODE_DYNAMIC: {\n\t\t\t\tconst oldVal = params[child.paramName];\n\t\t\t\tconst hadVal = oldVal !== undefined;\n\t\t\t\tparams[child.paramName] = seg;\n\n\t\t\t\tdfsNestedMatches(\n\t\t\t\t\tregistry,\n\t\t\t\t\tchild,\n\t\t\t\t\tsegments,\n\t\t\t\t\tdepth + 1,\n\t\t\t\t\tparams,\n\t\t\t\t\tmatches,\n\t\t\t\t);\n\n\t\t\t\tif (hadVal) {\n\t\t\t\t\tparams[child.paramName] = oldVal!;\n\t\t\t\t} else {\n\t\t\t\t\tdelete params[child.paramName];\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase NODE_SPLAT:\n\t\t\t\tdfsNestedMatches(\n\t\t\t\t\tregistry,\n\t\t\t\t\tchild,\n\t\t\t\t\tsegments,\n\t\t\t\t\tdepth,\n\t\t\t\t\tparams,\n\t\t\t\t\tmatches,\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nfunction flattenAndSortMatches(\n\tmatches: Map<string, Match>,\n\trealPath: string,\n\trealSegmentLen: number,\n): FindNestedMatchesResult | null {\n\tconst results: Match[] = Array.from(matches.values());\n\n\tresults.sort((i, j) => {\n\t\tif (i.registeredPattern.lastSegIsIndex) return 1;\n\t\tif (j.registeredPattern.lastSegIsIndex) return -1;\n\t\treturn (\n\t\t\ti.registeredPattern.normalizedSegments.length -\n\t\t\tj.registeredPattern.normalizedSegments.length\n\t\t);\n\t});\n\n\tif (results.length === 0) return null;\n\n\tconst isNotSlashRoute = realPath !== \"\" && realPath !== \"/\";\n\tif (\n\t\tisNotSlashRoute &&\n\t\tresults.length === 1 &&\n\t\tresults[0]!.registeredPattern.normalizedPattern === \"\"\n\t) {\n\t\treturn null;\n\t}\n\n\tconst lastMatch = results[results.length - 1]!;\n\n\tif (\n\t\t!lastMatch.registeredPattern.lastSegIsNonRootSplat &&\n\t\tlastMatch.registeredPattern.normalizedPattern !== \"/*\"\n\t) {\n\t\tconst patternSegmentsLen =\n\t\t\tlastMatch.registeredPattern.normalizedSegments.length;\n\n\t\tif (patternSegmentsLen < realSegmentLen) return null;\n\n\t\tif (\n\t\t\tpatternSegmentsLen === realSegmentLen &&\n\t\t\tlastMatch.registeredPattern.numberOfDynamicParamSegs > 0 &&\n\t\t\tObject.keys(lastMatch.params).length === 0\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\treturn {\n\t\tparams: lastMatch.params,\n\t\tsplatValues: lastMatch.splatValues,\n\t\tmatches: results,\n\t};\n}\n\nexport function findNestedMatches(\n\tregistry: PatternRegistry,\n\trealPath: string,\n): FindNestedMatchesResult | null {\n\trealPath = stripTrailingSlash(realPath);\n\n\tconst realSegments = parseSegments(realPath);\n\tconst matches: Map<string, Match> = new Map();\n\n\t// Check for empty pattern\n\tconst emptyRR = registry.staticPatterns.get(\"\");\n\tif (emptyRR) {\n\t\tmatches.set(emptyRR.normalizedPattern, {\n\t\t\tregisteredPattern: emptyRR,\n\t\t\tparams: {},\n\t\t\tsplatValues: [],\n\t\t});\n\t}\n\n\tconst realSegmentsLen = realSegments.length;\n\n\t// Handle root path\n\tif (realPath === \"\") {\n\t\tconst rr = registry.staticPatterns.get(\"/\");\n\t\tif (rr) {\n\t\t\tmatches.set(rr.normalizedPattern, {\n\t\t\t\tregisteredPattern: rr,\n\t\t\t\tparams: {},\n\t\t\t\tsplatValues: [],\n\t\t\t});\n\t\t} else {\n\t\t\tconst catchAllRR = registry.dynamicPatterns.get(\"/*\");\n\t\t\tif (catchAllRR) {\n\t\t\t\tmatches.set(\"/*\", {\n\t\t\t\t\tregisteredPattern: catchAllRR,\n\t\t\t\t\tparams: {},\n\t\t\t\t\tsplatValues: [],\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn flattenAndSortMatches(matches, realPath, realSegmentsLen);\n\t}\n\n\t// Check static patterns progressively\n\tlet pb = \"\";\n\tlet foundFullStatic = false;\n\n\tfor (let i = 0; i < realSegments.length; i++) {\n\t\tpb += \"/\" + realSegments[i];\n\t\tconst rr = registry.staticPatterns.get(pb);\n\t\tif (rr) {\n\t\t\tmatches.set(rr.normalizedPattern, {\n\t\t\t\tregisteredPattern: rr,\n\t\t\t\tparams: {},\n\t\t\t\tsplatValues: [],\n\t\t\t});\n\t\t\tif (i === realSegmentsLen - 1) foundFullStatic = true;\n\t\t}\n\t\tif (i === realSegmentsLen - 1) {\n\t\t\tpb += \"/\";\n\t\t\tconst rrWithSlash = registry.staticPatterns.get(pb);\n\t\t\tif (rrWithSlash) {\n\t\t\t\tmatches.set(rrWithSlash.normalizedPattern, {\n\t\t\t\t\tregisteredPattern: rrWithSlash,\n\t\t\t\t\tparams: {},\n\t\t\t\t\tsplatValues: [],\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check dynamic patterns if no full static match\n\tif (!foundFullStatic) {\n\t\tconst rr = registry.dynamicPatterns.get(\"/*\");\n\t\tif (rr) {\n\t\t\tmatches.set(\"/*\", {\n\t\t\t\tregisteredPattern: rr,\n\t\t\t\tparams: {},\n\t\t\t\tsplatValues: realSegments,\n\t\t\t});\n\t\t}\n\n\t\tconst params: Params = {};\n\t\tdfsNestedMatches(\n\t\t\tregistry,\n\t\t\tregistry.rootNode,\n\t\t\trealSegments,\n\t\t\t0,\n\t\t\tparams,\n\t\t\tmatches,\n\t\t);\n\t}\n\n\t// Clean up catch-all pattern if necessary\n\tconst hasEmptyRR = emptyRR !== undefined;\n\tif (matches.has(\"/*\")) {\n\t\tif (hasEmptyRR) {\n\t\t\tif (matches.size > 2) matches.delete(\"/*\");\n\t\t} else if (matches.size > 1) {\n\t\t\tmatches.delete(\"/*\");\n\t\t}\n\t}\n\n\tif (matches.size < 2) {\n\t\treturn flattenAndSortMatches(matches, realPath, realSegmentsLen);\n\t}\n\n\t// Find longest segment matches\n\tlet longestSegmentLen = 0;\n\tconst longestSegmentMatches: Map<string, Match> = new Map();\n\n\tfor (const match of matches.values()) {\n\t\tif (\n\t\t\tmatch.registeredPattern.normalizedSegments.length >\n\t\t\tlongestSegmentLen\n\t\t) {\n\t\t\tlongestSegmentLen =\n\t\t\t\tmatch.registeredPattern.normalizedSegments.length;\n\t\t}\n\t}\n\n\tfor (const match of matches.values()) {\n\t\tif (\n\t\t\tmatch.registeredPattern.normalizedSegments.length ===\n\t\t\tlongestSegmentLen\n\t\t) {\n\t\t\tlongestSegmentMatches.set(\n\t\t\t\tmatch.registeredPattern.lastSegType,\n\t\t\t\tmatch,\n\t\t\t);\n\t\t}\n\t}\n\n\t// Remove shorter matches\n\tfor (const [pattern, match] of matches) {\n\t\tif (\n\t\t\tmatch.registeredPattern.normalizedSegments.length <\n\t\t\tlongestSegmentLen\n\t\t) {\n\t\t\tif (\n\t\t\t\tmatch.registeredPattern.lastSegIsNonRootSplat ||\n\t\t\t\tmatch.registeredPattern.lastSegIsIndex\n\t\t\t) {\n\t\t\t\tmatches.delete(pattern);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (matches.size < 2) {\n\t\treturn flattenAndSortMatches(matches, realPath, realSegmentsLen);\n\t}\n\n\t// Handle conflicts between longest matches\n\tif (longestSegmentMatches.size > 1) {\n\t\tconst indexMatch = longestSegmentMatches.get(SEG_TYPES.index);\n\t\tif (indexMatch) {\n\t\t\tmatches.delete(indexMatch.registeredPattern.normalizedPattern);\n\t\t}\n\n\t\tconst dynamicExists = longestSegmentMatches.has(SEG_TYPES.dynamic);\n\t\tconst splatExists = longestSegmentMatches.has(SEG_TYPES.splat);\n\n\t\tif (\n\t\t\trealSegmentsLen === longestSegmentLen &&\n\t\t\tdynamicExists &&\n\t\t\tsplatExists\n\t\t) {\n\t\t\tconst splatMatch = longestSegmentMatches.get(SEG_TYPES.splat)!;\n\t\t\tmatches.delete(splatMatch.registeredPattern.normalizedPattern);\n\t\t}\n\n\t\tif (\n\t\t\trealSegmentsLen > longestSegmentLen &&\n\t\t\tsplatExists &&\n\t\t\tdynamicExists\n\t\t) {\n\t\t\tconst dynamicMatch = longestSegmentMatches.get(SEG_TYPES.dynamic)!;\n\t\t\tmatches.delete(dynamicMatch.registeredPattern.normalizedPattern);\n\t\t}\n\t}\n\n\treturn flattenAndSortMatches(matches, realPath, realSegmentsLen);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../typescript/kit/matcher/register.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC5C,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAE/D,MAAM,MAAM,OAAO,GAAG;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,OAAO,EAAE,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,wBAAwB,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;IAC1C,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC/C,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAChD,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,EAAE;QACP,sBAAsB,EAAE,MAAM,CAAC;QAC/B,gBAAgB,EAAE,MAAM,CAAC;QACzB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,yBAAyB,EAAE,OAAO,CAAC;KACnC,CAAC;CACF,CAAC;AAMF,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,eAAO,MAAM,SAAS;WACH,OAAO;YACL,OAAO;aACL,OAAO;WACX,OAAO;CACzB,CAAC;AA8IF,wBAAgB,qBAAqB,CACpC,IAAI,CAAC,EAAE,mBAAmB,GACxB,eAAe,CAmBjB;AAED,wBAAgB,eAAe,CAC9B,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAE,MAAM,GACrB,iBAAiB,CA6CnB"}
|