From 942aeafb6051ce9ae58f16dddedd4b752c6e3444 Mon Sep 17 00:00:00 2001 From: Tieptk Date: Sun, 7 Dec 2025 15:58:07 +0700 Subject: [PATCH] update --- assets/script/global.js | 3 - assets/script/hura-lib.css | 7483 +++++++ assets/script/hura.global.css | 244 + .../script/{style_hura.css => hura_style.css} | 4 + data/menu_item/article.php | 2 +- data/menu_item/customer.php | 2 +- data/menu_item/distributor.php | 2 +- data/menu_item/job.php | 2 +- data/menu_item/marketing.php | 2 +- data/menu_item/order.php | 2 +- data/menu_item/payinstall.php | 2 +- data/menu_item/pcbuilder.php | 2 +- data/menu_item/product.php | 2 +- data/menu_item/report.php | 2 +- data/menu_item/system.php | 2 +- node_modules/.bin/autoprefixer | 16 + node_modules/.bin/autoprefixer.cmd | 17 + node_modules/.bin/autoprefixer.ps1 | 28 + node_modules/.bin/baseline-browser-mapping | 16 + .../.bin/baseline-browser-mapping.cmd | 17 + .../.bin/baseline-browser-mapping.ps1 | 28 + node_modules/.bin/browserslist | 16 + node_modules/.bin/browserslist.cmd | 17 + node_modules/.bin/browserslist.ps1 | 28 + node_modules/.bin/detect-libc | 16 + node_modules/.bin/detect-libc.cmd | 17 + node_modules/.bin/detect-libc.ps1 | 28 + node_modules/.bin/jiti | 16 + node_modules/.bin/jiti.cmd | 17 + node_modules/.bin/jiti.ps1 | 28 + node_modules/.bin/nanoid | 16 + node_modules/.bin/nanoid.cmd | 17 + node_modules/.bin/nanoid.ps1 | 28 + node_modules/.bin/tailwindcss | 16 + node_modules/.bin/tailwindcss.cmd | 17 + node_modules/.bin/tailwindcss.ps1 | 28 + node_modules/.bin/update-browserslist-db | 16 + node_modules/.bin/update-browserslist-db.cmd | 17 + node_modules/.bin/update-browserslist-db.ps1 | 28 + node_modules/.package-lock.json | 709 + node_modules/@jridgewell/gen-mapping/LICENSE | 19 + .../@jridgewell/gen-mapping/README.md | 227 + .../gen-mapping/dist/gen-mapping.mjs | 292 + .../gen-mapping/dist/gen-mapping.mjs.map | 6 + .../gen-mapping/dist/gen-mapping.umd.js | 358 + .../gen-mapping/dist/gen-mapping.umd.js.map | 6 + .../gen-mapping/dist/types/gen-mapping.d.ts | 88 + .../gen-mapping/dist/types/set-array.d.ts | 32 + .../dist/types/sourcemap-segment.d.ts | 12 + .../gen-mapping/dist/types/types.d.ts | 43 + .../@jridgewell/gen-mapping/package.json | 67 + .../gen-mapping/src/gen-mapping.ts | 614 + .../@jridgewell/gen-mapping/src/set-array.ts | 82 + .../gen-mapping/src/sourcemap-segment.ts | 16 + .../@jridgewell/gen-mapping/src/types.ts | 61 + .../gen-mapping/types/gen-mapping.d.cts | 89 + .../gen-mapping/types/gen-mapping.d.cts.map | 1 + .../gen-mapping/types/gen-mapping.d.mts | 89 + .../gen-mapping/types/gen-mapping.d.mts.map | 1 + .../gen-mapping/types/set-array.d.cts | 33 + .../gen-mapping/types/set-array.d.cts.map | 1 + .../gen-mapping/types/set-array.d.mts | 33 + .../gen-mapping/types/set-array.d.mts.map | 1 + .../gen-mapping/types/sourcemap-segment.d.cts | 13 + .../types/sourcemap-segment.d.cts.map | 1 + .../gen-mapping/types/sourcemap-segment.d.mts | 13 + .../types/sourcemap-segment.d.mts.map | 1 + .../@jridgewell/gen-mapping/types/types.d.cts | 44 + .../gen-mapping/types/types.d.cts.map | 1 + .../@jridgewell/gen-mapping/types/types.d.mts | 44 + .../gen-mapping/types/types.d.mts.map | 1 + node_modules/@jridgewell/remapping/LICENSE | 19 + node_modules/@jridgewell/remapping/README.md | 218 + .../@jridgewell/remapping/dist/remapping.mjs | 144 + .../remapping/dist/remapping.mjs.map | 6 + .../remapping/dist/remapping.umd.js | 212 + .../remapping/dist/remapping.umd.js.map | 6 + .../@jridgewell/remapping/package.json | 71 + .../remapping/src/build-source-map-tree.ts | 89 + .../@jridgewell/remapping/src/remapping.ts | 42 + .../remapping/src/source-map-tree.ts | 172 + .../@jridgewell/remapping/src/source-map.ts | 38 + .../@jridgewell/remapping/src/types.ts | 27 + .../types/build-source-map-tree.d.cts | 15 + .../types/build-source-map-tree.d.cts.map | 1 + .../types/build-source-map-tree.d.mts | 15 + .../types/build-source-map-tree.d.mts.map | 1 + .../remapping/types/remapping.d.cts | 21 + .../remapping/types/remapping.d.cts.map | 1 + .../remapping/types/remapping.d.mts | 21 + .../remapping/types/remapping.d.mts.map | 1 + .../remapping/types/source-map-tree.d.cts | 46 + .../remapping/types/source-map-tree.d.cts.map | 1 + .../remapping/types/source-map-tree.d.mts | 46 + .../remapping/types/source-map-tree.d.mts.map | 1 + .../remapping/types/source-map.d.cts | 19 + .../remapping/types/source-map.d.cts.map | 1 + .../remapping/types/source-map.d.mts | 19 + .../remapping/types/source-map.d.mts.map | 1 + .../@jridgewell/remapping/types/types.d.cts | 16 + .../remapping/types/types.d.cts.map | 1 + .../@jridgewell/remapping/types/types.d.mts | 16 + .../remapping/types/types.d.mts.map | 1 + node_modules/@jridgewell/resolve-uri/LICENSE | 19 + .../@jridgewell/resolve-uri/README.md | 40 + .../resolve-uri/dist/resolve-uri.mjs | 232 + .../resolve-uri/dist/resolve-uri.mjs.map | 1 + .../resolve-uri/dist/resolve-uri.umd.js | 240 + .../resolve-uri/dist/resolve-uri.umd.js.map | 1 + .../resolve-uri/dist/types/resolve-uri.d.ts | 4 + .../@jridgewell/resolve-uri/package.json | 69 + .../@jridgewell/sourcemap-codec/LICENSE | 19 + .../@jridgewell/sourcemap-codec/README.md | 264 + .../sourcemap-codec/dist/sourcemap-codec.mjs | 423 + .../dist/sourcemap-codec.mjs.map | 6 + .../dist/sourcemap-codec.umd.js | 464 + .../dist/sourcemap-codec.umd.js.map | 6 + .../@jridgewell/sourcemap-codec/package.json | 63 + .../@jridgewell/sourcemap-codec/src/scopes.ts | 345 + .../sourcemap-codec/src/sourcemap-codec.ts | 111 + .../sourcemap-codec/src/strings.ts | 65 + .../@jridgewell/sourcemap-codec/src/vlq.ts | 55 + .../sourcemap-codec/types/scopes.d.cts | 50 + .../sourcemap-codec/types/scopes.d.cts.map | 1 + .../sourcemap-codec/types/scopes.d.mts | 50 + .../sourcemap-codec/types/scopes.d.mts.map | 1 + .../types/sourcemap-codec.d.cts | 9 + .../types/sourcemap-codec.d.cts.map | 1 + .../types/sourcemap-codec.d.mts | 9 + .../types/sourcemap-codec.d.mts.map | 1 + .../sourcemap-codec/types/strings.d.cts | 16 + .../sourcemap-codec/types/strings.d.cts.map | 1 + .../sourcemap-codec/types/strings.d.mts | 16 + .../sourcemap-codec/types/strings.d.mts.map | 1 + .../sourcemap-codec/types/vlq.d.cts | 7 + .../sourcemap-codec/types/vlq.d.cts.map | 1 + .../sourcemap-codec/types/vlq.d.mts | 7 + .../sourcemap-codec/types/vlq.d.mts.map | 1 + .../@jridgewell/trace-mapping/LICENSE | 19 + .../@jridgewell/trace-mapping/README.md | 348 + .../trace-mapping/dist/trace-mapping.mjs | 493 + .../trace-mapping/dist/trace-mapping.mjs.map | 6 + .../trace-mapping/dist/trace-mapping.umd.js | 559 + .../dist/trace-mapping.umd.js.map | 6 + .../@jridgewell/trace-mapping/package.json | 67 + .../trace-mapping/src/binary-search.ts | 115 + .../trace-mapping/src/by-source.ts | 41 + .../trace-mapping/src/flatten-map.ts | 192 + .../@jridgewell/trace-mapping/src/resolve.ts | 16 + .../@jridgewell/trace-mapping/src/sort.ts | 45 + .../trace-mapping/src/sourcemap-segment.ts | 23 + .../trace-mapping/src/strip-filename.ts | 8 + .../trace-mapping/src/trace-mapping.ts | 502 + .../@jridgewell/trace-mapping/src/types.ts | 114 + .../trace-mapping/types/binary-search.d.cts | 33 + .../types/binary-search.d.cts.map | 1 + .../trace-mapping/types/binary-search.d.mts | 33 + .../types/binary-search.d.mts.map | 1 + .../trace-mapping/types/by-source.d.cts | 4 + .../trace-mapping/types/by-source.d.cts.map | 1 + .../trace-mapping/types/by-source.d.mts | 4 + .../trace-mapping/types/by-source.d.mts.map | 1 + .../trace-mapping/types/flatten-map.d.cts | 9 + .../trace-mapping/types/flatten-map.d.cts.map | 1 + .../trace-mapping/types/flatten-map.d.mts | 9 + .../trace-mapping/types/flatten-map.d.mts.map | 1 + .../trace-mapping/types/resolve.d.cts | 4 + .../trace-mapping/types/resolve.d.cts.map | 1 + .../trace-mapping/types/resolve.d.mts | 4 + .../trace-mapping/types/resolve.d.mts.map | 1 + .../trace-mapping/types/sort.d.cts | 4 + .../trace-mapping/types/sort.d.cts.map | 1 + .../trace-mapping/types/sort.d.mts | 4 + .../trace-mapping/types/sort.d.mts.map | 1 + .../types/sourcemap-segment.d.cts | 17 + .../types/sourcemap-segment.d.cts.map | 1 + .../types/sourcemap-segment.d.mts | 17 + .../types/sourcemap-segment.d.mts.map | 1 + .../trace-mapping/types/strip-filename.d.cts | 5 + .../types/strip-filename.d.cts.map | 1 + .../trace-mapping/types/strip-filename.d.mts | 5 + .../types/strip-filename.d.mts.map | 1 + .../trace-mapping/types/trace-mapping.d.cts | 80 + .../types/trace-mapping.d.cts.map | 1 + .../trace-mapping/types/trace-mapping.d.mts | 80 + .../types/trace-mapping.d.mts.map | 1 + .../trace-mapping/types/types.d.cts | 107 + .../trace-mapping/types/types.d.cts.map | 1 + .../trace-mapping/types/types.d.mts | 107 + .../trace-mapping/types/types.d.mts.map | 1 + .../@parcel/watcher-win32-x64/LICENSE | 21 + .../@parcel/watcher-win32-x64/README.md | 1 + .../@parcel/watcher-win32-x64/package.json | 30 + .../@parcel/watcher-win32-x64/watcher.node | Bin 0 -> 518144 bytes node_modules/@parcel/watcher/LICENSE | 21 + node_modules/@parcel/watcher/README.md | 135 + node_modules/@parcel/watcher/binding.gyp | 93 + node_modules/@parcel/watcher/index.d.ts | 49 + node_modules/@parcel/watcher/index.js | 41 + node_modules/@parcel/watcher/index.js.flow | 48 + node_modules/@parcel/watcher/package.json | 88 + .../watcher/scripts/build-from-source.js | 13 + node_modules/@parcel/watcher/src/Backend.cc | 182 + node_modules/@parcel/watcher/src/Backend.hh | 37 + node_modules/@parcel/watcher/src/Debounce.cc | 113 + node_modules/@parcel/watcher/src/Debounce.hh | 49 + node_modules/@parcel/watcher/src/DirTree.cc | 152 + node_modules/@parcel/watcher/src/DirTree.hh | 50 + node_modules/@parcel/watcher/src/Event.hh | 109 + node_modules/@parcel/watcher/src/Glob.cc | 22 + node_modules/@parcel/watcher/src/Glob.hh | 34 + .../@parcel/watcher/src/PromiseRunner.hh | 101 + node_modules/@parcel/watcher/src/Signal.hh | 46 + node_modules/@parcel/watcher/src/Watcher.cc | 237 + node_modules/@parcel/watcher/src/Watcher.hh | 73 + node_modules/@parcel/watcher/src/binding.cc | 268 + .../watcher/src/kqueue/KqueueBackend.cc | 306 + .../watcher/src/kqueue/KqueueBackend.hh | 35 + .../watcher/src/linux/InotifyBackend.cc | 232 + .../watcher/src/linux/InotifyBackend.hh | 34 + .../watcher/src/macos/FSEventsBackend.cc | 338 + .../watcher/src/macos/FSEventsBackend.hh | 20 + .../watcher/src/shared/BruteForceBackend.cc | 41 + .../watcher/src/shared/BruteForceBackend.hh | 25 + node_modules/@parcel/watcher/src/unix/fts.cc | 50 + .../@parcel/watcher/src/unix/legacy.cc | 77 + .../@parcel/watcher/src/wasm/WasmBackend.cc | 132 + .../@parcel/watcher/src/wasm/WasmBackend.hh | 34 + .../@parcel/watcher/src/wasm/include.h | 74 + .../@parcel/watcher/src/watchman/BSER.cc | 302 + .../@parcel/watcher/src/watchman/BSER.hh | 69 + .../@parcel/watcher/src/watchman/IPC.hh | 175 + .../watcher/src/watchman/WatchmanBackend.cc | 338 + .../watcher/src/watchman/WatchmanBackend.hh | 35 + .../watcher/src/windows/WindowsBackend.cc | 282 + .../watcher/src/windows/WindowsBackend.hh | 18 + .../@parcel/watcher/src/windows/win_utils.cc | 44 + .../@parcel/watcher/src/windows/win_utils.hh | 11 + node_modules/@parcel/watcher/wrapper.js | 77 + node_modules/@tailwindcss/cli/LICENSE | 21 + node_modules/@tailwindcss/cli/README.md | 36 + node_modules/@tailwindcss/cli/dist/index.mjs | 9 + node_modules/@tailwindcss/cli/package.json | 40 + node_modules/@tailwindcss/node/LICENSE | 21 + node_modules/@tailwindcss/node/README.md | 36 + .../node/dist/esm-cache.loader.d.mts | 5 + .../node/dist/esm-cache.loader.mjs | 1 + .../@tailwindcss/node/dist/index.d.mts | 253 + .../@tailwindcss/node/dist/index.d.ts | 253 + node_modules/@tailwindcss/node/dist/index.js | 18 + node_modules/@tailwindcss/node/dist/index.mjs | 18 + .../@tailwindcss/node/dist/require-cache.d.ts | 3 + .../@tailwindcss/node/dist/require-cache.js | 1 + node_modules/@tailwindcss/node/package.json | 48 + .../@tailwindcss/oxide-win32-x64-msvc/LICENSE | 21 + .../oxide-win32-x64-msvc/README.md | 3 + .../oxide-win32-x64-msvc/package.json | 27 + .../tailwindcss-oxide.win32-x64-msvc.node | Bin 0 -> 3186176 bytes node_modules/@tailwindcss/oxide/LICENSE | 21 + node_modules/@tailwindcss/oxide/index.d.ts | 48 + node_modules/@tailwindcss/oxide/index.js | 575 + node_modules/@tailwindcss/oxide/package.json | 75 + node_modules/autoprefixer/LICENSE | 20 + node_modules/autoprefixer/README.md | 57 + node_modules/autoprefixer/bin/autoprefixer | 22 + node_modules/autoprefixer/data/prefixes.js | 1139 ++ node_modules/autoprefixer/lib/at-rule.js | 35 + .../autoprefixer/lib/autoprefixer.d.ts | 95 + node_modules/autoprefixer/lib/autoprefixer.js | 164 + node_modules/autoprefixer/lib/brackets.js | 51 + node_modules/autoprefixer/lib/browsers.js | 79 + node_modules/autoprefixer/lib/declaration.js | 187 + .../autoprefixer/lib/hacks/align-content.js | 49 + .../autoprefixer/lib/hacks/align-items.js | 46 + .../autoprefixer/lib/hacks/align-self.js | 56 + .../autoprefixer/lib/hacks/animation.js | 17 + .../autoprefixer/lib/hacks/appearance.js | 23 + .../autoprefixer/lib/hacks/autofill.js | 26 + .../autoprefixer/lib/hacks/backdrop-filter.js | 20 + .../autoprefixer/lib/hacks/background-clip.js | 24 + .../autoprefixer/lib/hacks/background-size.js | 23 + .../autoprefixer/lib/hacks/block-logical.js | 40 + .../autoprefixer/lib/hacks/border-image.js | 15 + .../autoprefixer/lib/hacks/border-radius.js | 40 + .../autoprefixer/lib/hacks/break-props.js | 63 + .../autoprefixer/lib/hacks/cross-fade.js | 35 + .../autoprefixer/lib/hacks/display-flex.js | 65 + .../autoprefixer/lib/hacks/display-grid.js | 21 + .../lib/hacks/file-selector-button.js | 26 + .../autoprefixer/lib/hacks/filter-value.js | 14 + node_modules/autoprefixer/lib/hacks/filter.js | 19 + .../autoprefixer/lib/hacks/flex-basis.js | 39 + .../autoprefixer/lib/hacks/flex-direction.js | 72 + .../autoprefixer/lib/hacks/flex-flow.js | 53 + .../autoprefixer/lib/hacks/flex-grow.js | 30 + .../autoprefixer/lib/hacks/flex-shrink.js | 39 + .../autoprefixer/lib/hacks/flex-spec.js | 19 + .../autoprefixer/lib/hacks/flex-wrap.js | 19 + node_modules/autoprefixer/lib/hacks/flex.js | 54 + .../autoprefixer/lib/hacks/fullscreen.js | 20 + .../autoprefixer/lib/hacks/gradient.js | 448 + .../autoprefixer/lib/hacks/grid-area.js | 34 + .../lib/hacks/grid-column-align.js | 28 + .../autoprefixer/lib/hacks/grid-end.js | 52 + .../autoprefixer/lib/hacks/grid-row-align.js | 28 + .../autoprefixer/lib/hacks/grid-row-column.js | 33 + .../lib/hacks/grid-rows-columns.js | 125 + .../autoprefixer/lib/hacks/grid-start.js | 33 + .../lib/hacks/grid-template-areas.js | 84 + .../autoprefixer/lib/hacks/grid-template.js | 69 + .../autoprefixer/lib/hacks/grid-utils.js | 1113 ++ .../autoprefixer/lib/hacks/image-rendering.js | 48 + .../autoprefixer/lib/hacks/image-set.js | 18 + .../autoprefixer/lib/hacks/inline-logical.js | 34 + .../autoprefixer/lib/hacks/intrinsic.js | 61 + .../autoprefixer/lib/hacks/justify-content.js | 54 + .../autoprefixer/lib/hacks/mask-border.js | 38 + .../autoprefixer/lib/hacks/mask-composite.js | 88 + node_modules/autoprefixer/lib/hacks/order.js | 42 + .../lib/hacks/overscroll-behavior.js | 33 + .../autoprefixer/lib/hacks/pixelated.js | 34 + .../autoprefixer/lib/hacks/place-self.js | 32 + .../lib/hacks/placeholder-shown.js | 19 + .../autoprefixer/lib/hacks/placeholder.js | 33 + .../lib/hacks/print-color-adjust.js | 25 + .../lib/hacks/text-decoration-skip-ink.js | 23 + .../autoprefixer/lib/hacks/text-decoration.js | 25 + .../lib/hacks/text-emphasis-position.js | 14 + .../autoprefixer/lib/hacks/transform-decl.js | 79 + .../autoprefixer/lib/hacks/user-select.js | 33 + .../autoprefixer/lib/hacks/writing-mode.js | 42 + node_modules/autoprefixer/lib/info.js | 123 + node_modules/autoprefixer/lib/old-selector.js | 67 + node_modules/autoprefixer/lib/old-value.js | 22 + node_modules/autoprefixer/lib/prefixer.js | 144 + node_modules/autoprefixer/lib/prefixes.js | 428 + node_modules/autoprefixer/lib/processor.js | 709 + node_modules/autoprefixer/lib/resolution.js | 97 + node_modules/autoprefixer/lib/selector.js | 150 + node_modules/autoprefixer/lib/supports.js | 302 + node_modules/autoprefixer/lib/transition.js | 329 + node_modules/autoprefixer/lib/utils.js | 93 + node_modules/autoprefixer/lib/value.js | 125 + node_modules/autoprefixer/lib/vendor.js | 14 + node_modules/autoprefixer/package.json | 49 + .../baseline-browser-mapping/LICENSE.txt | 201 + .../baseline-browser-mapping/README.md | 463 + .../baseline-browser-mapping/dist/cli.js | 2 + .../baseline-browser-mapping/dist/index.cjs | 1 + .../baseline-browser-mapping/dist/index.d.ts | 102 + .../baseline-browser-mapping/dist/index.js | 1 + .../baseline-browser-mapping/package.json | 65 + node_modules/braces/LICENSE | 21 + node_modules/braces/README.md | 586 + node_modules/braces/index.js | 170 + node_modules/braces/lib/compile.js | 60 + node_modules/braces/lib/constants.js | 57 + node_modules/braces/lib/expand.js | 113 + node_modules/braces/lib/parse.js | 331 + node_modules/braces/lib/stringify.js | 32 + node_modules/braces/lib/utils.js | 122 + node_modules/braces/package.json | 77 + node_modules/browserslist/LICENSE | 20 + node_modules/browserslist/README.md | 65 + node_modules/browserslist/browser.js | 54 + node_modules/browserslist/cli.js | 156 + node_modules/browserslist/error.d.ts | 7 + node_modules/browserslist/error.js | 12 + node_modules/browserslist/index.d.ts | 224 + node_modules/browserslist/index.js | 1335 ++ node_modules/browserslist/node.js | 502 + node_modules/browserslist/package.json | 45 + node_modules/browserslist/parse.js | 78 + node_modules/caniuse-lite/LICENSE | 395 + node_modules/caniuse-lite/README.md | 6 + node_modules/caniuse-lite/data/agents.js | 1 + .../caniuse-lite/data/browserVersions.js | 1 + node_modules/caniuse-lite/data/browsers.js | 1 + node_modules/caniuse-lite/data/features.js | 1 + .../caniuse-lite/data/features/aac.js | 1 + .../data/features/abortcontroller.js | 1 + .../caniuse-lite/data/features/ac3-ec3.js | 1 + .../data/features/accelerometer.js | 1 + .../data/features/addeventlistener.js | 1 + .../data/features/alternate-stylesheet.js | 1 + .../data/features/ambient-light.js | 1 + .../caniuse-lite/data/features/apng.js | 1 + .../data/features/array-find-index.js | 1 + .../caniuse-lite/data/features/array-find.js | 1 + .../caniuse-lite/data/features/array-flat.js | 1 + .../data/features/array-includes.js | 1 + .../data/features/arrow-functions.js | 1 + .../caniuse-lite/data/features/asmjs.js | 1 + .../data/features/async-clipboard.js | 1 + .../data/features/async-functions.js | 1 + .../caniuse-lite/data/features/atob-btoa.js | 1 + .../caniuse-lite/data/features/audio-api.js | 1 + .../caniuse-lite/data/features/audio.js | 1 + .../caniuse-lite/data/features/audiotracks.js | 1 + .../caniuse-lite/data/features/autofocus.js | 1 + .../caniuse-lite/data/features/auxclick.js | 1 + .../caniuse-lite/data/features/av1.js | 1 + .../caniuse-lite/data/features/avif.js | 1 + .../data/features/background-attachment.js | 1 + .../data/features/background-clip-text.js | 1 + .../data/features/background-img-opts.js | 1 + .../data/features/background-position-x-y.js | 1 + .../features/background-repeat-round-space.js | 1 + .../data/features/background-sync.js | 1 + .../data/features/battery-status.js | 1 + .../caniuse-lite/data/features/beacon.js | 1 + .../data/features/beforeafterprint.js | 1 + .../caniuse-lite/data/features/bigint.js | 1 + .../caniuse-lite/data/features/blobbuilder.js | 1 + .../caniuse-lite/data/features/bloburls.js | 1 + .../data/features/border-image.js | 1 + .../data/features/border-radius.js | 1 + .../data/features/broadcastchannel.js | 1 + .../caniuse-lite/data/features/brotli.js | 1 + .../caniuse-lite/data/features/calc.js | 1 + .../data/features/canvas-blending.js | 1 + .../caniuse-lite/data/features/canvas-text.js | 1 + .../caniuse-lite/data/features/canvas.js | 1 + .../caniuse-lite/data/features/ch-unit.js | 1 + .../data/features/chacha20-poly1305.js | 1 + .../data/features/channel-messaging.js | 1 + .../data/features/childnode-remove.js | 1 + .../caniuse-lite/data/features/classlist.js | 1 + .../client-hints-dpr-width-viewport.js | 1 + .../caniuse-lite/data/features/clipboard.js | 1 + .../caniuse-lite/data/features/colr-v1.js | 1 + .../caniuse-lite/data/features/colr.js | 1 + .../data/features/comparedocumentposition.js | 1 + .../data/features/console-basic.js | 1 + .../data/features/console-time.js | 1 + .../caniuse-lite/data/features/const.js | 1 + .../data/features/constraint-validation.js | 1 + .../data/features/contenteditable.js | 1 + .../data/features/contentsecuritypolicy.js | 1 + .../data/features/contentsecuritypolicy2.js | 1 + .../data/features/cookie-store-api.js | 1 + .../caniuse-lite/data/features/cors.js | 1 + .../data/features/createimagebitmap.js | 1 + .../data/features/credential-management.js | 1 + .../cross-document-view-transitions.js | 1 + .../data/features/cryptography.js | 1 + .../caniuse-lite/data/features/css-all.js | 1 + .../data/features/css-anchor-positioning.js | 1 + .../data/features/css-animation.js | 1 + .../data/features/css-any-link.js | 1 + .../data/features/css-appearance.js | 1 + .../data/features/css-at-counter-style.js | 1 + .../data/features/css-autofill.js | 1 + .../data/features/css-backdrop-filter.js | 1 + .../data/features/css-background-offsets.js | 1 + .../data/features/css-backgroundblendmode.js | 1 + .../data/features/css-boxdecorationbreak.js | 1 + .../data/features/css-boxshadow.js | 1 + .../caniuse-lite/data/features/css-canvas.js | 1 + .../data/features/css-caret-color.js | 1 + .../data/features/css-cascade-layers.js | 1 + .../data/features/css-cascade-scope.js | 1 + .../data/features/css-case-insensitive.js | 1 + .../data/features/css-clip-path.js | 1 + .../data/features/css-color-adjust.js | 1 + .../data/features/css-color-function.js | 1 + .../data/features/css-conic-gradients.js | 1 + .../features/css-container-queries-style.js | 1 + .../data/features/css-container-queries.js | 1 + .../features/css-container-query-units.js | 1 + .../data/features/css-containment.js | 1 + .../data/features/css-content-visibility.js | 1 + .../data/features/css-counters.js | 1 + .../data/features/css-crisp-edges.js | 1 + .../data/features/css-cross-fade.js | 1 + .../data/features/css-default-pseudo.js | 1 + .../data/features/css-descendant-gtgt.js | 1 + .../data/features/css-deviceadaptation.js | 1 + .../data/features/css-dir-pseudo.js | 1 + .../data/features/css-display-contents.js | 1 + .../data/features/css-element-function.js | 1 + .../data/features/css-env-function.js | 1 + .../data/features/css-exclusions.js | 1 + .../data/features/css-featurequeries.js | 1 + .../data/features/css-file-selector-button.js | 1 + .../data/features/css-filter-function.js | 1 + .../caniuse-lite/data/features/css-filters.js | 1 + .../data/features/css-first-letter.js | 1 + .../data/features/css-first-line.js | 1 + .../caniuse-lite/data/features/css-fixed.js | 1 + .../data/features/css-focus-visible.js | 1 + .../data/features/css-focus-within.js | 1 + .../data/features/css-font-palette.js | 1 + .../features/css-font-rendering-controls.js | 1 + .../data/features/css-font-stretch.js | 1 + .../data/features/css-gencontent.js | 1 + .../data/features/css-gradients.js | 1 + .../data/features/css-grid-animation.js | 1 + .../caniuse-lite/data/features/css-grid.js | 1 + .../data/features/css-hanging-punctuation.js | 1 + .../caniuse-lite/data/features/css-has.js | 1 + .../caniuse-lite/data/features/css-hyphens.js | 1 + .../caniuse-lite/data/features/css-if.js | 1 + .../data/features/css-image-orientation.js | 1 + .../data/features/css-image-set.js | 1 + .../data/features/css-in-out-of-range.js | 1 + .../data/features/css-indeterminate-pseudo.js | 1 + .../data/features/css-initial-letter.js | 1 + .../data/features/css-initial-value.js | 1 + .../caniuse-lite/data/features/css-lch-lab.js | 1 + .../data/features/css-letter-spacing.js | 1 + .../data/features/css-line-clamp.js | 1 + .../data/features/css-logical-props.js | 1 + .../data/features/css-marker-pseudo.js | 1 + .../caniuse-lite/data/features/css-masks.js | 1 + .../data/features/css-matches-pseudo.js | 1 + .../data/features/css-math-functions.js | 1 + .../data/features/css-media-interaction.js | 1 + .../data/features/css-media-range-syntax.js | 1 + .../data/features/css-media-resolution.js | 1 + .../data/features/css-media-scripting.js | 1 + .../data/features/css-mediaqueries.js | 1 + .../data/features/css-mixblendmode.js | 1 + .../data/features/css-module-scripts.js | 1 + .../data/features/css-motion-paths.js | 1 + .../data/features/css-namespaces.js | 1 + .../caniuse-lite/data/features/css-nesting.js | 1 + .../data/features/css-not-sel-list.js | 1 + .../data/features/css-nth-child-of.js | 1 + .../caniuse-lite/data/features/css-opacity.js | 1 + .../data/features/css-optional-pseudo.js | 1 + .../data/features/css-overflow-anchor.js | 1 + .../data/features/css-overflow-overlay.js | 1 + .../data/features/css-overflow.js | 1 + .../data/features/css-overscroll-behavior.js | 1 + .../data/features/css-page-break.js | 1 + .../data/features/css-paged-media.js | 1 + .../data/features/css-paint-api.js | 1 + .../data/features/css-placeholder-shown.js | 1 + .../data/features/css-placeholder.js | 1 + .../data/features/css-print-color-adjust.js | 1 + .../data/features/css-read-only-write.js | 1 + .../data/features/css-rebeccapurple.js | 1 + .../data/features/css-reflections.js | 1 + .../caniuse-lite/data/features/css-regions.js | 1 + .../data/features/css-relative-colors.js | 1 + .../data/features/css-repeating-gradients.js | 1 + .../caniuse-lite/data/features/css-resize.js | 1 + .../data/features/css-revert-value.js | 1 + .../data/features/css-rrggbbaa.js | 1 + .../data/features/css-scroll-behavior.js | 1 + .../data/features/css-scrollbar.js | 1 + .../caniuse-lite/data/features/css-sel2.js | 1 + .../caniuse-lite/data/features/css-sel3.js | 1 + .../data/features/css-selection.js | 1 + .../caniuse-lite/data/features/css-shapes.js | 1 + .../data/features/css-snappoints.js | 1 + .../caniuse-lite/data/features/css-sticky.js | 1 + .../caniuse-lite/data/features/css-subgrid.js | 1 + .../data/features/css-supports-api.js | 1 + .../caniuse-lite/data/features/css-table.js | 1 + .../data/features/css-text-align-last.js | 1 + .../data/features/css-text-box-trim.js | 1 + .../data/features/css-text-indent.js | 1 + .../data/features/css-text-justify.js | 1 + .../data/features/css-text-orientation.js | 1 + .../data/features/css-text-spacing.js | 1 + .../data/features/css-text-wrap-balance.js | 1 + .../data/features/css-textshadow.js | 1 + .../data/features/css-touch-action.js | 1 + .../data/features/css-transitions.js | 1 + .../data/features/css-unicode-bidi.js | 1 + .../data/features/css-unset-value.js | 1 + .../data/features/css-variables.js | 1 + .../data/features/css-when-else.js | 1 + .../data/features/css-widows-orphans.js | 1 + .../data/features/css-width-stretch.js | 1 + .../data/features/css-writing-mode.js | 1 + .../caniuse-lite/data/features/css-zoom.js | 1 + .../caniuse-lite/data/features/css3-attr.js | 1 + .../data/features/css3-boxsizing.js | 1 + .../caniuse-lite/data/features/css3-colors.js | 1 + .../data/features/css3-cursors-grab.js | 1 + .../data/features/css3-cursors-newer.js | 1 + .../data/features/css3-cursors.js | 1 + .../data/features/css3-tabsize.js | 1 + .../data/features/currentcolor.js | 1 + .../data/features/custom-elements.js | 1 + .../data/features/custom-elementsv1.js | 1 + .../caniuse-lite/data/features/customevent.js | 1 + .../caniuse-lite/data/features/datalist.js | 1 + .../caniuse-lite/data/features/dataset.js | 1 + .../caniuse-lite/data/features/datauri.js | 1 + .../data/features/date-tolocaledatestring.js | 1 + .../data/features/declarative-shadow-dom.js | 1 + .../caniuse-lite/data/features/decorators.js | 1 + .../caniuse-lite/data/features/details.js | 1 + .../data/features/deviceorientation.js | 1 + .../data/features/devicepixelratio.js | 1 + .../caniuse-lite/data/features/dialog.js | 1 + .../data/features/dispatchevent.js | 1 + .../caniuse-lite/data/features/dnssec.js | 1 + .../data/features/do-not-track.js | 1 + .../data/features/document-currentscript.js | 1 + .../data/features/document-evaluate-xpath.js | 1 + .../data/features/document-execcommand.js | 1 + .../data/features/document-policy.js | 1 + .../features/document-scrollingelement.js | 1 + .../data/features/documenthead.js | 1 + .../data/features/dom-manip-convenience.js | 1 + .../caniuse-lite/data/features/dom-range.js | 1 + .../data/features/domcontentloaded.js | 1 + .../caniuse-lite/data/features/dommatrix.js | 1 + .../caniuse-lite/data/features/download.js | 1 + .../caniuse-lite/data/features/dragndrop.js | 1 + .../data/features/element-closest.js | 1 + .../data/features/element-from-point.js | 1 + .../data/features/element-scroll-methods.js | 1 + .../caniuse-lite/data/features/eme.js | 1 + .../caniuse-lite/data/features/eot.js | 1 + .../caniuse-lite/data/features/es5.js | 1 + .../caniuse-lite/data/features/es6-class.js | 1 + .../data/features/es6-generators.js | 1 + .../features/es6-module-dynamic-import.js | 1 + .../caniuse-lite/data/features/es6-module.js | 1 + .../caniuse-lite/data/features/es6-number.js | 1 + .../data/features/es6-string-includes.js | 1 + .../caniuse-lite/data/features/es6.js | 1 + .../caniuse-lite/data/features/eventsource.js | 1 + .../data/features/extended-system-fonts.js | 1 + .../data/features/feature-policy.js | 1 + .../caniuse-lite/data/features/fetch.js | 1 + .../data/features/fieldset-disabled.js | 1 + .../caniuse-lite/data/features/fileapi.js | 1 + .../caniuse-lite/data/features/filereader.js | 1 + .../data/features/filereadersync.js | 1 + .../caniuse-lite/data/features/filesystem.js | 1 + .../caniuse-lite/data/features/flac.js | 1 + .../caniuse-lite/data/features/flexbox-gap.js | 1 + .../caniuse-lite/data/features/flexbox.js | 1 + .../caniuse-lite/data/features/flow-root.js | 1 + .../data/features/focusin-focusout-events.js | 1 + .../data/features/font-family-system-ui.js | 1 + .../data/features/font-feature.js | 1 + .../data/features/font-kerning.js | 1 + .../data/features/font-loading.js | 1 + .../data/features/font-size-adjust.js | 1 + .../caniuse-lite/data/features/font-smooth.js | 1 + .../data/features/font-unicode-range.js | 1 + .../data/features/font-variant-alternates.js | 1 + .../data/features/font-variant-numeric.js | 1 + .../caniuse-lite/data/features/fontface.js | 1 + .../data/features/form-attribute.js | 1 + .../data/features/form-submit-attributes.js | 1 + .../data/features/form-validation.js | 1 + .../caniuse-lite/data/features/forms.js | 1 + .../caniuse-lite/data/features/fullscreen.js | 1 + .../caniuse-lite/data/features/gamepad.js | 1 + .../caniuse-lite/data/features/geolocation.js | 1 + .../data/features/getboundingclientrect.js | 1 + .../data/features/getcomputedstyle.js | 1 + .../data/features/getelementsbyclassname.js | 1 + .../data/features/getrandomvalues.js | 1 + .../caniuse-lite/data/features/gyroscope.js | 1 + .../data/features/hardwareconcurrency.js | 1 + .../caniuse-lite/data/features/hashchange.js | 1 + .../caniuse-lite/data/features/heif.js | 1 + .../caniuse-lite/data/features/hevc.js | 1 + .../caniuse-lite/data/features/hidden.js | 1 + .../data/features/high-resolution-time.js | 1 + .../caniuse-lite/data/features/history.js | 1 + .../data/features/html-media-capture.js | 1 + .../data/features/html5semantic.js | 1 + .../data/features/http-live-streaming.js | 1 + .../caniuse-lite/data/features/http2.js | 1 + .../caniuse-lite/data/features/http3.js | 1 + .../data/features/iframe-sandbox.js | 1 + .../data/features/iframe-seamless.js | 1 + .../data/features/iframe-srcdoc.js | 1 + .../data/features/imagecapture.js | 1 + .../caniuse-lite/data/features/ime.js | 1 + .../img-naturalwidth-naturalheight.js | 1 + .../caniuse-lite/data/features/import-maps.js | 1 + .../caniuse-lite/data/features/imports.js | 1 + .../data/features/indeterminate-checkbox.js | 1 + .../caniuse-lite/data/features/indexeddb.js | 1 + .../caniuse-lite/data/features/indexeddb2.js | 1 + .../data/features/inline-block.js | 1 + .../caniuse-lite/data/features/innertext.js | 1 + .../data/features/input-autocomplete-onoff.js | 1 + .../caniuse-lite/data/features/input-color.js | 1 + .../data/features/input-datetime.js | 1 + .../data/features/input-email-tel-url.js | 1 + .../caniuse-lite/data/features/input-event.js | 1 + .../data/features/input-file-accept.js | 1 + .../data/features/input-file-directory.js | 1 + .../data/features/input-file-multiple.js | 1 + .../data/features/input-inputmode.js | 1 + .../data/features/input-minlength.js | 1 + .../data/features/input-number.js | 1 + .../data/features/input-pattern.js | 1 + .../data/features/input-placeholder.js | 1 + .../caniuse-lite/data/features/input-range.js | 1 + .../data/features/input-search.js | 1 + .../data/features/input-selection.js | 1 + .../data/features/insert-adjacent.js | 1 + .../data/features/insertadjacenthtml.js | 1 + .../data/features/internationalization.js | 1 + .../data/features/intersectionobserver-v2.js | 1 + .../data/features/intersectionobserver.js | 1 + .../data/features/intl-pluralrules.js | 1 + .../data/features/intrinsic-width.js | 1 + .../caniuse-lite/data/features/jpeg2000.js | 1 + .../caniuse-lite/data/features/jpegxl.js | 1 + .../caniuse-lite/data/features/jpegxr.js | 1 + .../data/features/js-regexp-lookbehind.js | 1 + .../caniuse-lite/data/features/json.js | 1 + .../features/justify-content-space-evenly.js | 1 + .../data/features/kerning-pairs-ligatures.js | 1 + .../data/features/keyboardevent-charcode.js | 1 + .../data/features/keyboardevent-code.js | 1 + .../keyboardevent-getmodifierstate.js | 1 + .../data/features/keyboardevent-key.js | 1 + .../data/features/keyboardevent-location.js | 1 + .../data/features/keyboardevent-which.js | 1 + .../caniuse-lite/data/features/lazyload.js | 1 + .../caniuse-lite/data/features/let.js | 1 + .../data/features/link-icon-png.js | 1 + .../data/features/link-icon-svg.js | 1 + .../data/features/link-rel-dns-prefetch.js | 1 + .../data/features/link-rel-modulepreload.js | 1 + .../data/features/link-rel-preconnect.js | 1 + .../data/features/link-rel-prefetch.js | 1 + .../data/features/link-rel-preload.js | 1 + .../data/features/link-rel-prerender.js | 1 + .../data/features/loading-lazy-attr.js | 1 + .../data/features/localecompare.js | 1 + .../data/features/magnetometer.js | 1 + .../data/features/matchesselector.js | 1 + .../caniuse-lite/data/features/matchmedia.js | 1 + .../caniuse-lite/data/features/mathml.js | 1 + .../caniuse-lite/data/features/maxlength.js | 1 + .../mdn-css-backdrop-pseudo-element.js | 1 + .../mdn-css-unicode-bidi-isolate-override.js | 1 + .../features/mdn-css-unicode-bidi-isolate.js | 1 + .../mdn-css-unicode-bidi-plaintext.js | 1 + .../features/mdn-text-decoration-color.js | 1 + .../data/features/mdn-text-decoration-line.js | 1 + .../features/mdn-text-decoration-shorthand.js | 1 + .../features/mdn-text-decoration-style.js | 1 + .../data/features/media-fragments.js | 1 + .../data/features/mediacapture-fromelement.js | 1 + .../data/features/mediarecorder.js | 1 + .../caniuse-lite/data/features/mediasource.js | 1 + .../caniuse-lite/data/features/menu.js | 1 + .../data/features/meta-theme-color.js | 1 + .../caniuse-lite/data/features/meter.js | 1 + .../caniuse-lite/data/features/midi.js | 1 + .../caniuse-lite/data/features/minmaxwh.js | 1 + .../caniuse-lite/data/features/mp3.js | 1 + .../caniuse-lite/data/features/mpeg-dash.js | 1 + .../caniuse-lite/data/features/mpeg4.js | 1 + .../data/features/multibackgrounds.js | 1 + .../caniuse-lite/data/features/multicolumn.js | 1 + .../data/features/mutation-events.js | 1 + .../data/features/mutationobserver.js | 1 + .../data/features/namevalue-storage.js | 1 + .../data/features/native-filesystem-api.js | 1 + .../caniuse-lite/data/features/nav-timing.js | 1 + .../caniuse-lite/data/features/netinfo.js | 1 + .../data/features/notifications.js | 1 + .../data/features/object-entries.js | 1 + .../caniuse-lite/data/features/object-fit.js | 1 + .../data/features/object-observe.js | 1 + .../data/features/object-values.js | 1 + .../caniuse-lite/data/features/objectrtc.js | 1 + .../data/features/offline-apps.js | 1 + .../data/features/offscreencanvas.js | 1 + .../caniuse-lite/data/features/ogg-vorbis.js | 1 + .../caniuse-lite/data/features/ogv.js | 1 + .../caniuse-lite/data/features/ol-reversed.js | 1 + .../data/features/once-event-listener.js | 1 + .../data/features/online-status.js | 1 + .../caniuse-lite/data/features/opus.js | 1 + .../data/features/orientation-sensor.js | 1 + .../caniuse-lite/data/features/outline.js | 1 + .../data/features/pad-start-end.js | 1 + .../data/features/page-transition-events.js | 1 + .../data/features/pagevisibility.js | 1 + .../data/features/passive-event-listener.js | 1 + .../caniuse-lite/data/features/passkeys.js | 1 + .../data/features/passwordrules.js | 1 + .../caniuse-lite/data/features/path2d.js | 1 + .../data/features/payment-request.js | 1 + .../caniuse-lite/data/features/pdf-viewer.js | 1 + .../data/features/permissions-api.js | 1 + .../data/features/permissions-policy.js | 1 + .../data/features/picture-in-picture.js | 1 + .../caniuse-lite/data/features/picture.js | 1 + .../caniuse-lite/data/features/ping.js | 1 + .../caniuse-lite/data/features/png-alpha.js | 1 + .../data/features/pointer-events.js | 1 + .../caniuse-lite/data/features/pointer.js | 1 + .../caniuse-lite/data/features/pointerlock.js | 1 + .../caniuse-lite/data/features/portals.js | 1 + .../data/features/prefers-color-scheme.js | 1 + .../data/features/prefers-reduced-motion.js | 1 + .../caniuse-lite/data/features/progress.js | 1 + .../data/features/promise-finally.js | 1 + .../caniuse-lite/data/features/promises.js | 1 + .../caniuse-lite/data/features/proximity.js | 1 + .../caniuse-lite/data/features/proxy.js | 1 + .../data/features/publickeypinning.js | 1 + .../caniuse-lite/data/features/push-api.js | 1 + .../data/features/queryselector.js | 1 + .../data/features/readonly-attr.js | 1 + .../data/features/referrer-policy.js | 1 + .../data/features/registerprotocolhandler.js | 1 + .../data/features/rel-noopener.js | 1 + .../data/features/rel-noreferrer.js | 1 + .../caniuse-lite/data/features/rellist.js | 1 + .../caniuse-lite/data/features/rem.js | 1 + .../data/features/requestanimationframe.js | 1 + .../data/features/requestidlecallback.js | 1 + .../data/features/resizeobserver.js | 1 + .../data/features/resource-timing.js | 1 + .../data/features/rest-parameters.js | 1 + .../data/features/rtcpeerconnection.js | 1 + .../caniuse-lite/data/features/ruby.js | 1 + .../caniuse-lite/data/features/run-in.js | 1 + .../features/same-site-cookie-attribute.js | 1 + .../data/features/screen-orientation.js | 1 + .../data/features/script-async.js | 1 + .../data/features/script-defer.js | 1 + .../data/features/scrollintoview.js | 1 + .../data/features/scrollintoviewifneeded.js | 1 + .../caniuse-lite/data/features/sdch.js | 1 + .../data/features/selection-api.js | 1 + .../caniuse-lite/data/features/selectlist.js | 1 + .../data/features/server-timing.js | 1 + .../data/features/serviceworkers.js | 1 + .../data/features/setimmediate.js | 1 + .../caniuse-lite/data/features/shadowdom.js | 1 + .../caniuse-lite/data/features/shadowdomv1.js | 1 + .../data/features/sharedarraybuffer.js | 1 + .../data/features/sharedworkers.js | 1 + .../caniuse-lite/data/features/sni.js | 1 + .../caniuse-lite/data/features/spdy.js | 1 + .../data/features/speech-recognition.js | 1 + .../data/features/speech-synthesis.js | 1 + .../data/features/spellcheck-attribute.js | 1 + .../caniuse-lite/data/features/sql-storage.js | 1 + .../caniuse-lite/data/features/srcset.js | 1 + .../caniuse-lite/data/features/stream.js | 1 + .../caniuse-lite/data/features/streams.js | 1 + .../data/features/stricttransportsecurity.js | 1 + .../data/features/style-scoped.js | 1 + .../data/features/subresource-bundling.js | 1 + .../data/features/subresource-integrity.js | 1 + .../caniuse-lite/data/features/svg-css.js | 1 + .../caniuse-lite/data/features/svg-filters.js | 1 + .../caniuse-lite/data/features/svg-fonts.js | 1 + .../data/features/svg-fragment.js | 1 + .../caniuse-lite/data/features/svg-html.js | 1 + .../caniuse-lite/data/features/svg-html5.js | 1 + .../caniuse-lite/data/features/svg-img.js | 1 + .../caniuse-lite/data/features/svg-smil.js | 1 + .../caniuse-lite/data/features/svg.js | 1 + .../caniuse-lite/data/features/sxg.js | 1 + .../data/features/tabindex-attr.js | 1 + .../data/features/template-literals.js | 1 + .../caniuse-lite/data/features/template.js | 1 + .../caniuse-lite/data/features/temporal.js | 1 + .../caniuse-lite/data/features/testfeat.js | 1 + .../data/features/text-decoration.js | 1 + .../data/features/text-emphasis.js | 1 + .../data/features/text-overflow.js | 1 + .../data/features/text-size-adjust.js | 1 + .../caniuse-lite/data/features/text-stroke.js | 1 + .../caniuse-lite/data/features/textcontent.js | 1 + .../caniuse-lite/data/features/textencoder.js | 1 + .../caniuse-lite/data/features/tls1-1.js | 1 + .../caniuse-lite/data/features/tls1-2.js | 1 + .../caniuse-lite/data/features/tls1-3.js | 1 + .../caniuse-lite/data/features/touch.js | 1 + .../data/features/transforms2d.js | 1 + .../data/features/transforms3d.js | 1 + .../data/features/trusted-types.js | 1 + .../caniuse-lite/data/features/ttf.js | 1 + .../caniuse-lite/data/features/typedarrays.js | 1 + .../caniuse-lite/data/features/u2f.js | 1 + .../data/features/unhandledrejection.js | 1 + .../data/features/upgradeinsecurerequests.js | 1 + .../features/url-scroll-to-text-fragment.js | 1 + .../caniuse-lite/data/features/url.js | 1 + .../data/features/urlsearchparams.js | 1 + .../caniuse-lite/data/features/use-strict.js | 1 + .../data/features/user-select-none.js | 1 + .../caniuse-lite/data/features/user-timing.js | 1 + .../data/features/variable-fonts.js | 1 + .../data/features/vector-effect.js | 1 + .../caniuse-lite/data/features/vibration.js | 1 + .../caniuse-lite/data/features/video.js | 1 + .../caniuse-lite/data/features/videotracks.js | 1 + .../data/features/view-transitions.js | 1 + .../data/features/viewport-unit-variants.js | 1 + .../data/features/viewport-units.js | 1 + .../caniuse-lite/data/features/wai-aria.js | 1 + .../caniuse-lite/data/features/wake-lock.js | 1 + .../caniuse-lite/data/features/wasm-bigint.js | 1 + .../data/features/wasm-bulk-memory.js | 1 + .../data/features/wasm-extended-const.js | 1 + .../caniuse-lite/data/features/wasm-gc.js | 1 + .../data/features/wasm-multi-memory.js | 1 + .../data/features/wasm-multi-value.js | 1 + .../data/features/wasm-mutable-globals.js | 1 + .../data/features/wasm-nontrapping-fptoint.js | 1 + .../data/features/wasm-reference-types.js | 1 + .../data/features/wasm-relaxed-simd.js | 1 + .../data/features/wasm-signext.js | 1 + .../caniuse-lite/data/features/wasm-simd.js | 1 + .../data/features/wasm-tail-calls.js | 1 + .../data/features/wasm-threads.js | 1 + .../caniuse-lite/data/features/wasm.js | 1 + .../caniuse-lite/data/features/wav.js | 1 + .../caniuse-lite/data/features/wbr-element.js | 1 + .../data/features/web-animation.js | 1 + .../data/features/web-app-manifest.js | 1 + .../data/features/web-bluetooth.js | 1 + .../caniuse-lite/data/features/web-serial.js | 1 + .../caniuse-lite/data/features/web-share.js | 1 + .../caniuse-lite/data/features/webauthn.js | 1 + .../caniuse-lite/data/features/webcodecs.js | 1 + .../caniuse-lite/data/features/webgl.js | 1 + .../caniuse-lite/data/features/webgl2.js | 1 + .../caniuse-lite/data/features/webgpu.js | 1 + .../caniuse-lite/data/features/webhid.js | 1 + .../data/features/webkit-user-drag.js | 1 + .../caniuse-lite/data/features/webm.js | 1 + .../caniuse-lite/data/features/webnfc.js | 1 + .../caniuse-lite/data/features/webp.js | 1 + .../caniuse-lite/data/features/websockets.js | 1 + .../data/features/webtransport.js | 1 + .../caniuse-lite/data/features/webusb.js | 1 + .../caniuse-lite/data/features/webvr.js | 1 + .../caniuse-lite/data/features/webvtt.js | 1 + .../caniuse-lite/data/features/webworkers.js | 1 + .../caniuse-lite/data/features/webxr.js | 1 + .../caniuse-lite/data/features/will-change.js | 1 + .../caniuse-lite/data/features/woff.js | 1 + .../caniuse-lite/data/features/woff2.js | 1 + .../caniuse-lite/data/features/word-break.js | 1 + .../caniuse-lite/data/features/wordwrap.js | 1 + .../data/features/x-doc-messaging.js | 1 + .../data/features/x-frame-options.js | 1 + .../caniuse-lite/data/features/xhr2.js | 1 + .../caniuse-lite/data/features/xhtml.js | 1 + .../caniuse-lite/data/features/xhtmlsmil.js | 1 + .../data/features/xml-serializer.js | 1 + .../caniuse-lite/data/features/zstd.js | 1 + node_modules/caniuse-lite/data/regions/AD.js | 1 + node_modules/caniuse-lite/data/regions/AE.js | 1 + node_modules/caniuse-lite/data/regions/AF.js | 1 + node_modules/caniuse-lite/data/regions/AG.js | 1 + node_modules/caniuse-lite/data/regions/AI.js | 1 + node_modules/caniuse-lite/data/regions/AL.js | 1 + node_modules/caniuse-lite/data/regions/AM.js | 1 + node_modules/caniuse-lite/data/regions/AO.js | 1 + node_modules/caniuse-lite/data/regions/AR.js | 1 + node_modules/caniuse-lite/data/regions/AS.js | 1 + node_modules/caniuse-lite/data/regions/AT.js | 1 + node_modules/caniuse-lite/data/regions/AU.js | 1 + node_modules/caniuse-lite/data/regions/AW.js | 1 + node_modules/caniuse-lite/data/regions/AX.js | 1 + node_modules/caniuse-lite/data/regions/AZ.js | 1 + node_modules/caniuse-lite/data/regions/BA.js | 1 + node_modules/caniuse-lite/data/regions/BB.js | 1 + node_modules/caniuse-lite/data/regions/BD.js | 1 + node_modules/caniuse-lite/data/regions/BE.js | 1 + node_modules/caniuse-lite/data/regions/BF.js | 1 + node_modules/caniuse-lite/data/regions/BG.js | 1 + node_modules/caniuse-lite/data/regions/BH.js | 1 + node_modules/caniuse-lite/data/regions/BI.js | 1 + node_modules/caniuse-lite/data/regions/BJ.js | 1 + node_modules/caniuse-lite/data/regions/BM.js | 1 + node_modules/caniuse-lite/data/regions/BN.js | 1 + node_modules/caniuse-lite/data/regions/BO.js | 1 + node_modules/caniuse-lite/data/regions/BR.js | 1 + node_modules/caniuse-lite/data/regions/BS.js | 1 + node_modules/caniuse-lite/data/regions/BT.js | 1 + node_modules/caniuse-lite/data/regions/BW.js | 1 + node_modules/caniuse-lite/data/regions/BY.js | 1 + node_modules/caniuse-lite/data/regions/BZ.js | 1 + node_modules/caniuse-lite/data/regions/CA.js | 1 + node_modules/caniuse-lite/data/regions/CD.js | 1 + node_modules/caniuse-lite/data/regions/CF.js | 1 + node_modules/caniuse-lite/data/regions/CG.js | 1 + node_modules/caniuse-lite/data/regions/CH.js | 1 + node_modules/caniuse-lite/data/regions/CI.js | 1 + node_modules/caniuse-lite/data/regions/CK.js | 1 + node_modules/caniuse-lite/data/regions/CL.js | 1 + node_modules/caniuse-lite/data/regions/CM.js | 1 + node_modules/caniuse-lite/data/regions/CN.js | 1 + node_modules/caniuse-lite/data/regions/CO.js | 1 + node_modules/caniuse-lite/data/regions/CR.js | 1 + node_modules/caniuse-lite/data/regions/CU.js | 1 + node_modules/caniuse-lite/data/regions/CV.js | 1 + node_modules/caniuse-lite/data/regions/CX.js | 1 + node_modules/caniuse-lite/data/regions/CY.js | 1 + node_modules/caniuse-lite/data/regions/CZ.js | 1 + node_modules/caniuse-lite/data/regions/DE.js | 1 + node_modules/caniuse-lite/data/regions/DJ.js | 1 + node_modules/caniuse-lite/data/regions/DK.js | 1 + node_modules/caniuse-lite/data/regions/DM.js | 1 + node_modules/caniuse-lite/data/regions/DO.js | 1 + node_modules/caniuse-lite/data/regions/DZ.js | 1 + node_modules/caniuse-lite/data/regions/EC.js | 1 + node_modules/caniuse-lite/data/regions/EE.js | 1 + node_modules/caniuse-lite/data/regions/EG.js | 1 + node_modules/caniuse-lite/data/regions/ER.js | 1 + node_modules/caniuse-lite/data/regions/ES.js | 1 + node_modules/caniuse-lite/data/regions/ET.js | 1 + node_modules/caniuse-lite/data/regions/FI.js | 1 + node_modules/caniuse-lite/data/regions/FJ.js | 1 + node_modules/caniuse-lite/data/regions/FK.js | 1 + node_modules/caniuse-lite/data/regions/FM.js | 1 + node_modules/caniuse-lite/data/regions/FO.js | 1 + node_modules/caniuse-lite/data/regions/FR.js | 1 + node_modules/caniuse-lite/data/regions/GA.js | 1 + node_modules/caniuse-lite/data/regions/GB.js | 1 + node_modules/caniuse-lite/data/regions/GD.js | 1 + node_modules/caniuse-lite/data/regions/GE.js | 1 + node_modules/caniuse-lite/data/regions/GF.js | 1 + node_modules/caniuse-lite/data/regions/GG.js | 1 + node_modules/caniuse-lite/data/regions/GH.js | 1 + node_modules/caniuse-lite/data/regions/GI.js | 1 + node_modules/caniuse-lite/data/regions/GL.js | 1 + node_modules/caniuse-lite/data/regions/GM.js | 1 + node_modules/caniuse-lite/data/regions/GN.js | 1 + node_modules/caniuse-lite/data/regions/GP.js | 1 + node_modules/caniuse-lite/data/regions/GQ.js | 1 + node_modules/caniuse-lite/data/regions/GR.js | 1 + node_modules/caniuse-lite/data/regions/GT.js | 1 + node_modules/caniuse-lite/data/regions/GU.js | 1 + node_modules/caniuse-lite/data/regions/GW.js | 1 + node_modules/caniuse-lite/data/regions/GY.js | 1 + node_modules/caniuse-lite/data/regions/HK.js | 1 + node_modules/caniuse-lite/data/regions/HN.js | 1 + node_modules/caniuse-lite/data/regions/HR.js | 1 + node_modules/caniuse-lite/data/regions/HT.js | 1 + node_modules/caniuse-lite/data/regions/HU.js | 1 + node_modules/caniuse-lite/data/regions/ID.js | 1 + node_modules/caniuse-lite/data/regions/IE.js | 1 + node_modules/caniuse-lite/data/regions/IL.js | 1 + node_modules/caniuse-lite/data/regions/IM.js | 1 + node_modules/caniuse-lite/data/regions/IN.js | 1 + node_modules/caniuse-lite/data/regions/IQ.js | 1 + node_modules/caniuse-lite/data/regions/IR.js | 1 + node_modules/caniuse-lite/data/regions/IS.js | 1 + node_modules/caniuse-lite/data/regions/IT.js | 1 + node_modules/caniuse-lite/data/regions/JE.js | 1 + node_modules/caniuse-lite/data/regions/JM.js | 1 + node_modules/caniuse-lite/data/regions/JO.js | 1 + node_modules/caniuse-lite/data/regions/JP.js | 1 + node_modules/caniuse-lite/data/regions/KE.js | 1 + node_modules/caniuse-lite/data/regions/KG.js | 1 + node_modules/caniuse-lite/data/regions/KH.js | 1 + node_modules/caniuse-lite/data/regions/KI.js | 1 + node_modules/caniuse-lite/data/regions/KM.js | 1 + node_modules/caniuse-lite/data/regions/KN.js | 1 + node_modules/caniuse-lite/data/regions/KP.js | 1 + node_modules/caniuse-lite/data/regions/KR.js | 1 + node_modules/caniuse-lite/data/regions/KW.js | 1 + node_modules/caniuse-lite/data/regions/KY.js | 1 + node_modules/caniuse-lite/data/regions/KZ.js | 1 + node_modules/caniuse-lite/data/regions/LA.js | 1 + node_modules/caniuse-lite/data/regions/LB.js | 1 + node_modules/caniuse-lite/data/regions/LC.js | 1 + node_modules/caniuse-lite/data/regions/LI.js | 1 + node_modules/caniuse-lite/data/regions/LK.js | 1 + node_modules/caniuse-lite/data/regions/LR.js | 1 + node_modules/caniuse-lite/data/regions/LS.js | 1 + node_modules/caniuse-lite/data/regions/LT.js | 1 + node_modules/caniuse-lite/data/regions/LU.js | 1 + node_modules/caniuse-lite/data/regions/LV.js | 1 + node_modules/caniuse-lite/data/regions/LY.js | 1 + node_modules/caniuse-lite/data/regions/MA.js | 1 + node_modules/caniuse-lite/data/regions/MC.js | 1 + node_modules/caniuse-lite/data/regions/MD.js | 1 + node_modules/caniuse-lite/data/regions/ME.js | 1 + node_modules/caniuse-lite/data/regions/MG.js | 1 + node_modules/caniuse-lite/data/regions/MH.js | 1 + node_modules/caniuse-lite/data/regions/MK.js | 1 + node_modules/caniuse-lite/data/regions/ML.js | 1 + node_modules/caniuse-lite/data/regions/MM.js | 1 + node_modules/caniuse-lite/data/regions/MN.js | 1 + node_modules/caniuse-lite/data/regions/MO.js | 1 + node_modules/caniuse-lite/data/regions/MP.js | 1 + node_modules/caniuse-lite/data/regions/MQ.js | 1 + node_modules/caniuse-lite/data/regions/MR.js | 1 + node_modules/caniuse-lite/data/regions/MS.js | 1 + node_modules/caniuse-lite/data/regions/MT.js | 1 + node_modules/caniuse-lite/data/regions/MU.js | 1 + node_modules/caniuse-lite/data/regions/MV.js | 1 + node_modules/caniuse-lite/data/regions/MW.js | 1 + node_modules/caniuse-lite/data/regions/MX.js | 1 + node_modules/caniuse-lite/data/regions/MY.js | 1 + node_modules/caniuse-lite/data/regions/MZ.js | 1 + node_modules/caniuse-lite/data/regions/NA.js | 1 + node_modules/caniuse-lite/data/regions/NC.js | 1 + node_modules/caniuse-lite/data/regions/NE.js | 1 + node_modules/caniuse-lite/data/regions/NF.js | 1 + node_modules/caniuse-lite/data/regions/NG.js | 1 + node_modules/caniuse-lite/data/regions/NI.js | 1 + node_modules/caniuse-lite/data/regions/NL.js | 1 + node_modules/caniuse-lite/data/regions/NO.js | 1 + node_modules/caniuse-lite/data/regions/NP.js | 1 + node_modules/caniuse-lite/data/regions/NR.js | 1 + node_modules/caniuse-lite/data/regions/NU.js | 1 + node_modules/caniuse-lite/data/regions/NZ.js | 1 + node_modules/caniuse-lite/data/regions/OM.js | 1 + node_modules/caniuse-lite/data/regions/PA.js | 1 + node_modules/caniuse-lite/data/regions/PE.js | 1 + node_modules/caniuse-lite/data/regions/PF.js | 1 + node_modules/caniuse-lite/data/regions/PG.js | 1 + node_modules/caniuse-lite/data/regions/PH.js | 1 + node_modules/caniuse-lite/data/regions/PK.js | 1 + node_modules/caniuse-lite/data/regions/PL.js | 1 + node_modules/caniuse-lite/data/regions/PM.js | 1 + node_modules/caniuse-lite/data/regions/PN.js | 1 + node_modules/caniuse-lite/data/regions/PR.js | 1 + node_modules/caniuse-lite/data/regions/PS.js | 1 + node_modules/caniuse-lite/data/regions/PT.js | 1 + node_modules/caniuse-lite/data/regions/PW.js | 1 + node_modules/caniuse-lite/data/regions/PY.js | 1 + node_modules/caniuse-lite/data/regions/QA.js | 1 + node_modules/caniuse-lite/data/regions/RE.js | 1 + node_modules/caniuse-lite/data/regions/RO.js | 1 + node_modules/caniuse-lite/data/regions/RS.js | 1 + node_modules/caniuse-lite/data/regions/RU.js | 1 + node_modules/caniuse-lite/data/regions/RW.js | 1 + node_modules/caniuse-lite/data/regions/SA.js | 1 + node_modules/caniuse-lite/data/regions/SB.js | 1 + node_modules/caniuse-lite/data/regions/SC.js | 1 + node_modules/caniuse-lite/data/regions/SD.js | 1 + node_modules/caniuse-lite/data/regions/SE.js | 1 + node_modules/caniuse-lite/data/regions/SG.js | 1 + node_modules/caniuse-lite/data/regions/SH.js | 1 + node_modules/caniuse-lite/data/regions/SI.js | 1 + node_modules/caniuse-lite/data/regions/SK.js | 1 + node_modules/caniuse-lite/data/regions/SL.js | 1 + node_modules/caniuse-lite/data/regions/SM.js | 1 + node_modules/caniuse-lite/data/regions/SN.js | 1 + node_modules/caniuse-lite/data/regions/SO.js | 1 + node_modules/caniuse-lite/data/regions/SR.js | 1 + node_modules/caniuse-lite/data/regions/ST.js | 1 + node_modules/caniuse-lite/data/regions/SV.js | 1 + node_modules/caniuse-lite/data/regions/SY.js | 1 + node_modules/caniuse-lite/data/regions/SZ.js | 1 + node_modules/caniuse-lite/data/regions/TC.js | 1 + node_modules/caniuse-lite/data/regions/TD.js | 1 + node_modules/caniuse-lite/data/regions/TG.js | 1 + node_modules/caniuse-lite/data/regions/TH.js | 1 + node_modules/caniuse-lite/data/regions/TJ.js | 1 + node_modules/caniuse-lite/data/regions/TL.js | 1 + node_modules/caniuse-lite/data/regions/TM.js | 1 + node_modules/caniuse-lite/data/regions/TN.js | 1 + node_modules/caniuse-lite/data/regions/TO.js | 1 + node_modules/caniuse-lite/data/regions/TR.js | 1 + node_modules/caniuse-lite/data/regions/TT.js | 1 + node_modules/caniuse-lite/data/regions/TV.js | 1 + node_modules/caniuse-lite/data/regions/TW.js | 1 + node_modules/caniuse-lite/data/regions/TZ.js | 1 + node_modules/caniuse-lite/data/regions/UA.js | 1 + node_modules/caniuse-lite/data/regions/UG.js | 1 + node_modules/caniuse-lite/data/regions/US.js | 1 + node_modules/caniuse-lite/data/regions/UY.js | 1 + node_modules/caniuse-lite/data/regions/UZ.js | 1 + node_modules/caniuse-lite/data/regions/VA.js | 1 + node_modules/caniuse-lite/data/regions/VC.js | 1 + node_modules/caniuse-lite/data/regions/VE.js | 1 + node_modules/caniuse-lite/data/regions/VG.js | 1 + node_modules/caniuse-lite/data/regions/VI.js | 1 + node_modules/caniuse-lite/data/regions/VN.js | 1 + node_modules/caniuse-lite/data/regions/VU.js | 1 + node_modules/caniuse-lite/data/regions/WF.js | 1 + node_modules/caniuse-lite/data/regions/WS.js | 1 + node_modules/caniuse-lite/data/regions/YE.js | 1 + node_modules/caniuse-lite/data/regions/YT.js | 1 + node_modules/caniuse-lite/data/regions/ZA.js | 1 + node_modules/caniuse-lite/data/regions/ZM.js | 1 + node_modules/caniuse-lite/data/regions/ZW.js | 1 + .../caniuse-lite/data/regions/alt-af.js | 1 + .../caniuse-lite/data/regions/alt-an.js | 1 + .../caniuse-lite/data/regions/alt-as.js | 1 + .../caniuse-lite/data/regions/alt-eu.js | 1 + .../caniuse-lite/data/regions/alt-na.js | 1 + .../caniuse-lite/data/regions/alt-oc.js | 1 + .../caniuse-lite/data/regions/alt-sa.js | 1 + .../caniuse-lite/data/regions/alt-ww.js | 1 + .../caniuse-lite/dist/lib/statuses.js | 9 + .../caniuse-lite/dist/lib/supported.js | 9 + .../caniuse-lite/dist/unpacker/agents.js | 47 + .../dist/unpacker/browserVersions.js | 1 + .../caniuse-lite/dist/unpacker/browsers.js | 1 + .../caniuse-lite/dist/unpacker/feature.js | 52 + .../caniuse-lite/dist/unpacker/features.js | 6 + .../caniuse-lite/dist/unpacker/index.js | 4 + .../caniuse-lite/dist/unpacker/region.js | 22 + node_modules/caniuse-lite/package.json | 34 + node_modules/daisyui/LICENSE | 21 + node_modules/daisyui/README.md | 37 + node_modules/daisyui/base/properties.css | 1 + node_modules/daisyui/base/properties/index.js | 7 + .../daisyui/base/properties/object.js | 1 + node_modules/daisyui/base/reset.css | 1 + node_modules/daisyui/base/rootcolor.css | 1 + node_modules/daisyui/base/rootcolor/index.js | 7 + node_modules/daisyui/base/rootcolor/object.js | 1 + .../daisyui/base/rootscrollgutter.css | 1 + .../daisyui/base/rootscrollgutter/index.js | 7 + .../daisyui/base/rootscrollgutter/object.js | 1 + node_modules/daisyui/base/rootscrolllock.css | 1 + .../daisyui/base/rootscrolllock/index.js | 7 + .../daisyui/base/rootscrolllock/object.js | 1 + node_modules/daisyui/base/scrollbar.css | 1 + node_modules/daisyui/base/scrollbar/index.js | 7 + node_modules/daisyui/base/scrollbar/object.js | 1 + node_modules/daisyui/base/svg.css | 1 + node_modules/daisyui/base/svg/index.js | 7 + node_modules/daisyui/base/svg/object.js | 1 + node_modules/daisyui/chunks.css | 77 + .../daisyui/colors/properties-extended.css | 1 + node_modules/daisyui/colors/properties.css | 1 + .../daisyui/colors/responsive-extended.css | 1 + node_modules/daisyui/colors/responsive.css | 1 + .../daisyui/colors/states-extended.css | 1 + node_modules/daisyui/colors/states.css | 1 + node_modules/daisyui/components/alert.css | 1 + .../daisyui/components/alert/index.js | 7 + .../daisyui/components/alert/object.js | 1 + node_modules/daisyui/components/avatar.css | 1 + .../daisyui/components/avatar/index.js | 7 + .../daisyui/components/avatar/object.js | 1 + node_modules/daisyui/components/badge.css | 1 + .../daisyui/components/badge/index.js | 7 + .../daisyui/components/badge/object.js | 1 + .../daisyui/components/breadcrumbs.css | 1 + .../daisyui/components/breadcrumbs/index.js | 7 + .../daisyui/components/breadcrumbs/object.js | 1 + node_modules/daisyui/components/button.css | 1 + .../daisyui/components/button/index.js | 7 + .../daisyui/components/button/object.js | 1 + node_modules/daisyui/components/calendar.css | 1 + .../daisyui/components/calendar/index.js | 7 + .../daisyui/components/calendar/object.js | 1 + node_modules/daisyui/components/card.css | 1 + node_modules/daisyui/components/card/index.js | 7 + .../daisyui/components/card/object.js | 1 + node_modules/daisyui/components/carousel.css | 1 + .../daisyui/components/carousel/index.js | 7 + .../daisyui/components/carousel/object.js | 1 + node_modules/daisyui/components/chat.css | 1 + node_modules/daisyui/components/chat/index.js | 7 + .../daisyui/components/chat/object.js | 1 + node_modules/daisyui/components/checkbox.css | 1 + .../daisyui/components/checkbox/index.js | 7 + .../daisyui/components/checkbox/object.js | 1 + node_modules/daisyui/components/collapse.css | 1 + .../daisyui/components/collapse/index.js | 7 + .../daisyui/components/collapse/object.js | 1 + node_modules/daisyui/components/countdown.css | 1 + .../daisyui/components/countdown/index.js | 7 + .../daisyui/components/countdown/object.js | 1 + node_modules/daisyui/components/diff.css | 1 + node_modules/daisyui/components/diff/index.js | 7 + .../daisyui/components/diff/object.js | 1 + node_modules/daisyui/components/divider.css | 1 + .../daisyui/components/divider/index.js | 7 + .../daisyui/components/divider/object.js | 1 + node_modules/daisyui/components/dock.css | 1 + node_modules/daisyui/components/dock/index.js | 7 + .../daisyui/components/dock/object.js | 1 + node_modules/daisyui/components/drawer.css | 1 + .../daisyui/components/drawer/index.js | 7 + .../daisyui/components/drawer/object.js | 1 + node_modules/daisyui/components/dropdown.css | 1 + .../daisyui/components/dropdown/index.js | 7 + .../daisyui/components/dropdown/object.js | 1 + node_modules/daisyui/components/fab.css | 1 + node_modules/daisyui/components/fab/index.js | 7 + node_modules/daisyui/components/fab/object.js | 1 + node_modules/daisyui/components/fieldset.css | 1 + .../daisyui/components/fieldset/index.js | 7 + .../daisyui/components/fieldset/object.js | 1 + node_modules/daisyui/components/fileinput.css | 1 + .../daisyui/components/fileinput/index.js | 7 + .../daisyui/components/fileinput/object.js | 1 + node_modules/daisyui/components/filter.css | 1 + .../daisyui/components/filter/index.js | 7 + .../daisyui/components/filter/object.js | 1 + node_modules/daisyui/components/footer.css | 1 + .../daisyui/components/footer/index.js | 7 + .../daisyui/components/footer/object.js | 1 + node_modules/daisyui/components/hero.css | 1 + node_modules/daisyui/components/hero/index.js | 7 + .../daisyui/components/hero/object.js | 1 + node_modules/daisyui/components/hover3d.css | 1 + .../daisyui/components/hover3d/index.js | 7 + .../daisyui/components/hover3d/object.js | 1 + .../daisyui/components/hovergallery.css | 1 + .../daisyui/components/hovergallery/index.js | 7 + .../daisyui/components/hovergallery/object.js | 1 + node_modules/daisyui/components/indicator.css | 1 + .../daisyui/components/indicator/index.js | 7 + .../daisyui/components/indicator/object.js | 1 + node_modules/daisyui/components/input.css | 1 + .../daisyui/components/input/index.js | 7 + .../daisyui/components/input/object.js | 1 + node_modules/daisyui/components/kbd.css | 1 + node_modules/daisyui/components/kbd/index.js | 7 + node_modules/daisyui/components/kbd/object.js | 1 + node_modules/daisyui/components/label.css | 1 + .../daisyui/components/label/index.js | 7 + .../daisyui/components/label/object.js | 1 + node_modules/daisyui/components/link.css | 1 + node_modules/daisyui/components/link/index.js | 7 + .../daisyui/components/link/object.js | 1 + node_modules/daisyui/components/list.css | 1 + node_modules/daisyui/components/list/index.js | 7 + .../daisyui/components/list/object.js | 1 + node_modules/daisyui/components/loading.css | 1 + .../daisyui/components/loading/index.js | 7 + .../daisyui/components/loading/object.js | 1 + node_modules/daisyui/components/mask.css | 1 + node_modules/daisyui/components/mask/index.js | 7 + .../daisyui/components/mask/object.js | 1 + node_modules/daisyui/components/menu.css | 1 + node_modules/daisyui/components/menu/index.js | 7 + .../daisyui/components/menu/object.js | 1 + node_modules/daisyui/components/mockup.css | 1 + .../daisyui/components/mockup/index.js | 7 + .../daisyui/components/mockup/object.js | 1 + node_modules/daisyui/components/modal.css | 1 + .../daisyui/components/modal/index.js | 7 + .../daisyui/components/modal/object.js | 1 + node_modules/daisyui/components/navbar.css | 1 + .../daisyui/components/navbar/index.js | 7 + .../daisyui/components/navbar/object.js | 1 + node_modules/daisyui/components/progress.css | 1 + .../daisyui/components/progress/index.js | 7 + .../daisyui/components/progress/object.js | 1 + .../daisyui/components/radialprogress.css | 1 + .../components/radialprogress/index.js | 7 + .../components/radialprogress/object.js | 1 + node_modules/daisyui/components/radio.css | 1 + .../daisyui/components/radio/index.js | 7 + .../daisyui/components/radio/object.js | 1 + node_modules/daisyui/components/range.css | 1 + .../daisyui/components/range/index.js | 7 + .../daisyui/components/range/object.js | 1 + node_modules/daisyui/components/rating.css | 1 + .../daisyui/components/rating/index.js | 7 + .../daisyui/components/rating/object.js | 1 + node_modules/daisyui/components/select.css | 1 + .../daisyui/components/select/index.js | 7 + .../daisyui/components/select/object.js | 1 + node_modules/daisyui/components/skeleton.css | 1 + .../daisyui/components/skeleton/index.js | 7 + .../daisyui/components/skeleton/object.js | 1 + node_modules/daisyui/components/stack.css | 1 + .../daisyui/components/stack/index.js | 7 + .../daisyui/components/stack/object.js | 1 + node_modules/daisyui/components/stat.css | 1 + node_modules/daisyui/components/stat/index.js | 7 + .../daisyui/components/stat/object.js | 1 + node_modules/daisyui/components/status.css | 1 + .../daisyui/components/status/index.js | 7 + .../daisyui/components/status/object.js | 1 + node_modules/daisyui/components/steps.css | 1 + .../daisyui/components/steps/index.js | 7 + .../daisyui/components/steps/object.js | 1 + node_modules/daisyui/components/swap.css | 1 + node_modules/daisyui/components/swap/index.js | 7 + .../daisyui/components/swap/object.js | 1 + node_modules/daisyui/components/tab.css | 1 + node_modules/daisyui/components/tab/index.js | 7 + node_modules/daisyui/components/tab/object.js | 1 + node_modules/daisyui/components/table.css | 1 + .../daisyui/components/table/index.js | 7 + .../daisyui/components/table/object.js | 1 + node_modules/daisyui/components/textarea.css | 1 + .../daisyui/components/textarea/index.js | 7 + .../daisyui/components/textarea/object.js | 1 + .../daisyui/components/textrotate.css | 1 + .../daisyui/components/textrotate/index.js | 7 + .../daisyui/components/textrotate/object.js | 1 + node_modules/daisyui/components/timeline.css | 1 + .../daisyui/components/timeline/index.js | 7 + .../daisyui/components/timeline/object.js | 1 + node_modules/daisyui/components/toast.css | 1 + .../daisyui/components/toast/index.js | 7 + .../daisyui/components/toast/object.js | 1 + node_modules/daisyui/components/toggle.css | 1 + .../daisyui/components/toggle/index.js | 7 + .../daisyui/components/toggle/object.js | 1 + node_modules/daisyui/components/tooltip.css | 1 + .../daisyui/components/tooltip/index.js | 7 + .../daisyui/components/tooltip/object.js | 1 + node_modules/daisyui/components/validator.css | 1 + .../daisyui/components/validator/index.js | 7 + .../daisyui/components/validator/object.js | 1 + node_modules/daisyui/daisyui.css | 1 + node_modules/daisyui/functions/addPrefix.js | 185 + node_modules/daisyui/functions/plugin.js | 11 + .../daisyui/functions/pluginOptionsHandler.js | 97 + node_modules/daisyui/functions/themeOrder.js | 37 + node_modules/daisyui/functions/variables.js | 29 + node_modules/daisyui/imports.js | 72 + node_modules/daisyui/index.js | 61 + node_modules/daisyui/package.json | 77 + node_modules/daisyui/theme/abyss.css | 31 + node_modules/daisyui/theme/abyss/index.js | 7 + node_modules/daisyui/theme/abyss/object.js | 1 + node_modules/daisyui/theme/acid.css | 31 + node_modules/daisyui/theme/acid/index.js | 7 + node_modules/daisyui/theme/acid/object.js | 1 + node_modules/daisyui/theme/aqua.css | 31 + node_modules/daisyui/theme/aqua/index.js | 7 + node_modules/daisyui/theme/aqua/object.js | 1 + node_modules/daisyui/theme/autumn.css | 31 + node_modules/daisyui/theme/autumn/index.js | 7 + node_modules/daisyui/theme/autumn/object.js | 1 + node_modules/daisyui/theme/black.css | 31 + node_modules/daisyui/theme/black/index.js | 7 + node_modules/daisyui/theme/black/object.js | 1 + node_modules/daisyui/theme/bumblebee.css | 31 + node_modules/daisyui/theme/bumblebee/index.js | 7 + .../daisyui/theme/bumblebee/object.js | 1 + node_modules/daisyui/theme/business.css | 31 + node_modules/daisyui/theme/business/index.js | 7 + node_modules/daisyui/theme/business/object.js | 1 + node_modules/daisyui/theme/caramellatte.css | 31 + .../daisyui/theme/caramellatte/index.js | 7 + .../daisyui/theme/caramellatte/object.js | 1 + node_modules/daisyui/theme/cmyk.css | 31 + node_modules/daisyui/theme/cmyk/index.js | 7 + node_modules/daisyui/theme/cmyk/object.js | 1 + node_modules/daisyui/theme/coffee.css | 31 + node_modules/daisyui/theme/coffee/index.js | 7 + node_modules/daisyui/theme/coffee/object.js | 1 + node_modules/daisyui/theme/corporate.css | 31 + node_modules/daisyui/theme/corporate/index.js | 7 + .../daisyui/theme/corporate/object.js | 1 + node_modules/daisyui/theme/cupcake.css | 31 + node_modules/daisyui/theme/cupcake/index.js | 7 + node_modules/daisyui/theme/cupcake/object.js | 1 + node_modules/daisyui/theme/cyberpunk.css | 31 + node_modules/daisyui/theme/cyberpunk/index.js | 7 + .../daisyui/theme/cyberpunk/object.js | 1 + node_modules/daisyui/theme/dark.css | 31 + node_modules/daisyui/theme/dark/index.js | 7 + node_modules/daisyui/theme/dark/object.js | 1 + node_modules/daisyui/theme/dim.css | 31 + node_modules/daisyui/theme/dim/index.js | 7 + node_modules/daisyui/theme/dim/object.js | 1 + node_modules/daisyui/theme/dracula.css | 31 + node_modules/daisyui/theme/dracula/index.js | 7 + node_modules/daisyui/theme/dracula/object.js | 1 + node_modules/daisyui/theme/emerald.css | 31 + node_modules/daisyui/theme/emerald/index.js | 7 + node_modules/daisyui/theme/emerald/object.js | 1 + node_modules/daisyui/theme/fantasy.css | 31 + node_modules/daisyui/theme/fantasy/index.js | 7 + node_modules/daisyui/theme/fantasy/object.js | 1 + node_modules/daisyui/theme/forest.css | 31 + node_modules/daisyui/theme/forest/index.js | 7 + node_modules/daisyui/theme/forest/object.js | 1 + node_modules/daisyui/theme/garden.css | 31 + node_modules/daisyui/theme/garden/index.js | 7 + node_modules/daisyui/theme/garden/object.js | 1 + node_modules/daisyui/theme/halloween.css | 31 + node_modules/daisyui/theme/halloween/index.js | 7 + .../daisyui/theme/halloween/object.js | 1 + node_modules/daisyui/theme/index.js | 51 + node_modules/daisyui/theme/lemonade.css | 31 + node_modules/daisyui/theme/lemonade/index.js | 7 + node_modules/daisyui/theme/lemonade/object.js | 1 + node_modules/daisyui/theme/light.css | 31 + node_modules/daisyui/theme/light/index.js | 7 + node_modules/daisyui/theme/light/object.js | 1 + node_modules/daisyui/theme/lofi.css | 31 + node_modules/daisyui/theme/lofi/index.js | 7 + node_modules/daisyui/theme/lofi/object.js | 1 + node_modules/daisyui/theme/luxury.css | 31 + node_modules/daisyui/theme/luxury/index.js | 7 + node_modules/daisyui/theme/luxury/object.js | 1 + node_modules/daisyui/theme/night.css | 31 + node_modules/daisyui/theme/night/index.js | 7 + node_modules/daisyui/theme/night/object.js | 1 + node_modules/daisyui/theme/nord.css | 31 + node_modules/daisyui/theme/nord/index.js | 7 + node_modules/daisyui/theme/nord/object.js | 1 + node_modules/daisyui/theme/object.d.ts | 74 + node_modules/daisyui/theme/object.js | 1 + node_modules/daisyui/theme/pastel.css | 31 + node_modules/daisyui/theme/pastel/index.js | 7 + node_modules/daisyui/theme/pastel/object.js | 1 + node_modules/daisyui/theme/retro.css | 31 + node_modules/daisyui/theme/retro/index.js | 7 + node_modules/daisyui/theme/retro/object.js | 1 + node_modules/daisyui/theme/silk.css | 31 + node_modules/daisyui/theme/silk/index.js | 7 + node_modules/daisyui/theme/silk/object.js | 1 + node_modules/daisyui/theme/sunset.css | 31 + node_modules/daisyui/theme/sunset/index.js | 7 + node_modules/daisyui/theme/sunset/object.js | 1 + node_modules/daisyui/theme/synthwave.css | 31 + node_modules/daisyui/theme/synthwave/index.js | 7 + .../daisyui/theme/synthwave/object.js | 1 + node_modules/daisyui/theme/valentine.css | 31 + node_modules/daisyui/theme/valentine/index.js | 7 + .../daisyui/theme/valentine/object.js | 1 + node_modules/daisyui/theme/winter.css | 31 + node_modules/daisyui/theme/winter/index.js | 7 + node_modules/daisyui/theme/winter/object.js | 1 + node_modules/daisyui/theme/wireframe.css | 31 + node_modules/daisyui/theme/wireframe/index.js | 7 + .../daisyui/theme/wireframe/object.js | 1 + node_modules/daisyui/themes.css | 1 + node_modules/daisyui/utilities/glass.css | 1 + node_modules/daisyui/utilities/glass/index.js | 7 + .../daisyui/utilities/glass/object.js | 1 + node_modules/daisyui/utilities/join.css | 1 + node_modules/daisyui/utilities/join/index.js | 7 + node_modules/daisyui/utilities/join/object.js | 1 + node_modules/daisyui/utilities/radius.css | 1 + .../daisyui/utilities/radius/index.js | 7 + .../daisyui/utilities/radius/object.js | 1 + node_modules/daisyui/utilities/typography.css | 1 + .../daisyui/utilities/typography/index.js | 7 + .../daisyui/utilities/typography/object.js | 1 + node_modules/detect-libc/.npmignore | 7 + node_modules/detect-libc/LICENSE | 201 + node_modules/detect-libc/README.md | 78 + node_modules/detect-libc/bin/detect-libc.js | 18 + node_modules/detect-libc/lib/detect-libc.js | 92 + node_modules/detect-libc/package.json | 35 + node_modules/electron-to-chromium/LICENSE | 5 + node_modules/electron-to-chromium/README.md | 186 + .../electron-to-chromium/chromium-versions.js | 84 + .../chromium-versions.json | 1 + .../full-chromium-versions.js | 2626 +++ .../full-chromium-versions.json | 1 + .../electron-to-chromium/full-versions.js | 1682 ++ .../electron-to-chromium/full-versions.json | 1 + node_modules/electron-to-chromium/index.js | 36 + .../electron-to-chromium/package.json | 44 + node_modules/electron-to-chromium/versions.js | 224 + .../electron-to-chromium/versions.json | 1 + node_modules/enhanced-resolve/LICENSE | 20 + node_modules/enhanced-resolve/README.md | 186 + .../enhanced-resolve/lib/AliasFieldPlugin.js | 103 + .../enhanced-resolve/lib/AliasPlugin.js | 176 + .../enhanced-resolve/lib/AppendPlugin.js | 49 + .../lib/CachedInputFileSystem.js | 677 + .../lib/CloneBasenamePlugin.js | 53 + .../enhanced-resolve/lib/ConditionalPlugin.js | 59 + .../lib/DescriptionFilePlugin.js | 98 + .../lib/DescriptionFileUtils.js | 200 + .../lib/DirectoryExistsPlugin.js | 68 + .../lib/ExportsFieldPlugin.js | 201 + .../lib/ExtensionAliasPlugin.js | 100 + .../enhanced-resolve/lib/FileExistsPlugin.js | 61 + .../lib/ImportsFieldPlugin.js | 223 + .../lib/JoinRequestPartPlugin.js | 75 + .../enhanced-resolve/lib/JoinRequestPlugin.js | 45 + .../enhanced-resolve/lib/LogInfoPlugin.js | 58 + .../enhanced-resolve/lib/MainFieldPlugin.js | 87 + .../ModulesInHierachicDirectoriesPlugin.js | 9 + .../ModulesInHierarchicalDirectoriesPlugin.js | 91 + .../lib/ModulesInRootPlugin.js | 49 + .../enhanced-resolve/lib/NextPlugin.js | 33 + .../enhanced-resolve/lib/ParsePlugin.js | 77 + .../enhanced-resolve/lib/PnpPlugin.js | 134 + node_modules/enhanced-resolve/lib/Resolver.js | 799 + .../enhanced-resolve/lib/ResolverFactory.js | 731 + .../lib/RestrictionsPlugin.js | 70 + .../enhanced-resolve/lib/ResultPlugin.js | 43 + .../enhanced-resolve/lib/RootsPlugin.js | 69 + .../lib/SelfReferencePlugin.js | 82 + .../enhanced-resolve/lib/SymlinkPlugin.js | 101 + .../lib/SyncAsyncFileSystemDecorator.js | 258 + .../enhanced-resolve/lib/TryNextPlugin.js | 41 + .../enhanced-resolve/lib/UnsafeCachePlugin.js | 114 + .../enhanced-resolve/lib/UseFilePlugin.js | 55 + .../lib/createInnerContext.js | 46 + .../enhanced-resolve/lib/forEachBail.js | 50 + .../enhanced-resolve/lib/getInnerRequest.js | 39 + node_modules/enhanced-resolve/lib/getPaths.js | 45 + node_modules/enhanced-resolve/lib/index.js | 225 + .../enhanced-resolve/lib/util/entrypoints.js | 574 + .../enhanced-resolve/lib/util/identifier.js | 69 + .../enhanced-resolve/lib/util/memoize.js | 37 + .../lib/util/module-browser.js | 8 + .../enhanced-resolve/lib/util/path.js | 203 + .../lib/util/process-browser.js | 25 + node_modules/enhanced-resolve/package.json | 87 + node_modules/enhanced-resolve/types.d.ts | 1658 ++ node_modules/escalade/dist/index.js | 22 + node_modules/escalade/dist/index.mjs | 22 + node_modules/escalade/index.d.mts | 11 + node_modules/escalade/index.d.ts | 15 + node_modules/escalade/license | 9 + node_modules/escalade/package.json | 74 + node_modules/escalade/readme.md | 211 + node_modules/escalade/sync/index.d.mts | 9 + node_modules/escalade/sync/index.d.ts | 13 + node_modules/escalade/sync/index.js | 18 + node_modules/escalade/sync/index.mjs | 18 + node_modules/fill-range/LICENSE | 21 + node_modules/fill-range/README.md | 237 + node_modules/fill-range/index.js | 248 + node_modules/fill-range/package.json | 74 + node_modules/fraction.js/CHANGELOG.md | 38 + node_modules/fraction.js/LICENSE | 21 + node_modules/fraction.js/README.md | 520 + node_modules/fraction.js/dist/fraction.js | 1045 + node_modules/fraction.js/dist/fraction.min.js | 21 + node_modules/fraction.js/dist/fraction.mjs | 1043 + node_modules/fraction.js/examples/angles.js | 26 + node_modules/fraction.js/examples/approx.js | 54 + node_modules/fraction.js/examples/egyptian.js | 24 + .../fraction.js/examples/hesse-convergence.js | 111 + .../fraction.js/examples/integrate.js | 67 + .../fraction.js/examples/ratio-chain.js | 24 + .../fraction.js/examples/rational-pow.js | 29 + .../fraction.js/examples/tape-measure.js | 16 + .../fraction.js/examples/toFraction.js | 35 + .../fraction.js/examples/valueOfPi.js | 42 + node_modules/fraction.js/fraction.d.mts | 79 + node_modules/fraction.js/fraction.d.ts | 79 + node_modules/fraction.js/package.json | 81 + node_modules/fraction.js/src/fraction.js | 1046 + .../fraction.js/tests/fraction.test.js | 1806 ++ node_modules/graceful-fs/LICENSE | 15 + node_modules/graceful-fs/README.md | 143 + node_modules/graceful-fs/clone.js | 23 + node_modules/graceful-fs/graceful-fs.js | 448 + node_modules/graceful-fs/legacy-streams.js | 118 + node_modules/graceful-fs/package.json | 53 + node_modules/graceful-fs/polyfills.js | 355 + node_modules/is-extglob/LICENSE | 21 + node_modules/is-extglob/README.md | 107 + node_modules/is-extglob/index.js | 20 + node_modules/is-extglob/package.json | 69 + node_modules/is-glob/LICENSE | 21 + node_modules/is-glob/README.md | 206 + node_modules/is-glob/index.js | 150 + node_modules/is-glob/package.json | 81 + node_modules/is-number/LICENSE | 21 + node_modules/is-number/README.md | 187 + node_modules/is-number/index.js | 18 + node_modules/is-number/package.json | 82 + node_modules/jiti/LICENSE | 21 + node_modules/jiti/README.md | 243 + node_modules/jiti/dist/babel.cjs | 246 + node_modules/jiti/dist/jiti.cjs | 1 + node_modules/jiti/lib/jiti-cli.mjs | 34 + node_modules/jiti/lib/jiti-hooks.mjs | 124 + node_modules/jiti/lib/jiti-native.mjs | 121 + node_modules/jiti/lib/jiti-register.d.mts | 1 + node_modules/jiti/lib/jiti-register.mjs | 4 + node_modules/jiti/lib/jiti.cjs | 30 + node_modules/jiti/lib/jiti.d.cts | 8 + node_modules/jiti/lib/jiti.d.mts | 8 + node_modules/jiti/lib/jiti.mjs | 29 + node_modules/jiti/lib/types.d.ts | 363 + node_modules/jiti/package.json | 133 + .../lightningcss-win32-x64-msvc/LICENSE | 373 + .../lightningcss-win32-x64-msvc/README.md | 1 + .../lightningcss.win32-x64-msvc.node | Bin 0 -> 9011712 bytes .../lightningcss-win32-x64-msvc/package.json | 34 + node_modules/lightningcss/LICENSE | 373 + node_modules/lightningcss/README.md | 105 + node_modules/lightningcss/node/ast.d.ts | 9739 +++++++++ node_modules/lightningcss/node/ast.js.flow | 10370 ++++++++++ .../node/browserslistToTargets.js | 48 + .../lightningcss/node/composeVisitors.js | 442 + node_modules/lightningcss/node/flags.js | 28 + node_modules/lightningcss/node/index.d.ts | 477 + node_modules/lightningcss/node/index.js | 28 + node_modules/lightningcss/node/index.js.flow | 824 + node_modules/lightningcss/node/index.mjs | 4 + node_modules/lightningcss/node/targets.d.ts | 40 + .../lightningcss/node/targets.js.flow | 39 + .../node_modules/detect-libc/LICENSE | 201 + .../node_modules/detect-libc/README.md | 163 + .../node_modules/detect-libc/index.d.ts | 14 + .../detect-libc/lib/detect-libc.js | 313 + .../node_modules/detect-libc/lib/elf.js | 39 + .../detect-libc/lib/filesystem.js | 51 + .../node_modules/detect-libc/lib/process.js | 24 + .../node_modules/detect-libc/package.json | 44 + node_modules/lightningcss/package.json | 110 + node_modules/magic-string/LICENSE | 7 + node_modules/magic-string/README.md | 325 + .../magic-string/dist/magic-string.cjs.d.ts | 289 + .../magic-string/dist/magic-string.cjs.js | 1594 ++ .../magic-string/dist/magic-string.cjs.js.map | 1 + .../magic-string/dist/magic-string.es.d.mts | 289 + .../magic-string/dist/magic-string.es.mjs | 1588 ++ .../magic-string/dist/magic-string.es.mjs.map | 1 + .../magic-string/dist/magic-string.umd.js | 1682 ++ .../magic-string/dist/magic-string.umd.js.map | 1 + node_modules/magic-string/package.json | 67 + node_modules/micromatch/LICENSE | 21 + node_modules/micromatch/README.md | 1024 + node_modules/micromatch/index.js | 474 + node_modules/micromatch/package.json | 119 + node_modules/mri/index.d.ts | 21 + node_modules/mri/lib/index.js | 119 + node_modules/mri/lib/index.mjs | 119 + node_modules/mri/license.md | 21 + node_modules/mri/package.json | 43 + node_modules/mri/readme.md | 166 + node_modules/nanoid/LICENSE | 20 + node_modules/nanoid/README.md | 39 + node_modules/nanoid/async/index.browser.cjs | 69 + node_modules/nanoid/async/index.browser.js | 34 + node_modules/nanoid/async/index.cjs | 71 + node_modules/nanoid/async/index.d.ts | 56 + node_modules/nanoid/async/index.js | 35 + node_modules/nanoid/async/index.native.js | 26 + node_modules/nanoid/async/package.json | 12 + node_modules/nanoid/bin/nanoid.cjs | 55 + node_modules/nanoid/index.browser.cjs | 72 + node_modules/nanoid/index.browser.js | 34 + node_modules/nanoid/index.cjs | 85 + node_modules/nanoid/index.d.cts | 91 + node_modules/nanoid/index.d.ts | 91 + node_modules/nanoid/index.js | 45 + node_modules/nanoid/nanoid.js | 1 + node_modules/nanoid/non-secure/index.cjs | 34 + node_modules/nanoid/non-secure/index.d.ts | 33 + node_modules/nanoid/non-secure/index.js | 21 + node_modules/nanoid/non-secure/package.json | 6 + node_modules/nanoid/package.json | 89 + node_modules/nanoid/url-alphabet/index.cjs | 7 + node_modules/nanoid/url-alphabet/index.js | 3 + node_modules/nanoid/url-alphabet/package.json | 6 + node_modules/node-addon-api/LICENSE.md | 9 + node_modules/node-addon-api/README.md | 319 + node_modules/node-addon-api/common.gypi | 20 + node_modules/node-addon-api/except.gypi | 25 + node_modules/node-addon-api/index.js | 12 + .../node-addon-api/napi-inl.deprecated.h | 186 + node_modules/node-addon-api/napi-inl.h | 6607 ++++++ node_modules/node-addon-api/napi.h | 3201 +++ .../node-addon-api/node_addon_api.gyp | 32 + node_modules/node-addon-api/node_api.gyp | 9 + node_modules/node-addon-api/noexcept.gypi | 26 + node_modules/node-addon-api/nothing.c | 0 .../node-addon-api/package-support.json | 21 + node_modules/node-addon-api/package.json | 480 + node_modules/node-addon-api/tools/README.md | 73 + .../node-addon-api/tools/check-napi.js | 99 + .../node-addon-api/tools/clang-format.js | 71 + .../node-addon-api/tools/conversion.js | 301 + .../node-addon-api/tools/eslint-format.js | 79 + node_modules/node-releases/LICENSE | 21 + node_modules/node-releases/README.md | 12 + .../node-releases/data/processed/envs.json | 1 + .../release-schedule/release-schedule.json | 1 + node_modules/node-releases/package.json | 22 + node_modules/normalize-range/index.js | 54 + node_modules/normalize-range/license | 21 + node_modules/normalize-range/package.json | 46 + node_modules/normalize-range/readme.md | 148 + node_modules/picocolors/LICENSE | 15 + node_modules/picocolors/README.md | 21 + node_modules/picocolors/package.json | 25 + node_modules/picocolors/picocolors.browser.js | 4 + node_modules/picocolors/picocolors.d.ts | 5 + node_modules/picocolors/picocolors.js | 75 + node_modules/picocolors/types.d.ts | 51 + node_modules/picomatch/CHANGELOG.md | 136 + node_modules/picomatch/LICENSE | 21 + node_modules/picomatch/README.md | 708 + node_modules/picomatch/index.js | 3 + node_modules/picomatch/lib/constants.js | 179 + node_modules/picomatch/lib/parse.js | 1091 + node_modules/picomatch/lib/picomatch.js | 342 + node_modules/picomatch/lib/scan.js | 391 + node_modules/picomatch/lib/utils.js | 64 + node_modules/picomatch/package.json | 81 + node_modules/postcss-value-parser/LICENSE | 22 + node_modules/postcss-value-parser/README.md | 263 + .../postcss-value-parser/lib/index.d.ts | 177 + .../postcss-value-parser/lib/index.js | 28 + .../postcss-value-parser/lib/parse.js | 321 + .../postcss-value-parser/lib/stringify.js | 48 + node_modules/postcss-value-parser/lib/unit.js | 120 + node_modules/postcss-value-parser/lib/walk.js | 22 + .../postcss-value-parser/package.json | 58 + node_modules/postcss/LICENSE | 20 + node_modules/postcss/README.md | 29 + node_modules/postcss/lib/at-rule.d.ts | 140 + node_modules/postcss/lib/at-rule.js | 25 + node_modules/postcss/lib/comment.d.ts | 68 + node_modules/postcss/lib/comment.js | 13 + node_modules/postcss/lib/container.d.ts | 483 + node_modules/postcss/lib/container.js | 447 + .../postcss/lib/css-syntax-error.d.ts | 248 + node_modules/postcss/lib/css-syntax-error.js | 133 + node_modules/postcss/lib/declaration.d.ts | 151 + node_modules/postcss/lib/declaration.js | 24 + node_modules/postcss/lib/document.d.ts | 69 + node_modules/postcss/lib/document.js | 33 + node_modules/postcss/lib/fromJSON.d.ts | 9 + node_modules/postcss/lib/fromJSON.js | 54 + node_modules/postcss/lib/input.d.ts | 227 + node_modules/postcss/lib/input.js | 265 + node_modules/postcss/lib/lazy-result.d.ts | 190 + node_modules/postcss/lib/lazy-result.js | 550 + node_modules/postcss/lib/list.d.ts | 60 + node_modules/postcss/lib/list.js | 58 + node_modules/postcss/lib/map-generator.js | 368 + node_modules/postcss/lib/no-work-result.d.ts | 46 + node_modules/postcss/lib/no-work-result.js | 138 + node_modules/postcss/lib/node.d.ts | 556 + node_modules/postcss/lib/node.js | 449 + node_modules/postcss/lib/parse.d.ts | 9 + node_modules/postcss/lib/parse.js | 42 + node_modules/postcss/lib/parser.js | 611 + node_modules/postcss/lib/postcss.d.mts | 69 + node_modules/postcss/lib/postcss.d.ts | 458 + node_modules/postcss/lib/postcss.js | 101 + node_modules/postcss/lib/postcss.mjs | 30 + node_modules/postcss/lib/previous-map.d.ts | 81 + node_modules/postcss/lib/previous-map.js | 144 + node_modules/postcss/lib/processor.d.ts | 115 + node_modules/postcss/lib/processor.js | 67 + node_modules/postcss/lib/result.d.ts | 205 + node_modules/postcss/lib/result.js | 42 + node_modules/postcss/lib/root.d.ts | 87 + node_modules/postcss/lib/root.js | 61 + node_modules/postcss/lib/rule.d.ts | 126 + node_modules/postcss/lib/rule.js | 27 + node_modules/postcss/lib/stringifier.d.ts | 46 + node_modules/postcss/lib/stringifier.js | 353 + node_modules/postcss/lib/stringify.d.ts | 9 + node_modules/postcss/lib/stringify.js | 11 + node_modules/postcss/lib/symbols.js | 5 + .../postcss/lib/terminal-highlight.js | 70 + node_modules/postcss/lib/tokenize.js | 266 + node_modules/postcss/lib/warn-once.js | 13 + node_modules/postcss/lib/warning.d.ts | 147 + node_modules/postcss/lib/warning.js | 37 + node_modules/postcss/package.json | 88 + node_modules/source-map-js/LICENSE | 28 + node_modules/source-map-js/README.md | 765 + node_modules/source-map-js/lib/array-set.js | 121 + node_modules/source-map-js/lib/base64-vlq.js | 140 + node_modules/source-map-js/lib/base64.js | 67 + .../source-map-js/lib/binary-search.js | 111 + .../source-map-js/lib/mapping-list.js | 79 + node_modules/source-map-js/lib/quick-sort.js | 132 + .../lib/source-map-consumer.d.ts | 1 + .../source-map-js/lib/source-map-consumer.js | 1188 ++ .../lib/source-map-generator.d.ts | 1 + .../source-map-js/lib/source-map-generator.js | 444 + .../source-map-js/lib/source-node.d.ts | 1 + node_modules/source-map-js/lib/source-node.js | 413 + node_modules/source-map-js/lib/util.js | 594 + node_modules/source-map-js/package.json | 71 + node_modules/source-map-js/source-map.d.ts | 104 + node_modules/source-map-js/source-map.js | 8 + node_modules/tailwindcss/LICENSE | 21 + node_modules/tailwindcss/README.md | 36 + .../tailwindcss/dist/chunk-GFBUASX3.mjs | 1 + .../tailwindcss/dist/chunk-HTB5LLOP.mjs | 1 + .../tailwindcss/dist/chunk-MEY3PWYT.mjs | 38 + .../tailwindcss/dist/colors-b_6i0Oi7.d.ts | 295 + node_modules/tailwindcss/dist/colors.d.mts | 295 + node_modules/tailwindcss/dist/colors.d.ts | 5 + node_modules/tailwindcss/dist/colors.js | 1 + node_modules/tailwindcss/dist/colors.mjs | 1 + .../tailwindcss/dist/default-theme.d.mts | 1147 ++ .../tailwindcss/dist/default-theme.d.ts | 1147 ++ .../tailwindcss/dist/default-theme.js | 1 + .../tailwindcss/dist/default-theme.mjs | 1 + .../dist/flatten-color-palette.d.mts | 6 + .../dist/flatten-color-palette.d.ts | 6 + .../tailwindcss/dist/flatten-color-palette.js | 3 + .../dist/flatten-color-palette.mjs | 1 + node_modules/tailwindcss/dist/lib.d.mts | 377 + node_modules/tailwindcss/dist/lib.d.ts | 3 + node_modules/tailwindcss/dist/lib.js | 38 + node_modules/tailwindcss/dist/lib.mjs | 1 + node_modules/tailwindcss/dist/plugin.d.mts | 11 + node_modules/tailwindcss/dist/plugin.d.ts | 131 + node_modules/tailwindcss/dist/plugin.js | 1 + node_modules/tailwindcss/dist/plugin.mjs | 1 + .../dist/resolve-config-BIFUA2FY.d.ts | 29 + .../dist/resolve-config-QUZ9b-Gn.d.mts | 190 + .../tailwindcss/dist/types-WlZgYgM8.d.mts | 125 + node_modules/tailwindcss/index.css | 896 + node_modules/tailwindcss/package.json | 89 + node_modules/tailwindcss/preflight.css | 393 + node_modules/tailwindcss/theme.css | 462 + node_modules/tailwindcss/utilities.css | 1 + node_modules/tapable/LICENSE | 21 + node_modules/tapable/README.md | 332 + .../tapable/lib/AsyncParallelBailHook.js | 87 + node_modules/tapable/lib/AsyncParallelHook.js | 37 + .../tapable/lib/AsyncSeriesBailHook.js | 42 + node_modules/tapable/lib/AsyncSeriesHook.js | 37 + .../tapable/lib/AsyncSeriesLoopHook.js | 37 + .../tapable/lib/AsyncSeriesWaterfallHook.js | 48 + node_modules/tapable/lib/Hook.js | 183 + node_modules/tapable/lib/HookCodeFactory.js | 454 + node_modules/tapable/lib/HookMap.js | 69 + node_modules/tapable/lib/MultiHook.js | 52 + node_modules/tapable/lib/SyncBailHook.js | 51 + node_modules/tapable/lib/SyncHook.js | 46 + node_modules/tapable/lib/SyncLoopHook.js | 46 + node_modules/tapable/lib/SyncWaterfallHook.js | 58 + node_modules/tapable/lib/index.js | 19 + node_modules/tapable/lib/util-browser.js | 18 + node_modules/tapable/package.json | 60 + node_modules/tapable/tapable.d.ts | 174 + node_modules/to-regex-range/LICENSE | 21 + node_modules/to-regex-range/README.md | 305 + node_modules/to-regex-range/index.js | 288 + node_modules/to-regex-range/package.json | 88 + node_modules/update-browserslist-db/LICENSE | 20 + node_modules/update-browserslist-db/README.md | 30 + .../check-npm-version.js | 17 + node_modules/update-browserslist-db/cli.js | 42 + .../update-browserslist-db/index.d.ts | 6 + node_modules/update-browserslist-db/index.js | 348 + .../update-browserslist-db/package.json | 40 + node_modules/update-browserslist-db/utils.js | 25 + old/assets/images/arrow.png | Bin 0 -> 166 bytes old/assets/images/avatars/1.png | Bin 0 -> 24750 bytes old/assets/images/avatars/10.png | Bin 0 -> 20809 bytes old/assets/images/avatars/2.png | Bin 0 -> 28049 bytes old/assets/images/avatars/3.png | Bin 0 -> 20815 bytes old/assets/images/avatars/4.png | Bin 0 -> 25055 bytes old/assets/images/avatars/5.png | Bin 0 -> 19470 bytes old/assets/images/avatars/6.png | Bin 0 -> 30312 bytes old/assets/images/avatars/7.png | Bin 0 -> 21082 bytes old/assets/images/avatars/8.png | Bin 0 -> 26616 bytes old/assets/images/avatars/9.png | Bin 0 -> 20917 bytes old/assets/images/brand-1.png | Bin 0 -> 4168 bytes old/assets/images/global-sprite.png | Bin 0 -> 26542 bytes old/assets/images/icons/1.png | Bin 0 -> 758 bytes old/assets/images/icons/10.png | Bin 0 -> 934 bytes old/assets/images/icons/11.png | Bin 0 -> 909 bytes old/assets/images/icons/12.png | Bin 0 -> 591 bytes old/assets/images/icons/13.png | Bin 0 -> 1029 bytes old/assets/images/icons/14.png | Bin 0 -> 1047 bytes old/assets/images/icons/15.png | Bin 0 -> 921 bytes old/assets/images/icons/16.png | Bin 0 -> 304 bytes old/assets/images/icons/17.png | Bin 0 -> 693 bytes old/assets/images/icons/18.png | Bin 0 -> 825 bytes old/assets/images/icons/19.png | Bin 0 -> 599 bytes old/assets/images/icons/2.png | Bin 0 -> 673 bytes old/assets/images/icons/20.png | Bin 0 -> 635 bytes old/assets/images/icons/21.png | Bin 0 -> 410 bytes old/assets/images/icons/22.png | Bin 0 -> 382 bytes old/assets/images/icons/23.png | Bin 0 -> 334 bytes old/assets/images/icons/24.png | Bin 0 -> 742 bytes old/assets/images/icons/25.png | Bin 0 -> 516 bytes old/assets/images/icons/26.png | Bin 0 -> 1149 bytes old/assets/images/icons/27.png | Bin 0 -> 712 bytes old/assets/images/icons/28.png | Bin 0 -> 622 bytes old/assets/images/icons/29.png | Bin 0 -> 893 bytes old/assets/images/icons/3.png | Bin 0 -> 456 bytes old/assets/images/icons/30.png | Bin 0 -> 847 bytes old/assets/images/icons/31.png | Bin 0 -> 405 bytes old/assets/images/icons/32.png | Bin 0 -> 541 bytes old/assets/images/icons/4.png | Bin 0 -> 1274 bytes old/assets/images/icons/5.png | Bin 0 -> 889 bytes old/assets/images/icons/6.png | Bin 0 -> 619 bytes old/assets/images/icons/7.png | Bin 0 -> 674 bytes old/assets/images/icons/8.png | Bin 0 -> 1264 bytes old/assets/images/icons/9.png | Bin 0 -> 1273 bytes old/assets/images/image-big.png | Bin 0 -> 48019 bytes old/assets/images/img-product.png | Bin 0 -> 6891 bytes old/assets/images/logo_hura8.png | Bin 0 -> 2723 bytes old/assets/images/logo_new.png | Bin 0 -> 2160 bytes old/assets/images/logo_small.png | Bin 0 -> 416 bytes {assets => old/assets}/script/charts.js | 0 old/assets/script/checkbox.js | 51 + old/assets/script/global.js | 40 + old/assets/script/hura.global.css | 41 + old/assets/script/hura_style.css | 114 + old/assets/script/jquery.js | 2 + old/assets/script/style.css | 16584 ++++++++++++++++ old/assets/typescript/main.js | 65 + old/assets/typescript/main.ts | 76 + old/template/addon/home.html | 1 + old/template/admin/add.html | 106 + old/template/admin/admin_log_product.html | 45 + old/template/admin/department.html | 48 + old/template/admin/department_add.html | 81 + .../admin/department_entity_permission.html | 136 + .../admin/department_menu_permission.html | 135 + old/template/admin/entity_permission.html | 144 + old/template/admin/home.html | 103 + old/template/admin/login_log.html | 40 + old/template/admin/menu_permission.html | 112 + old/template/article/category.html | 163 + old/template/article/form.html | 502 + old/template/article/home.html | 137 + old/template/article/relation.html | 124 + old/template/article/relation_add.html | 70 + old/template/article/relation_product.html | 68 + .../article/relation_product_add.html | 78 + .../article/relation_product_category.html | 53 + .../relation_product_category_add.html | 60 + old/template/article/tag.html | 123 + old/template/banner/home.html | 200 + old/template/banner/location.html | 67 + old/template/banner/location_add.html | 123 + old/template/banner/upload.html | 417 + old/template/customer/comment.html | 211 + old/template/customer/customer_add.html | 175 + old/template/customer/customer_contact.html | 73 + old/template/customer/customer_group.html | 56 + old/template/customer/customer_group_add.html | 75 + .../customer/customer_group_info.html | 75 + .../customer/customer_newsletter.html | 58 + old/template/customer/customer_review.html | 80 + old/template/customer/home.html | 130 + old/template/customer/review.html | 211 + old/template/deal/deal_add.html | 384 + old/template/deal/deal_detail.html | 294 + old/template/deal/home.html | 178 + old/template/deal/upload_deal_excel.html | 127 + old/template/distributor/form.html | 170 + old/template/distributor/home.html | 106 + old/template/home/components/main_stat.html | 210 + old/template/home/home.html | 436 + old/template/javascript/brand.html | 40 + old/template/javascript/edit_template.html | 83 + old/template/javascript/global.html | 0 old/template/javascript/homepage.html | 393 + old/template/javascript/index.html | 61 + old/template/javascript/page.html | 23 + old/template/javascript/product_form.html | 62 + old/template/javascript/product_list.html | 137 + old/template/javascript/shipping2.html | 15 + old/template/javascript/system.html | 73 + old/template/javascript/tag.html | 20 + old/template/javascript/visitor.html | 285 + old/template/job/applicants.html | 97 + old/template/job/applicants_detail.html | 75 + old/template/job/form.html | 305 + old/template/job/home.html | 343 + .../marketing/conditional_promotion.html | 79 + .../marketing/conditional_promotion_add.html | 141 + old/template/marketing/coupon.html | 157 + old/template/marketing/coupon_add.html | 668 + old/template/marketing/coupon_product.html | 116 + old/template/marketing/detail.html | 1 + old/template/marketing/feed.html | 108 + old/template/marketing/feed_add.html | 70 + old/template/marketing/feed_list.html | 113 + old/template/marketing/feed_select.html | 83 + old/template/marketing/home.html | 1 + old/template/marketing/poster_list.html | 45 + old/template/marketing/poster_upload.html | 48 + old/template/marketing/product_offer.html | 63 + old/template/marketing/promotion.html | 95 + old/template/marketing/promotion_add.html | 278 + old/template/marketing/promotion_group.html | 84 + .../marketing/promotion_group_add.html | 187 + .../marketing/promotion_group_product.html | 290 + old/template/marketing/promotion_product.html | 290 + old/template/media/category.html | 52 + old/template/media/home.html | 102 + old/template/media/upload.html | 129 + old/template/module_css/homepage.html | 5 + old/template/module_css/index.html | 5 + old/template/order/bargain.html | 100 + old/template/order/detail.html | 514 + old/template/order/detail_new.html | 0 old/template/order/home.html | 196 + old/template/order/paygate.html | 131 + old/template/order/wait_order.html | 114 + old/template/other/header.html | 409 + old/template/other/topbar.html | 508 + old/template/page/category.html | 82 + old/template/page/category_add.html | 123 + old/template/page/form.html | 156 + old/template/page/home.html | 187 + old/template/payinstall/add_company.html | 50 + old/template/payinstall/add_period.html | 68 + old/template/payinstall/add_upfront.html | 68 + old/template/payinstall/category.html | 58 + old/template/payinstall/home.html | 280 + old/template/payinstall/order.html | 83 + old/template/payinstall/order_detail.html | 91 + old/template/pcbuilder/config_edit.html | 73 + old/template/pcbuilder/home.html | 70 + old/template/pcbuilder/part_relation.html | 138 + old/template/product/addon.html | 57 + old/template/product/addon_add.html | 93 + old/template/product/attribute.html | 95 + old/template/product/attribute_add.html | 212 + old/template/product/brand.html | 99 + old/template/product/brand_add.html | 148 + old/template/product/category.html | 59 + old/template/product/category_form.html | 294 + old/template/product/collection.html | 80 + old/template/product/collection_add.html | 108 + old/template/product/config_group.html | 49 + .../product/config_group_attribute.html | 141 + old/template/product/config_group_form.html | 72 + .../product/config_group_product.html | 89 + old/template/product/form.html | 109 + .../product/form_components/accessory.html | 123 + .../product/form_components/addon.html | 0 .../product/form_components/basic.html | 302 + .../product/form_components/category.html | 43 + .../product/form_components/combo_set.html | 0 .../form_components/combo_set_select.html | 0 .../product/form_components/compatible.html | 0 .../product/form_components/component.html | 0 .../product/form_components/configurable.html | 0 .../form_components/customer_group.html | 0 .../product/form_components/description.html | 27 + .../product/form_components/image.html | 187 + .../product/form_components/instruction.html | 0 .../product/form_components/price.html | 0 .../product/form_components/relation.html | 12 + old/template/product/form_components/seo.html | 76 + .../product/form_components/similar.html | 0 .../product/form_components/spec.html | 0 .../product/form_components/spec_group.html | 137 + .../form_components/spec_multiple.html | 0 .../product/form_components/store.html | 0 old/template/product/form_components/tag.html | 39 + .../product/form_components/variant.html | 139 + .../product/form_components/video.html | 42 + old/template/product/home.html | 333 + old/template/product/list_competitor.html | 130 + old/template/product/set.html | 64 + old/template/product/set_form.html | 320 + old/template/product/set_product.html | 308 + old/template/product/spec_group.html | 49 + old/template/product/spec_group_add.html | 78 + old/template/product/spec_group_info.html | 95 + old/template/report/customer.html | 122 + old/template/report/order.html | 131 + old/template/report/product_buy.html | 101 + old/template/report/product_visit.html | 101 + old/template/report/referer.html | 113 + old/template/report/search.html | 95 + old/template/report/visitor.html | 198 + old/template/shipping2/fee.html | 50 + old/template/shipping2/home.html | 22 + old/template/shipping2/setting.html | 91 + old/template/system/ban_ip.html | 72 + old/template/system/change_info.html | 112 + old/template/system/email.html | 394 + old/template/system/form_setup/general.html | 98 + old/template/system/form_setup/homepage.html | 121 + .../system/form_setup/pro_category.html | 121 + old/template/system/form_setup/product.html | 71 + .../system/form_store_design/background.html | 21 + .../system/form_store_design/header.html | 30 + .../system/form_store_design/other.html | 93 + .../system/form_store_design/popup.html | 57 + old/template/system/pay_method.html | 69 + old/template/system/pay_method_add.html | 96 + old/template/system/print.html | 317 + old/template/system/province_list.html | 78 + old/template/system/settings.html | 168 + old/template/system/setup.html | 58 + old/template/system/ship_method.html | 74 + old/template/system/ship_method_add.html | 104 + old/template/system/shipping.html | 95 + old/template/system/store_address.html | 141 + old/template/system/store_design.html | 63 + old/template/tag/add.html | 82 + old/template/tag/home.html | 79 + old/template/template/add_template.html | 73 + old/template/template/edit_template.html | 227 + old/template/template/home.html | 80 + old/template/template/set.html | 74 + old/template/template/upload_set.html | 54 + old/template/theme.html | 42 + old/template/tool/home.html | 70 + old/template/url/redirect.html | 72 + old/template/url/redirect_form.html | 47 + old/template/url/url_seo.html | 74 + package-lock.json | 1383 ++ package.json | 26 + postcss.config.js | 6 + tailwind.config.js | 19 + template/home/home.html | 70 +- template/javascript/homepage.html | 4 +- template/javascript/index.html | 7 +- template/module_css/homepage.html | 5 + template/module_css/index.html | 5 + template/other/header.html | 42 +- template/theme.html | 20 +- 2211 files changed, 178727 insertions(+), 89 deletions(-) create mode 100644 assets/script/hura-lib.css create mode 100644 assets/script/hura.global.css rename assets/script/{style_hura.css => hura_style.css} (99%) create mode 100644 node_modules/.bin/autoprefixer create mode 100644 node_modules/.bin/autoprefixer.cmd create mode 100644 node_modules/.bin/autoprefixer.ps1 create mode 100644 node_modules/.bin/baseline-browser-mapping create mode 100644 node_modules/.bin/baseline-browser-mapping.cmd create mode 100644 node_modules/.bin/baseline-browser-mapping.ps1 create mode 100644 node_modules/.bin/browserslist create mode 100644 node_modules/.bin/browserslist.cmd create mode 100644 node_modules/.bin/browserslist.ps1 create mode 100644 node_modules/.bin/detect-libc create mode 100644 node_modules/.bin/detect-libc.cmd create mode 100644 node_modules/.bin/detect-libc.ps1 create mode 100644 node_modules/.bin/jiti create mode 100644 node_modules/.bin/jiti.cmd create mode 100644 node_modules/.bin/jiti.ps1 create mode 100644 node_modules/.bin/nanoid create mode 100644 node_modules/.bin/nanoid.cmd create mode 100644 node_modules/.bin/nanoid.ps1 create mode 100644 node_modules/.bin/tailwindcss create mode 100644 node_modules/.bin/tailwindcss.cmd create mode 100644 node_modules/.bin/tailwindcss.ps1 create mode 100644 node_modules/.bin/update-browserslist-db create mode 100644 node_modules/.bin/update-browserslist-db.cmd create mode 100644 node_modules/.bin/update-browserslist-db.ps1 create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/@jridgewell/gen-mapping/LICENSE create mode 100644 node_modules/@jridgewell/gen-mapping/README.md create mode 100644 node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs create mode 100644 node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs.map create mode 100644 node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js create mode 100644 node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js.map create mode 100644 node_modules/@jridgewell/gen-mapping/dist/types/gen-mapping.d.ts create mode 100644 node_modules/@jridgewell/gen-mapping/dist/types/set-array.d.ts create mode 100644 node_modules/@jridgewell/gen-mapping/dist/types/sourcemap-segment.d.ts create mode 100644 node_modules/@jridgewell/gen-mapping/dist/types/types.d.ts create mode 100644 node_modules/@jridgewell/gen-mapping/package.json create mode 100644 node_modules/@jridgewell/gen-mapping/src/gen-mapping.ts create mode 100644 node_modules/@jridgewell/gen-mapping/src/set-array.ts create mode 100644 node_modules/@jridgewell/gen-mapping/src/sourcemap-segment.ts create mode 100644 node_modules/@jridgewell/gen-mapping/src/types.ts create mode 100644 node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.cts create mode 100644 node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.cts.map create mode 100644 node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.mts create mode 100644 node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.mts.map create mode 100644 node_modules/@jridgewell/gen-mapping/types/set-array.d.cts create mode 100644 node_modules/@jridgewell/gen-mapping/types/set-array.d.cts.map create mode 100644 node_modules/@jridgewell/gen-mapping/types/set-array.d.mts create mode 100644 node_modules/@jridgewell/gen-mapping/types/set-array.d.mts.map create mode 100644 node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.cts create mode 100644 node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.cts.map create mode 100644 node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.mts create mode 100644 node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.mts.map create mode 100644 node_modules/@jridgewell/gen-mapping/types/types.d.cts create mode 100644 node_modules/@jridgewell/gen-mapping/types/types.d.cts.map create mode 100644 node_modules/@jridgewell/gen-mapping/types/types.d.mts create mode 100644 node_modules/@jridgewell/gen-mapping/types/types.d.mts.map create mode 100644 node_modules/@jridgewell/remapping/LICENSE create mode 100644 node_modules/@jridgewell/remapping/README.md create mode 100644 node_modules/@jridgewell/remapping/dist/remapping.mjs create mode 100644 node_modules/@jridgewell/remapping/dist/remapping.mjs.map create mode 100644 node_modules/@jridgewell/remapping/dist/remapping.umd.js create mode 100644 node_modules/@jridgewell/remapping/dist/remapping.umd.js.map create mode 100644 node_modules/@jridgewell/remapping/package.json create mode 100644 node_modules/@jridgewell/remapping/src/build-source-map-tree.ts create mode 100644 node_modules/@jridgewell/remapping/src/remapping.ts create mode 100644 node_modules/@jridgewell/remapping/src/source-map-tree.ts create mode 100644 node_modules/@jridgewell/remapping/src/source-map.ts create mode 100644 node_modules/@jridgewell/remapping/src/types.ts create mode 100644 node_modules/@jridgewell/remapping/types/build-source-map-tree.d.cts create mode 100644 node_modules/@jridgewell/remapping/types/build-source-map-tree.d.cts.map create mode 100644 node_modules/@jridgewell/remapping/types/build-source-map-tree.d.mts create mode 100644 node_modules/@jridgewell/remapping/types/build-source-map-tree.d.mts.map create mode 100644 node_modules/@jridgewell/remapping/types/remapping.d.cts create mode 100644 node_modules/@jridgewell/remapping/types/remapping.d.cts.map create mode 100644 node_modules/@jridgewell/remapping/types/remapping.d.mts create mode 100644 node_modules/@jridgewell/remapping/types/remapping.d.mts.map create mode 100644 node_modules/@jridgewell/remapping/types/source-map-tree.d.cts create mode 100644 node_modules/@jridgewell/remapping/types/source-map-tree.d.cts.map create mode 100644 node_modules/@jridgewell/remapping/types/source-map-tree.d.mts create mode 100644 node_modules/@jridgewell/remapping/types/source-map-tree.d.mts.map create mode 100644 node_modules/@jridgewell/remapping/types/source-map.d.cts create mode 100644 node_modules/@jridgewell/remapping/types/source-map.d.cts.map create mode 100644 node_modules/@jridgewell/remapping/types/source-map.d.mts create mode 100644 node_modules/@jridgewell/remapping/types/source-map.d.mts.map create mode 100644 node_modules/@jridgewell/remapping/types/types.d.cts create mode 100644 node_modules/@jridgewell/remapping/types/types.d.cts.map create mode 100644 node_modules/@jridgewell/remapping/types/types.d.mts create mode 100644 node_modules/@jridgewell/remapping/types/types.d.mts.map create mode 100644 node_modules/@jridgewell/resolve-uri/LICENSE create mode 100644 node_modules/@jridgewell/resolve-uri/README.md create mode 100644 node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs create mode 100644 node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map create mode 100644 node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js create mode 100644 node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map create mode 100644 node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts create mode 100644 node_modules/@jridgewell/resolve-uri/package.json create mode 100644 node_modules/@jridgewell/sourcemap-codec/LICENSE create mode 100644 node_modules/@jridgewell/sourcemap-codec/README.md create mode 100644 node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs create mode 100644 node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map create mode 100644 node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js create mode 100644 node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map create mode 100644 node_modules/@jridgewell/sourcemap-codec/package.json create mode 100644 node_modules/@jridgewell/sourcemap-codec/src/scopes.ts create mode 100644 node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts create mode 100644 node_modules/@jridgewell/sourcemap-codec/src/strings.ts create mode 100644 node_modules/@jridgewell/sourcemap-codec/src/vlq.ts create mode 100644 node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts create mode 100644 node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts.map create mode 100644 node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts create mode 100644 node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts.map create mode 100644 node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts create mode 100644 node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts.map create mode 100644 node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts create mode 100644 node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts.map create mode 100644 node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts create mode 100644 node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts.map create mode 100644 node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts create mode 100644 node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts.map create mode 100644 node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts create mode 100644 node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts.map create mode 100644 node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts create mode 100644 node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts.map create mode 100644 node_modules/@jridgewell/trace-mapping/LICENSE create mode 100644 node_modules/@jridgewell/trace-mapping/README.md create mode 100644 node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs create mode 100644 node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs.map create mode 100644 node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js create mode 100644 node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js.map create mode 100644 node_modules/@jridgewell/trace-mapping/package.json create mode 100644 node_modules/@jridgewell/trace-mapping/src/binary-search.ts create mode 100644 node_modules/@jridgewell/trace-mapping/src/by-source.ts create mode 100644 node_modules/@jridgewell/trace-mapping/src/flatten-map.ts create mode 100644 node_modules/@jridgewell/trace-mapping/src/resolve.ts create mode 100644 node_modules/@jridgewell/trace-mapping/src/sort.ts create mode 100644 node_modules/@jridgewell/trace-mapping/src/sourcemap-segment.ts create mode 100644 node_modules/@jridgewell/trace-mapping/src/strip-filename.ts create mode 100644 node_modules/@jridgewell/trace-mapping/src/trace-mapping.ts create mode 100644 node_modules/@jridgewell/trace-mapping/src/types.ts create mode 100644 node_modules/@jridgewell/trace-mapping/types/binary-search.d.cts create mode 100644 node_modules/@jridgewell/trace-mapping/types/binary-search.d.cts.map create mode 100644 node_modules/@jridgewell/trace-mapping/types/binary-search.d.mts create mode 100644 node_modules/@jridgewell/trace-mapping/types/binary-search.d.mts.map create mode 100644 node_modules/@jridgewell/trace-mapping/types/by-source.d.cts create mode 100644 node_modules/@jridgewell/trace-mapping/types/by-source.d.cts.map create mode 100644 node_modules/@jridgewell/trace-mapping/types/by-source.d.mts create mode 100644 node_modules/@jridgewell/trace-mapping/types/by-source.d.mts.map create mode 100644 node_modules/@jridgewell/trace-mapping/types/flatten-map.d.cts create mode 100644 node_modules/@jridgewell/trace-mapping/types/flatten-map.d.cts.map create mode 100644 node_modules/@jridgewell/trace-mapping/types/flatten-map.d.mts create mode 100644 node_modules/@jridgewell/trace-mapping/types/flatten-map.d.mts.map create mode 100644 node_modules/@jridgewell/trace-mapping/types/resolve.d.cts create mode 100644 node_modules/@jridgewell/trace-mapping/types/resolve.d.cts.map create mode 100644 node_modules/@jridgewell/trace-mapping/types/resolve.d.mts create mode 100644 node_modules/@jridgewell/trace-mapping/types/resolve.d.mts.map create mode 100644 node_modules/@jridgewell/trace-mapping/types/sort.d.cts create mode 100644 node_modules/@jridgewell/trace-mapping/types/sort.d.cts.map create mode 100644 node_modules/@jridgewell/trace-mapping/types/sort.d.mts create mode 100644 node_modules/@jridgewell/trace-mapping/types/sort.d.mts.map create mode 100644 node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.cts create mode 100644 node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.cts.map create mode 100644 node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.mts create mode 100644 node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.mts.map create mode 100644 node_modules/@jridgewell/trace-mapping/types/strip-filename.d.cts create mode 100644 node_modules/@jridgewell/trace-mapping/types/strip-filename.d.cts.map create mode 100644 node_modules/@jridgewell/trace-mapping/types/strip-filename.d.mts create mode 100644 node_modules/@jridgewell/trace-mapping/types/strip-filename.d.mts.map create mode 100644 node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.cts create mode 100644 node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.cts.map create mode 100644 node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.mts create mode 100644 node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.mts.map create mode 100644 node_modules/@jridgewell/trace-mapping/types/types.d.cts create mode 100644 node_modules/@jridgewell/trace-mapping/types/types.d.cts.map create mode 100644 node_modules/@jridgewell/trace-mapping/types/types.d.mts create mode 100644 node_modules/@jridgewell/trace-mapping/types/types.d.mts.map create mode 100644 node_modules/@parcel/watcher-win32-x64/LICENSE create mode 100644 node_modules/@parcel/watcher-win32-x64/README.md create mode 100644 node_modules/@parcel/watcher-win32-x64/package.json create mode 100644 node_modules/@parcel/watcher-win32-x64/watcher.node create mode 100644 node_modules/@parcel/watcher/LICENSE create mode 100644 node_modules/@parcel/watcher/README.md create mode 100644 node_modules/@parcel/watcher/binding.gyp create mode 100644 node_modules/@parcel/watcher/index.d.ts create mode 100644 node_modules/@parcel/watcher/index.js create mode 100644 node_modules/@parcel/watcher/index.js.flow create mode 100644 node_modules/@parcel/watcher/package.json create mode 100644 node_modules/@parcel/watcher/scripts/build-from-source.js create mode 100644 node_modules/@parcel/watcher/src/Backend.cc create mode 100644 node_modules/@parcel/watcher/src/Backend.hh create mode 100644 node_modules/@parcel/watcher/src/Debounce.cc create mode 100644 node_modules/@parcel/watcher/src/Debounce.hh create mode 100644 node_modules/@parcel/watcher/src/DirTree.cc create mode 100644 node_modules/@parcel/watcher/src/DirTree.hh create mode 100644 node_modules/@parcel/watcher/src/Event.hh create mode 100644 node_modules/@parcel/watcher/src/Glob.cc create mode 100644 node_modules/@parcel/watcher/src/Glob.hh create mode 100644 node_modules/@parcel/watcher/src/PromiseRunner.hh create mode 100644 node_modules/@parcel/watcher/src/Signal.hh create mode 100644 node_modules/@parcel/watcher/src/Watcher.cc create mode 100644 node_modules/@parcel/watcher/src/Watcher.hh create mode 100644 node_modules/@parcel/watcher/src/binding.cc create mode 100644 node_modules/@parcel/watcher/src/kqueue/KqueueBackend.cc create mode 100644 node_modules/@parcel/watcher/src/kqueue/KqueueBackend.hh create mode 100644 node_modules/@parcel/watcher/src/linux/InotifyBackend.cc create mode 100644 node_modules/@parcel/watcher/src/linux/InotifyBackend.hh create mode 100644 node_modules/@parcel/watcher/src/macos/FSEventsBackend.cc create mode 100644 node_modules/@parcel/watcher/src/macos/FSEventsBackend.hh create mode 100644 node_modules/@parcel/watcher/src/shared/BruteForceBackend.cc create mode 100644 node_modules/@parcel/watcher/src/shared/BruteForceBackend.hh create mode 100644 node_modules/@parcel/watcher/src/unix/fts.cc create mode 100644 node_modules/@parcel/watcher/src/unix/legacy.cc create mode 100644 node_modules/@parcel/watcher/src/wasm/WasmBackend.cc create mode 100644 node_modules/@parcel/watcher/src/wasm/WasmBackend.hh create mode 100644 node_modules/@parcel/watcher/src/wasm/include.h create mode 100644 node_modules/@parcel/watcher/src/watchman/BSER.cc create mode 100644 node_modules/@parcel/watcher/src/watchman/BSER.hh create mode 100644 node_modules/@parcel/watcher/src/watchman/IPC.hh create mode 100644 node_modules/@parcel/watcher/src/watchman/WatchmanBackend.cc create mode 100644 node_modules/@parcel/watcher/src/watchman/WatchmanBackend.hh create mode 100644 node_modules/@parcel/watcher/src/windows/WindowsBackend.cc create mode 100644 node_modules/@parcel/watcher/src/windows/WindowsBackend.hh create mode 100644 node_modules/@parcel/watcher/src/windows/win_utils.cc create mode 100644 node_modules/@parcel/watcher/src/windows/win_utils.hh create mode 100644 node_modules/@parcel/watcher/wrapper.js create mode 100644 node_modules/@tailwindcss/cli/LICENSE create mode 100644 node_modules/@tailwindcss/cli/README.md create mode 100644 node_modules/@tailwindcss/cli/dist/index.mjs create mode 100644 node_modules/@tailwindcss/cli/package.json create mode 100644 node_modules/@tailwindcss/node/LICENSE create mode 100644 node_modules/@tailwindcss/node/README.md create mode 100644 node_modules/@tailwindcss/node/dist/esm-cache.loader.d.mts create mode 100644 node_modules/@tailwindcss/node/dist/esm-cache.loader.mjs create mode 100644 node_modules/@tailwindcss/node/dist/index.d.mts create mode 100644 node_modules/@tailwindcss/node/dist/index.d.ts create mode 100644 node_modules/@tailwindcss/node/dist/index.js create mode 100644 node_modules/@tailwindcss/node/dist/index.mjs create mode 100644 node_modules/@tailwindcss/node/dist/require-cache.d.ts create mode 100644 node_modules/@tailwindcss/node/dist/require-cache.js create mode 100644 node_modules/@tailwindcss/node/package.json create mode 100644 node_modules/@tailwindcss/oxide-win32-x64-msvc/LICENSE create mode 100644 node_modules/@tailwindcss/oxide-win32-x64-msvc/README.md create mode 100644 node_modules/@tailwindcss/oxide-win32-x64-msvc/package.json create mode 100644 node_modules/@tailwindcss/oxide-win32-x64-msvc/tailwindcss-oxide.win32-x64-msvc.node create mode 100644 node_modules/@tailwindcss/oxide/LICENSE create mode 100644 node_modules/@tailwindcss/oxide/index.d.ts create mode 100644 node_modules/@tailwindcss/oxide/index.js create mode 100644 node_modules/@tailwindcss/oxide/package.json create mode 100644 node_modules/autoprefixer/LICENSE create mode 100644 node_modules/autoprefixer/README.md create mode 100644 node_modules/autoprefixer/bin/autoprefixer create mode 100644 node_modules/autoprefixer/data/prefixes.js create mode 100644 node_modules/autoprefixer/lib/at-rule.js create mode 100644 node_modules/autoprefixer/lib/autoprefixer.d.ts create mode 100644 node_modules/autoprefixer/lib/autoprefixer.js create mode 100644 node_modules/autoprefixer/lib/brackets.js create mode 100644 node_modules/autoprefixer/lib/browsers.js create mode 100644 node_modules/autoprefixer/lib/declaration.js create mode 100644 node_modules/autoprefixer/lib/hacks/align-content.js create mode 100644 node_modules/autoprefixer/lib/hacks/align-items.js create mode 100644 node_modules/autoprefixer/lib/hacks/align-self.js create mode 100644 node_modules/autoprefixer/lib/hacks/animation.js create mode 100644 node_modules/autoprefixer/lib/hacks/appearance.js create mode 100644 node_modules/autoprefixer/lib/hacks/autofill.js create mode 100644 node_modules/autoprefixer/lib/hacks/backdrop-filter.js create mode 100644 node_modules/autoprefixer/lib/hacks/background-clip.js create mode 100644 node_modules/autoprefixer/lib/hacks/background-size.js create mode 100644 node_modules/autoprefixer/lib/hacks/block-logical.js create mode 100644 node_modules/autoprefixer/lib/hacks/border-image.js create mode 100644 node_modules/autoprefixer/lib/hacks/border-radius.js create mode 100644 node_modules/autoprefixer/lib/hacks/break-props.js create mode 100644 node_modules/autoprefixer/lib/hacks/cross-fade.js create mode 100644 node_modules/autoprefixer/lib/hacks/display-flex.js create mode 100644 node_modules/autoprefixer/lib/hacks/display-grid.js create mode 100644 node_modules/autoprefixer/lib/hacks/file-selector-button.js create mode 100644 node_modules/autoprefixer/lib/hacks/filter-value.js create mode 100644 node_modules/autoprefixer/lib/hacks/filter.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-basis.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-direction.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-flow.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-grow.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-shrink.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-spec.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-wrap.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex.js create mode 100644 node_modules/autoprefixer/lib/hacks/fullscreen.js create mode 100644 node_modules/autoprefixer/lib/hacks/gradient.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-area.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-column-align.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-end.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-row-align.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-row-column.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-rows-columns.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-start.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-template-areas.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-template.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-utils.js create mode 100644 node_modules/autoprefixer/lib/hacks/image-rendering.js create mode 100644 node_modules/autoprefixer/lib/hacks/image-set.js create mode 100644 node_modules/autoprefixer/lib/hacks/inline-logical.js create mode 100644 node_modules/autoprefixer/lib/hacks/intrinsic.js create mode 100644 node_modules/autoprefixer/lib/hacks/justify-content.js create mode 100644 node_modules/autoprefixer/lib/hacks/mask-border.js create mode 100644 node_modules/autoprefixer/lib/hacks/mask-composite.js create mode 100644 node_modules/autoprefixer/lib/hacks/order.js create mode 100644 node_modules/autoprefixer/lib/hacks/overscroll-behavior.js create mode 100644 node_modules/autoprefixer/lib/hacks/pixelated.js create mode 100644 node_modules/autoprefixer/lib/hacks/place-self.js create mode 100644 node_modules/autoprefixer/lib/hacks/placeholder-shown.js create mode 100644 node_modules/autoprefixer/lib/hacks/placeholder.js create mode 100644 node_modules/autoprefixer/lib/hacks/print-color-adjust.js create mode 100644 node_modules/autoprefixer/lib/hacks/text-decoration-skip-ink.js create mode 100644 node_modules/autoprefixer/lib/hacks/text-decoration.js create mode 100644 node_modules/autoprefixer/lib/hacks/text-emphasis-position.js create mode 100644 node_modules/autoprefixer/lib/hacks/transform-decl.js create mode 100644 node_modules/autoprefixer/lib/hacks/user-select.js create mode 100644 node_modules/autoprefixer/lib/hacks/writing-mode.js create mode 100644 node_modules/autoprefixer/lib/info.js create mode 100644 node_modules/autoprefixer/lib/old-selector.js create mode 100644 node_modules/autoprefixer/lib/old-value.js create mode 100644 node_modules/autoprefixer/lib/prefixer.js create mode 100644 node_modules/autoprefixer/lib/prefixes.js create mode 100644 node_modules/autoprefixer/lib/processor.js create mode 100644 node_modules/autoprefixer/lib/resolution.js create mode 100644 node_modules/autoprefixer/lib/selector.js create mode 100644 node_modules/autoprefixer/lib/supports.js create mode 100644 node_modules/autoprefixer/lib/transition.js create mode 100644 node_modules/autoprefixer/lib/utils.js create mode 100644 node_modules/autoprefixer/lib/value.js create mode 100644 node_modules/autoprefixer/lib/vendor.js create mode 100644 node_modules/autoprefixer/package.json create mode 100644 node_modules/baseline-browser-mapping/LICENSE.txt create mode 100644 node_modules/baseline-browser-mapping/README.md create mode 100644 node_modules/baseline-browser-mapping/dist/cli.js create mode 100644 node_modules/baseline-browser-mapping/dist/index.cjs create mode 100644 node_modules/baseline-browser-mapping/dist/index.d.ts create mode 100644 node_modules/baseline-browser-mapping/dist/index.js create mode 100644 node_modules/baseline-browser-mapping/package.json create mode 100644 node_modules/braces/LICENSE create mode 100644 node_modules/braces/README.md create mode 100644 node_modules/braces/index.js create mode 100644 node_modules/braces/lib/compile.js create mode 100644 node_modules/braces/lib/constants.js create mode 100644 node_modules/braces/lib/expand.js create mode 100644 node_modules/braces/lib/parse.js create mode 100644 node_modules/braces/lib/stringify.js create mode 100644 node_modules/braces/lib/utils.js create mode 100644 node_modules/braces/package.json create mode 100644 node_modules/browserslist/LICENSE create mode 100644 node_modules/browserslist/README.md create mode 100644 node_modules/browserslist/browser.js create mode 100644 node_modules/browserslist/cli.js create mode 100644 node_modules/browserslist/error.d.ts create mode 100644 node_modules/browserslist/error.js create mode 100644 node_modules/browserslist/index.d.ts create mode 100644 node_modules/browserslist/index.js create mode 100644 node_modules/browserslist/node.js create mode 100644 node_modules/browserslist/package.json create mode 100644 node_modules/browserslist/parse.js create mode 100644 node_modules/caniuse-lite/LICENSE create mode 100644 node_modules/caniuse-lite/README.md create mode 100644 node_modules/caniuse-lite/data/agents.js create mode 100644 node_modules/caniuse-lite/data/browserVersions.js create mode 100644 node_modules/caniuse-lite/data/browsers.js create mode 100644 node_modules/caniuse-lite/data/features.js create mode 100644 node_modules/caniuse-lite/data/features/aac.js create mode 100644 node_modules/caniuse-lite/data/features/abortcontroller.js create mode 100644 node_modules/caniuse-lite/data/features/ac3-ec3.js create mode 100644 node_modules/caniuse-lite/data/features/accelerometer.js create mode 100644 node_modules/caniuse-lite/data/features/addeventlistener.js create mode 100644 node_modules/caniuse-lite/data/features/alternate-stylesheet.js create mode 100644 node_modules/caniuse-lite/data/features/ambient-light.js create mode 100644 node_modules/caniuse-lite/data/features/apng.js create mode 100644 node_modules/caniuse-lite/data/features/array-find-index.js create mode 100644 node_modules/caniuse-lite/data/features/array-find.js create mode 100644 node_modules/caniuse-lite/data/features/array-flat.js create mode 100644 node_modules/caniuse-lite/data/features/array-includes.js create mode 100644 node_modules/caniuse-lite/data/features/arrow-functions.js create mode 100644 node_modules/caniuse-lite/data/features/asmjs.js create mode 100644 node_modules/caniuse-lite/data/features/async-clipboard.js create mode 100644 node_modules/caniuse-lite/data/features/async-functions.js create mode 100644 node_modules/caniuse-lite/data/features/atob-btoa.js create mode 100644 node_modules/caniuse-lite/data/features/audio-api.js create mode 100644 node_modules/caniuse-lite/data/features/audio.js create mode 100644 node_modules/caniuse-lite/data/features/audiotracks.js create mode 100644 node_modules/caniuse-lite/data/features/autofocus.js create mode 100644 node_modules/caniuse-lite/data/features/auxclick.js create mode 100644 node_modules/caniuse-lite/data/features/av1.js create mode 100644 node_modules/caniuse-lite/data/features/avif.js create mode 100644 node_modules/caniuse-lite/data/features/background-attachment.js create mode 100644 node_modules/caniuse-lite/data/features/background-clip-text.js create mode 100644 node_modules/caniuse-lite/data/features/background-img-opts.js create mode 100644 node_modules/caniuse-lite/data/features/background-position-x-y.js create mode 100644 node_modules/caniuse-lite/data/features/background-repeat-round-space.js create mode 100644 node_modules/caniuse-lite/data/features/background-sync.js create mode 100644 node_modules/caniuse-lite/data/features/battery-status.js create mode 100644 node_modules/caniuse-lite/data/features/beacon.js create mode 100644 node_modules/caniuse-lite/data/features/beforeafterprint.js create mode 100644 node_modules/caniuse-lite/data/features/bigint.js create mode 100644 node_modules/caniuse-lite/data/features/blobbuilder.js create mode 100644 node_modules/caniuse-lite/data/features/bloburls.js create mode 100644 node_modules/caniuse-lite/data/features/border-image.js create mode 100644 node_modules/caniuse-lite/data/features/border-radius.js create mode 100644 node_modules/caniuse-lite/data/features/broadcastchannel.js create mode 100644 node_modules/caniuse-lite/data/features/brotli.js create mode 100644 node_modules/caniuse-lite/data/features/calc.js create mode 100644 node_modules/caniuse-lite/data/features/canvas-blending.js create mode 100644 node_modules/caniuse-lite/data/features/canvas-text.js create mode 100644 node_modules/caniuse-lite/data/features/canvas.js create mode 100644 node_modules/caniuse-lite/data/features/ch-unit.js create mode 100644 node_modules/caniuse-lite/data/features/chacha20-poly1305.js create mode 100644 node_modules/caniuse-lite/data/features/channel-messaging.js create mode 100644 node_modules/caniuse-lite/data/features/childnode-remove.js create mode 100644 node_modules/caniuse-lite/data/features/classlist.js create mode 100644 node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js create mode 100644 node_modules/caniuse-lite/data/features/clipboard.js create mode 100644 node_modules/caniuse-lite/data/features/colr-v1.js create mode 100644 node_modules/caniuse-lite/data/features/colr.js create mode 100644 node_modules/caniuse-lite/data/features/comparedocumentposition.js create mode 100644 node_modules/caniuse-lite/data/features/console-basic.js create mode 100644 node_modules/caniuse-lite/data/features/console-time.js create mode 100644 node_modules/caniuse-lite/data/features/const.js create mode 100644 node_modules/caniuse-lite/data/features/constraint-validation.js create mode 100644 node_modules/caniuse-lite/data/features/contenteditable.js create mode 100644 node_modules/caniuse-lite/data/features/contentsecuritypolicy.js create mode 100644 node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js create mode 100644 node_modules/caniuse-lite/data/features/cookie-store-api.js create mode 100644 node_modules/caniuse-lite/data/features/cors.js create mode 100644 node_modules/caniuse-lite/data/features/createimagebitmap.js create mode 100644 node_modules/caniuse-lite/data/features/credential-management.js create mode 100644 node_modules/caniuse-lite/data/features/cross-document-view-transitions.js create mode 100644 node_modules/caniuse-lite/data/features/cryptography.js create mode 100644 node_modules/caniuse-lite/data/features/css-all.js create mode 100644 node_modules/caniuse-lite/data/features/css-anchor-positioning.js create mode 100644 node_modules/caniuse-lite/data/features/css-animation.js create mode 100644 node_modules/caniuse-lite/data/features/css-any-link.js create mode 100644 node_modules/caniuse-lite/data/features/css-appearance.js create mode 100644 node_modules/caniuse-lite/data/features/css-at-counter-style.js create mode 100644 node_modules/caniuse-lite/data/features/css-autofill.js create mode 100644 node_modules/caniuse-lite/data/features/css-backdrop-filter.js create mode 100644 node_modules/caniuse-lite/data/features/css-background-offsets.js create mode 100644 node_modules/caniuse-lite/data/features/css-backgroundblendmode.js create mode 100644 node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js create mode 100644 node_modules/caniuse-lite/data/features/css-boxshadow.js create mode 100644 node_modules/caniuse-lite/data/features/css-canvas.js create mode 100644 node_modules/caniuse-lite/data/features/css-caret-color.js create mode 100644 node_modules/caniuse-lite/data/features/css-cascade-layers.js create mode 100644 node_modules/caniuse-lite/data/features/css-cascade-scope.js create mode 100644 node_modules/caniuse-lite/data/features/css-case-insensitive.js create mode 100644 node_modules/caniuse-lite/data/features/css-clip-path.js create mode 100644 node_modules/caniuse-lite/data/features/css-color-adjust.js create mode 100644 node_modules/caniuse-lite/data/features/css-color-function.js create mode 100644 node_modules/caniuse-lite/data/features/css-conic-gradients.js create mode 100644 node_modules/caniuse-lite/data/features/css-container-queries-style.js create mode 100644 node_modules/caniuse-lite/data/features/css-container-queries.js create mode 100644 node_modules/caniuse-lite/data/features/css-container-query-units.js create mode 100644 node_modules/caniuse-lite/data/features/css-containment.js create mode 100644 node_modules/caniuse-lite/data/features/css-content-visibility.js create mode 100644 node_modules/caniuse-lite/data/features/css-counters.js create mode 100644 node_modules/caniuse-lite/data/features/css-crisp-edges.js create mode 100644 node_modules/caniuse-lite/data/features/css-cross-fade.js create mode 100644 node_modules/caniuse-lite/data/features/css-default-pseudo.js create mode 100644 node_modules/caniuse-lite/data/features/css-descendant-gtgt.js create mode 100644 node_modules/caniuse-lite/data/features/css-deviceadaptation.js create mode 100644 node_modules/caniuse-lite/data/features/css-dir-pseudo.js create mode 100644 node_modules/caniuse-lite/data/features/css-display-contents.js create mode 100644 node_modules/caniuse-lite/data/features/css-element-function.js create mode 100644 node_modules/caniuse-lite/data/features/css-env-function.js create mode 100644 node_modules/caniuse-lite/data/features/css-exclusions.js create mode 100644 node_modules/caniuse-lite/data/features/css-featurequeries.js create mode 100644 node_modules/caniuse-lite/data/features/css-file-selector-button.js create mode 100644 node_modules/caniuse-lite/data/features/css-filter-function.js create mode 100644 node_modules/caniuse-lite/data/features/css-filters.js create mode 100644 node_modules/caniuse-lite/data/features/css-first-letter.js create mode 100644 node_modules/caniuse-lite/data/features/css-first-line.js create mode 100644 node_modules/caniuse-lite/data/features/css-fixed.js create mode 100644 node_modules/caniuse-lite/data/features/css-focus-visible.js create mode 100644 node_modules/caniuse-lite/data/features/css-focus-within.js create mode 100644 node_modules/caniuse-lite/data/features/css-font-palette.js create mode 100644 node_modules/caniuse-lite/data/features/css-font-rendering-controls.js create mode 100644 node_modules/caniuse-lite/data/features/css-font-stretch.js create mode 100644 node_modules/caniuse-lite/data/features/css-gencontent.js create mode 100644 node_modules/caniuse-lite/data/features/css-gradients.js create mode 100644 node_modules/caniuse-lite/data/features/css-grid-animation.js create mode 100644 node_modules/caniuse-lite/data/features/css-grid.js create mode 100644 node_modules/caniuse-lite/data/features/css-hanging-punctuation.js create mode 100644 node_modules/caniuse-lite/data/features/css-has.js create mode 100644 node_modules/caniuse-lite/data/features/css-hyphens.js create mode 100644 node_modules/caniuse-lite/data/features/css-if.js create mode 100644 node_modules/caniuse-lite/data/features/css-image-orientation.js create mode 100644 node_modules/caniuse-lite/data/features/css-image-set.js create mode 100644 node_modules/caniuse-lite/data/features/css-in-out-of-range.js create mode 100644 node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js create mode 100644 node_modules/caniuse-lite/data/features/css-initial-letter.js create mode 100644 node_modules/caniuse-lite/data/features/css-initial-value.js create mode 100644 node_modules/caniuse-lite/data/features/css-lch-lab.js create mode 100644 node_modules/caniuse-lite/data/features/css-letter-spacing.js create mode 100644 node_modules/caniuse-lite/data/features/css-line-clamp.js create mode 100644 node_modules/caniuse-lite/data/features/css-logical-props.js create mode 100644 node_modules/caniuse-lite/data/features/css-marker-pseudo.js create mode 100644 node_modules/caniuse-lite/data/features/css-masks.js create mode 100644 node_modules/caniuse-lite/data/features/css-matches-pseudo.js create mode 100644 node_modules/caniuse-lite/data/features/css-math-functions.js create mode 100644 node_modules/caniuse-lite/data/features/css-media-interaction.js create mode 100644 node_modules/caniuse-lite/data/features/css-media-range-syntax.js create mode 100644 node_modules/caniuse-lite/data/features/css-media-resolution.js create mode 100644 node_modules/caniuse-lite/data/features/css-media-scripting.js create mode 100644 node_modules/caniuse-lite/data/features/css-mediaqueries.js create mode 100644 node_modules/caniuse-lite/data/features/css-mixblendmode.js create mode 100644 node_modules/caniuse-lite/data/features/css-module-scripts.js create mode 100644 node_modules/caniuse-lite/data/features/css-motion-paths.js create mode 100644 node_modules/caniuse-lite/data/features/css-namespaces.js create mode 100644 node_modules/caniuse-lite/data/features/css-nesting.js create mode 100644 node_modules/caniuse-lite/data/features/css-not-sel-list.js create mode 100644 node_modules/caniuse-lite/data/features/css-nth-child-of.js create mode 100644 node_modules/caniuse-lite/data/features/css-opacity.js create mode 100644 node_modules/caniuse-lite/data/features/css-optional-pseudo.js create mode 100644 node_modules/caniuse-lite/data/features/css-overflow-anchor.js create mode 100644 node_modules/caniuse-lite/data/features/css-overflow-overlay.js create mode 100644 node_modules/caniuse-lite/data/features/css-overflow.js create mode 100644 node_modules/caniuse-lite/data/features/css-overscroll-behavior.js create mode 100644 node_modules/caniuse-lite/data/features/css-page-break.js create mode 100644 node_modules/caniuse-lite/data/features/css-paged-media.js create mode 100644 node_modules/caniuse-lite/data/features/css-paint-api.js create mode 100644 node_modules/caniuse-lite/data/features/css-placeholder-shown.js create mode 100644 node_modules/caniuse-lite/data/features/css-placeholder.js create mode 100644 node_modules/caniuse-lite/data/features/css-print-color-adjust.js create mode 100644 node_modules/caniuse-lite/data/features/css-read-only-write.js create mode 100644 node_modules/caniuse-lite/data/features/css-rebeccapurple.js create mode 100644 node_modules/caniuse-lite/data/features/css-reflections.js create mode 100644 node_modules/caniuse-lite/data/features/css-regions.js create mode 100644 node_modules/caniuse-lite/data/features/css-relative-colors.js create mode 100644 node_modules/caniuse-lite/data/features/css-repeating-gradients.js create mode 100644 node_modules/caniuse-lite/data/features/css-resize.js create mode 100644 node_modules/caniuse-lite/data/features/css-revert-value.js create mode 100644 node_modules/caniuse-lite/data/features/css-rrggbbaa.js create mode 100644 node_modules/caniuse-lite/data/features/css-scroll-behavior.js create mode 100644 node_modules/caniuse-lite/data/features/css-scrollbar.js create mode 100644 node_modules/caniuse-lite/data/features/css-sel2.js create mode 100644 node_modules/caniuse-lite/data/features/css-sel3.js create mode 100644 node_modules/caniuse-lite/data/features/css-selection.js create mode 100644 node_modules/caniuse-lite/data/features/css-shapes.js create mode 100644 node_modules/caniuse-lite/data/features/css-snappoints.js create mode 100644 node_modules/caniuse-lite/data/features/css-sticky.js create mode 100644 node_modules/caniuse-lite/data/features/css-subgrid.js create mode 100644 node_modules/caniuse-lite/data/features/css-supports-api.js create mode 100644 node_modules/caniuse-lite/data/features/css-table.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-align-last.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-box-trim.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-indent.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-justify.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-orientation.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-spacing.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-wrap-balance.js create mode 100644 node_modules/caniuse-lite/data/features/css-textshadow.js create mode 100644 node_modules/caniuse-lite/data/features/css-touch-action.js create mode 100644 node_modules/caniuse-lite/data/features/css-transitions.js create mode 100644 node_modules/caniuse-lite/data/features/css-unicode-bidi.js create mode 100644 node_modules/caniuse-lite/data/features/css-unset-value.js create mode 100644 node_modules/caniuse-lite/data/features/css-variables.js create mode 100644 node_modules/caniuse-lite/data/features/css-when-else.js create mode 100644 node_modules/caniuse-lite/data/features/css-widows-orphans.js create mode 100644 node_modules/caniuse-lite/data/features/css-width-stretch.js create mode 100644 node_modules/caniuse-lite/data/features/css-writing-mode.js create mode 100644 node_modules/caniuse-lite/data/features/css-zoom.js create mode 100644 node_modules/caniuse-lite/data/features/css3-attr.js create mode 100644 node_modules/caniuse-lite/data/features/css3-boxsizing.js create mode 100644 node_modules/caniuse-lite/data/features/css3-colors.js create mode 100644 node_modules/caniuse-lite/data/features/css3-cursors-grab.js create mode 100644 node_modules/caniuse-lite/data/features/css3-cursors-newer.js create mode 100644 node_modules/caniuse-lite/data/features/css3-cursors.js create mode 100644 node_modules/caniuse-lite/data/features/css3-tabsize.js create mode 100644 node_modules/caniuse-lite/data/features/currentcolor.js create mode 100644 node_modules/caniuse-lite/data/features/custom-elements.js create mode 100644 node_modules/caniuse-lite/data/features/custom-elementsv1.js create mode 100644 node_modules/caniuse-lite/data/features/customevent.js create mode 100644 node_modules/caniuse-lite/data/features/datalist.js create mode 100644 node_modules/caniuse-lite/data/features/dataset.js create mode 100644 node_modules/caniuse-lite/data/features/datauri.js create mode 100644 node_modules/caniuse-lite/data/features/date-tolocaledatestring.js create mode 100644 node_modules/caniuse-lite/data/features/declarative-shadow-dom.js create mode 100644 node_modules/caniuse-lite/data/features/decorators.js create mode 100644 node_modules/caniuse-lite/data/features/details.js create mode 100644 node_modules/caniuse-lite/data/features/deviceorientation.js create mode 100644 node_modules/caniuse-lite/data/features/devicepixelratio.js create mode 100644 node_modules/caniuse-lite/data/features/dialog.js create mode 100644 node_modules/caniuse-lite/data/features/dispatchevent.js create mode 100644 node_modules/caniuse-lite/data/features/dnssec.js create mode 100644 node_modules/caniuse-lite/data/features/do-not-track.js create mode 100644 node_modules/caniuse-lite/data/features/document-currentscript.js create mode 100644 node_modules/caniuse-lite/data/features/document-evaluate-xpath.js create mode 100644 node_modules/caniuse-lite/data/features/document-execcommand.js create mode 100644 node_modules/caniuse-lite/data/features/document-policy.js create mode 100644 node_modules/caniuse-lite/data/features/document-scrollingelement.js create mode 100644 node_modules/caniuse-lite/data/features/documenthead.js create mode 100644 node_modules/caniuse-lite/data/features/dom-manip-convenience.js create mode 100644 node_modules/caniuse-lite/data/features/dom-range.js create mode 100644 node_modules/caniuse-lite/data/features/domcontentloaded.js create mode 100644 node_modules/caniuse-lite/data/features/dommatrix.js create mode 100644 node_modules/caniuse-lite/data/features/download.js create mode 100644 node_modules/caniuse-lite/data/features/dragndrop.js create mode 100644 node_modules/caniuse-lite/data/features/element-closest.js create mode 100644 node_modules/caniuse-lite/data/features/element-from-point.js create mode 100644 node_modules/caniuse-lite/data/features/element-scroll-methods.js create mode 100644 node_modules/caniuse-lite/data/features/eme.js create mode 100644 node_modules/caniuse-lite/data/features/eot.js create mode 100644 node_modules/caniuse-lite/data/features/es5.js create mode 100644 node_modules/caniuse-lite/data/features/es6-class.js create mode 100644 node_modules/caniuse-lite/data/features/es6-generators.js create mode 100644 node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js create mode 100644 node_modules/caniuse-lite/data/features/es6-module.js create mode 100644 node_modules/caniuse-lite/data/features/es6-number.js create mode 100644 node_modules/caniuse-lite/data/features/es6-string-includes.js create mode 100644 node_modules/caniuse-lite/data/features/es6.js create mode 100644 node_modules/caniuse-lite/data/features/eventsource.js create mode 100644 node_modules/caniuse-lite/data/features/extended-system-fonts.js create mode 100644 node_modules/caniuse-lite/data/features/feature-policy.js create mode 100644 node_modules/caniuse-lite/data/features/fetch.js create mode 100644 node_modules/caniuse-lite/data/features/fieldset-disabled.js create mode 100644 node_modules/caniuse-lite/data/features/fileapi.js create mode 100644 node_modules/caniuse-lite/data/features/filereader.js create mode 100644 node_modules/caniuse-lite/data/features/filereadersync.js create mode 100644 node_modules/caniuse-lite/data/features/filesystem.js create mode 100644 node_modules/caniuse-lite/data/features/flac.js create mode 100644 node_modules/caniuse-lite/data/features/flexbox-gap.js create mode 100644 node_modules/caniuse-lite/data/features/flexbox.js create mode 100644 node_modules/caniuse-lite/data/features/flow-root.js create mode 100644 node_modules/caniuse-lite/data/features/focusin-focusout-events.js create mode 100644 node_modules/caniuse-lite/data/features/font-family-system-ui.js create mode 100644 node_modules/caniuse-lite/data/features/font-feature.js create mode 100644 node_modules/caniuse-lite/data/features/font-kerning.js create mode 100644 node_modules/caniuse-lite/data/features/font-loading.js create mode 100644 node_modules/caniuse-lite/data/features/font-size-adjust.js create mode 100644 node_modules/caniuse-lite/data/features/font-smooth.js create mode 100644 node_modules/caniuse-lite/data/features/font-unicode-range.js create mode 100644 node_modules/caniuse-lite/data/features/font-variant-alternates.js create mode 100644 node_modules/caniuse-lite/data/features/font-variant-numeric.js create mode 100644 node_modules/caniuse-lite/data/features/fontface.js create mode 100644 node_modules/caniuse-lite/data/features/form-attribute.js create mode 100644 node_modules/caniuse-lite/data/features/form-submit-attributes.js create mode 100644 node_modules/caniuse-lite/data/features/form-validation.js create mode 100644 node_modules/caniuse-lite/data/features/forms.js create mode 100644 node_modules/caniuse-lite/data/features/fullscreen.js create mode 100644 node_modules/caniuse-lite/data/features/gamepad.js create mode 100644 node_modules/caniuse-lite/data/features/geolocation.js create mode 100644 node_modules/caniuse-lite/data/features/getboundingclientrect.js create mode 100644 node_modules/caniuse-lite/data/features/getcomputedstyle.js create mode 100644 node_modules/caniuse-lite/data/features/getelementsbyclassname.js create mode 100644 node_modules/caniuse-lite/data/features/getrandomvalues.js create mode 100644 node_modules/caniuse-lite/data/features/gyroscope.js create mode 100644 node_modules/caniuse-lite/data/features/hardwareconcurrency.js create mode 100644 node_modules/caniuse-lite/data/features/hashchange.js create mode 100644 node_modules/caniuse-lite/data/features/heif.js create mode 100644 node_modules/caniuse-lite/data/features/hevc.js create mode 100644 node_modules/caniuse-lite/data/features/hidden.js create mode 100644 node_modules/caniuse-lite/data/features/high-resolution-time.js create mode 100644 node_modules/caniuse-lite/data/features/history.js create mode 100644 node_modules/caniuse-lite/data/features/html-media-capture.js create mode 100644 node_modules/caniuse-lite/data/features/html5semantic.js create mode 100644 node_modules/caniuse-lite/data/features/http-live-streaming.js create mode 100644 node_modules/caniuse-lite/data/features/http2.js create mode 100644 node_modules/caniuse-lite/data/features/http3.js create mode 100644 node_modules/caniuse-lite/data/features/iframe-sandbox.js create mode 100644 node_modules/caniuse-lite/data/features/iframe-seamless.js create mode 100644 node_modules/caniuse-lite/data/features/iframe-srcdoc.js create mode 100644 node_modules/caniuse-lite/data/features/imagecapture.js create mode 100644 node_modules/caniuse-lite/data/features/ime.js create mode 100644 node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js create mode 100644 node_modules/caniuse-lite/data/features/import-maps.js create mode 100644 node_modules/caniuse-lite/data/features/imports.js create mode 100644 node_modules/caniuse-lite/data/features/indeterminate-checkbox.js create mode 100644 node_modules/caniuse-lite/data/features/indexeddb.js create mode 100644 node_modules/caniuse-lite/data/features/indexeddb2.js create mode 100644 node_modules/caniuse-lite/data/features/inline-block.js create mode 100644 node_modules/caniuse-lite/data/features/innertext.js create mode 100644 node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js create mode 100644 node_modules/caniuse-lite/data/features/input-color.js create mode 100644 node_modules/caniuse-lite/data/features/input-datetime.js create mode 100644 node_modules/caniuse-lite/data/features/input-email-tel-url.js create mode 100644 node_modules/caniuse-lite/data/features/input-event.js create mode 100644 node_modules/caniuse-lite/data/features/input-file-accept.js create mode 100644 node_modules/caniuse-lite/data/features/input-file-directory.js create mode 100644 node_modules/caniuse-lite/data/features/input-file-multiple.js create mode 100644 node_modules/caniuse-lite/data/features/input-inputmode.js create mode 100644 node_modules/caniuse-lite/data/features/input-minlength.js create mode 100644 node_modules/caniuse-lite/data/features/input-number.js create mode 100644 node_modules/caniuse-lite/data/features/input-pattern.js create mode 100644 node_modules/caniuse-lite/data/features/input-placeholder.js create mode 100644 node_modules/caniuse-lite/data/features/input-range.js create mode 100644 node_modules/caniuse-lite/data/features/input-search.js create mode 100644 node_modules/caniuse-lite/data/features/input-selection.js create mode 100644 node_modules/caniuse-lite/data/features/insert-adjacent.js create mode 100644 node_modules/caniuse-lite/data/features/insertadjacenthtml.js create mode 100644 node_modules/caniuse-lite/data/features/internationalization.js create mode 100644 node_modules/caniuse-lite/data/features/intersectionobserver-v2.js create mode 100644 node_modules/caniuse-lite/data/features/intersectionobserver.js create mode 100644 node_modules/caniuse-lite/data/features/intl-pluralrules.js create mode 100644 node_modules/caniuse-lite/data/features/intrinsic-width.js create mode 100644 node_modules/caniuse-lite/data/features/jpeg2000.js create mode 100644 node_modules/caniuse-lite/data/features/jpegxl.js create mode 100644 node_modules/caniuse-lite/data/features/jpegxr.js create mode 100644 node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js create mode 100644 node_modules/caniuse-lite/data/features/json.js create mode 100644 node_modules/caniuse-lite/data/features/justify-content-space-evenly.js create mode 100644 node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js create mode 100644 node_modules/caniuse-lite/data/features/keyboardevent-charcode.js create mode 100644 node_modules/caniuse-lite/data/features/keyboardevent-code.js create mode 100644 node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js create mode 100644 node_modules/caniuse-lite/data/features/keyboardevent-key.js create mode 100644 node_modules/caniuse-lite/data/features/keyboardevent-location.js create mode 100644 node_modules/caniuse-lite/data/features/keyboardevent-which.js create mode 100644 node_modules/caniuse-lite/data/features/lazyload.js create mode 100644 node_modules/caniuse-lite/data/features/let.js create mode 100644 node_modules/caniuse-lite/data/features/link-icon-png.js create mode 100644 node_modules/caniuse-lite/data/features/link-icon-svg.js create mode 100644 node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js create mode 100644 node_modules/caniuse-lite/data/features/link-rel-modulepreload.js create mode 100644 node_modules/caniuse-lite/data/features/link-rel-preconnect.js create mode 100644 node_modules/caniuse-lite/data/features/link-rel-prefetch.js create mode 100644 node_modules/caniuse-lite/data/features/link-rel-preload.js create mode 100644 node_modules/caniuse-lite/data/features/link-rel-prerender.js create mode 100644 node_modules/caniuse-lite/data/features/loading-lazy-attr.js create mode 100644 node_modules/caniuse-lite/data/features/localecompare.js create mode 100644 node_modules/caniuse-lite/data/features/magnetometer.js create mode 100644 node_modules/caniuse-lite/data/features/matchesselector.js create mode 100644 node_modules/caniuse-lite/data/features/matchmedia.js create mode 100644 node_modules/caniuse-lite/data/features/mathml.js create mode 100644 node_modules/caniuse-lite/data/features/maxlength.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js create mode 100644 node_modules/caniuse-lite/data/features/media-fragments.js create mode 100644 node_modules/caniuse-lite/data/features/mediacapture-fromelement.js create mode 100644 node_modules/caniuse-lite/data/features/mediarecorder.js create mode 100644 node_modules/caniuse-lite/data/features/mediasource.js create mode 100644 node_modules/caniuse-lite/data/features/menu.js create mode 100644 node_modules/caniuse-lite/data/features/meta-theme-color.js create mode 100644 node_modules/caniuse-lite/data/features/meter.js create mode 100644 node_modules/caniuse-lite/data/features/midi.js create mode 100644 node_modules/caniuse-lite/data/features/minmaxwh.js create mode 100644 node_modules/caniuse-lite/data/features/mp3.js create mode 100644 node_modules/caniuse-lite/data/features/mpeg-dash.js create mode 100644 node_modules/caniuse-lite/data/features/mpeg4.js create mode 100644 node_modules/caniuse-lite/data/features/multibackgrounds.js create mode 100644 node_modules/caniuse-lite/data/features/multicolumn.js create mode 100644 node_modules/caniuse-lite/data/features/mutation-events.js create mode 100644 node_modules/caniuse-lite/data/features/mutationobserver.js create mode 100644 node_modules/caniuse-lite/data/features/namevalue-storage.js create mode 100644 node_modules/caniuse-lite/data/features/native-filesystem-api.js create mode 100644 node_modules/caniuse-lite/data/features/nav-timing.js create mode 100644 node_modules/caniuse-lite/data/features/netinfo.js create mode 100644 node_modules/caniuse-lite/data/features/notifications.js create mode 100644 node_modules/caniuse-lite/data/features/object-entries.js create mode 100644 node_modules/caniuse-lite/data/features/object-fit.js create mode 100644 node_modules/caniuse-lite/data/features/object-observe.js create mode 100644 node_modules/caniuse-lite/data/features/object-values.js create mode 100644 node_modules/caniuse-lite/data/features/objectrtc.js create mode 100644 node_modules/caniuse-lite/data/features/offline-apps.js create mode 100644 node_modules/caniuse-lite/data/features/offscreencanvas.js create mode 100644 node_modules/caniuse-lite/data/features/ogg-vorbis.js create mode 100644 node_modules/caniuse-lite/data/features/ogv.js create mode 100644 node_modules/caniuse-lite/data/features/ol-reversed.js create mode 100644 node_modules/caniuse-lite/data/features/once-event-listener.js create mode 100644 node_modules/caniuse-lite/data/features/online-status.js create mode 100644 node_modules/caniuse-lite/data/features/opus.js create mode 100644 node_modules/caniuse-lite/data/features/orientation-sensor.js create mode 100644 node_modules/caniuse-lite/data/features/outline.js create mode 100644 node_modules/caniuse-lite/data/features/pad-start-end.js create mode 100644 node_modules/caniuse-lite/data/features/page-transition-events.js create mode 100644 node_modules/caniuse-lite/data/features/pagevisibility.js create mode 100644 node_modules/caniuse-lite/data/features/passive-event-listener.js create mode 100644 node_modules/caniuse-lite/data/features/passkeys.js create mode 100644 node_modules/caniuse-lite/data/features/passwordrules.js create mode 100644 node_modules/caniuse-lite/data/features/path2d.js create mode 100644 node_modules/caniuse-lite/data/features/payment-request.js create mode 100644 node_modules/caniuse-lite/data/features/pdf-viewer.js create mode 100644 node_modules/caniuse-lite/data/features/permissions-api.js create mode 100644 node_modules/caniuse-lite/data/features/permissions-policy.js create mode 100644 node_modules/caniuse-lite/data/features/picture-in-picture.js create mode 100644 node_modules/caniuse-lite/data/features/picture.js create mode 100644 node_modules/caniuse-lite/data/features/ping.js create mode 100644 node_modules/caniuse-lite/data/features/png-alpha.js create mode 100644 node_modules/caniuse-lite/data/features/pointer-events.js create mode 100644 node_modules/caniuse-lite/data/features/pointer.js create mode 100644 node_modules/caniuse-lite/data/features/pointerlock.js create mode 100644 node_modules/caniuse-lite/data/features/portals.js create mode 100644 node_modules/caniuse-lite/data/features/prefers-color-scheme.js create mode 100644 node_modules/caniuse-lite/data/features/prefers-reduced-motion.js create mode 100644 node_modules/caniuse-lite/data/features/progress.js create mode 100644 node_modules/caniuse-lite/data/features/promise-finally.js create mode 100644 node_modules/caniuse-lite/data/features/promises.js create mode 100644 node_modules/caniuse-lite/data/features/proximity.js create mode 100644 node_modules/caniuse-lite/data/features/proxy.js create mode 100644 node_modules/caniuse-lite/data/features/publickeypinning.js create mode 100644 node_modules/caniuse-lite/data/features/push-api.js create mode 100644 node_modules/caniuse-lite/data/features/queryselector.js create mode 100644 node_modules/caniuse-lite/data/features/readonly-attr.js create mode 100644 node_modules/caniuse-lite/data/features/referrer-policy.js create mode 100644 node_modules/caniuse-lite/data/features/registerprotocolhandler.js create mode 100644 node_modules/caniuse-lite/data/features/rel-noopener.js create mode 100644 node_modules/caniuse-lite/data/features/rel-noreferrer.js create mode 100644 node_modules/caniuse-lite/data/features/rellist.js create mode 100644 node_modules/caniuse-lite/data/features/rem.js create mode 100644 node_modules/caniuse-lite/data/features/requestanimationframe.js create mode 100644 node_modules/caniuse-lite/data/features/requestidlecallback.js create mode 100644 node_modules/caniuse-lite/data/features/resizeobserver.js create mode 100644 node_modules/caniuse-lite/data/features/resource-timing.js create mode 100644 node_modules/caniuse-lite/data/features/rest-parameters.js create mode 100644 node_modules/caniuse-lite/data/features/rtcpeerconnection.js create mode 100644 node_modules/caniuse-lite/data/features/ruby.js create mode 100644 node_modules/caniuse-lite/data/features/run-in.js create mode 100644 node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js create mode 100644 node_modules/caniuse-lite/data/features/screen-orientation.js create mode 100644 node_modules/caniuse-lite/data/features/script-async.js create mode 100644 node_modules/caniuse-lite/data/features/script-defer.js create mode 100644 node_modules/caniuse-lite/data/features/scrollintoview.js create mode 100644 node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js create mode 100644 node_modules/caniuse-lite/data/features/sdch.js create mode 100644 node_modules/caniuse-lite/data/features/selection-api.js create mode 100644 node_modules/caniuse-lite/data/features/selectlist.js create mode 100644 node_modules/caniuse-lite/data/features/server-timing.js create mode 100644 node_modules/caniuse-lite/data/features/serviceworkers.js create mode 100644 node_modules/caniuse-lite/data/features/setimmediate.js create mode 100644 node_modules/caniuse-lite/data/features/shadowdom.js create mode 100644 node_modules/caniuse-lite/data/features/shadowdomv1.js create mode 100644 node_modules/caniuse-lite/data/features/sharedarraybuffer.js create mode 100644 node_modules/caniuse-lite/data/features/sharedworkers.js create mode 100644 node_modules/caniuse-lite/data/features/sni.js create mode 100644 node_modules/caniuse-lite/data/features/spdy.js create mode 100644 node_modules/caniuse-lite/data/features/speech-recognition.js create mode 100644 node_modules/caniuse-lite/data/features/speech-synthesis.js create mode 100644 node_modules/caniuse-lite/data/features/spellcheck-attribute.js create mode 100644 node_modules/caniuse-lite/data/features/sql-storage.js create mode 100644 node_modules/caniuse-lite/data/features/srcset.js create mode 100644 node_modules/caniuse-lite/data/features/stream.js create mode 100644 node_modules/caniuse-lite/data/features/streams.js create mode 100644 node_modules/caniuse-lite/data/features/stricttransportsecurity.js create mode 100644 node_modules/caniuse-lite/data/features/style-scoped.js create mode 100644 node_modules/caniuse-lite/data/features/subresource-bundling.js create mode 100644 node_modules/caniuse-lite/data/features/subresource-integrity.js create mode 100644 node_modules/caniuse-lite/data/features/svg-css.js create mode 100644 node_modules/caniuse-lite/data/features/svg-filters.js create mode 100644 node_modules/caniuse-lite/data/features/svg-fonts.js create mode 100644 node_modules/caniuse-lite/data/features/svg-fragment.js create mode 100644 node_modules/caniuse-lite/data/features/svg-html.js create mode 100644 node_modules/caniuse-lite/data/features/svg-html5.js create mode 100644 node_modules/caniuse-lite/data/features/svg-img.js create mode 100644 node_modules/caniuse-lite/data/features/svg-smil.js create mode 100644 node_modules/caniuse-lite/data/features/svg.js create mode 100644 node_modules/caniuse-lite/data/features/sxg.js create mode 100644 node_modules/caniuse-lite/data/features/tabindex-attr.js create mode 100644 node_modules/caniuse-lite/data/features/template-literals.js create mode 100644 node_modules/caniuse-lite/data/features/template.js create mode 100644 node_modules/caniuse-lite/data/features/temporal.js create mode 100644 node_modules/caniuse-lite/data/features/testfeat.js create mode 100644 node_modules/caniuse-lite/data/features/text-decoration.js create mode 100644 node_modules/caniuse-lite/data/features/text-emphasis.js create mode 100644 node_modules/caniuse-lite/data/features/text-overflow.js create mode 100644 node_modules/caniuse-lite/data/features/text-size-adjust.js create mode 100644 node_modules/caniuse-lite/data/features/text-stroke.js create mode 100644 node_modules/caniuse-lite/data/features/textcontent.js create mode 100644 node_modules/caniuse-lite/data/features/textencoder.js create mode 100644 node_modules/caniuse-lite/data/features/tls1-1.js create mode 100644 node_modules/caniuse-lite/data/features/tls1-2.js create mode 100644 node_modules/caniuse-lite/data/features/tls1-3.js create mode 100644 node_modules/caniuse-lite/data/features/touch.js create mode 100644 node_modules/caniuse-lite/data/features/transforms2d.js create mode 100644 node_modules/caniuse-lite/data/features/transforms3d.js create mode 100644 node_modules/caniuse-lite/data/features/trusted-types.js create mode 100644 node_modules/caniuse-lite/data/features/ttf.js create mode 100644 node_modules/caniuse-lite/data/features/typedarrays.js create mode 100644 node_modules/caniuse-lite/data/features/u2f.js create mode 100644 node_modules/caniuse-lite/data/features/unhandledrejection.js create mode 100644 node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js create mode 100644 node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js create mode 100644 node_modules/caniuse-lite/data/features/url.js create mode 100644 node_modules/caniuse-lite/data/features/urlsearchparams.js create mode 100644 node_modules/caniuse-lite/data/features/use-strict.js create mode 100644 node_modules/caniuse-lite/data/features/user-select-none.js create mode 100644 node_modules/caniuse-lite/data/features/user-timing.js create mode 100644 node_modules/caniuse-lite/data/features/variable-fonts.js create mode 100644 node_modules/caniuse-lite/data/features/vector-effect.js create mode 100644 node_modules/caniuse-lite/data/features/vibration.js create mode 100644 node_modules/caniuse-lite/data/features/video.js create mode 100644 node_modules/caniuse-lite/data/features/videotracks.js create mode 100644 node_modules/caniuse-lite/data/features/view-transitions.js create mode 100644 node_modules/caniuse-lite/data/features/viewport-unit-variants.js create mode 100644 node_modules/caniuse-lite/data/features/viewport-units.js create mode 100644 node_modules/caniuse-lite/data/features/wai-aria.js create mode 100644 node_modules/caniuse-lite/data/features/wake-lock.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-bigint.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-bulk-memory.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-extended-const.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-gc.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-multi-memory.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-multi-value.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-mutable-globals.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-reference-types.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-signext.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-simd.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-tail-calls.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-threads.js create mode 100644 node_modules/caniuse-lite/data/features/wasm.js create mode 100644 node_modules/caniuse-lite/data/features/wav.js create mode 100644 node_modules/caniuse-lite/data/features/wbr-element.js create mode 100644 node_modules/caniuse-lite/data/features/web-animation.js create mode 100644 node_modules/caniuse-lite/data/features/web-app-manifest.js create mode 100644 node_modules/caniuse-lite/data/features/web-bluetooth.js create mode 100644 node_modules/caniuse-lite/data/features/web-serial.js create mode 100644 node_modules/caniuse-lite/data/features/web-share.js create mode 100644 node_modules/caniuse-lite/data/features/webauthn.js create mode 100644 node_modules/caniuse-lite/data/features/webcodecs.js create mode 100644 node_modules/caniuse-lite/data/features/webgl.js create mode 100644 node_modules/caniuse-lite/data/features/webgl2.js create mode 100644 node_modules/caniuse-lite/data/features/webgpu.js create mode 100644 node_modules/caniuse-lite/data/features/webhid.js create mode 100644 node_modules/caniuse-lite/data/features/webkit-user-drag.js create mode 100644 node_modules/caniuse-lite/data/features/webm.js create mode 100644 node_modules/caniuse-lite/data/features/webnfc.js create mode 100644 node_modules/caniuse-lite/data/features/webp.js create mode 100644 node_modules/caniuse-lite/data/features/websockets.js create mode 100644 node_modules/caniuse-lite/data/features/webtransport.js create mode 100644 node_modules/caniuse-lite/data/features/webusb.js create mode 100644 node_modules/caniuse-lite/data/features/webvr.js create mode 100644 node_modules/caniuse-lite/data/features/webvtt.js create mode 100644 node_modules/caniuse-lite/data/features/webworkers.js create mode 100644 node_modules/caniuse-lite/data/features/webxr.js create mode 100644 node_modules/caniuse-lite/data/features/will-change.js create mode 100644 node_modules/caniuse-lite/data/features/woff.js create mode 100644 node_modules/caniuse-lite/data/features/woff2.js create mode 100644 node_modules/caniuse-lite/data/features/word-break.js create mode 100644 node_modules/caniuse-lite/data/features/wordwrap.js create mode 100644 node_modules/caniuse-lite/data/features/x-doc-messaging.js create mode 100644 node_modules/caniuse-lite/data/features/x-frame-options.js create mode 100644 node_modules/caniuse-lite/data/features/xhr2.js create mode 100644 node_modules/caniuse-lite/data/features/xhtml.js create mode 100644 node_modules/caniuse-lite/data/features/xhtmlsmil.js create mode 100644 node_modules/caniuse-lite/data/features/xml-serializer.js create mode 100644 node_modules/caniuse-lite/data/features/zstd.js create mode 100644 node_modules/caniuse-lite/data/regions/AD.js create mode 100644 node_modules/caniuse-lite/data/regions/AE.js create mode 100644 node_modules/caniuse-lite/data/regions/AF.js create mode 100644 node_modules/caniuse-lite/data/regions/AG.js create mode 100644 node_modules/caniuse-lite/data/regions/AI.js create mode 100644 node_modules/caniuse-lite/data/regions/AL.js create mode 100644 node_modules/caniuse-lite/data/regions/AM.js create mode 100644 node_modules/caniuse-lite/data/regions/AO.js create mode 100644 node_modules/caniuse-lite/data/regions/AR.js create mode 100644 node_modules/caniuse-lite/data/regions/AS.js create mode 100644 node_modules/caniuse-lite/data/regions/AT.js create mode 100644 node_modules/caniuse-lite/data/regions/AU.js create mode 100644 node_modules/caniuse-lite/data/regions/AW.js create mode 100644 node_modules/caniuse-lite/data/regions/AX.js create mode 100644 node_modules/caniuse-lite/data/regions/AZ.js create mode 100644 node_modules/caniuse-lite/data/regions/BA.js create mode 100644 node_modules/caniuse-lite/data/regions/BB.js create mode 100644 node_modules/caniuse-lite/data/regions/BD.js create mode 100644 node_modules/caniuse-lite/data/regions/BE.js create mode 100644 node_modules/caniuse-lite/data/regions/BF.js create mode 100644 node_modules/caniuse-lite/data/regions/BG.js create mode 100644 node_modules/caniuse-lite/data/regions/BH.js create mode 100644 node_modules/caniuse-lite/data/regions/BI.js create mode 100644 node_modules/caniuse-lite/data/regions/BJ.js create mode 100644 node_modules/caniuse-lite/data/regions/BM.js create mode 100644 node_modules/caniuse-lite/data/regions/BN.js create mode 100644 node_modules/caniuse-lite/data/regions/BO.js create mode 100644 node_modules/caniuse-lite/data/regions/BR.js create mode 100644 node_modules/caniuse-lite/data/regions/BS.js create mode 100644 node_modules/caniuse-lite/data/regions/BT.js create mode 100644 node_modules/caniuse-lite/data/regions/BW.js create mode 100644 node_modules/caniuse-lite/data/regions/BY.js create mode 100644 node_modules/caniuse-lite/data/regions/BZ.js create mode 100644 node_modules/caniuse-lite/data/regions/CA.js create mode 100644 node_modules/caniuse-lite/data/regions/CD.js create mode 100644 node_modules/caniuse-lite/data/regions/CF.js create mode 100644 node_modules/caniuse-lite/data/regions/CG.js create mode 100644 node_modules/caniuse-lite/data/regions/CH.js create mode 100644 node_modules/caniuse-lite/data/regions/CI.js create mode 100644 node_modules/caniuse-lite/data/regions/CK.js create mode 100644 node_modules/caniuse-lite/data/regions/CL.js create mode 100644 node_modules/caniuse-lite/data/regions/CM.js create mode 100644 node_modules/caniuse-lite/data/regions/CN.js create mode 100644 node_modules/caniuse-lite/data/regions/CO.js create mode 100644 node_modules/caniuse-lite/data/regions/CR.js create mode 100644 node_modules/caniuse-lite/data/regions/CU.js create mode 100644 node_modules/caniuse-lite/data/regions/CV.js create mode 100644 node_modules/caniuse-lite/data/regions/CX.js create mode 100644 node_modules/caniuse-lite/data/regions/CY.js create mode 100644 node_modules/caniuse-lite/data/regions/CZ.js create mode 100644 node_modules/caniuse-lite/data/regions/DE.js create mode 100644 node_modules/caniuse-lite/data/regions/DJ.js create mode 100644 node_modules/caniuse-lite/data/regions/DK.js create mode 100644 node_modules/caniuse-lite/data/regions/DM.js create mode 100644 node_modules/caniuse-lite/data/regions/DO.js create mode 100644 node_modules/caniuse-lite/data/regions/DZ.js create mode 100644 node_modules/caniuse-lite/data/regions/EC.js create mode 100644 node_modules/caniuse-lite/data/regions/EE.js create mode 100644 node_modules/caniuse-lite/data/regions/EG.js create mode 100644 node_modules/caniuse-lite/data/regions/ER.js create mode 100644 node_modules/caniuse-lite/data/regions/ES.js create mode 100644 node_modules/caniuse-lite/data/regions/ET.js create mode 100644 node_modules/caniuse-lite/data/regions/FI.js create mode 100644 node_modules/caniuse-lite/data/regions/FJ.js create mode 100644 node_modules/caniuse-lite/data/regions/FK.js create mode 100644 node_modules/caniuse-lite/data/regions/FM.js create mode 100644 node_modules/caniuse-lite/data/regions/FO.js create mode 100644 node_modules/caniuse-lite/data/regions/FR.js create mode 100644 node_modules/caniuse-lite/data/regions/GA.js create mode 100644 node_modules/caniuse-lite/data/regions/GB.js create mode 100644 node_modules/caniuse-lite/data/regions/GD.js create mode 100644 node_modules/caniuse-lite/data/regions/GE.js create mode 100644 node_modules/caniuse-lite/data/regions/GF.js create mode 100644 node_modules/caniuse-lite/data/regions/GG.js create mode 100644 node_modules/caniuse-lite/data/regions/GH.js create mode 100644 node_modules/caniuse-lite/data/regions/GI.js create mode 100644 node_modules/caniuse-lite/data/regions/GL.js create mode 100644 node_modules/caniuse-lite/data/regions/GM.js create mode 100644 node_modules/caniuse-lite/data/regions/GN.js create mode 100644 node_modules/caniuse-lite/data/regions/GP.js create mode 100644 node_modules/caniuse-lite/data/regions/GQ.js create mode 100644 node_modules/caniuse-lite/data/regions/GR.js create mode 100644 node_modules/caniuse-lite/data/regions/GT.js create mode 100644 node_modules/caniuse-lite/data/regions/GU.js create mode 100644 node_modules/caniuse-lite/data/regions/GW.js create mode 100644 node_modules/caniuse-lite/data/regions/GY.js create mode 100644 node_modules/caniuse-lite/data/regions/HK.js create mode 100644 node_modules/caniuse-lite/data/regions/HN.js create mode 100644 node_modules/caniuse-lite/data/regions/HR.js create mode 100644 node_modules/caniuse-lite/data/regions/HT.js create mode 100644 node_modules/caniuse-lite/data/regions/HU.js create mode 100644 node_modules/caniuse-lite/data/regions/ID.js create mode 100644 node_modules/caniuse-lite/data/regions/IE.js create mode 100644 node_modules/caniuse-lite/data/regions/IL.js create mode 100644 node_modules/caniuse-lite/data/regions/IM.js create mode 100644 node_modules/caniuse-lite/data/regions/IN.js create mode 100644 node_modules/caniuse-lite/data/regions/IQ.js create mode 100644 node_modules/caniuse-lite/data/regions/IR.js create mode 100644 node_modules/caniuse-lite/data/regions/IS.js create mode 100644 node_modules/caniuse-lite/data/regions/IT.js create mode 100644 node_modules/caniuse-lite/data/regions/JE.js create mode 100644 node_modules/caniuse-lite/data/regions/JM.js create mode 100644 node_modules/caniuse-lite/data/regions/JO.js create mode 100644 node_modules/caniuse-lite/data/regions/JP.js create mode 100644 node_modules/caniuse-lite/data/regions/KE.js create mode 100644 node_modules/caniuse-lite/data/regions/KG.js create mode 100644 node_modules/caniuse-lite/data/regions/KH.js create mode 100644 node_modules/caniuse-lite/data/regions/KI.js create mode 100644 node_modules/caniuse-lite/data/regions/KM.js create mode 100644 node_modules/caniuse-lite/data/regions/KN.js create mode 100644 node_modules/caniuse-lite/data/regions/KP.js create mode 100644 node_modules/caniuse-lite/data/regions/KR.js create mode 100644 node_modules/caniuse-lite/data/regions/KW.js create mode 100644 node_modules/caniuse-lite/data/regions/KY.js create mode 100644 node_modules/caniuse-lite/data/regions/KZ.js create mode 100644 node_modules/caniuse-lite/data/regions/LA.js create mode 100644 node_modules/caniuse-lite/data/regions/LB.js create mode 100644 node_modules/caniuse-lite/data/regions/LC.js create mode 100644 node_modules/caniuse-lite/data/regions/LI.js create mode 100644 node_modules/caniuse-lite/data/regions/LK.js create mode 100644 node_modules/caniuse-lite/data/regions/LR.js create mode 100644 node_modules/caniuse-lite/data/regions/LS.js create mode 100644 node_modules/caniuse-lite/data/regions/LT.js create mode 100644 node_modules/caniuse-lite/data/regions/LU.js create mode 100644 node_modules/caniuse-lite/data/regions/LV.js create mode 100644 node_modules/caniuse-lite/data/regions/LY.js create mode 100644 node_modules/caniuse-lite/data/regions/MA.js create mode 100644 node_modules/caniuse-lite/data/regions/MC.js create mode 100644 node_modules/caniuse-lite/data/regions/MD.js create mode 100644 node_modules/caniuse-lite/data/regions/ME.js create mode 100644 node_modules/caniuse-lite/data/regions/MG.js create mode 100644 node_modules/caniuse-lite/data/regions/MH.js create mode 100644 node_modules/caniuse-lite/data/regions/MK.js create mode 100644 node_modules/caniuse-lite/data/regions/ML.js create mode 100644 node_modules/caniuse-lite/data/regions/MM.js create mode 100644 node_modules/caniuse-lite/data/regions/MN.js create mode 100644 node_modules/caniuse-lite/data/regions/MO.js create mode 100644 node_modules/caniuse-lite/data/regions/MP.js create mode 100644 node_modules/caniuse-lite/data/regions/MQ.js create mode 100644 node_modules/caniuse-lite/data/regions/MR.js create mode 100644 node_modules/caniuse-lite/data/regions/MS.js create mode 100644 node_modules/caniuse-lite/data/regions/MT.js create mode 100644 node_modules/caniuse-lite/data/regions/MU.js create mode 100644 node_modules/caniuse-lite/data/regions/MV.js create mode 100644 node_modules/caniuse-lite/data/regions/MW.js create mode 100644 node_modules/caniuse-lite/data/regions/MX.js create mode 100644 node_modules/caniuse-lite/data/regions/MY.js create mode 100644 node_modules/caniuse-lite/data/regions/MZ.js create mode 100644 node_modules/caniuse-lite/data/regions/NA.js create mode 100644 node_modules/caniuse-lite/data/regions/NC.js create mode 100644 node_modules/caniuse-lite/data/regions/NE.js create mode 100644 node_modules/caniuse-lite/data/regions/NF.js create mode 100644 node_modules/caniuse-lite/data/regions/NG.js create mode 100644 node_modules/caniuse-lite/data/regions/NI.js create mode 100644 node_modules/caniuse-lite/data/regions/NL.js create mode 100644 node_modules/caniuse-lite/data/regions/NO.js create mode 100644 node_modules/caniuse-lite/data/regions/NP.js create mode 100644 node_modules/caniuse-lite/data/regions/NR.js create mode 100644 node_modules/caniuse-lite/data/regions/NU.js create mode 100644 node_modules/caniuse-lite/data/regions/NZ.js create mode 100644 node_modules/caniuse-lite/data/regions/OM.js create mode 100644 node_modules/caniuse-lite/data/regions/PA.js create mode 100644 node_modules/caniuse-lite/data/regions/PE.js create mode 100644 node_modules/caniuse-lite/data/regions/PF.js create mode 100644 node_modules/caniuse-lite/data/regions/PG.js create mode 100644 node_modules/caniuse-lite/data/regions/PH.js create mode 100644 node_modules/caniuse-lite/data/regions/PK.js create mode 100644 node_modules/caniuse-lite/data/regions/PL.js create mode 100644 node_modules/caniuse-lite/data/regions/PM.js create mode 100644 node_modules/caniuse-lite/data/regions/PN.js create mode 100644 node_modules/caniuse-lite/data/regions/PR.js create mode 100644 node_modules/caniuse-lite/data/regions/PS.js create mode 100644 node_modules/caniuse-lite/data/regions/PT.js create mode 100644 node_modules/caniuse-lite/data/regions/PW.js create mode 100644 node_modules/caniuse-lite/data/regions/PY.js create mode 100644 node_modules/caniuse-lite/data/regions/QA.js create mode 100644 node_modules/caniuse-lite/data/regions/RE.js create mode 100644 node_modules/caniuse-lite/data/regions/RO.js create mode 100644 node_modules/caniuse-lite/data/regions/RS.js create mode 100644 node_modules/caniuse-lite/data/regions/RU.js create mode 100644 node_modules/caniuse-lite/data/regions/RW.js create mode 100644 node_modules/caniuse-lite/data/regions/SA.js create mode 100644 node_modules/caniuse-lite/data/regions/SB.js create mode 100644 node_modules/caniuse-lite/data/regions/SC.js create mode 100644 node_modules/caniuse-lite/data/regions/SD.js create mode 100644 node_modules/caniuse-lite/data/regions/SE.js create mode 100644 node_modules/caniuse-lite/data/regions/SG.js create mode 100644 node_modules/caniuse-lite/data/regions/SH.js create mode 100644 node_modules/caniuse-lite/data/regions/SI.js create mode 100644 node_modules/caniuse-lite/data/regions/SK.js create mode 100644 node_modules/caniuse-lite/data/regions/SL.js create mode 100644 node_modules/caniuse-lite/data/regions/SM.js create mode 100644 node_modules/caniuse-lite/data/regions/SN.js create mode 100644 node_modules/caniuse-lite/data/regions/SO.js create mode 100644 node_modules/caniuse-lite/data/regions/SR.js create mode 100644 node_modules/caniuse-lite/data/regions/ST.js create mode 100644 node_modules/caniuse-lite/data/regions/SV.js create mode 100644 node_modules/caniuse-lite/data/regions/SY.js create mode 100644 node_modules/caniuse-lite/data/regions/SZ.js create mode 100644 node_modules/caniuse-lite/data/regions/TC.js create mode 100644 node_modules/caniuse-lite/data/regions/TD.js create mode 100644 node_modules/caniuse-lite/data/regions/TG.js create mode 100644 node_modules/caniuse-lite/data/regions/TH.js create mode 100644 node_modules/caniuse-lite/data/regions/TJ.js create mode 100644 node_modules/caniuse-lite/data/regions/TL.js create mode 100644 node_modules/caniuse-lite/data/regions/TM.js create mode 100644 node_modules/caniuse-lite/data/regions/TN.js create mode 100644 node_modules/caniuse-lite/data/regions/TO.js create mode 100644 node_modules/caniuse-lite/data/regions/TR.js create mode 100644 node_modules/caniuse-lite/data/regions/TT.js create mode 100644 node_modules/caniuse-lite/data/regions/TV.js create mode 100644 node_modules/caniuse-lite/data/regions/TW.js create mode 100644 node_modules/caniuse-lite/data/regions/TZ.js create mode 100644 node_modules/caniuse-lite/data/regions/UA.js create mode 100644 node_modules/caniuse-lite/data/regions/UG.js create mode 100644 node_modules/caniuse-lite/data/regions/US.js create mode 100644 node_modules/caniuse-lite/data/regions/UY.js create mode 100644 node_modules/caniuse-lite/data/regions/UZ.js create mode 100644 node_modules/caniuse-lite/data/regions/VA.js create mode 100644 node_modules/caniuse-lite/data/regions/VC.js create mode 100644 node_modules/caniuse-lite/data/regions/VE.js create mode 100644 node_modules/caniuse-lite/data/regions/VG.js create mode 100644 node_modules/caniuse-lite/data/regions/VI.js create mode 100644 node_modules/caniuse-lite/data/regions/VN.js create mode 100644 node_modules/caniuse-lite/data/regions/VU.js create mode 100644 node_modules/caniuse-lite/data/regions/WF.js create mode 100644 node_modules/caniuse-lite/data/regions/WS.js create mode 100644 node_modules/caniuse-lite/data/regions/YE.js create mode 100644 node_modules/caniuse-lite/data/regions/YT.js create mode 100644 node_modules/caniuse-lite/data/regions/ZA.js create mode 100644 node_modules/caniuse-lite/data/regions/ZM.js create mode 100644 node_modules/caniuse-lite/data/regions/ZW.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-af.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-an.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-as.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-eu.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-na.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-oc.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-sa.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-ww.js create mode 100644 node_modules/caniuse-lite/dist/lib/statuses.js create mode 100644 node_modules/caniuse-lite/dist/lib/supported.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/agents.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/browserVersions.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/browsers.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/feature.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/features.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/index.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/region.js create mode 100644 node_modules/caniuse-lite/package.json create mode 100644 node_modules/daisyui/LICENSE create mode 100644 node_modules/daisyui/README.md create mode 100644 node_modules/daisyui/base/properties.css create mode 100644 node_modules/daisyui/base/properties/index.js create mode 100644 node_modules/daisyui/base/properties/object.js create mode 100644 node_modules/daisyui/base/reset.css create mode 100644 node_modules/daisyui/base/rootcolor.css create mode 100644 node_modules/daisyui/base/rootcolor/index.js create mode 100644 node_modules/daisyui/base/rootcolor/object.js create mode 100644 node_modules/daisyui/base/rootscrollgutter.css create mode 100644 node_modules/daisyui/base/rootscrollgutter/index.js create mode 100644 node_modules/daisyui/base/rootscrollgutter/object.js create mode 100644 node_modules/daisyui/base/rootscrolllock.css create mode 100644 node_modules/daisyui/base/rootscrolllock/index.js create mode 100644 node_modules/daisyui/base/rootscrolllock/object.js create mode 100644 node_modules/daisyui/base/scrollbar.css create mode 100644 node_modules/daisyui/base/scrollbar/index.js create mode 100644 node_modules/daisyui/base/scrollbar/object.js create mode 100644 node_modules/daisyui/base/svg.css create mode 100644 node_modules/daisyui/base/svg/index.js create mode 100644 node_modules/daisyui/base/svg/object.js create mode 100644 node_modules/daisyui/chunks.css create mode 100644 node_modules/daisyui/colors/properties-extended.css create mode 100644 node_modules/daisyui/colors/properties.css create mode 100644 node_modules/daisyui/colors/responsive-extended.css create mode 100644 node_modules/daisyui/colors/responsive.css create mode 100644 node_modules/daisyui/colors/states-extended.css create mode 100644 node_modules/daisyui/colors/states.css create mode 100644 node_modules/daisyui/components/alert.css create mode 100644 node_modules/daisyui/components/alert/index.js create mode 100644 node_modules/daisyui/components/alert/object.js create mode 100644 node_modules/daisyui/components/avatar.css create mode 100644 node_modules/daisyui/components/avatar/index.js create mode 100644 node_modules/daisyui/components/avatar/object.js create mode 100644 node_modules/daisyui/components/badge.css create mode 100644 node_modules/daisyui/components/badge/index.js create mode 100644 node_modules/daisyui/components/badge/object.js create mode 100644 node_modules/daisyui/components/breadcrumbs.css create mode 100644 node_modules/daisyui/components/breadcrumbs/index.js create mode 100644 node_modules/daisyui/components/breadcrumbs/object.js create mode 100644 node_modules/daisyui/components/button.css create mode 100644 node_modules/daisyui/components/button/index.js create mode 100644 node_modules/daisyui/components/button/object.js create mode 100644 node_modules/daisyui/components/calendar.css create mode 100644 node_modules/daisyui/components/calendar/index.js create mode 100644 node_modules/daisyui/components/calendar/object.js create mode 100644 node_modules/daisyui/components/card.css create mode 100644 node_modules/daisyui/components/card/index.js create mode 100644 node_modules/daisyui/components/card/object.js create mode 100644 node_modules/daisyui/components/carousel.css create mode 100644 node_modules/daisyui/components/carousel/index.js create mode 100644 node_modules/daisyui/components/carousel/object.js create mode 100644 node_modules/daisyui/components/chat.css create mode 100644 node_modules/daisyui/components/chat/index.js create mode 100644 node_modules/daisyui/components/chat/object.js create mode 100644 node_modules/daisyui/components/checkbox.css create mode 100644 node_modules/daisyui/components/checkbox/index.js create mode 100644 node_modules/daisyui/components/checkbox/object.js create mode 100644 node_modules/daisyui/components/collapse.css create mode 100644 node_modules/daisyui/components/collapse/index.js create mode 100644 node_modules/daisyui/components/collapse/object.js create mode 100644 node_modules/daisyui/components/countdown.css create mode 100644 node_modules/daisyui/components/countdown/index.js create mode 100644 node_modules/daisyui/components/countdown/object.js create mode 100644 node_modules/daisyui/components/diff.css create mode 100644 node_modules/daisyui/components/diff/index.js create mode 100644 node_modules/daisyui/components/diff/object.js create mode 100644 node_modules/daisyui/components/divider.css create mode 100644 node_modules/daisyui/components/divider/index.js create mode 100644 node_modules/daisyui/components/divider/object.js create mode 100644 node_modules/daisyui/components/dock.css create mode 100644 node_modules/daisyui/components/dock/index.js create mode 100644 node_modules/daisyui/components/dock/object.js create mode 100644 node_modules/daisyui/components/drawer.css create mode 100644 node_modules/daisyui/components/drawer/index.js create mode 100644 node_modules/daisyui/components/drawer/object.js create mode 100644 node_modules/daisyui/components/dropdown.css create mode 100644 node_modules/daisyui/components/dropdown/index.js create mode 100644 node_modules/daisyui/components/dropdown/object.js create mode 100644 node_modules/daisyui/components/fab.css create mode 100644 node_modules/daisyui/components/fab/index.js create mode 100644 node_modules/daisyui/components/fab/object.js create mode 100644 node_modules/daisyui/components/fieldset.css create mode 100644 node_modules/daisyui/components/fieldset/index.js create mode 100644 node_modules/daisyui/components/fieldset/object.js create mode 100644 node_modules/daisyui/components/fileinput.css create mode 100644 node_modules/daisyui/components/fileinput/index.js create mode 100644 node_modules/daisyui/components/fileinput/object.js create mode 100644 node_modules/daisyui/components/filter.css create mode 100644 node_modules/daisyui/components/filter/index.js create mode 100644 node_modules/daisyui/components/filter/object.js create mode 100644 node_modules/daisyui/components/footer.css create mode 100644 node_modules/daisyui/components/footer/index.js create mode 100644 node_modules/daisyui/components/footer/object.js create mode 100644 node_modules/daisyui/components/hero.css create mode 100644 node_modules/daisyui/components/hero/index.js create mode 100644 node_modules/daisyui/components/hero/object.js create mode 100644 node_modules/daisyui/components/hover3d.css create mode 100644 node_modules/daisyui/components/hover3d/index.js create mode 100644 node_modules/daisyui/components/hover3d/object.js create mode 100644 node_modules/daisyui/components/hovergallery.css create mode 100644 node_modules/daisyui/components/hovergallery/index.js create mode 100644 node_modules/daisyui/components/hovergallery/object.js create mode 100644 node_modules/daisyui/components/indicator.css create mode 100644 node_modules/daisyui/components/indicator/index.js create mode 100644 node_modules/daisyui/components/indicator/object.js create mode 100644 node_modules/daisyui/components/input.css create mode 100644 node_modules/daisyui/components/input/index.js create mode 100644 node_modules/daisyui/components/input/object.js create mode 100644 node_modules/daisyui/components/kbd.css create mode 100644 node_modules/daisyui/components/kbd/index.js create mode 100644 node_modules/daisyui/components/kbd/object.js create mode 100644 node_modules/daisyui/components/label.css create mode 100644 node_modules/daisyui/components/label/index.js create mode 100644 node_modules/daisyui/components/label/object.js create mode 100644 node_modules/daisyui/components/link.css create mode 100644 node_modules/daisyui/components/link/index.js create mode 100644 node_modules/daisyui/components/link/object.js create mode 100644 node_modules/daisyui/components/list.css create mode 100644 node_modules/daisyui/components/list/index.js create mode 100644 node_modules/daisyui/components/list/object.js create mode 100644 node_modules/daisyui/components/loading.css create mode 100644 node_modules/daisyui/components/loading/index.js create mode 100644 node_modules/daisyui/components/loading/object.js create mode 100644 node_modules/daisyui/components/mask.css create mode 100644 node_modules/daisyui/components/mask/index.js create mode 100644 node_modules/daisyui/components/mask/object.js create mode 100644 node_modules/daisyui/components/menu.css create mode 100644 node_modules/daisyui/components/menu/index.js create mode 100644 node_modules/daisyui/components/menu/object.js create mode 100644 node_modules/daisyui/components/mockup.css create mode 100644 node_modules/daisyui/components/mockup/index.js create mode 100644 node_modules/daisyui/components/mockup/object.js create mode 100644 node_modules/daisyui/components/modal.css create mode 100644 node_modules/daisyui/components/modal/index.js create mode 100644 node_modules/daisyui/components/modal/object.js create mode 100644 node_modules/daisyui/components/navbar.css create mode 100644 node_modules/daisyui/components/navbar/index.js create mode 100644 node_modules/daisyui/components/navbar/object.js create mode 100644 node_modules/daisyui/components/progress.css create mode 100644 node_modules/daisyui/components/progress/index.js create mode 100644 node_modules/daisyui/components/progress/object.js create mode 100644 node_modules/daisyui/components/radialprogress.css create mode 100644 node_modules/daisyui/components/radialprogress/index.js create mode 100644 node_modules/daisyui/components/radialprogress/object.js create mode 100644 node_modules/daisyui/components/radio.css create mode 100644 node_modules/daisyui/components/radio/index.js create mode 100644 node_modules/daisyui/components/radio/object.js create mode 100644 node_modules/daisyui/components/range.css create mode 100644 node_modules/daisyui/components/range/index.js create mode 100644 node_modules/daisyui/components/range/object.js create mode 100644 node_modules/daisyui/components/rating.css create mode 100644 node_modules/daisyui/components/rating/index.js create mode 100644 node_modules/daisyui/components/rating/object.js create mode 100644 node_modules/daisyui/components/select.css create mode 100644 node_modules/daisyui/components/select/index.js create mode 100644 node_modules/daisyui/components/select/object.js create mode 100644 node_modules/daisyui/components/skeleton.css create mode 100644 node_modules/daisyui/components/skeleton/index.js create mode 100644 node_modules/daisyui/components/skeleton/object.js create mode 100644 node_modules/daisyui/components/stack.css create mode 100644 node_modules/daisyui/components/stack/index.js create mode 100644 node_modules/daisyui/components/stack/object.js create mode 100644 node_modules/daisyui/components/stat.css create mode 100644 node_modules/daisyui/components/stat/index.js create mode 100644 node_modules/daisyui/components/stat/object.js create mode 100644 node_modules/daisyui/components/status.css create mode 100644 node_modules/daisyui/components/status/index.js create mode 100644 node_modules/daisyui/components/status/object.js create mode 100644 node_modules/daisyui/components/steps.css create mode 100644 node_modules/daisyui/components/steps/index.js create mode 100644 node_modules/daisyui/components/steps/object.js create mode 100644 node_modules/daisyui/components/swap.css create mode 100644 node_modules/daisyui/components/swap/index.js create mode 100644 node_modules/daisyui/components/swap/object.js create mode 100644 node_modules/daisyui/components/tab.css create mode 100644 node_modules/daisyui/components/tab/index.js create mode 100644 node_modules/daisyui/components/tab/object.js create mode 100644 node_modules/daisyui/components/table.css create mode 100644 node_modules/daisyui/components/table/index.js create mode 100644 node_modules/daisyui/components/table/object.js create mode 100644 node_modules/daisyui/components/textarea.css create mode 100644 node_modules/daisyui/components/textarea/index.js create mode 100644 node_modules/daisyui/components/textarea/object.js create mode 100644 node_modules/daisyui/components/textrotate.css create mode 100644 node_modules/daisyui/components/textrotate/index.js create mode 100644 node_modules/daisyui/components/textrotate/object.js create mode 100644 node_modules/daisyui/components/timeline.css create mode 100644 node_modules/daisyui/components/timeline/index.js create mode 100644 node_modules/daisyui/components/timeline/object.js create mode 100644 node_modules/daisyui/components/toast.css create mode 100644 node_modules/daisyui/components/toast/index.js create mode 100644 node_modules/daisyui/components/toast/object.js create mode 100644 node_modules/daisyui/components/toggle.css create mode 100644 node_modules/daisyui/components/toggle/index.js create mode 100644 node_modules/daisyui/components/toggle/object.js create mode 100644 node_modules/daisyui/components/tooltip.css create mode 100644 node_modules/daisyui/components/tooltip/index.js create mode 100644 node_modules/daisyui/components/tooltip/object.js create mode 100644 node_modules/daisyui/components/validator.css create mode 100644 node_modules/daisyui/components/validator/index.js create mode 100644 node_modules/daisyui/components/validator/object.js create mode 100644 node_modules/daisyui/daisyui.css create mode 100644 node_modules/daisyui/functions/addPrefix.js create mode 100644 node_modules/daisyui/functions/plugin.js create mode 100644 node_modules/daisyui/functions/pluginOptionsHandler.js create mode 100644 node_modules/daisyui/functions/themeOrder.js create mode 100644 node_modules/daisyui/functions/variables.js create mode 100644 node_modules/daisyui/imports.js create mode 100644 node_modules/daisyui/index.js create mode 100644 node_modules/daisyui/package.json create mode 100644 node_modules/daisyui/theme/abyss.css create mode 100644 node_modules/daisyui/theme/abyss/index.js create mode 100644 node_modules/daisyui/theme/abyss/object.js create mode 100644 node_modules/daisyui/theme/acid.css create mode 100644 node_modules/daisyui/theme/acid/index.js create mode 100644 node_modules/daisyui/theme/acid/object.js create mode 100644 node_modules/daisyui/theme/aqua.css create mode 100644 node_modules/daisyui/theme/aqua/index.js create mode 100644 node_modules/daisyui/theme/aqua/object.js create mode 100644 node_modules/daisyui/theme/autumn.css create mode 100644 node_modules/daisyui/theme/autumn/index.js create mode 100644 node_modules/daisyui/theme/autumn/object.js create mode 100644 node_modules/daisyui/theme/black.css create mode 100644 node_modules/daisyui/theme/black/index.js create mode 100644 node_modules/daisyui/theme/black/object.js create mode 100644 node_modules/daisyui/theme/bumblebee.css create mode 100644 node_modules/daisyui/theme/bumblebee/index.js create mode 100644 node_modules/daisyui/theme/bumblebee/object.js create mode 100644 node_modules/daisyui/theme/business.css create mode 100644 node_modules/daisyui/theme/business/index.js create mode 100644 node_modules/daisyui/theme/business/object.js create mode 100644 node_modules/daisyui/theme/caramellatte.css create mode 100644 node_modules/daisyui/theme/caramellatte/index.js create mode 100644 node_modules/daisyui/theme/caramellatte/object.js create mode 100644 node_modules/daisyui/theme/cmyk.css create mode 100644 node_modules/daisyui/theme/cmyk/index.js create mode 100644 node_modules/daisyui/theme/cmyk/object.js create mode 100644 node_modules/daisyui/theme/coffee.css create mode 100644 node_modules/daisyui/theme/coffee/index.js create mode 100644 node_modules/daisyui/theme/coffee/object.js create mode 100644 node_modules/daisyui/theme/corporate.css create mode 100644 node_modules/daisyui/theme/corporate/index.js create mode 100644 node_modules/daisyui/theme/corporate/object.js create mode 100644 node_modules/daisyui/theme/cupcake.css create mode 100644 node_modules/daisyui/theme/cupcake/index.js create mode 100644 node_modules/daisyui/theme/cupcake/object.js create mode 100644 node_modules/daisyui/theme/cyberpunk.css create mode 100644 node_modules/daisyui/theme/cyberpunk/index.js create mode 100644 node_modules/daisyui/theme/cyberpunk/object.js create mode 100644 node_modules/daisyui/theme/dark.css create mode 100644 node_modules/daisyui/theme/dark/index.js create mode 100644 node_modules/daisyui/theme/dark/object.js create mode 100644 node_modules/daisyui/theme/dim.css create mode 100644 node_modules/daisyui/theme/dim/index.js create mode 100644 node_modules/daisyui/theme/dim/object.js create mode 100644 node_modules/daisyui/theme/dracula.css create mode 100644 node_modules/daisyui/theme/dracula/index.js create mode 100644 node_modules/daisyui/theme/dracula/object.js create mode 100644 node_modules/daisyui/theme/emerald.css create mode 100644 node_modules/daisyui/theme/emerald/index.js create mode 100644 node_modules/daisyui/theme/emerald/object.js create mode 100644 node_modules/daisyui/theme/fantasy.css create mode 100644 node_modules/daisyui/theme/fantasy/index.js create mode 100644 node_modules/daisyui/theme/fantasy/object.js create mode 100644 node_modules/daisyui/theme/forest.css create mode 100644 node_modules/daisyui/theme/forest/index.js create mode 100644 node_modules/daisyui/theme/forest/object.js create mode 100644 node_modules/daisyui/theme/garden.css create mode 100644 node_modules/daisyui/theme/garden/index.js create mode 100644 node_modules/daisyui/theme/garden/object.js create mode 100644 node_modules/daisyui/theme/halloween.css create mode 100644 node_modules/daisyui/theme/halloween/index.js create mode 100644 node_modules/daisyui/theme/halloween/object.js create mode 100644 node_modules/daisyui/theme/index.js create mode 100644 node_modules/daisyui/theme/lemonade.css create mode 100644 node_modules/daisyui/theme/lemonade/index.js create mode 100644 node_modules/daisyui/theme/lemonade/object.js create mode 100644 node_modules/daisyui/theme/light.css create mode 100644 node_modules/daisyui/theme/light/index.js create mode 100644 node_modules/daisyui/theme/light/object.js create mode 100644 node_modules/daisyui/theme/lofi.css create mode 100644 node_modules/daisyui/theme/lofi/index.js create mode 100644 node_modules/daisyui/theme/lofi/object.js create mode 100644 node_modules/daisyui/theme/luxury.css create mode 100644 node_modules/daisyui/theme/luxury/index.js create mode 100644 node_modules/daisyui/theme/luxury/object.js create mode 100644 node_modules/daisyui/theme/night.css create mode 100644 node_modules/daisyui/theme/night/index.js create mode 100644 node_modules/daisyui/theme/night/object.js create mode 100644 node_modules/daisyui/theme/nord.css create mode 100644 node_modules/daisyui/theme/nord/index.js create mode 100644 node_modules/daisyui/theme/nord/object.js create mode 100644 node_modules/daisyui/theme/object.d.ts create mode 100644 node_modules/daisyui/theme/object.js create mode 100644 node_modules/daisyui/theme/pastel.css create mode 100644 node_modules/daisyui/theme/pastel/index.js create mode 100644 node_modules/daisyui/theme/pastel/object.js create mode 100644 node_modules/daisyui/theme/retro.css create mode 100644 node_modules/daisyui/theme/retro/index.js create mode 100644 node_modules/daisyui/theme/retro/object.js create mode 100644 node_modules/daisyui/theme/silk.css create mode 100644 node_modules/daisyui/theme/silk/index.js create mode 100644 node_modules/daisyui/theme/silk/object.js create mode 100644 node_modules/daisyui/theme/sunset.css create mode 100644 node_modules/daisyui/theme/sunset/index.js create mode 100644 node_modules/daisyui/theme/sunset/object.js create mode 100644 node_modules/daisyui/theme/synthwave.css create mode 100644 node_modules/daisyui/theme/synthwave/index.js create mode 100644 node_modules/daisyui/theme/synthwave/object.js create mode 100644 node_modules/daisyui/theme/valentine.css create mode 100644 node_modules/daisyui/theme/valentine/index.js create mode 100644 node_modules/daisyui/theme/valentine/object.js create mode 100644 node_modules/daisyui/theme/winter.css create mode 100644 node_modules/daisyui/theme/winter/index.js create mode 100644 node_modules/daisyui/theme/winter/object.js create mode 100644 node_modules/daisyui/theme/wireframe.css create mode 100644 node_modules/daisyui/theme/wireframe/index.js create mode 100644 node_modules/daisyui/theme/wireframe/object.js create mode 100644 node_modules/daisyui/themes.css create mode 100644 node_modules/daisyui/utilities/glass.css create mode 100644 node_modules/daisyui/utilities/glass/index.js create mode 100644 node_modules/daisyui/utilities/glass/object.js create mode 100644 node_modules/daisyui/utilities/join.css create mode 100644 node_modules/daisyui/utilities/join/index.js create mode 100644 node_modules/daisyui/utilities/join/object.js create mode 100644 node_modules/daisyui/utilities/radius.css create mode 100644 node_modules/daisyui/utilities/radius/index.js create mode 100644 node_modules/daisyui/utilities/radius/object.js create mode 100644 node_modules/daisyui/utilities/typography.css create mode 100644 node_modules/daisyui/utilities/typography/index.js create mode 100644 node_modules/daisyui/utilities/typography/object.js create mode 100644 node_modules/detect-libc/.npmignore create mode 100644 node_modules/detect-libc/LICENSE create mode 100644 node_modules/detect-libc/README.md create mode 100644 node_modules/detect-libc/bin/detect-libc.js create mode 100644 node_modules/detect-libc/lib/detect-libc.js create mode 100644 node_modules/detect-libc/package.json create mode 100644 node_modules/electron-to-chromium/LICENSE create mode 100644 node_modules/electron-to-chromium/README.md create mode 100644 node_modules/electron-to-chromium/chromium-versions.js create mode 100644 node_modules/electron-to-chromium/chromium-versions.json create mode 100644 node_modules/electron-to-chromium/full-chromium-versions.js create mode 100644 node_modules/electron-to-chromium/full-chromium-versions.json create mode 100644 node_modules/electron-to-chromium/full-versions.js create mode 100644 node_modules/electron-to-chromium/full-versions.json create mode 100644 node_modules/electron-to-chromium/index.js create mode 100644 node_modules/electron-to-chromium/package.json create mode 100644 node_modules/electron-to-chromium/versions.js create mode 100644 node_modules/electron-to-chromium/versions.json create mode 100644 node_modules/enhanced-resolve/LICENSE create mode 100644 node_modules/enhanced-resolve/README.md create mode 100644 node_modules/enhanced-resolve/lib/AliasFieldPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/AliasPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/AppendPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/CachedInputFileSystem.js create mode 100644 node_modules/enhanced-resolve/lib/CloneBasenamePlugin.js create mode 100644 node_modules/enhanced-resolve/lib/ConditionalPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js create mode 100644 node_modules/enhanced-resolve/lib/DescriptionFileUtils.js create mode 100644 node_modules/enhanced-resolve/lib/DirectoryExistsPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/ExportsFieldPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/ExtensionAliasPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/FileExistsPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/ImportsFieldPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/JoinRequestPartPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/JoinRequestPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/LogInfoPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/MainFieldPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/ModulesInHierachicDirectoriesPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/ModulesInHierarchicalDirectoriesPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/ModulesInRootPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/NextPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/ParsePlugin.js create mode 100644 node_modules/enhanced-resolve/lib/PnpPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/Resolver.js create mode 100644 node_modules/enhanced-resolve/lib/ResolverFactory.js create mode 100644 node_modules/enhanced-resolve/lib/RestrictionsPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/ResultPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/RootsPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/SelfReferencePlugin.js create mode 100644 node_modules/enhanced-resolve/lib/SymlinkPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/SyncAsyncFileSystemDecorator.js create mode 100644 node_modules/enhanced-resolve/lib/TryNextPlugin.js create mode 100644 node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js create mode 100644 node_modules/enhanced-resolve/lib/UseFilePlugin.js create mode 100644 node_modules/enhanced-resolve/lib/createInnerContext.js create mode 100644 node_modules/enhanced-resolve/lib/forEachBail.js create mode 100644 node_modules/enhanced-resolve/lib/getInnerRequest.js create mode 100644 node_modules/enhanced-resolve/lib/getPaths.js create mode 100644 node_modules/enhanced-resolve/lib/index.js create mode 100644 node_modules/enhanced-resolve/lib/util/entrypoints.js create mode 100644 node_modules/enhanced-resolve/lib/util/identifier.js create mode 100644 node_modules/enhanced-resolve/lib/util/memoize.js create mode 100644 node_modules/enhanced-resolve/lib/util/module-browser.js create mode 100644 node_modules/enhanced-resolve/lib/util/path.js create mode 100644 node_modules/enhanced-resolve/lib/util/process-browser.js create mode 100644 node_modules/enhanced-resolve/package.json create mode 100644 node_modules/enhanced-resolve/types.d.ts create mode 100644 node_modules/escalade/dist/index.js create mode 100644 node_modules/escalade/dist/index.mjs create mode 100644 node_modules/escalade/index.d.mts create mode 100644 node_modules/escalade/index.d.ts create mode 100644 node_modules/escalade/license create mode 100644 node_modules/escalade/package.json create mode 100644 node_modules/escalade/readme.md create mode 100644 node_modules/escalade/sync/index.d.mts create mode 100644 node_modules/escalade/sync/index.d.ts create mode 100644 node_modules/escalade/sync/index.js create mode 100644 node_modules/escalade/sync/index.mjs create mode 100644 node_modules/fill-range/LICENSE create mode 100644 node_modules/fill-range/README.md create mode 100644 node_modules/fill-range/index.js create mode 100644 node_modules/fill-range/package.json create mode 100644 node_modules/fraction.js/CHANGELOG.md create mode 100644 node_modules/fraction.js/LICENSE create mode 100644 node_modules/fraction.js/README.md create mode 100644 node_modules/fraction.js/dist/fraction.js create mode 100644 node_modules/fraction.js/dist/fraction.min.js create mode 100644 node_modules/fraction.js/dist/fraction.mjs create mode 100644 node_modules/fraction.js/examples/angles.js create mode 100644 node_modules/fraction.js/examples/approx.js create mode 100644 node_modules/fraction.js/examples/egyptian.js create mode 100644 node_modules/fraction.js/examples/hesse-convergence.js create mode 100644 node_modules/fraction.js/examples/integrate.js create mode 100644 node_modules/fraction.js/examples/ratio-chain.js create mode 100644 node_modules/fraction.js/examples/rational-pow.js create mode 100644 node_modules/fraction.js/examples/tape-measure.js create mode 100644 node_modules/fraction.js/examples/toFraction.js create mode 100644 node_modules/fraction.js/examples/valueOfPi.js create mode 100644 node_modules/fraction.js/fraction.d.mts create mode 100644 node_modules/fraction.js/fraction.d.ts create mode 100644 node_modules/fraction.js/package.json create mode 100644 node_modules/fraction.js/src/fraction.js create mode 100644 node_modules/fraction.js/tests/fraction.test.js create mode 100644 node_modules/graceful-fs/LICENSE create mode 100644 node_modules/graceful-fs/README.md create mode 100644 node_modules/graceful-fs/clone.js create mode 100644 node_modules/graceful-fs/graceful-fs.js create mode 100644 node_modules/graceful-fs/legacy-streams.js create mode 100644 node_modules/graceful-fs/package.json create mode 100644 node_modules/graceful-fs/polyfills.js create mode 100644 node_modules/is-extglob/LICENSE create mode 100644 node_modules/is-extglob/README.md create mode 100644 node_modules/is-extglob/index.js create mode 100644 node_modules/is-extglob/package.json create mode 100644 node_modules/is-glob/LICENSE create mode 100644 node_modules/is-glob/README.md create mode 100644 node_modules/is-glob/index.js create mode 100644 node_modules/is-glob/package.json create mode 100644 node_modules/is-number/LICENSE create mode 100644 node_modules/is-number/README.md create mode 100644 node_modules/is-number/index.js create mode 100644 node_modules/is-number/package.json create mode 100644 node_modules/jiti/LICENSE create mode 100644 node_modules/jiti/README.md create mode 100644 node_modules/jiti/dist/babel.cjs create mode 100644 node_modules/jiti/dist/jiti.cjs create mode 100644 node_modules/jiti/lib/jiti-cli.mjs create mode 100644 node_modules/jiti/lib/jiti-hooks.mjs create mode 100644 node_modules/jiti/lib/jiti-native.mjs create mode 100644 node_modules/jiti/lib/jiti-register.d.mts create mode 100644 node_modules/jiti/lib/jiti-register.mjs create mode 100644 node_modules/jiti/lib/jiti.cjs create mode 100644 node_modules/jiti/lib/jiti.d.cts create mode 100644 node_modules/jiti/lib/jiti.d.mts create mode 100644 node_modules/jiti/lib/jiti.mjs create mode 100644 node_modules/jiti/lib/types.d.ts create mode 100644 node_modules/jiti/package.json create mode 100644 node_modules/lightningcss-win32-x64-msvc/LICENSE create mode 100644 node_modules/lightningcss-win32-x64-msvc/README.md create mode 100644 node_modules/lightningcss-win32-x64-msvc/lightningcss.win32-x64-msvc.node create mode 100644 node_modules/lightningcss-win32-x64-msvc/package.json create mode 100644 node_modules/lightningcss/LICENSE create mode 100644 node_modules/lightningcss/README.md create mode 100644 node_modules/lightningcss/node/ast.d.ts create mode 100644 node_modules/lightningcss/node/ast.js.flow create mode 100644 node_modules/lightningcss/node/browserslistToTargets.js create mode 100644 node_modules/lightningcss/node/composeVisitors.js create mode 100644 node_modules/lightningcss/node/flags.js create mode 100644 node_modules/lightningcss/node/index.d.ts create mode 100644 node_modules/lightningcss/node/index.js create mode 100644 node_modules/lightningcss/node/index.js.flow create mode 100644 node_modules/lightningcss/node/index.mjs create mode 100644 node_modules/lightningcss/node/targets.d.ts create mode 100644 node_modules/lightningcss/node/targets.js.flow create mode 100644 node_modules/lightningcss/node_modules/detect-libc/LICENSE create mode 100644 node_modules/lightningcss/node_modules/detect-libc/README.md create mode 100644 node_modules/lightningcss/node_modules/detect-libc/index.d.ts create mode 100644 node_modules/lightningcss/node_modules/detect-libc/lib/detect-libc.js create mode 100644 node_modules/lightningcss/node_modules/detect-libc/lib/elf.js create mode 100644 node_modules/lightningcss/node_modules/detect-libc/lib/filesystem.js create mode 100644 node_modules/lightningcss/node_modules/detect-libc/lib/process.js create mode 100644 node_modules/lightningcss/node_modules/detect-libc/package.json create mode 100644 node_modules/lightningcss/package.json create mode 100644 node_modules/magic-string/LICENSE create mode 100644 node_modules/magic-string/README.md create mode 100644 node_modules/magic-string/dist/magic-string.cjs.d.ts create mode 100644 node_modules/magic-string/dist/magic-string.cjs.js create mode 100644 node_modules/magic-string/dist/magic-string.cjs.js.map create mode 100644 node_modules/magic-string/dist/magic-string.es.d.mts create mode 100644 node_modules/magic-string/dist/magic-string.es.mjs create mode 100644 node_modules/magic-string/dist/magic-string.es.mjs.map create mode 100644 node_modules/magic-string/dist/magic-string.umd.js create mode 100644 node_modules/magic-string/dist/magic-string.umd.js.map create mode 100644 node_modules/magic-string/package.json create mode 100644 node_modules/micromatch/LICENSE create mode 100644 node_modules/micromatch/README.md create mode 100644 node_modules/micromatch/index.js create mode 100644 node_modules/micromatch/package.json create mode 100644 node_modules/mri/index.d.ts create mode 100644 node_modules/mri/lib/index.js create mode 100644 node_modules/mri/lib/index.mjs create mode 100644 node_modules/mri/license.md create mode 100644 node_modules/mri/package.json create mode 100644 node_modules/mri/readme.md create mode 100644 node_modules/nanoid/LICENSE create mode 100644 node_modules/nanoid/README.md create mode 100644 node_modules/nanoid/async/index.browser.cjs create mode 100644 node_modules/nanoid/async/index.browser.js create mode 100644 node_modules/nanoid/async/index.cjs create mode 100644 node_modules/nanoid/async/index.d.ts create mode 100644 node_modules/nanoid/async/index.js create mode 100644 node_modules/nanoid/async/index.native.js create mode 100644 node_modules/nanoid/async/package.json create mode 100644 node_modules/nanoid/bin/nanoid.cjs create mode 100644 node_modules/nanoid/index.browser.cjs create mode 100644 node_modules/nanoid/index.browser.js create mode 100644 node_modules/nanoid/index.cjs create mode 100644 node_modules/nanoid/index.d.cts create mode 100644 node_modules/nanoid/index.d.ts create mode 100644 node_modules/nanoid/index.js create mode 100644 node_modules/nanoid/nanoid.js create mode 100644 node_modules/nanoid/non-secure/index.cjs create mode 100644 node_modules/nanoid/non-secure/index.d.ts create mode 100644 node_modules/nanoid/non-secure/index.js create mode 100644 node_modules/nanoid/non-secure/package.json create mode 100644 node_modules/nanoid/package.json create mode 100644 node_modules/nanoid/url-alphabet/index.cjs create mode 100644 node_modules/nanoid/url-alphabet/index.js create mode 100644 node_modules/nanoid/url-alphabet/package.json create mode 100644 node_modules/node-addon-api/LICENSE.md create mode 100644 node_modules/node-addon-api/README.md create mode 100644 node_modules/node-addon-api/common.gypi create mode 100644 node_modules/node-addon-api/except.gypi create mode 100644 node_modules/node-addon-api/index.js create mode 100644 node_modules/node-addon-api/napi-inl.deprecated.h create mode 100644 node_modules/node-addon-api/napi-inl.h create mode 100644 node_modules/node-addon-api/napi.h create mode 100644 node_modules/node-addon-api/node_addon_api.gyp create mode 100644 node_modules/node-addon-api/node_api.gyp create mode 100644 node_modules/node-addon-api/noexcept.gypi create mode 100644 node_modules/node-addon-api/nothing.c create mode 100644 node_modules/node-addon-api/package-support.json create mode 100644 node_modules/node-addon-api/package.json create mode 100644 node_modules/node-addon-api/tools/README.md create mode 100644 node_modules/node-addon-api/tools/check-napi.js create mode 100644 node_modules/node-addon-api/tools/clang-format.js create mode 100644 node_modules/node-addon-api/tools/conversion.js create mode 100644 node_modules/node-addon-api/tools/eslint-format.js create mode 100644 node_modules/node-releases/LICENSE create mode 100644 node_modules/node-releases/README.md create mode 100644 node_modules/node-releases/data/processed/envs.json create mode 100644 node_modules/node-releases/data/release-schedule/release-schedule.json create mode 100644 node_modules/node-releases/package.json create mode 100644 node_modules/normalize-range/index.js create mode 100644 node_modules/normalize-range/license create mode 100644 node_modules/normalize-range/package.json create mode 100644 node_modules/normalize-range/readme.md create mode 100644 node_modules/picocolors/LICENSE create mode 100644 node_modules/picocolors/README.md create mode 100644 node_modules/picocolors/package.json create mode 100644 node_modules/picocolors/picocolors.browser.js create mode 100644 node_modules/picocolors/picocolors.d.ts create mode 100644 node_modules/picocolors/picocolors.js create mode 100644 node_modules/picocolors/types.d.ts create mode 100644 node_modules/picomatch/CHANGELOG.md create mode 100644 node_modules/picomatch/LICENSE create mode 100644 node_modules/picomatch/README.md create mode 100644 node_modules/picomatch/index.js create mode 100644 node_modules/picomatch/lib/constants.js create mode 100644 node_modules/picomatch/lib/parse.js create mode 100644 node_modules/picomatch/lib/picomatch.js create mode 100644 node_modules/picomatch/lib/scan.js create mode 100644 node_modules/picomatch/lib/utils.js create mode 100644 node_modules/picomatch/package.json create mode 100644 node_modules/postcss-value-parser/LICENSE create mode 100644 node_modules/postcss-value-parser/README.md create mode 100644 node_modules/postcss-value-parser/lib/index.d.ts create mode 100644 node_modules/postcss-value-parser/lib/index.js create mode 100644 node_modules/postcss-value-parser/lib/parse.js create mode 100644 node_modules/postcss-value-parser/lib/stringify.js create mode 100644 node_modules/postcss-value-parser/lib/unit.js create mode 100644 node_modules/postcss-value-parser/lib/walk.js create mode 100644 node_modules/postcss-value-parser/package.json create mode 100644 node_modules/postcss/LICENSE create mode 100644 node_modules/postcss/README.md create mode 100644 node_modules/postcss/lib/at-rule.d.ts create mode 100644 node_modules/postcss/lib/at-rule.js create mode 100644 node_modules/postcss/lib/comment.d.ts create mode 100644 node_modules/postcss/lib/comment.js create mode 100644 node_modules/postcss/lib/container.d.ts create mode 100644 node_modules/postcss/lib/container.js create mode 100644 node_modules/postcss/lib/css-syntax-error.d.ts create mode 100644 node_modules/postcss/lib/css-syntax-error.js create mode 100644 node_modules/postcss/lib/declaration.d.ts create mode 100644 node_modules/postcss/lib/declaration.js create mode 100644 node_modules/postcss/lib/document.d.ts create mode 100644 node_modules/postcss/lib/document.js create mode 100644 node_modules/postcss/lib/fromJSON.d.ts create mode 100644 node_modules/postcss/lib/fromJSON.js create mode 100644 node_modules/postcss/lib/input.d.ts create mode 100644 node_modules/postcss/lib/input.js create mode 100644 node_modules/postcss/lib/lazy-result.d.ts create mode 100644 node_modules/postcss/lib/lazy-result.js create mode 100644 node_modules/postcss/lib/list.d.ts create mode 100644 node_modules/postcss/lib/list.js create mode 100644 node_modules/postcss/lib/map-generator.js create mode 100644 node_modules/postcss/lib/no-work-result.d.ts create mode 100644 node_modules/postcss/lib/no-work-result.js create mode 100644 node_modules/postcss/lib/node.d.ts create mode 100644 node_modules/postcss/lib/node.js create mode 100644 node_modules/postcss/lib/parse.d.ts create mode 100644 node_modules/postcss/lib/parse.js create mode 100644 node_modules/postcss/lib/parser.js create mode 100644 node_modules/postcss/lib/postcss.d.mts create mode 100644 node_modules/postcss/lib/postcss.d.ts create mode 100644 node_modules/postcss/lib/postcss.js create mode 100644 node_modules/postcss/lib/postcss.mjs create mode 100644 node_modules/postcss/lib/previous-map.d.ts create mode 100644 node_modules/postcss/lib/previous-map.js create mode 100644 node_modules/postcss/lib/processor.d.ts create mode 100644 node_modules/postcss/lib/processor.js create mode 100644 node_modules/postcss/lib/result.d.ts create mode 100644 node_modules/postcss/lib/result.js create mode 100644 node_modules/postcss/lib/root.d.ts create mode 100644 node_modules/postcss/lib/root.js create mode 100644 node_modules/postcss/lib/rule.d.ts create mode 100644 node_modules/postcss/lib/rule.js create mode 100644 node_modules/postcss/lib/stringifier.d.ts create mode 100644 node_modules/postcss/lib/stringifier.js create mode 100644 node_modules/postcss/lib/stringify.d.ts create mode 100644 node_modules/postcss/lib/stringify.js create mode 100644 node_modules/postcss/lib/symbols.js create mode 100644 node_modules/postcss/lib/terminal-highlight.js create mode 100644 node_modules/postcss/lib/tokenize.js create mode 100644 node_modules/postcss/lib/warn-once.js create mode 100644 node_modules/postcss/lib/warning.d.ts create mode 100644 node_modules/postcss/lib/warning.js create mode 100644 node_modules/postcss/package.json create mode 100644 node_modules/source-map-js/LICENSE create mode 100644 node_modules/source-map-js/README.md create mode 100644 node_modules/source-map-js/lib/array-set.js create mode 100644 node_modules/source-map-js/lib/base64-vlq.js create mode 100644 node_modules/source-map-js/lib/base64.js create mode 100644 node_modules/source-map-js/lib/binary-search.js create mode 100644 node_modules/source-map-js/lib/mapping-list.js create mode 100644 node_modules/source-map-js/lib/quick-sort.js create mode 100644 node_modules/source-map-js/lib/source-map-consumer.d.ts create mode 100644 node_modules/source-map-js/lib/source-map-consumer.js create mode 100644 node_modules/source-map-js/lib/source-map-generator.d.ts create mode 100644 node_modules/source-map-js/lib/source-map-generator.js create mode 100644 node_modules/source-map-js/lib/source-node.d.ts create mode 100644 node_modules/source-map-js/lib/source-node.js create mode 100644 node_modules/source-map-js/lib/util.js create mode 100644 node_modules/source-map-js/package.json create mode 100644 node_modules/source-map-js/source-map.d.ts create mode 100644 node_modules/source-map-js/source-map.js create mode 100644 node_modules/tailwindcss/LICENSE create mode 100644 node_modules/tailwindcss/README.md create mode 100644 node_modules/tailwindcss/dist/chunk-GFBUASX3.mjs create mode 100644 node_modules/tailwindcss/dist/chunk-HTB5LLOP.mjs create mode 100644 node_modules/tailwindcss/dist/chunk-MEY3PWYT.mjs create mode 100644 node_modules/tailwindcss/dist/colors-b_6i0Oi7.d.ts create mode 100644 node_modules/tailwindcss/dist/colors.d.mts create mode 100644 node_modules/tailwindcss/dist/colors.d.ts create mode 100644 node_modules/tailwindcss/dist/colors.js create mode 100644 node_modules/tailwindcss/dist/colors.mjs create mode 100644 node_modules/tailwindcss/dist/default-theme.d.mts create mode 100644 node_modules/tailwindcss/dist/default-theme.d.ts create mode 100644 node_modules/tailwindcss/dist/default-theme.js create mode 100644 node_modules/tailwindcss/dist/default-theme.mjs create mode 100644 node_modules/tailwindcss/dist/flatten-color-palette.d.mts create mode 100644 node_modules/tailwindcss/dist/flatten-color-palette.d.ts create mode 100644 node_modules/tailwindcss/dist/flatten-color-palette.js create mode 100644 node_modules/tailwindcss/dist/flatten-color-palette.mjs create mode 100644 node_modules/tailwindcss/dist/lib.d.mts create mode 100644 node_modules/tailwindcss/dist/lib.d.ts create mode 100644 node_modules/tailwindcss/dist/lib.js create mode 100644 node_modules/tailwindcss/dist/lib.mjs create mode 100644 node_modules/tailwindcss/dist/plugin.d.mts create mode 100644 node_modules/tailwindcss/dist/plugin.d.ts create mode 100644 node_modules/tailwindcss/dist/plugin.js create mode 100644 node_modules/tailwindcss/dist/plugin.mjs create mode 100644 node_modules/tailwindcss/dist/resolve-config-BIFUA2FY.d.ts create mode 100644 node_modules/tailwindcss/dist/resolve-config-QUZ9b-Gn.d.mts create mode 100644 node_modules/tailwindcss/dist/types-WlZgYgM8.d.mts create mode 100644 node_modules/tailwindcss/index.css create mode 100644 node_modules/tailwindcss/package.json create mode 100644 node_modules/tailwindcss/preflight.css create mode 100644 node_modules/tailwindcss/theme.css create mode 100644 node_modules/tailwindcss/utilities.css create mode 100644 node_modules/tapable/LICENSE create mode 100644 node_modules/tapable/README.md create mode 100644 node_modules/tapable/lib/AsyncParallelBailHook.js create mode 100644 node_modules/tapable/lib/AsyncParallelHook.js create mode 100644 node_modules/tapable/lib/AsyncSeriesBailHook.js create mode 100644 node_modules/tapable/lib/AsyncSeriesHook.js create mode 100644 node_modules/tapable/lib/AsyncSeriesLoopHook.js create mode 100644 node_modules/tapable/lib/AsyncSeriesWaterfallHook.js create mode 100644 node_modules/tapable/lib/Hook.js create mode 100644 node_modules/tapable/lib/HookCodeFactory.js create mode 100644 node_modules/tapable/lib/HookMap.js create mode 100644 node_modules/tapable/lib/MultiHook.js create mode 100644 node_modules/tapable/lib/SyncBailHook.js create mode 100644 node_modules/tapable/lib/SyncHook.js create mode 100644 node_modules/tapable/lib/SyncLoopHook.js create mode 100644 node_modules/tapable/lib/SyncWaterfallHook.js create mode 100644 node_modules/tapable/lib/index.js create mode 100644 node_modules/tapable/lib/util-browser.js create mode 100644 node_modules/tapable/package.json create mode 100644 node_modules/tapable/tapable.d.ts create mode 100644 node_modules/to-regex-range/LICENSE create mode 100644 node_modules/to-regex-range/README.md create mode 100644 node_modules/to-regex-range/index.js create mode 100644 node_modules/to-regex-range/package.json create mode 100644 node_modules/update-browserslist-db/LICENSE create mode 100644 node_modules/update-browserslist-db/README.md create mode 100644 node_modules/update-browserslist-db/check-npm-version.js create mode 100644 node_modules/update-browserslist-db/cli.js create mode 100644 node_modules/update-browserslist-db/index.d.ts create mode 100644 node_modules/update-browserslist-db/index.js create mode 100644 node_modules/update-browserslist-db/package.json create mode 100644 node_modules/update-browserslist-db/utils.js create mode 100644 old/assets/images/arrow.png create mode 100644 old/assets/images/avatars/1.png create mode 100644 old/assets/images/avatars/10.png create mode 100644 old/assets/images/avatars/2.png create mode 100644 old/assets/images/avatars/3.png create mode 100644 old/assets/images/avatars/4.png create mode 100644 old/assets/images/avatars/5.png create mode 100644 old/assets/images/avatars/6.png create mode 100644 old/assets/images/avatars/7.png create mode 100644 old/assets/images/avatars/8.png create mode 100644 old/assets/images/avatars/9.png create mode 100644 old/assets/images/brand-1.png create mode 100644 old/assets/images/global-sprite.png create mode 100644 old/assets/images/icons/1.png create mode 100644 old/assets/images/icons/10.png create mode 100644 old/assets/images/icons/11.png create mode 100644 old/assets/images/icons/12.png create mode 100644 old/assets/images/icons/13.png create mode 100644 old/assets/images/icons/14.png create mode 100644 old/assets/images/icons/15.png create mode 100644 old/assets/images/icons/16.png create mode 100644 old/assets/images/icons/17.png create mode 100644 old/assets/images/icons/18.png create mode 100644 old/assets/images/icons/19.png create mode 100644 old/assets/images/icons/2.png create mode 100644 old/assets/images/icons/20.png create mode 100644 old/assets/images/icons/21.png create mode 100644 old/assets/images/icons/22.png create mode 100644 old/assets/images/icons/23.png create mode 100644 old/assets/images/icons/24.png create mode 100644 old/assets/images/icons/25.png create mode 100644 old/assets/images/icons/26.png create mode 100644 old/assets/images/icons/27.png create mode 100644 old/assets/images/icons/28.png create mode 100644 old/assets/images/icons/29.png create mode 100644 old/assets/images/icons/3.png create mode 100644 old/assets/images/icons/30.png create mode 100644 old/assets/images/icons/31.png create mode 100644 old/assets/images/icons/32.png create mode 100644 old/assets/images/icons/4.png create mode 100644 old/assets/images/icons/5.png create mode 100644 old/assets/images/icons/6.png create mode 100644 old/assets/images/icons/7.png create mode 100644 old/assets/images/icons/8.png create mode 100644 old/assets/images/icons/9.png create mode 100644 old/assets/images/image-big.png create mode 100644 old/assets/images/img-product.png create mode 100644 old/assets/images/logo_hura8.png create mode 100644 old/assets/images/logo_new.png create mode 100644 old/assets/images/logo_small.png rename {assets => old/assets}/script/charts.js (100%) create mode 100644 old/assets/script/checkbox.js create mode 100644 old/assets/script/global.js create mode 100644 old/assets/script/hura.global.css create mode 100644 old/assets/script/hura_style.css create mode 100644 old/assets/script/jquery.js create mode 100644 old/assets/script/style.css create mode 100644 old/assets/typescript/main.js create mode 100644 old/assets/typescript/main.ts create mode 100644 old/template/addon/home.html create mode 100644 old/template/admin/add.html create mode 100644 old/template/admin/admin_log_product.html create mode 100644 old/template/admin/department.html create mode 100644 old/template/admin/department_add.html create mode 100644 old/template/admin/department_entity_permission.html create mode 100644 old/template/admin/department_menu_permission.html create mode 100644 old/template/admin/entity_permission.html create mode 100644 old/template/admin/home.html create mode 100644 old/template/admin/login_log.html create mode 100644 old/template/admin/menu_permission.html create mode 100644 old/template/article/category.html create mode 100644 old/template/article/form.html create mode 100644 old/template/article/home.html create mode 100644 old/template/article/relation.html create mode 100644 old/template/article/relation_add.html create mode 100644 old/template/article/relation_product.html create mode 100644 old/template/article/relation_product_add.html create mode 100644 old/template/article/relation_product_category.html create mode 100644 old/template/article/relation_product_category_add.html create mode 100644 old/template/article/tag.html create mode 100644 old/template/banner/home.html create mode 100644 old/template/banner/location.html create mode 100644 old/template/banner/location_add.html create mode 100644 old/template/banner/upload.html create mode 100644 old/template/customer/comment.html create mode 100644 old/template/customer/customer_add.html create mode 100644 old/template/customer/customer_contact.html create mode 100644 old/template/customer/customer_group.html create mode 100644 old/template/customer/customer_group_add.html create mode 100644 old/template/customer/customer_group_info.html create mode 100644 old/template/customer/customer_newsletter.html create mode 100644 old/template/customer/customer_review.html create mode 100644 old/template/customer/home.html create mode 100644 old/template/customer/review.html create mode 100644 old/template/deal/deal_add.html create mode 100644 old/template/deal/deal_detail.html create mode 100644 old/template/deal/home.html create mode 100644 old/template/deal/upload_deal_excel.html create mode 100644 old/template/distributor/form.html create mode 100644 old/template/distributor/home.html create mode 100644 old/template/home/components/main_stat.html create mode 100644 old/template/home/home.html create mode 100644 old/template/javascript/brand.html create mode 100644 old/template/javascript/edit_template.html create mode 100644 old/template/javascript/global.html create mode 100644 old/template/javascript/homepage.html create mode 100644 old/template/javascript/index.html create mode 100644 old/template/javascript/page.html create mode 100644 old/template/javascript/product_form.html create mode 100644 old/template/javascript/product_list.html create mode 100644 old/template/javascript/shipping2.html create mode 100644 old/template/javascript/system.html create mode 100644 old/template/javascript/tag.html create mode 100644 old/template/javascript/visitor.html create mode 100644 old/template/job/applicants.html create mode 100644 old/template/job/applicants_detail.html create mode 100644 old/template/job/form.html create mode 100644 old/template/job/home.html create mode 100644 old/template/marketing/conditional_promotion.html create mode 100644 old/template/marketing/conditional_promotion_add.html create mode 100644 old/template/marketing/coupon.html create mode 100644 old/template/marketing/coupon_add.html create mode 100644 old/template/marketing/coupon_product.html create mode 100644 old/template/marketing/detail.html create mode 100644 old/template/marketing/feed.html create mode 100644 old/template/marketing/feed_add.html create mode 100644 old/template/marketing/feed_list.html create mode 100644 old/template/marketing/feed_select.html create mode 100644 old/template/marketing/home.html create mode 100644 old/template/marketing/poster_list.html create mode 100644 old/template/marketing/poster_upload.html create mode 100644 old/template/marketing/product_offer.html create mode 100644 old/template/marketing/promotion.html create mode 100644 old/template/marketing/promotion_add.html create mode 100644 old/template/marketing/promotion_group.html create mode 100644 old/template/marketing/promotion_group_add.html create mode 100644 old/template/marketing/promotion_group_product.html create mode 100644 old/template/marketing/promotion_product.html create mode 100644 old/template/media/category.html create mode 100644 old/template/media/home.html create mode 100644 old/template/media/upload.html create mode 100644 old/template/module_css/homepage.html create mode 100644 old/template/module_css/index.html create mode 100644 old/template/order/bargain.html create mode 100644 old/template/order/detail.html create mode 100644 old/template/order/detail_new.html create mode 100644 old/template/order/home.html create mode 100644 old/template/order/paygate.html create mode 100644 old/template/order/wait_order.html create mode 100644 old/template/other/header.html create mode 100644 old/template/other/topbar.html create mode 100644 old/template/page/category.html create mode 100644 old/template/page/category_add.html create mode 100644 old/template/page/form.html create mode 100644 old/template/page/home.html create mode 100644 old/template/payinstall/add_company.html create mode 100644 old/template/payinstall/add_period.html create mode 100644 old/template/payinstall/add_upfront.html create mode 100644 old/template/payinstall/category.html create mode 100644 old/template/payinstall/home.html create mode 100644 old/template/payinstall/order.html create mode 100644 old/template/payinstall/order_detail.html create mode 100644 old/template/pcbuilder/config_edit.html create mode 100644 old/template/pcbuilder/home.html create mode 100644 old/template/pcbuilder/part_relation.html create mode 100644 old/template/product/addon.html create mode 100644 old/template/product/addon_add.html create mode 100644 old/template/product/attribute.html create mode 100644 old/template/product/attribute_add.html create mode 100644 old/template/product/brand.html create mode 100644 old/template/product/brand_add.html create mode 100644 old/template/product/category.html create mode 100644 old/template/product/category_form.html create mode 100644 old/template/product/collection.html create mode 100644 old/template/product/collection_add.html create mode 100644 old/template/product/config_group.html create mode 100644 old/template/product/config_group_attribute.html create mode 100644 old/template/product/config_group_form.html create mode 100644 old/template/product/config_group_product.html create mode 100644 old/template/product/form.html create mode 100644 old/template/product/form_components/accessory.html create mode 100644 old/template/product/form_components/addon.html create mode 100644 old/template/product/form_components/basic.html create mode 100644 old/template/product/form_components/category.html create mode 100644 old/template/product/form_components/combo_set.html create mode 100644 old/template/product/form_components/combo_set_select.html create mode 100644 old/template/product/form_components/compatible.html create mode 100644 old/template/product/form_components/component.html create mode 100644 old/template/product/form_components/configurable.html create mode 100644 old/template/product/form_components/customer_group.html create mode 100644 old/template/product/form_components/description.html create mode 100644 old/template/product/form_components/image.html create mode 100644 old/template/product/form_components/instruction.html create mode 100644 old/template/product/form_components/price.html create mode 100644 old/template/product/form_components/relation.html create mode 100644 old/template/product/form_components/seo.html create mode 100644 old/template/product/form_components/similar.html create mode 100644 old/template/product/form_components/spec.html create mode 100644 old/template/product/form_components/spec_group.html create mode 100644 old/template/product/form_components/spec_multiple.html create mode 100644 old/template/product/form_components/store.html create mode 100644 old/template/product/form_components/tag.html create mode 100644 old/template/product/form_components/variant.html create mode 100644 old/template/product/form_components/video.html create mode 100644 old/template/product/home.html create mode 100644 old/template/product/list_competitor.html create mode 100644 old/template/product/set.html create mode 100644 old/template/product/set_form.html create mode 100644 old/template/product/set_product.html create mode 100644 old/template/product/spec_group.html create mode 100644 old/template/product/spec_group_add.html create mode 100644 old/template/product/spec_group_info.html create mode 100644 old/template/report/customer.html create mode 100644 old/template/report/order.html create mode 100644 old/template/report/product_buy.html create mode 100644 old/template/report/product_visit.html create mode 100644 old/template/report/referer.html create mode 100644 old/template/report/search.html create mode 100644 old/template/report/visitor.html create mode 100644 old/template/shipping2/fee.html create mode 100644 old/template/shipping2/home.html create mode 100644 old/template/shipping2/setting.html create mode 100644 old/template/system/ban_ip.html create mode 100644 old/template/system/change_info.html create mode 100644 old/template/system/email.html create mode 100644 old/template/system/form_setup/general.html create mode 100644 old/template/system/form_setup/homepage.html create mode 100644 old/template/system/form_setup/pro_category.html create mode 100644 old/template/system/form_setup/product.html create mode 100644 old/template/system/form_store_design/background.html create mode 100644 old/template/system/form_store_design/header.html create mode 100644 old/template/system/form_store_design/other.html create mode 100644 old/template/system/form_store_design/popup.html create mode 100644 old/template/system/pay_method.html create mode 100644 old/template/system/pay_method_add.html create mode 100644 old/template/system/print.html create mode 100644 old/template/system/province_list.html create mode 100644 old/template/system/settings.html create mode 100644 old/template/system/setup.html create mode 100644 old/template/system/ship_method.html create mode 100644 old/template/system/ship_method_add.html create mode 100644 old/template/system/shipping.html create mode 100644 old/template/system/store_address.html create mode 100644 old/template/system/store_design.html create mode 100644 old/template/tag/add.html create mode 100644 old/template/tag/home.html create mode 100644 old/template/template/add_template.html create mode 100644 old/template/template/edit_template.html create mode 100644 old/template/template/home.html create mode 100644 old/template/template/set.html create mode 100644 old/template/template/upload_set.html create mode 100644 old/template/theme.html create mode 100644 old/template/tool/home.html create mode 100644 old/template/url/redirect.html create mode 100644 old/template/url/redirect_form.html create mode 100644 old/template/url/url_seo.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 tailwind.config.js create mode 100644 template/module_css/homepage.html create mode 100644 template/module_css/index.html diff --git a/assets/script/global.js b/assets/script/global.js index 39841e6..443a4c1 100644 --- a/assets/script/global.js +++ b/assets/script/global.js @@ -38,6 +38,3 @@ const AdminFunction = (() => { } return { capNhatTrangThaiMenu: capNhatTrangThaiMenu, add_product_to_category: t, run_search: n, update_product_hot: o, checkForm: i, closeForm: r }; })(); - - -new Choices("#group-select"); \ No newline at end of file diff --git a/assets/script/hura-lib.css b/assets/script/hura-lib.css new file mode 100644 index 0000000..a401014 --- /dev/null +++ b/assets/script/hura-lib.css @@ -0,0 +1,7483 @@ +/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */ +@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@100;200;300;400;500;600;700;800;900;1000&display=swap"; +@import "https://fonts.googleapis.com/css2?family=Wix+Madefor+Text:wght@400;500;600;700;800;1000&display=swap"; +@import "https://fonts.googleapis.com/css2?family=Inclusive+Sans:wght@400;500;600;700;800;900;1000&display=swap"; +@import "https://fonts.googleapis.com/css2?family=AR+One+Sans:wght@400;500;600;700;800;1000&display=swap"; +@layer properties; +@layer theme, base, components, utilities; +@layer theme { + :root, :host { + --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", + "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", + "Courier New", monospace; + --color-red-400: oklch(70.4% 0.191 22.216); + --color-red-500: oklch(63.7% 0.237 25.331); + --color-red-600: oklch(57.7% 0.245 27.325); + --color-orange-400: oklch(75% 0.183 55.934); + --color-orange-500: oklch(70.5% 0.213 47.604); + --color-orange-600: oklch(64.6% 0.222 41.116); + --color-yellow-400: oklch(85.2% 0.199 91.936); + --color-yellow-500: oklch(79.5% 0.184 86.047); + --color-yellow-600: oklch(68.1% 0.162 75.834); + --color-lime-400: oklch(84.1% 0.238 128.85); + --color-green-100: oklch(96.2% 0.044 156.743); + --color-green-300: oklch(87.1% 0.15 154.449); + --color-green-400: oklch(79.2% 0.209 151.711); + --color-green-500: oklch(72.3% 0.219 149.579); + --color-green-600: oklch(62.7% 0.194 149.214); + --color-green-800: oklch(44.8% 0.119 151.328); + --color-green-900: oklch(39.3% 0.095 152.535); + --color-emerald-500: oklch(69.6% 0.17 162.48); + --color-teal-400: oklch(77.7% 0.152 181.912); + --color-teal-500: oklch(70.4% 0.14 182.503); + --color-teal-600: oklch(60% 0.118 184.704); + --color-cyan-400: oklch(78.9% 0.154 211.53); + --color-cyan-600: oklch(60.9% 0.126 221.723); + --color-blue-400: oklch(70.7% 0.165 254.624); + --color-blue-500: oklch(62.3% 0.214 259.815); + --color-blue-600: oklch(54.6% 0.245 262.881); + --color-blue-700: oklch(48.8% 0.243 264.376); + --color-indigo-500: oklch(58.5% 0.233 277.117); + --color-indigo-600: oklch(51.1% 0.262 276.966); + --color-violet-500: oklch(60.6% 0.25 292.717); + --color-purple-400: oklch(71.4% 0.203 305.504); + --color-purple-500: oklch(62.7% 0.265 303.9); + --color-purple-600: oklch(55.8% 0.288 302.321); + --color-fuchsia-500: oklch(66.7% 0.295 322.15); + --color-gray-100: oklch(96.7% 0.003 264.542); + --color-gray-200: oklch(92.8% 0.006 264.531); + --color-gray-400: oklch(70.7% 0.022 261.325); + --color-gray-500: oklch(55.1% 0.027 264.364); + --color-gray-600: oklch(44.6% 0.03 256.802); + --color-gray-700: oklch(37.3% 0.034 259.733); + --color-gray-900: oklch(21% 0.034 264.665); + --color-black: #000; + --color-white: #fff; + --spacing: 0.25rem; + --container-xs: 20rem; + --container-sm: 24rem; + --container-md: 28rem; + --container-lg: 32rem; + --container-xl: 36rem; + --container-2xl: 42rem; + --container-3xl: 48rem; + --container-4xl: 56rem; + --container-5xl: 64rem; + --container-6xl: 72rem; + --text-xs: 0.75rem; + --text-xs--line-height: calc(1 / 0.75); + --text-sm: 0.875rem; + --text-sm--line-height: calc(1.25 / 0.875); + --text-base: 1rem; + --text-base--line-height: calc(1.5 / 1); + --text-lg: 1.125rem; + --text-lg--line-height: calc(1.75 / 1.125); + --text-xl: 1.25rem; + --text-xl--line-height: calc(1.75 / 1.25); + --text-2xl: 1.5rem; + --text-2xl--line-height: calc(2 / 1.5); + --text-3xl: 1.875rem; + --text-3xl--line-height: calc(2.25 / 1.875); + --text-4xl: 2.25rem; + --text-4xl--line-height: calc(2.5 / 2.25); + --text-5xl: 3rem; + --text-5xl--line-height: 1; + --text-6xl: 3.75rem; + --text-6xl--line-height: 1; + --font-weight-thin: 100; + --font-weight-extralight: 200; + --font-weight-light: 300; + --font-weight-normal: 400; + --font-weight-medium: 500; + --font-weight-semibold: 600; + --font-weight-bold: 700; + --font-weight-extrabold: 800; + --font-weight-black: 900; + --tracking-tight: -0.025em; + --tracking-wide: 0.025em; + --tracking-wider: 0.05em; + --leading-tight: 1.25; + --radius-xs: 0.125rem; + --radius-sm: 0.25rem; + --radius-md: 0.375rem; + --radius-lg: 0.5rem; + --radius-xl: 0.75rem; + --animate-spin: spin 1s linear infinite; + --animate-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite; + --blur-xs: 4px; + --blur-sm: 8px; + --blur-md: 12px; + --blur-lg: 16px; + --default-transition-duration: 150ms; + --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + --default-font-family: var(--font-sans); + --default-mono-font-family: var(--font-mono); + } +} +@layer base { + *, ::after, ::before, ::backdrop, ::file-selector-button { + box-sizing: border-box; + margin: 0; + padding: 0; + border: 0 solid; + } + html, :host { + line-height: 1.5; + -webkit-text-size-adjust: 100%; + tab-size: 4; + font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"); + font-feature-settings: var(--default-font-feature-settings, normal); + font-variation-settings: var(--default-font-variation-settings, normal); + -webkit-tap-highlight-color: transparent; + } + hr { + height: 0; + color: inherit; + border-top-width: 1px; + } + abbr:where([title]) { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + } + h1, h2, h3, h4, h5, h6 { + font-size: inherit; + font-weight: inherit; + } + a { + color: inherit; + -webkit-text-decoration: inherit; + text-decoration: inherit; + } + b, strong { + font-weight: bolder; + } + code, kbd, samp, pre { + font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace); + font-feature-settings: var(--default-mono-font-feature-settings, normal); + font-variation-settings: var(--default-mono-font-variation-settings, normal); + font-size: 1em; + } + small { + font-size: 80%; + } + sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; + } + sub { + bottom: -0.25em; + } + sup { + top: -0.5em; + } + table { + text-indent: 0; + border-color: inherit; + border-collapse: collapse; + } + :-moz-focusring { + outline: auto; + } + progress { + vertical-align: baseline; + } + summary { + display: list-item; + } + ol, ul, menu { + list-style: none; + } + img, svg, video, canvas, audio, iframe, embed, object { + display: block; + vertical-align: middle; + } + img, video { + max-width: 100%; + height: auto; + } + button, input, select, optgroup, textarea, ::file-selector-button { + font: inherit; + font-feature-settings: inherit; + font-variation-settings: inherit; + letter-spacing: inherit; + color: inherit; + border-radius: 0; + background-color: transparent; + opacity: 1; + } + :where(select:is([multiple], [size])) optgroup { + font-weight: bolder; + } + :where(select:is([multiple], [size])) optgroup option { + padding-inline-start: 20px; + } + ::file-selector-button { + margin-inline-end: 4px; + } + ::placeholder { + opacity: 1; + } + @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) { + ::placeholder { + color: currentcolor; + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, currentcolor 50%, transparent); + } + } + } + textarea { + resize: vertical; + } + ::-webkit-search-decoration { + -webkit-appearance: none; + } + ::-webkit-date-and-time-value { + min-height: 1lh; + text-align: inherit; + } + ::-webkit-datetime-edit { + display: inline-flex; + } + ::-webkit-datetime-edit-fields-wrapper { + padding: 0; + } + ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field { + padding-block: 0; + } + ::-webkit-calendar-picker-indicator { + line-height: 1; + } + :-moz-ui-invalid { + box-shadow: none; + } + button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button { + appearance: button; + } + ::-webkit-inner-spin-button, ::-webkit-outer-spin-button { + height: auto; + } + [hidden]:where(:not([hidden="until-found"])) { + display: none !important; + } +} +@layer utilities { + .modal { + @layer daisyui.l1.l2.l3 { + pointer-events: none; + visibility: hidden; + position: fixed; + inset: calc(0.25rem * 0); + margin: calc(0.25rem * 0); + display: grid; + height: 100%; + max-height: none; + width: 100%; + max-width: none; + align-items: center; + justify-items: center; + background-color: transparent; + padding: calc(0.25rem * 0); + color: inherit; + transition: visibility 0.3s allow-discrete, background-color 0.3s ease-out, opacity 0.1s ease-out; + overflow: clip; + overscroll-behavior: contain; + z-index: 999; + scrollbar-gutter: auto; + &::backdrop { + display: none; + } + } + @layer daisyui.l1.l2 { + &.modal-open, &[open], &:target, .modal-toggle:checked + & { + pointer-events: auto; + visibility: visible; + opacity: 100%; + transition: visibility 0s allow-discrete, background-color 0.3s ease-out, opacity 0.1s ease-out; + background-color: oklch(0% 0 0/ 0.4); + .modal-box { + translate: 0 0; + scale: 1; + opacity: 1; + } + :root:has(&) { + --page-has-backdrop: 1; + --page-overflow: hidden; + --page-scroll-bg: var(--page-scroll-bg-on); + --page-scroll-gutter: stable; + --page-scroll-transition: var(--page-scroll-transition-on); + animation: set-page-has-scroll forwards; + animation-timeline: scroll(); + } + } + @starting-style { + &.modal-open, &[open], &:target, .modal-toggle:checked + & { + opacity: 0%; + } + } + } + } + .drawer-side { + :where(&) { + @layer daisyui.l1.l2.l3 { + overflow-x: hidden; + overflow-y: hidden; + } + } + @layer daisyui.l1.l2.l3 { + pointer-events: none; + visibility: hidden; + position: fixed; + inset-inline-start: calc(0.25rem * 0); + top: calc(0.25rem * 0); + z-index: 10; + grid-column-start: 1; + grid-row-start: 1; + display: grid; + width: 100%; + grid-template-columns: repeat(1, minmax(0, 1fr)); + grid-template-rows: repeat(1, minmax(0, 1fr)); + align-items: flex-start; + justify-items: start; + overscroll-behavior: contain; + background-color: transparent; + opacity: 0%; + transition: opacity 0.2s ease-out 0.1s allow-discrete, visibility 0.3s ease-out 0.1s allow-discrete; + height: 100vh; + height: 100dvh; + > .drawer-overlay { + position: sticky; + top: calc(0.25rem * 0); + cursor: pointer; + place-self: stretch; + background-color: oklch(0% 0 0 / 40%); + } + > * { + grid-column-start: 1; + grid-row-start: 1; + } + > *:not(.drawer-overlay) { + will-change: transform; + transition: translate 0.3s ease-out, width 0.2s ease-out; + translate: -100%; + [dir="rtl"] & { + translate: 100%; + } + } + } + } + .drawer-toggle { + @layer daisyui.l1.l2.l3 { + position: fixed; + height: calc(0.25rem * 0); + width: calc(0.25rem * 0); + appearance: none; + opacity: 0%; + :where(&:checked ~ .drawer-side) { + scrollbar-color: currentColor oklch(0 0 0 / calc(var(--page-has-backdrop, 0) * 0.4)); + @supports (color: color-mix(in lab, red, red)) { + scrollbar-color: color-mix(in oklch, currentColor 35%, #0000) oklch(0 0 0 / calc(var(--page-has-backdrop, 0) * 0.4)); + } + } + :where(:root:has(&:checked)) { + --page-has-backdrop: 1; + --page-overflow: hidden; + --page-scroll-bg: var(--page-scroll-bg-on); + --page-scroll-gutter: stable; + --page-scroll-transition: var(--page-scroll-transition-on); + animation: set-page-has-scroll forwards; + animation-timeline: scroll(); + } + } + @layer daisyui.l1.l2 { + :where(&:checked ~ .drawer-side) { + pointer-events: auto; + visibility: visible; + overflow-y: auto; + opacity: 100%; + & > *:not(.drawer-overlay) { + translate: 0%; + } + } + &:focus-visible ~ .drawer-content label.drawer-button { + outline: 2px solid; + outline-offset: 2px; + } + } + } + .tooltip { + @layer daisyui.l1.l2.l3 { + position: relative; + display: inline-block; + --tt-bg: var(--color-neutral); + --tt-off: calc(100% + 0.5rem); + --tt-tail: calc(100% + 1px + 0.25rem); + & > .tooltip-content, &[data-tip]:before { + position: absolute; + max-width: 20rem; + border-radius: var(--radius-field); + padding-inline: calc(0.25rem * 2); + padding-block: calc(0.25rem * 1); + text-align: center; + white-space: normal; + color: var(--color-neutral-content); + opacity: 0%; + font-size: 0.875rem; + line-height: 1.25; + background-color: var(--tt-bg); + width: max-content; + pointer-events: none; + z-index: 2; + --tw-content: attr(data-tip); + content: var(--tw-content); + } + &:after { + opacity: 0%; + background-color: var(--tt-bg); + content: ""; + pointer-events: none; + width: 0.625rem; + height: 0.25rem; + display: block; + position: absolute; + mask-repeat: no-repeat; + mask-position: -1px 0; + --mask-tooltip: url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A"); + mask-image: var(--mask-tooltip); + } + @media (prefers-reduced-motion: no-preference) { + & > .tooltip-content, &[data-tip]:before, &:after { + transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1) 75ms, transform 0.2s cubic-bezier(0.4, 0, 0.2, 1) 75ms; + } + } + &:is([data-tip]:not([data-tip=""]), :has(.tooltip-content:not(:empty))) { + &.tooltip-open, &:hover, &:has(:focus-visible) { + & > .tooltip-content, &[data-tip]:before, &:after { + opacity: 100%; + --tt-pos: 0rem; + @media (prefers-reduced-motion: no-preference) { + transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1) 0s, transform 0.2s cubic-bezier(0.4, 0, 0.2, 1) 0s; + } + } + } + } + } + @layer daisyui.l1.l2 { + > .tooltip-content, &[data-tip]:before { + transform: translateX(-50%) translateY(var(--tt-pos, 0.25rem)); + inset: auto auto var(--tt-off) 50%; + } + &:after { + transform: translateX(-50%) translateY(var(--tt-pos, 0.25rem)); + inset: auto auto var(--tt-tail) 50%; + } + } + } + .tab { + @layer daisyui.l1.l2.l3 { + position: relative; + display: inline-flex; + cursor: pointer; + appearance: none; + flex-wrap: wrap; + align-items: center; + justify-content: center; + text-align: center; + webkit-user-select: none; + user-select: none; + &:hover { + @media (hover: hover) { + color: var(--color-base-content); + } + } + --tab-p: 0.75rem; + --tab-bg: var(--color-base-100); + --tab-border-color: var(--color-base-300); + --tab-radius-ss: 0; + --tab-radius-se: 0; + --tab-radius-es: 0; + --tab-radius-ee: 0; + --tab-order: 0; + --tab-radius-min: calc(0.75rem - var(--border)); + --tab-radius-limit: min(var(--radius-field), var(--tab-radius-min)); + --tab-radius-grad: #0000 calc(69% - var(--border)), + var(--tab-border-color) calc(69% - var(--border) + 0.25px), + var(--tab-border-color) 69%, + var(--tab-bg) calc(69% + 0.25px); + border-color: #0000; + order: var(--tab-order); + height: var(--tab-height); + font-size: 0.875rem; + padding-inline: var(--tab-p); + &:is(input[type="radio"]) { + min-width: fit-content; + &:after { + --tw-content: attr(aria-label); + content: var(--tw-content); + } + } + &:is(label) { + position: relative; + input { + position: absolute; + inset: calc(0.25rem * 0); + cursor: pointer; + appearance: none; + opacity: 0%; + } + } + &:checked, &:is(label:has(:checked)), &:is(.tab-active, [aria-selected="true"], [aria-current="true"], [aria-current="page"]) { + & + .tab-content { + display: block; + } + } + &:not( :checked, label:has(:checked), :hover, .tab-active, [aria-selected="true"], [aria-current="true"], [aria-current="page"] ) { + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 50%, transparent); + } + } + &:not(input):empty { + flex-grow: 1; + cursor: default; + } + &:focus { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + &:focus-visible, &:is(label:has(:checked:focus-visible)) { + outline: 2px solid currentColor; + outline-offset: -5px; + } + &[disabled] { + pointer-events: none; + opacity: 40%; + } + } + } + .menu { + @layer daisyui.l1.l2.l3 { + display: flex; + width: fit-content; + flex-direction: column; + flex-wrap: wrap; + padding: calc(0.25rem * 2); + --menu-active-fg: var(--color-neutral-content); + --menu-active-bg: var(--color-neutral); + font-size: 0.875rem; + :where(li ul) { + position: relative; + margin-inline-start: calc(0.25rem * 4); + padding-inline-start: calc(0.25rem * 2); + white-space: nowrap; + &:before { + position: absolute; + inset-inline-start: calc(0.25rem * 0); + top: calc(0.25rem * 3); + bottom: calc(0.25rem * 3); + background-color: var(--color-base-content); + opacity: 10%; + width: var(--border); + content: ""; + } + } + :where(li > .menu-dropdown:not(.menu-dropdown-show)) { + display: none; + } + :where(li:not(.menu-title) > *:not(ul, details, .menu-title, .btn)), :where(li:not(.menu-title) > details > summary:not(.menu-title)) { + display: grid; + grid-auto-flow: column; + align-content: flex-start; + align-items: center; + gap: calc(0.25rem * 2); + border-radius: var(--radius-field); + padding-inline: calc(0.25rem * 3); + padding-block: calc(0.25rem * 1.5); + text-align: start; + transition-property: color, background-color, box-shadow; + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + grid-auto-columns: minmax(auto, max-content) auto max-content; + text-wrap: balance; + user-select: none; + } + :where(li > details > summary) { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + &::-webkit-details-marker { + display: none; + } + } + :where(li > details > summary), :where(li > .menu-dropdown-toggle) { + &:after { + justify-self: flex-end; + display: block; + height: 0.375rem; + width: 0.375rem; + rotate: -135deg; + translate: 0 -1px; + transition-property: rotate, translate; + transition-duration: 0.2s; + content: ""; + transform-origin: 50% 50%; + box-shadow: 2px 2px inset; + pointer-events: none; + } + } + details { + overflow: hidden; + interpolate-size: allow-keywords; + } + details::details-content { + block-size: 0; + @media (prefers-reduced-motion: no-preference) { + transition-behavior: allow-discrete; + transition-property: block-size, content-visibility; + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + } + } + details[open]::details-content { + block-size: auto; + } + :where(li > details[open] > summary):after, :where(li > .menu-dropdown-toggle.menu-dropdown-show):after { + rotate: 45deg; + translate: 0 1px; + } + :where( li:not(.menu-title, .disabled) > *:not(ul, details, .menu-title), li:not(.menu-title, .disabled) > details > summary:not(.menu-title) ):not(.menu-active, :active, .btn) { + &.menu-focus, &:focus-visible { + cursor: pointer; + background-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); + } + color: var(--color-base-content); + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + } + :where( li:not(.menu-title, .disabled) > *:not(ul, details, .menu-title):not(.menu-active, :active, .btn):hover, li:not(.menu-title, .disabled) > details > summary:not(.menu-title):not(.menu-active, :active, .btn):hover ) { + cursor: pointer; + background-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); + } + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + box-shadow: 0 1px oklch(0% 0 0 / 0.01) inset, 0 -1px oklch(100% 0 0 / 0.01) inset; + } + :where(li:empty) { + background-color: var(--color-base-content); + opacity: 10%; + margin: 0.5rem 1rem; + height: 1px; + } + :where(li) { + position: relative; + display: flex; + flex-shrink: 0; + flex-direction: column; + flex-wrap: wrap; + align-items: stretch; + .badge { + justify-self: flex-end; + } + & > *:not(ul, .menu-title, details, .btn):active, & > *:not(ul, .menu-title, details, .btn).menu-active, & > details > summary:active { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + color: var(--menu-active-fg); + background-color: var(--menu-active-bg); + background-size: auto, calc(var(--noise) * 100%); + background-image: none, var(--fx-noise); + &:not(&:active) { + box-shadow: 0 2px calc(var(--depth) * 3px) -2px var(--menu-active-bg); + } + } + &.menu-disabled { + pointer-events: none; + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 20%, transparent); + } + } + } + .dropdown:focus-within { + .menu-dropdown-toggle:after { + rotate: 45deg; + translate: 0 1px; + } + } + .dropdown-content { + margin-top: calc(0.25rem * 2); + padding: calc(0.25rem * 2); + &:before { + display: none; + } + } + } + } + .dropdown { + @layer daisyui.l1.l2.l3 { + position: relative; + display: inline-block; + position-area: var(--anchor-v, bottom) var(--anchor-h, span-right); + & > *:not(:has(~ [class*="dropdown-content"])):focus { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + .dropdown-content { + position: absolute; + } + &.dropdown-close .dropdown-content, &:not(details, .dropdown-open, .dropdown-hover:hover, :focus-within) .dropdown-content, &.dropdown-hover:not(:hover) [tabindex]:first-child:focus:not(:focus-visible) ~ .dropdown-content { + display: none; + transform-origin: top; + opacity: 0%; + scale: 95%; + } + &[popover], .dropdown-content { + z-index: 999; + @media (prefers-reduced-motion: no-preference) { + animation: dropdown 0.2s; + transition-property: opacity, scale, display; + transition-behavior: allow-discrete; + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + } + } + @starting-style { + &[popover], .dropdown-content { + scale: 95%; + opacity: 0; + } + } + &:not(.dropdown-close) { + &.dropdown-open, &:not(.dropdown-hover):focus, &:focus-within { + > [tabindex]:first-child { + pointer-events: none; + } + .dropdown-content { + opacity: 100%; + scale: 100%; + } + } + &.dropdown-hover:hover { + .dropdown-content { + opacity: 100%; + scale: 100%; + } + } + } + &:is(details) { + summary { + &::-webkit-details-marker { + display: none; + } + } + } + &:where([popover]) { + background: #0000; + } + &[popover] { + position: fixed; + color: inherit; + @supports not (position-area: bottom) { + margin: auto; + &.dropdown-close, &.dropdown-open:not(:popover-open) { + display: none; + transform-origin: top; + opacity: 0%; + scale: 95%; + } + &::backdrop { + background-color: color-mix(in oklab, #000 30%, #0000); + } + } + &.dropdown-close, &:not(.dropdown-open, :popover-open) { + display: none; + transform-origin: top; + opacity: 0%; + scale: 95%; + } + } + } + } + .btn { + :where(&) { + @layer daisyui.l1.l2.l3 { + width: unset; + } + } + @layer daisyui.l1.l2.l3 { + display: inline-flex; + flex-shrink: 0; + cursor: pointer; + flex-wrap: nowrap; + align-items: center; + justify-content: center; + gap: calc(0.25rem * 1.5); + text-align: center; + vertical-align: middle; + outline-offset: 2px; + webkit-user-select: none; + user-select: none; + padding-inline: var(--btn-p); + color: var(--btn-fg); + --tw-prose-links: var(--btn-fg); + height: var(--size); + font-size: var(--fontsize, 0.875rem); + font-weight: 600; + outline-color: var(--btn-color, var(--color-base-content)); + transition-property: color, background-color, border-color, box-shadow; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-duration: 0.2s; + border-start-start-radius: var(--join-ss, var(--radius-field)); + border-start-end-radius: var(--join-se, var(--radius-field)); + border-end-start-radius: var(--join-es, var(--radius-field)); + border-end-end-radius: var(--join-ee, var(--radius-field)); + background-color: var(--btn-bg); + background-size: auto, calc(var(--noise) * 100%); + background-image: none, var(--btn-noise); + border-width: var(--border); + border-style: solid; + border-color: var(--btn-border); + text-shadow: 0 0.5px oklch(100% 0 0 / calc(var(--depth) * 0.15)); + touch-action: manipulation; + box-shadow: 0 0.5px 0 0.5px oklch(100% 0 0 / calc(var(--depth) * 6%)) inset, var(--btn-shadow); + --size: calc(var(--size-field, 0.25rem) * 10); + --btn-bg: var(--btn-color, var(--color-base-200)); + --btn-fg: var(--color-base-content); + --btn-p: 1rem; + --btn-border: var(--btn-bg); + @supports (color: color-mix(in lab, red, red)) { + --btn-border: color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%)); + } + --btn-shadow: 0 3px 2px -2px var(--btn-bg), + 0 4px 3px -2px var(--btn-bg); + @supports (color: color-mix(in lab, red, red)) { + --btn-shadow: 0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), + 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000); + } + --btn-noise: var(--fx-noise); + @media (hover: hover) { + &:hover { + --btn-bg: var(--btn-color, var(--color-base-200)); + @supports (color: color-mix(in lab, red, red)) { + --btn-bg: color-mix(in oklab, var(--btn-color, var(--color-base-200)), #000 7%); + } + } + } + &:focus-visible, &:has(:focus-visible) { + outline-width: 2px; + outline-style: solid; + isolation: isolate; + } + &:active:not(.btn-active) { + translate: 0 0.5px; + --btn-bg: var(--btn-color, var(--color-base-200)); + @supports (color: color-mix(in lab, red, red)) { + --btn-bg: color-mix(in oklab, var(--btn-color, var(--color-base-200)), #000 5%); + } + --btn-border: var(--btn-color, var(--color-base-200)); + @supports (color: color-mix(in lab, red, red)) { + --btn-border: color-mix(in oklab, var(--btn-color, var(--color-base-200)), #000 7%); + } + --btn-shadow: 0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0); + } + &:is(input[type="checkbox"], input[type="radio"]) { + appearance: none; + &[aria-label]::after { + --tw-content: attr(aria-label); + content: var(--tw-content); + } + } + &:where(input:checked:not(.filter .btn)) { + --btn-color: var(--color-primary); + --btn-fg: var(--color-primary-content); + isolation: isolate; + } + } + &:disabled { + @layer daisyui.l1.l2 { + &:not(.btn-link, .btn-ghost) { + background-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); + } + box-shadow: none; + } + pointer-events: none; + --btn-border: #0000; + --btn-noise: none; + --btn-fg: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --btn-fg: color-mix(in oklch, var(--color-base-content) 20%, #0000); + } + } + } + &[disabled] { + @layer daisyui.l1.l2 { + &:not(.btn-link, .btn-ghost) { + background-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); + } + box-shadow: none; + } + pointer-events: none; + --btn-border: #0000; + --btn-noise: none; + --btn-fg: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --btn-fg: color-mix(in oklch, var(--color-base-content) 20%, #0000); + } + } + } + } + .loading { + @layer daisyui.l1.l2.l3 { + pointer-events: none; + display: inline-block; + aspect-ratio: 1 / 1; + background-color: currentcolor; + vertical-align: middle; + width: calc(var(--size-selector, 0.25rem) * 6); + mask-size: 100%; + mask-repeat: no-repeat; + mask-position: center; + mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E"); + } + } + .collapse { + &:not(td, tr, colgroup) { + visibility: revert-layer; + } + @layer daisyui.l1.l2.l3 { + display: grid; + position: relative; + overflow: hidden; + border-radius: var(--radius-box, 1rem); + width: 100%; + grid-template-rows: max-content 0fr; + grid-template-columns: minmax(0, 1fr); + isolation: isolate; + @media (prefers-reduced-motion: no-preference) { + transition: grid-template-rows 0.2s; + } + > input:is([type="checkbox"], [type="radio"]) { + grid-column-start: 1; + grid-row-start: 1; + appearance: none; + opacity: 0; + z-index: 1; + width: 100%; + padding: 1rem; + padding-inline-end: 3rem; + min-height: 1lh; + transition: background-color 0.2s ease-out; + } + &:is( [open], [tabindex]:focus:not(.collapse-close), [tabindex]:focus-within:not(.collapse-close) ), &:not(.collapse-close):has(> input:is([type="checkbox"], [type="radio"]):checked) { + grid-template-rows: max-content 1fr; + } + &:is( [open], [tabindex]:focus:not(.collapse-close), [tabindex]:focus-within:not(.collapse-close) ) > .collapse-content, &:not(.collapse-close) > :where(input:is([type="checkbox"], [type="radio"]):checked ~ .collapse-content) { + content-visibility: visible; + min-height: fit-content; + @supports not (content-visibility: visible) { + visibility: visible; + } + } + &:focus-visible, &:has(> input:is([type="checkbox"], [type="radio"]):focus-visible), &:has(summary:focus-visible) { + outline-color: var(--color-base-content); + outline-style: solid; + outline-width: 2px; + outline-offset: 2px; + } + &:not(.collapse-close) { + > input[type="checkbox"], > input[type="radio"]:not(:checked), > .collapse-title { + cursor: pointer; + } + } + &[tabindex]:focus:not(.collapse-close, .collapse[open]), &[tabindex]:focus-within:not(.collapse-close, .collapse[open]) { + > .collapse-title { + cursor: unset; + } + } + &:is( [open], [tabindex]:focus:not(.collapse-close), [tabindex]:focus-within:not(.collapse-close) ) > :where(.collapse-content), &:not(.collapse-close) > :where(input:is([type="checkbox"], [type="radio"]):checked ~ .collapse-content) { + padding-bottom: 1rem; + } + } + @layer daisyui.l1.l2 { + &:is([open]) { + &.collapse-arrow { + > .collapse-title:after { + @media (prefers-reduced-motion: no-preference) { + transform: translateY(-50%) rotate(225deg); + } + } + } + } + &.collapse-open { + &.collapse-arrow { + > .collapse-title:after { + @media (prefers-reduced-motion: no-preference) { + transform: translateY(-50%) rotate(225deg); + } + } + } + &.collapse-plus { + > .collapse-title:after { + --tw-content: "−"; + content: var(--tw-content); + } + } + } + &[tabindex].collapse-arrow:focus:not(.collapse-close), &.collapse-arrow[tabindex]:focus-within:not(.collapse-close) { + > .collapse-title:after { + transform: translateY(-50%) rotate(225deg); + } + } + &.collapse-arrow:not(.collapse-close) { + > input:is([type="checkbox"], [type="radio"]):checked ~ .collapse-title:after { + transform: translateY(-50%) rotate(225deg); + } + } + &[open] { + &.collapse-plus { + > .collapse-title:after { + --tw-content: "−"; + content: var(--tw-content); + } + } + } + &[tabindex].collapse-plus:focus:not(.collapse-close) { + > .collapse-title:after { + --tw-content: "−"; + content: var(--tw-content); + } + } + &.collapse-plus:not(.collapse-close) { + > input:is([type="checkbox"], [type="radio"]):checked ~ .collapse-title:after { + --tw-content: "−"; + content: var(--tw-content); + } + } + } + &:is(details) { + @layer daisyui.l1.l2.l3 { + width: 100%; + @media (prefers-reduced-motion: no-preference) { + &::details-content { + transition: content-visibility 0.2s allow-discrete, visibility 0.2s allow-discrete, padding 0.2s ease-out, background-color 0.2s ease-out, height 0.2s; + height: 0; + interpolate-size: allow-keywords; + } + &:where([open])::details-content { + height: auto; + } + } + & summary { + position: relative; + display: block; + &::-webkit-details-marker { + display: none; + } + } + & > .collapse-content { + content-visibility: visible; + } + } + } + &:is(details) summary { + @layer daisyui.l1.l2.l3 { + outline: none; + } + } + } + .collapse-content { + @layer daisyui.l1.l2.l3 { + grid-column-start: 1; + grid-row-start: 1; + } + @layer daisyui.l1.l2.l3 { + content-visibility: hidden; + grid-column-start: 1; + grid-row-start: 2; + min-height: 0; + padding-left: 1rem; + padding-right: 1rem; + cursor: unset; + @supports not (content-visibility: hidden) { + visibility: hidden; + } + @media (prefers-reduced-motion: no-preference) { + transition: content-visibility 0.2s allow-discrete, visibility 0.2s allow-discrete, padding 0.2s ease-out, background-color 0.2s ease-out; + } + } + } + .collapse { + visibility: collapse; + } + .visible { + visibility: visible; + } + .list { + @layer daisyui.l1.l2.l3 { + display: flex; + flex-direction: column; + font-size: 0.875rem; + .list-row { + --list-grid-cols: minmax(0, auto) 1fr; + position: relative; + display: grid; + grid-auto-flow: column; + gap: calc(0.25rem * 4); + border-radius: var(--radius-box); + padding: calc(0.25rem * 4); + word-break: break-word; + grid-template-columns: var(--list-grid-cols); + } + & > :not(:last-child) { + &.list-row, .list-row { + &:after { + content: ""; + border-bottom: var(--border) solid; + inset-inline: var(--radius-box); + position: absolute; + bottom: calc(0.25rem * 0); + border-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + border-color: color-mix(in oklab, var(--color-base-content) 5%, transparent); + } + } + } + } + } + @layer daisyui.l1.l2 { + .list-row { + &:has(.list-col-grow:nth-child(1)) { + --list-grid-cols: 1fr; + } + &:has(.list-col-grow:nth-child(2)) { + --list-grid-cols: minmax(0, auto) 1fr; + } + &:has(.list-col-grow:nth-child(3)) { + --list-grid-cols: minmax(0, auto) minmax(0, auto) 1fr; + } + &:has(.list-col-grow:nth-child(4)) { + --list-grid-cols: minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr; + } + &:has(.list-col-grow:nth-child(5)) { + --list-grid-cols: minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr; + } + &:has(.list-col-grow:nth-child(6)) { + --list-grid-cols: minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) + minmax(0, auto) 1fr; + } + > :not(.list-col-wrap) { + grid-row-start: 1; + } + } + } + } + .toggle { + @layer daisyui.l1.l2.l3 { + border: var(--border) solid currentColor; + color: var(--input-color); + position: relative; + display: inline-grid; + flex-shrink: 0; + cursor: pointer; + appearance: none; + place-content: center; + vertical-align: middle; + webkit-user-select: none; + user-select: none; + grid-template-columns: 0fr 1fr 1fr; + --radius-selector-max: calc( + var(--radius-selector) + var(--radius-selector) + var(--radius-selector) + ); + border-radius: calc( var(--radius-selector) + min(var(--toggle-p), var(--radius-selector-max)) + min(var(--border), var(--radius-selector-max)) ); + padding: var(--toggle-p); + box-shadow: 0 1px currentColor inset; + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000) inset; + } + transition: color 0.3s, grid-template-columns 0.2s; + --input-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --input-color: color-mix(in oklab, var(--color-base-content) 50%, #0000); + } + --toggle-p: calc(var(--size) * 0.125); + --size: calc(var(--size-selector, 0.25rem) * 6); + width: calc((var(--size) * 2) - (var(--border) + var(--toggle-p)) * 2); + height: var(--size); + > * { + z-index: 1; + grid-column: span 1 / span 1; + grid-column-start: 2; + grid-row-start: 1; + height: 100%; + cursor: pointer; + appearance: none; + background-color: transparent; + padding: calc(0.25rem * 0.5); + transition: opacity 0.2s, rotate 0.4s; + border: none; + &:focus { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + &:nth-child(2) { + color: var(--color-base-100); + rotate: 0deg; + } + &:nth-child(3) { + color: var(--color-base-100); + opacity: 0%; + rotate: -15deg; + } + } + &:has(:checked) { + > :nth-child(2) { + opacity: 0%; + rotate: 15deg; + } + > :nth-child(3) { + opacity: 100%; + rotate: 0deg; + } + } + &:before { + position: relative; + inset-inline-start: calc(0.25rem * 0); + grid-column-start: 2; + grid-row-start: 1; + aspect-ratio: 1 / 1; + height: 100%; + border-radius: var(--radius-selector); + background-color: currentcolor; + translate: 0; + --tw-content: ""; + content: var(--tw-content); + transition: background-color 0.1s, translate 0.2s, inset-inline-start 0.2s; + box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px currentColor; + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000); + } + background-size: auto, calc(var(--noise) * 100%); + background-image: none, var(--fx-noise); + } + @media (forced-colors: active) { + &:before { + outline-style: var(--tw-outline-style); + outline-width: 1px; + outline-offset: calc(1px * -1); + } + } + @media print { + &:before { + outline: 0.25rem solid; + outline-offset: -1rem; + } + } + &:focus-visible, &:has(:focus-visible) { + outline: 2px solid currentColor; + outline-offset: 2px; + } + &:checked, &[aria-checked="true"], &:has(> input:checked) { + grid-template-columns: 1fr 1fr 0fr; + background-color: var(--color-base-100); + --input-color: var(--color-base-content); + &:before { + background-color: currentcolor; + } + @starting-style { + &:before { + opacity: 0; + } + } + } + &:indeterminate { + grid-template-columns: 0.5fr 1fr 0.5fr; + } + &:disabled { + cursor: not-allowed; + opacity: 30%; + &:before { + background-color: transparent; + border: var(--border) solid currentColor; + } + } + } + } + .input { + @layer daisyui.l1.l2.l3 { + cursor: text; + border: var(--border) solid #0000; + position: relative; + display: inline-flex; + flex-shrink: 1; + appearance: none; + align-items: center; + gap: calc(0.25rem * 2); + background-color: var(--color-base-100); + padding-inline: calc(0.25rem * 3); + vertical-align: middle; + white-space: nowrap; + width: clamp(3rem, 20rem, 100%); + height: var(--size); + font-size: max(var(--font-size, 0.875rem), 0.875rem); + touch-action: manipulation; + border-start-start-radius: var(--join-ss, var(--radius-field)); + border-start-end-radius: var(--join-se, var(--radius-field)); + border-end-start-radius: var(--join-es, var(--radius-field)); + border-end-end-radius: var(--join-ee, var(--radius-field)); + border-color: var(--input-color); + box-shadow: 0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; + } + --size: calc(var(--size-field, 0.25rem) * 10); + --input-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000); + } + &:where(input) { + display: inline-flex; + } + :where(input) { + display: inline-flex; + height: 100%; + width: 100%; + appearance: none; + background-color: transparent; + border: none; + &:focus, &:focus-within { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + } + :where(input[type="url"]), :where(input[type="email"]) { + direction: ltr; + } + :where(input[type="date"]) { + display: inline-flex; + } + &:focus, &:focus-within { + --input-color: var(--color-base-content); + box-shadow: 0 1px var(--input-color); + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000); + } + outline: 2px solid var(--input-color); + outline-offset: 2px; + isolation: isolate; + z-index: 1; + } + @media (pointer: coarse) { + @supports (-webkit-touch-callout: none) { + &:focus, &:focus-within { + --font-size: 1rem; + } + } + } + &:has(> input[disabled]), &:is(:disabled, [disabled]), fieldset:disabled & { + cursor: not-allowed; + border-color: var(--color-base-200); + background-color: var(--color-base-200); + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 40%, transparent); + } + &::placeholder { + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 20%, transparent); + } + } + box-shadow: none; + } + &:has(> input[disabled]) > input[disabled] { + cursor: not-allowed; + } + &::-webkit-date-and-time-value { + text-align: inherit; + } + &[type="number"] { + &::-webkit-inner-spin-button { + margin-block: calc(0.25rem * -3); + margin-inline-end: calc(0.25rem * -3); + } + } + &::-webkit-calendar-picker-indicator { + position: absolute; + inset-inline-end: 0.75em; + } + &:has(> input[type="date"]) { + :where(input[type="date"]) { + display: inline-flex; + webkit-appearance: none; + appearance: none; + } + input[type="date"]::-webkit-calendar-picker-indicator { + position: absolute; + inset-inline-end: 0.75em; + width: 1em; + height: 1em; + cursor: pointer; + } + } + } + } + .table { + @layer daisyui.l1.l2.l3 { + font-size: 0.875rem; + position: relative; + width: 100%; + border-collapse: separate; + --tw-border-spacing-x: calc(0.25rem * 0); + --tw-border-spacing-y: calc(0.25rem * 0); + border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y); + border-radius: var(--radius-box); + text-align: left; + &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) { + text-align: right; + } + tr.row-hover { + &, &:nth-child(even) { + &:hover { + @media (hover: hover) { + background-color: var(--color-base-200); + } + } + } + } + :where(th, td) { + padding-inline: calc(0.25rem * 4); + padding-block: calc(0.25rem * 3); + vertical-align: middle; + } + :where(thead, tfoot) { + white-space: nowrap; + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 60%, transparent); + } + font-size: 0.875rem; + font-weight: 600; + } + :where(tfoot tr:first-child :is(td, th)) { + border-top: var(--border) solid var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + border-top: var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000); + } + } + :where(.table-pin-rows thead tr) { + position: sticky; + top: calc(0.25rem * 0); + z-index: 1; + background-color: var(--color-base-100); + } + :where(.table-pin-rows tfoot tr) { + position: sticky; + bottom: calc(0.25rem * 0); + z-index: 1; + background-color: var(--color-base-100); + } + :where(.table-pin-cols tr th) { + position: sticky; + right: calc(0.25rem * 0); + left: calc(0.25rem * 0); + background-color: var(--color-base-100); + } + :where(thead tr :is(td, th), tbody tr:not(:last-child) :is(td, th)) { + border-bottom: var(--border) solid var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + border-bottom: var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000); + } + } + } + } + .avatar-offline { + @layer daisyui.l1.l2 { + &:before { + content: ""; + position: absolute; + z-index: 1; + display: block; + border-radius: calc(infinity * 1px); + background-color: var(--color-base-300); + outline: 2px solid var(--color-base-100); + width: 15%; + height: 15%; + top: 7%; + right: 7%; + } + } + } + .avatar-online { + @layer daisyui.l1.l2 { + &:before { + content: ""; + position: absolute; + z-index: 1; + display: block; + border-radius: calc(infinity * 1px); + background-color: var(--color-success); + outline: 2px solid var(--color-base-100); + width: 15%; + height: 15%; + top: 7%; + right: 7%; + } + } + } + .range { + @layer daisyui.l1.l2.l3 { + appearance: none; + webkit-appearance: none; + --range-thumb: var(--color-base-100); + --range-thumb-size: calc(var(--size-selector, 0.25rem) * 6); + --range-progress: currentColor; + --range-fill: 1; + --range-p: 0.25rem; + --range-bg: currentColor; + @supports (color: color-mix(in lab, red, red)) { + --range-bg: color-mix(in oklab, currentColor 10%, #0000); + } + cursor: pointer; + overflow: hidden; + background-color: transparent; + vertical-align: middle; + width: clamp(3rem, 20rem, 100%); + --radius-selector-max: calc( + var(--radius-selector) + var(--radius-selector) + var(--radius-selector) + ); + border-radius: calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max))); + border: none; + height: var(--range-thumb-size); + [dir="rtl"] & { + --range-dir: -1; + } + &:focus { + outline: none; + } + &:focus-visible { + outline: 2px solid; + outline-offset: 2px; + } + &::-webkit-slider-runnable-track { + width: 100%; + background-color: var(--range-bg); + border-radius: var(--radius-selector); + height: calc(var(--range-thumb-size) * 0.5); + } + @media (forced-colors: active) { + &::-webkit-slider-runnable-track { + border: 1px solid; + } + } + @media (forced-colors: active) { + &::-moz-range-track { + border: 1px solid; + } + } + &::-webkit-slider-thumb { + position: relative; + box-sizing: border-box; + border-radius: calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max))); + background-color: var(--range-thumb); + height: var(--range-thumb-size); + width: var(--range-thumb-size); + border: var(--range-p) solid; + appearance: none; + webkit-appearance: none; + top: 50%; + color: var(--range-progress); + transform: translateY(-50%); + box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px currentColor, 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir, 1) * -100rem) - (var(--range-dir, 1) * var(--range-thumb-size) / 2)) 0 0 calc(100rem * var(--range-fill)); + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000), 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir, 1) * -100rem) - (var(--range-dir, 1) * var(--range-thumb-size) / 2)) 0 0 calc(100rem * var(--range-fill)); + } + } + &::-moz-range-track { + width: 100%; + background-color: var(--range-bg); + border-radius: var(--radius-selector); + height: calc(var(--range-thumb-size) * 0.5); + } + &::-moz-range-thumb { + position: relative; + box-sizing: border-box; + border-radius: calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max))); + background-color: currentColor; + height: var(--range-thumb-size); + width: var(--range-thumb-size); + border: var(--range-p) solid; + top: 50%; + color: var(--range-progress); + box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px currentColor, 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir, 1) * -100rem) - (var(--range-dir, 1) * var(--range-thumb-size) / 2)) 0 0 calc(100rem * var(--range-fill)); + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000), 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir, 1) * -100rem) - (var(--range-dir, 1) * var(--range-thumb-size) / 2)) 0 0 calc(100rem * var(--range-fill)); + } + } + &:disabled { + cursor: not-allowed; + opacity: 30%; + } + } + } + .tabs-border { + @layer daisyui.l1.l2 { + > .tab { + --tab-border-color: #0000 #0000 var(--tab-border-color) #0000; + position: relative; + border-radius: var(--radius-field); + &:before { + content: ""; + background-color: var(--tab-border-color); + transition: background-color 0.2s ease; + width: 80%; + height: 3px; + border-radius: var(--radius-field); + bottom: 0; + left: 10%; + position: absolute; + } + &:is(.tab-active, [aria-selected="true"], [aria-current="true"], [aria-current="page"]):not( .tab-disabled, [disabled] ), &:is(input:checked), &:is(label:has(:checked)) { + &:before { + --tab-border-color: currentColor; + border-top: 3px solid; + } + } + } + } + } + .select { + @layer daisyui.l1.l2.l3 { + border: var(--border) solid #0000; + position: relative; + display: inline-flex; + flex-shrink: 1; + appearance: none; + align-items: center; + gap: calc(0.25rem * 1.5); + background-color: var(--color-base-100); + padding-inline-start: calc(0.25rem * 3); + padding-inline-end: calc(0.25rem * 7); + vertical-align: middle; + width: clamp(3rem, 20rem, 100%); + height: var(--size); + font-size: 0.875rem; + touch-action: manipulation; + border-start-start-radius: var(--join-ss, var(--radius-field)); + border-start-end-radius: var(--join-se, var(--radius-field)); + border-end-start-radius: var(--join-es, var(--radius-field)); + border-end-end-radius: var(--join-ee, var(--radius-field)); + background-image: linear-gradient(45deg, #0000 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, #0000 50%); + background-position: calc(100% - 20px) calc(1px + 50%), calc(100% - 16.1px) calc(1px + 50%); + background-size: 4px 4px, 4px 4px; + background-repeat: no-repeat; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + box-shadow: 0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; + } + border-color: var(--input-color); + --input-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000); + } + --size: calc(var(--size-field, 0.25rem) * 10); + [dir="rtl"] & { + background-position: calc(0% + 12px) calc(1px + 50%), calc(0% + 16px) calc(1px + 50%); + &::picker(select), select::picker(select) { + translate: 0.5rem 0; + } + } + &[multiple] { + height: auto; + overflow: auto; + padding-block: calc(0.25rem * 3); + padding-inline-end: calc(0.25rem * 3); + background-image: none; + } + select { + margin-inline-start: calc(0.25rem * -3); + margin-inline-end: calc(0.25rem * -7); + width: calc(100% + 2.75rem); + appearance: none; + padding-inline-start: calc(0.25rem * 3); + padding-inline-end: calc(0.25rem * 7); + height: calc(100% - calc(var(--border) * 2)); + align-items: center; + background: inherit; + border-radius: inherit; + border-style: none; + &:focus, &:focus-within { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + &:not(:last-child) { + margin-inline-end: calc(0.25rem * -5.5); + background-image: none; + } + } + &:focus, &:focus-within { + --input-color: var(--color-base-content); + box-shadow: 0 1px var(--input-color); + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000); + } + outline: 2px solid var(--input-color); + outline-offset: 2px; + isolation: isolate; + z-index: 1; + } + &:has(> select[disabled]), &:is(:disabled, [disabled]), fieldset:disabled & { + cursor: not-allowed; + border-color: var(--color-base-200); + background-color: var(--color-base-200); + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 40%, transparent); + } + &::placeholder { + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 20%, transparent); + } + } + } + &:has(> select[disabled]) > select[disabled] { + cursor: not-allowed; + } + &, & select { + @supports (appearance: base-select) { + appearance: base-select; + } + @supports (appearance: base-select) { + &::picker(select) { + appearance: base-select; + } + } + &::picker(select) { + color: inherit; + max-height: min(24rem, 70dvh); + margin-inline: 0.5rem; + translate: -0.5rem 0; + border: var(--border) solid var(--color-base-200); + margin-block: calc(0.25rem * 2); + border-radius: var(--radius-box); + padding: calc(0.25rem * 2); + background-color: inherit; + box-shadow: 0 2px calc(var(--depth) * 3px) -2px oklch(0% 0 0/0.2); + box-shadow: 0 20px 25px -5px rgb(0 0 0 / calc(var(--depth) * 0.1)), 0 8px 10px -6px rgb(0 0 0 / calc(var(--depth) * 0.1)); + } + &::picker-icon { + display: none; + } + optgroup { + padding-top: 0.5em; + option { + &:nth-child(1) { + margin-top: 0.5em; + } + } + } + option { + border-radius: var(--radius-field); + padding-inline: calc(0.25rem * 3); + padding-block: calc(0.25rem * 1.5); + transition-property: color, background-color; + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + white-space: normal; + &:not(:disabled) { + &:hover, &:focus-visible { + cursor: pointer; + background-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); + } + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + &:active { + background-color: var(--color-neutral); + color: var(--color-neutral-content); + box-shadow: 0 2px calc(var(--depth) * 3px) -2px var(--color-neutral); + } + } + } + } + } + } + .swap { + @layer daisyui.l1.l2.l3 { + position: relative; + display: inline-grid; + cursor: pointer; + place-content: center; + vertical-align: middle; + webkit-user-select: none; + user-select: none; + input { + appearance: none; + border: none; + } + > * { + grid-column-start: 1; + grid-row-start: 1; + @media (prefers-reduced-motion: no-preference) { + transition-property: transform, rotate, opacity; + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + } + } + .swap-on, .swap-indeterminate, input:indeterminate ~ .swap-on { + opacity: 0%; + } + input:is(:checked, :indeterminate) { + & ~ .swap-off { + opacity: 0%; + } + } + input:checked ~ .swap-on, input:indeterminate ~ .swap-indeterminate { + opacity: 100%; + backface-visibility: visible; + } + } + } + .collapse-title { + @layer daisyui.l1.l2.l3 { + grid-column-start: 1; + grid-row-start: 1; + } + @layer daisyui.l1.l2.l3 { + position: relative; + width: 100%; + padding: 1rem; + padding-inline-end: 3rem; + min-height: 1lh; + transition: background-color 0.2s ease-out; + } + } + .menu-horizontal { + @layer daisyui.l1.l2 { + display: inline-flex; + flex-direction: row; + & > li:not(.menu-title) > details { + & > ul { + position: absolute; + margin-inline-start: calc(0.25rem * 0); + margin-top: calc(0.25rem * 4); + transform-origin: top; + border-radius: var(--radius-box); + background-color: var(--color-base-100); + padding-block: calc(0.25rem * 2); + padding-inline-end: calc(0.25rem * 2); + opacity: 0%; + scale: 95%; + box-shadow: 0 1px 3px 0 oklch(0% 0 0/0.1), 0 1px 2px -1px oklch(0% 0 0/0.1); + @media (prefers-reduced-motion: no-preference) { + @starting-style { + scale: 95%; + opacity: 0; + } + animation: menu 0.2s; + transition-property: opacity, scale, display; + transition-behavior: allow-discrete; + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + } + } + &[open] > ul { + opacity: 100%; + scale: 100%; + } + } + & > li > details > ul { + &:before { + --tw-content: none; + content: var(--tw-content); + } + } + } + } + .avatar { + @layer daisyui.l1.l2.l3 { + position: relative; + display: inline-flex; + vertical-align: middle; + & > div { + display: block; + aspect-ratio: 1 / 1; + overflow: hidden; + } + img { + height: 100%; + width: 100%; + object-fit: cover; + } + } + } + .checkbox { + @layer daisyui.l1.l2.l3 { + border: var(--border) solid var(--input-color, var(--color-base-content)); + @supports (color: color-mix(in lab, red, red)) { + border: var(--border) solid var(--input-color, color-mix(in oklab, var(--color-base-content) 20%, #0000)); + } + position: relative; + display: inline-block; + flex-shrink: 0; + cursor: pointer; + appearance: none; + border-radius: var(--radius-selector); + padding: calc(0.25rem * 1); + vertical-align: middle; + color: var(--color-base-content); + box-shadow: 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 0 #0000 inset, 0 0 #0000; + transition: background-color 0.2s, box-shadow 0.2s; + --size: calc(var(--size-selector, 0.25rem) * 6); + width: var(--size); + height: var(--size); + background-size: auto, calc(var(--noise) * 100%); + background-image: none, var(--fx-noise); + &:before { + --tw-content: ""; + content: var(--tw-content); + display: block; + width: 100%; + height: 100%; + rotate: 45deg; + background-color: currentcolor; + opacity: 0%; + transition: clip-path 0.3s, opacity 0.1s, rotate 0.3s, translate 0.3s; + transition-delay: 0.1s; + clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 80%, 70% 80%, 70% 100%); + box-shadow: 0px 3px 0 0px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; + font-size: 1rem; + line-height: 0.75; + } + &:focus-visible { + outline: 2px solid var(--input-color, currentColor); + outline-offset: 2px; + } + &:checked, &[aria-checked="true"] { + background-color: var(--input-color, #0000); + box-shadow: 0 0 #0000 inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1)); + &:before { + clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 0%, 70% 0%, 70% 100%); + opacity: 100%; + } + @media (forced-colors: active) { + &:before { + rotate: 0deg; + background-color: transparent; + --tw-content: "✔︎"; + clip-path: none; + } + } + @media print { + &:before { + rotate: 0deg; + background-color: transparent; + --tw-content: "✔︎"; + clip-path: none; + } + } + } + &:indeterminate { + background-color: var( --input-color, var(--color-base-content) ); + @supports (color: color-mix(in lab, red, red)) { + background-color: var( --input-color, color-mix(in oklab, var(--color-base-content) 20%, #0000) ); + } + &:before { + rotate: 0deg; + opacity: 100%; + translate: 0 -35%; + clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 80%, 80% 80%, 80% 100%); + } + } + } + &:disabled { + @layer daisyui.l1.l2 { + cursor: not-allowed; + opacity: 20%; + } + } + } + .radio { + @layer daisyui.l1.l2.l3 { + position: relative; + display: inline-block; + flex-shrink: 0; + cursor: pointer; + appearance: none; + border-radius: calc(infinity * 1px); + padding: calc(0.25rem * 1); + vertical-align: middle; + border: var(--border) solid var(--input-color, currentColor); + @supports (color: color-mix(in lab, red, red)) { + border: var(--border) solid var(--input-color, color-mix(in srgb, currentColor 20%, #0000)); + } + box-shadow: 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset; + --size: calc(var(--size-selector, 0.25rem) * 6); + width: var(--size); + height: var(--size); + color: var(--input-color, currentColor); + &:before { + display: block; + width: 100%; + height: 100%; + border-radius: calc(infinity * 1px); + --tw-content: ""; + content: var(--tw-content); + background-size: auto, calc(var(--noise) * 100%); + background-image: none, var(--fx-noise); + } + &:focus-visible { + outline: 2px solid currentColor; + } + &:checked, &[aria-checked="true"] { + border-color: currentcolor; + background-color: var(--color-base-100); + @media (prefers-reduced-motion: no-preference) { + animation: radio 0.2s ease-out; + } + &:before { + background-color: currentcolor; + box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1)); + } + @media (forced-colors: active) { + &:before { + outline-style: var(--tw-outline-style); + outline-width: 1px; + outline-offset: calc(1px * -1); + } + } + @media print { + &:before { + outline: 0.25rem solid; + outline-offset: -1rem; + } + } + } + } + &:disabled { + @layer daisyui.l1.l2 { + cursor: not-allowed; + opacity: 20%; + } + } + } + .rating { + @layer daisyui.l1.l2.l3 { + position: relative; + display: inline-flex; + vertical-align: middle; + & input { + border: none; + appearance: none; + } + :where(*) { + height: calc(0.25rem * 6); + width: calc(0.25rem * 6); + border-radius: 0; + background-color: var(--color-base-content); + opacity: 20%; + @media (prefers-reduced-motion: no-preference) { + animation: rating 0.25s ease-out; + } + &:is(input) { + cursor: pointer; + } + } + & .rating-hidden { + width: calc(0.25rem * 2); + background-color: transparent; + } + input[type="radio"]:checked { + background-image: none; + } + * { + &:checked, &[aria-checked="true"], &[aria-current="true"], &:has(~ *:checked, ~ *[aria-checked="true"], ~ *[aria-current="true"]) { + opacity: 100%; + } + &:focus-visible { + scale: 1.1; + @media (prefers-reduced-motion: no-preference) { + transition: scale 0.2s ease-out; + } + } + } + & *:active:focus { + animation: none; + scale: 1.1; + } + } + @layer daisyui.l1.l2 { + &.rating-xs :where(*:not(.rating-hidden)) { + width: calc(0.25rem * 4); + height: calc(0.25rem * 4); + } + &.rating-sm :where(*:not(.rating-hidden)) { + width: calc(0.25rem * 5); + height: calc(0.25rem * 5); + } + &.rating-md :where(*:not(.rating-hidden)) { + width: calc(0.25rem * 6); + height: calc(0.25rem * 6); + } + &.rating-lg :where(*:not(.rating-hidden)) { + width: calc(0.25rem * 7); + height: calc(0.25rem * 7); + } + &.rating-xl :where(*:not(.rating-hidden)) { + width: calc(0.25rem * 8); + height: calc(0.25rem * 8); + } + } + } + .drawer { + @layer daisyui.l1.l2.l3 { + position: relative; + display: grid; + width: 100%; + grid-auto-columns: max-content auto; + } + } + .card { + @layer daisyui.l1.l2.l3 { + position: relative; + display: flex; + flex-direction: column; + border-radius: var(--radius-box); + outline-width: 2px; + transition: outline 0.2s ease-in-out; + outline: 0 solid #0000; + outline-offset: 2px; + &:focus { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + &:focus-visible { + outline-color: currentColor; + } + :where(figure:first-child) { + overflow: hidden; + border-start-start-radius: inherit; + border-start-end-radius: inherit; + border-end-start-radius: unset; + border-end-end-radius: unset; + } + :where(figure:last-child) { + overflow: hidden; + border-start-start-radius: unset; + border-start-end-radius: unset; + border-end-start-radius: inherit; + border-end-end-radius: inherit; + } + figure { + display: flex; + align-items: center; + justify-content: center; + } + &:has(> input:is(input[type="checkbox"], input[type="radio"])) { + cursor: pointer; + user-select: none; + } + &:has(> :checked) { + outline: 2px solid currentColor; + } + } + } + .progress { + @layer daisyui.l1.l2.l3 { + position: relative; + height: calc(0.25rem * 2); + width: 100%; + appearance: none; + overflow: hidden; + border-radius: var(--radius-box); + background-color: currentcolor; + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, currentcolor 20%, transparent); + } + color: var(--color-base-content); + &:indeterminate { + background-image: repeating-linear-gradient( 90deg, currentColor -1%, currentColor 10%, #0000 10%, #0000 90% ); + background-size: 200%; + background-position-x: 15%; + @media (prefers-reduced-motion: no-preference) { + animation: progress 5s ease-in-out infinite; + } + @supports (-moz-appearance: none) { + &::-moz-progress-bar { + background-color: transparent; + @media (prefers-reduced-motion: no-preference) { + animation: progress 5s ease-in-out infinite; + background-image: repeating-linear-gradient( 90deg, currentColor -1%, currentColor 10%, #0000 10%, #0000 90% ); + background-size: 200%; + background-position-x: 15%; + } + } + } + } + @supports (-moz-appearance: none) { + &::-moz-progress-bar { + border-radius: var(--radius-box); + background-color: currentcolor; + } + } + @supports (-webkit-appearance: none) { + &::-webkit-progress-bar { + border-radius: var(--radius-box); + background-color: transparent; + } + &::-webkit-progress-value { + border-radius: var(--radius-box); + background-color: currentColor; + } + } + } + } + .absolute { + position: absolute; + } + .fixed { + position: fixed; + } + .relative { + position: relative; + } + .static { + position: static; + } + .start-2 { + inset-inline-start: calc(var(--spacing) * 2); + } + .dropdown-center { + @layer daisyui.l1.l2 { + --anchor-h: center; + :where(.dropdown-content) { + inset-inline-end: calc(1/2 * 100%); + translate: 50% 0; + [dir="rtl"] & { + translate: -50% 0; + } + } + &.dropdown-left { + --anchor-h: left; + --anchor-v: center; + .dropdown-content { + top: auto; + bottom: calc(1/2 * 100%); + translate: 0 50%; + } + } + &.dropdown-right { + --anchor-h: right; + --anchor-v: center; + .dropdown-content { + top: auto; + bottom: calc(1/2 * 100%); + translate: 0 50%; + } + } + } + } + .dropdown-end { + @layer daisyui.l1.l2 { + --anchor-h: span-left; + :where(.dropdown-content) { + inset-inline-end: calc(0.25rem * 0); + translate: 0 0; + [dir="rtl"] & { + translate: 0 0; + } + } + &.dropdown-left { + --anchor-h: left; + --anchor-v: span-top; + .dropdown-content { + top: auto; + bottom: calc(0.25rem * 0); + } + } + &.dropdown-right { + --anchor-h: right; + --anchor-v: span-top; + .dropdown-content { + top: auto; + bottom: calc(0.25rem * 0); + } + } + } + } + .end-0 { + inset-inline-end: calc(var(--spacing) * 0); + } + .end-1 { + inset-inline-end: calc(var(--spacing) * 1); + } + .end-4 { + inset-inline-end: calc(var(--spacing) * 4); + } + .dropdown-bottom { + @layer daisyui.l1.l2 { + --anchor-v: bottom; + .dropdown-content { + top: 100%; + bottom: auto; + transform-origin: top; + } + } + } + .top-1 { + top: calc(var(--spacing) * 1); + } + .top-2 { + top: calc(var(--spacing) * 2); + } + .top-4 { + top: calc(var(--spacing) * 4); + } + .top-\[100\%\] { + top: 100%; + } + .right-2 { + right: calc(var(--spacing) * 2); + } + .right-\[10px\] { + right: 10px; + } + .bottom-0 { + bottom: calc(var(--spacing) * 0); + } + .left-0 { + left: calc(var(--spacing) * 0); + } + .left-\[-10px\] { + left: -10px; + } + .left-\[-30px\] { + left: -30px; + } + .left-\[0\] { + left: 0; + } + .left-\[10px\] { + left: 10px; + } + .file-input { + @layer daisyui.l1.l2.l3 { + cursor: pointer; + cursor: pointer; + border: var(--border) solid #0000; + display: inline-flex; + appearance: none; + align-items: center; + background-color: var(--color-base-100); + vertical-align: middle; + webkit-user-select: none; + user-select: none; + width: clamp(3rem, 20rem, 100%); + height: var(--size); + padding-inline-end: 0.75rem; + font-size: 0.875rem; + line-height: 2; + border-start-start-radius: var(--join-ss, var(--radius-field)); + border-start-end-radius: var(--join-se, var(--radius-field)); + border-end-start-radius: var(--join-es, var(--radius-field)); + border-end-end-radius: var(--join-ee, var(--radius-field)); + border-color: var(--input-color); + box-shadow: 0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; + } + --size: calc(var(--size-field, 0.25rem) * 10); + --input-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000); + } + &::file-selector-button { + margin-inline-end: calc(0.25rem * 4); + cursor: pointer; + padding-inline: calc(0.25rem * 4); + webkit-user-select: none; + user-select: none; + height: calc(100% + var(--border) * 2); + margin-block: calc(var(--border) * -1); + margin-inline-start: calc(var(--border) * -1); + font-size: 0.875rem; + color: var(--btn-fg); + border-width: var(--border); + border-style: solid; + border-color: var(--btn-border); + border-start-start-radius: calc(var(--join-ss, var(--radius-field) - var(--border))); + border-end-start-radius: calc(var(--join-es, var(--radius-field) - var(--border))); + font-weight: 600; + background-color: var(--btn-bg); + background-size: calc(var(--noise) * 100%); + background-image: var(--btn-noise); + text-shadow: 0 0.5px oklch(1 0 0 / calc(var(--depth) * 0.15)); + box-shadow: 0 0.5px 0 0.5px white inset, var(--btn-shadow); + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 0.5px 0 0.5px color-mix( in oklab, color-mix(in oklab, white 30%, var(--btn-bg)) calc(var(--depth) * 20%), #0000 ) inset, var(--btn-shadow); + } + --size: calc(var(--size-field, 0.25rem) * 10); + --btn-bg: var(--btn-color, var(--color-base-200)); + --btn-fg: var(--color-base-content); + --btn-border: var(--btn-bg); + @supports (color: color-mix(in lab, red, red)) { + --btn-border: color-mix(in oklab, var(--btn-bg), #000 5%); + } + --btn-shadow: 0 3px 2px -2px var(--btn-bg), + 0 4px 3px -2px var(--btn-bg); + @supports (color: color-mix(in lab, red, red)) { + --btn-shadow: 0 3px 2px -2px color-mix(in oklab, var(--btn-bg) 30%, #0000), + 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) 30%, #0000); + } + --btn-noise: var(--fx-noise); + } + &:focus { + --input-color: var(--color-base-content); + box-shadow: 0 1px var(--input-color); + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 1px color-mix(in oklab, var(--input-color) 10%, #0000); + } + outline: 2px solid var(--input-color); + outline-offset: 2px; + isolation: isolate; + } + &:has(> input[disabled]), &:is(:disabled, [disabled]) { + cursor: not-allowed; + border-color: var(--color-base-200); + background-color: var(--color-base-200); + &::placeholder { + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 20%, transparent); + } + } + box-shadow: none; + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklch, var(--color-base-content) 20%, #0000); + } + &::file-selector-button { + cursor: not-allowed; + border-color: var(--color-base-200); + background-color: var(--color-base-200); + --btn-border: #0000; + --btn-noise: none; + --btn-fg: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --btn-fg: color-mix(in oklch, var(--color-base-content) 20%, #0000); + } + } + } + } + } + .textarea { + @layer daisyui.l1.l2.l3 { + border: var(--border) solid #0000; + min-height: calc(0.25rem * 20); + flex-shrink: 1; + appearance: none; + border-radius: var(--radius-field); + background-color: var(--color-base-100); + padding-block: calc(0.25rem * 2); + vertical-align: middle; + width: clamp(3rem, 20rem, 100%); + padding-inline-start: 0.75rem; + padding-inline-end: 0.75rem; + font-size: max(var(--font-size, 0.875rem), 0.875rem); + touch-action: manipulation; + border-color: var(--input-color); + box-shadow: 0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; + } + --input-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000); + } + textarea { + appearance: none; + background-color: transparent; + border: none; + &:focus, &:focus-within { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + } + &:focus, &:focus-within { + --input-color: var(--color-base-content); + box-shadow: 0 1px var(--input-color); + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000); + } + outline: 2px solid var(--input-color); + outline-offset: 2px; + isolation: isolate; + } + @media (pointer: coarse) { + @supports (-webkit-touch-callout: none) { + &:focus, &:focus-within { + --font-size: 1rem; + } + } + } + &:has(> textarea[disabled]), &:is(:disabled, [disabled]) { + cursor: not-allowed; + border-color: var(--color-base-200); + background-color: var(--color-base-200); + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 40%, transparent); + } + &::placeholder { + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 20%, transparent); + } + } + box-shadow: none; + } + &:has(> textarea[disabled]) > textarea[disabled] { + cursor: not-allowed; + } + } + } + .btn-active { + @layer daisyui.l1.l2 { + --btn-bg: var(--btn-color, var(--color-base-200)); + @supports (color: color-mix(in lab, red, red)) { + --btn-bg: color-mix(in oklab, var(--btn-color, var(--color-base-200)), #000 7%); + } + --btn-shadow: 0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0); + isolation: isolate; + } + } + .isolate { + isolation: isolate; + } + .modal-backdrop { + @layer daisyui.l1.l2.l3 { + grid-column-start: 1; + grid-row-start: 1; + display: grid; + align-self: stretch; + justify-self: stretch; + color: transparent; + z-index: -1; + button { + cursor: pointer; + } + } + } + .z-\[1\] { + z-index: 1; + } + .order-\[1\] { + order: 1; + } + .col-span-2 { + grid-column: span 2 / span 2; + } + .col-span-3 { + grid-column: span 3 / span 3; + } + .col-span-4 { + grid-column: span 4 / span 4; + } + .col-span-5 { + grid-column: span 5 / span 5; + } + .col-span-8 { + grid-column: span 8 / span 8; + } + .modal-box { + @layer daisyui.l1.l2.l3 { + grid-column-start: 1; + grid-row-start: 1; + max-height: 100vh; + width: calc(11/12 * 100%); + max-width: 32rem; + background-color: var(--color-base-100); + padding: calc(0.25rem * 6); + transition: translate 0.3s ease-out, scale 0.3s ease-out, opacity 0.2s ease-out 0.05s, box-shadow 0.3s ease-out; + border-top-left-radius: var(--modal-tl, var(--radius-box)); + border-top-right-radius: var(--modal-tr, var(--radius-box)); + border-bottom-left-radius: var(--modal-bl, var(--radius-box)); + border-bottom-right-radius: var(--modal-br, var(--radius-box)); + scale: 95%; + opacity: 0; + box-shadow: oklch(0% 0 0/ 0.25) 0px 25px 50px -12px; + overflow-y: auto; + overscroll-behavior: contain; + } + } + .drawer-content { + @layer daisyui.l1.l2.l3 { + grid-column-start: 2; + grid-row-start: 1; + min-width: calc(0.25rem * 0); + } + } + .drawer-end { + @layer daisyui.l1.l2 { + grid-auto-columns: auto max-content; + > .drawer-toggle { + & ~ .drawer-content { + grid-column-start: 1; + } + & ~ .drawer-side { + grid-column-start: 2; + justify-items: end; + } + & ~ .drawer-side > *:not(.drawer-overlay) { + translate: 100%; + [dir="rtl"] & { + translate: -100%; + } + } + &:checked ~ .drawer-side > *:not(.drawer-overlay) { + translate: 0%; + } + } + } + } + .container { + width: 100%; + @media (width >= 40rem) { + max-width: 40rem; + } + @media (width >= 48rem) { + max-width: 48rem; + } + @media (width >= 64rem) { + max-width: 64rem; + } + @media (width >= 80rem) { + max-width: 80rem; + } + @media (width >= 96rem) { + max-width: 96rem; + } + } + .m-4 { + margin: calc(var(--spacing) * 4); + } + .m-\[0_0_0_10px\] { + margin: 0 0 0 10px; + } + .m-\[0_0_6px_0\] { + margin: 0 0 6px 0; + } + .m-\[0_0_7px_0\] { + margin: 0 0 7px 0; + } + .m-\[0_0_12px\] { + margin: 0 0 12px; + } + .m-\[0_0_13px\] { + margin: 0 0 13px; + } + .m-\[0_0_16px\] { + margin: 0 0 16px; + } + .m-\[0_0_16px_0\] { + margin: 0 0 16px 0; + } + .m-\[0_0_16px_16px\] { + margin: 0 0 16px 16px; + } + .m-\[0_0_20px_0\] { + margin: 0 0 20px 0; + } + .m-\[0_4px_0_0\] { + margin: 0 4px 0 0; + } + .m-\[0_5px_0_0\] { + margin: 0 5px 0 0; + } + .m-\[0_6px_6px_0\] { + margin: 0 6px 6px 0; + } + .m-\[0_7px_0px_0\] { + margin: 0 7px 0px 0; + } + .m-\[0_10px\] { + margin: 0 10px; + } + .m-\[0_10px_0_0\] { + margin: 0 10px 0 0; + } + .m-\[0_10px_10px_0\] { + margin: 0 10px 10px 0; + } + .m-\[0_14px_0_7px\] { + margin: 0 14px 0 7px; + } + .m-\[0_16px_0_0\] { + margin: 0 16px 0 0; + } + .m-\[0_16px_16px_0\] { + margin: 0 16px 16px 0; + } + .m-\[0_17px_7px_0\] { + margin: 0 17px 7px 0; + } + .m-\[0_20px_0_10px\] { + margin: 0 20px 0 10px; + } + .m-\[0_35px_0_10px\] { + margin: 0 35px 0 10px; + } + .m-\[0_76px\] { + margin: 0 76px; + } + .m-\[0_auto_16px_auto\] { + margin: 0 auto 16px auto; + } + .m-\[0_auto_20px\] { + margin: 0 auto 20px; + } + .m-\[5px_0\] { + margin: 5px 0; + } + .m-\[6px_0\] { + margin: 6px 0; + } + .m-\[7px_0\] { + margin: 7px 0; + } + .m-\[10px_0\] { + margin: 10px 0; + } + .m-\[10px_0_0\] { + margin: 10px 0 0; + } + .m-\[10px_0_15px\] { + margin: 10px 0 15px; + } + .m-\[10px_10px_0_0\] { + margin: 10px 10px 0 0; + } + .m-\[12px_0\] { + margin: 12px 0; + } + .m-\[12px_0_16px\] { + margin: 12px 0 16px; + } + .m-\[12px_0_20px\] { + margin: 12px 0 20px; + } + .m-\[13pX_0\] { + margin: 13pX 0; + } + .m-\[13px_0\] { + margin: 13px 0; + } + .m-\[13px_0_20px\] { + margin: 13px 0 20px; + } + .m-\[15px\] { + margin: 15px; + } + .m-\[15px_0\] { + margin: 15px 0; + } + .m-\[15px_0_22px\] { + margin: 15px 0 22px; + } + .m-\[16px\] { + margin: 16px; + } + .m-\[16px_-16px\] { + margin: 16px -16px; + } + .m-\[16px_0\] { + margin: 16px 0; + } + .m-\[16px_0_16px_16px\] { + margin: 16px 0 16px 16px; + } + .m-\[17px_auto_20px\] { + margin: 17px auto 20px; + } + .m-\[20px_-16px\] { + margin: 20px -16px; + } + .m-\[20px_0\!important\] { + margin: 20px 0!important; + } + .m-\[20px_0\] { + margin: 20px 0; + } + .m-\[20px_0_16px\] { + margin: 20px 0 16px; + } + .m-\[20px_0_25px\] { + margin: 20px 0 25px; + } + .m-\[auto\] { + margin: auto; + } + .m-\[auto_0_auto_auto\] { + margin: auto 0 auto auto; + } + .m-auto { + margin: auto; + } + .filter { + @layer daisyui.l1.l2.l3 { + display: flex; + flex-wrap: wrap; + input[type="radio"] { + width: auto; + } + input { + overflow: hidden; + opacity: 100%; + scale: 1; + transition: margin 0.1s, opacity 0.3s, padding 0.3s, border-width 0.1s; + &:not(:last-child) { + margin-inline-end: calc(0.25rem * 1); + } + &.filter-reset { + aspect-ratio: 1 / 1; + &::after { + --tw-content: "×"; + content: var(--tw-content); + } + } + } + &:not(:has(input:checked:not(.filter-reset))) { + .filter-reset, input[type="reset"] { + scale: 0; + border-width: 0; + margin-inline: calc(0.25rem * 0); + width: calc(0.25rem * 0); + padding-inline: calc(0.25rem * 0); + opacity: 0%; + } + } + &:has(input:checked:not(.filter-reset)) { + input:not(:checked, .filter-reset, input[type="reset"]) { + scale: 0; + border-width: 0; + margin-inline: calc(0.25rem * 0); + width: calc(0.25rem * 0); + padding-inline: calc(0.25rem * 0); + opacity: 0%; + } + } + } + } + .mx-2 { + margin-inline: calc(var(--spacing) * 2); + } + .mx-\[5px\] { + margin-inline: 5px; + } + .mx-\[6px\] { + margin-inline: 6px; + } + .mx-\[7px\] { + margin-inline: 7px; + } + .mx-\[10px\] { + margin-inline: 10px; + } + .mx-auto { + margin-inline: auto; + } + .input-md { + @layer daisyui.l1.l2 { + --size: calc(var(--size-field, 0.25rem) * 10); + font-size: max(var(--font-size, 0.875rem), 0.875rem); + &[type="number"] { + &::-webkit-inner-spin-button { + margin-block: calc(0.25rem * -3); + margin-inline-end: calc(0.25rem * -3); + } + } + } + } + .input-sm { + @layer daisyui.l1.l2 { + --size: calc(var(--size-field, 0.25rem) * 8); + font-size: max(var(--font-size, 0.75rem), 0.75rem); + &[type="number"] { + &::-webkit-inner-spin-button { + margin-block: calc(0.25rem * -2); + margin-inline-end: calc(0.25rem * -3); + } + } + } + } + .my-0 { + margin-block: calc(var(--spacing) * 0); + } + .my-1 { + margin-block: calc(var(--spacing) * 1); + } + .my-\[5px\] { + margin-block: 5px; + } + .my-\[10px\] { + margin-block: 10px; + } + .my-\[12px\] { + margin-block: 12px; + } + .my-\[15px\] { + margin-block: 15px; + } + .my-\[20px\] { + margin-block: 20px; + } + .my-\[25px\] { + margin-block: 25px; + } + .label { + @layer daisyui.l1.l2.l3 { + display: inline-flex; + align-items: center; + gap: calc(0.25rem * 1.5); + white-space: nowrap; + color: currentcolor; + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, currentcolor 60%, transparent); + } + &:has(input) { + cursor: pointer; + } + &:is(.input > *, .select > *) { + display: flex; + height: calc(100% - 0.5rem); + align-items: center; + padding-inline: calc(0.25rem * 3); + white-space: nowrap; + font-size: inherit; + &:first-child { + margin-inline-start: calc(0.25rem * -3); + margin-inline-end: calc(0.25rem * 3); + border-inline-end: var(--border) solid currentColor; + @supports (color: color-mix(in lab, red, red)) { + border-inline-end: var(--border) solid color-mix(in oklab, currentColor 10%, #0000); + } + } + &:last-child { + margin-inline-start: calc(0.25rem * 3); + margin-inline-end: calc(0.25rem * -3); + border-inline-start: var(--border) solid currentColor; + @supports (color: color-mix(in lab, red, red)) { + border-inline-start: var(--border) solid color-mix(in oklab, currentColor 10%, #0000); + } + } + } + } + } + .join-item { + &:where(*:not(:first-child, :disabled, [disabled], .btn-disabled)) { + margin-inline-start: calc(var(--border, 1px) * -1); + margin-block-start: 0; + } + &:where(*:is(:disabled, [disabled], .btn-disabled)) { + border-width: var(--border, 1px) 0 var(--border, 1px) var(--border, 1px); + } + } + .-ms-2 { + margin-inline-start: calc(var(--spacing) * -2); + } + .ms-1 { + margin-inline-start: calc(var(--spacing) * 1); + } + .ms-1\.5 { + margin-inline-start: calc(var(--spacing) * 1.5); + } + .ms-auto { + margin-inline-start: auto; + } + .me-1 { + margin-inline-end: calc(var(--spacing) * 1); + } + .me-1\.5 { + margin-inline-end: calc(var(--spacing) * 1.5); + } + .tabs-box { + @layer daisyui.l1.l2 { + background-color: var(--color-base-200); + padding: calc(0.25rem * 1); + --tabs-box-radius: calc(3 * var(--radius-field)); + border-radius: calc( min(var(--tab-height) / 2, var(--radius-field)) + min(0.25rem, var(--tabs-box-radius)) ); + box-shadow: 0 -0.5px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 0.5px oklch(0% 0 0 / calc(var(--depth) * 0.05)) inset; + > .tab { + border-radius: var(--radius-field); + border-style: none; + &:focus-visible, &:is(label:has(:checked:focus-visible)) { + outline-offset: 2px; + } + } + > :is(.tab-active, [aria-selected="true"], [aria-current="true"], [aria-current="page"]):not( .tab-disabled, [disabled] ), > :is(input:checked), > :is(label:has(:checked)) { + background-color: var(--tab-bg, var(--color-base-100)); + box-shadow: 0 1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px 1px -1px var(--color-neutral), 0 1px 6px -4px var(--color-neutral); + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px 1px -1px color-mix(in oklab, var(--color-neutral) calc(var(--depth) * 50%), #0000), 0 1px 6px -4px color-mix(in oklab, var(--color-neutral) calc(var(--depth) * 100%), #0000); + } + @media (forced-colors: active) { + border: 1px solid; + } + } + > .tab-content { + margin-top: calc(0.25rem * 1); + height: calc(100% - var(--tab-height) + var(--border) - 0.5rem); + border-radius: calc( min(var(--tab-height) / 2, var(--radius-field)) + min(0.25rem, var(--tabs-box-radius)) - var(--border) ); + } + } + } + .-mt-25 { + margin-top: calc(var(--spacing) * -25); + } + .mt-0 { + margin-top: calc(var(--spacing) * 0); + } + .mt-0\.5 { + margin-top: calc(var(--spacing) * 0.5); + } + .mt-1 { + margin-top: calc(var(--spacing) * 1); + } + .mt-2 { + margin-top: calc(var(--spacing) * 2); + } + .mt-3 { + margin-top: calc(var(--spacing) * 3); + } + .mt-4 { + margin-top: calc(var(--spacing) * 4); + } + .mt-5 { + margin-top: calc(var(--spacing) * 5); + } + .mt-\[3px\] { + margin-top: 3px; + } + .mt-\[5px\] { + margin-top: 5px; + } + .mt-\[6px\] { + margin-top: 6px; + } + .mt-\[7px\] { + margin-top: 7px; + } + .mt-\[8px\] { + margin-top: 8px; + } + .mt-\[10px\] { + margin-top: 10px; + } + .mt-\[12px\] { + margin-top: 12px; + } + .mt-\[13px\] { + margin-top: 13px; + } + .mt-\[15px\] { + margin-top: 15px; + } + .mt-\[17px\] { + margin-top: 17px; + } + .mt-\[20px\] { + margin-top: 20px; + } + .mt-\[25px\] { + margin-top: 25px; + } + .mt-\[30px\] { + margin-top: 30px; + } + .mt-auto { + margin-top: auto; + } + .breadcrumbs { + @layer daisyui.l1.l2.l3 { + max-width: 100%; + overflow-x: auto; + padding-block: calc(0.25rem * 2); + > menu, > ul, > ol { + display: flex; + min-height: min-content; + align-items: center; + white-space: nowrap; + > li { + display: flex; + align-items: center; + > * { + display: flex; + cursor: pointer; + align-items: center; + gap: calc(0.25rem * 2); + &:hover { + @media (hover: hover) { + text-decoration-line: underline; + } + } + &:focus { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + &:focus-visible { + outline: 2px solid currentColor; + outline-offset: 2px; + } + } + & + *:before { + content: ""; + margin-right: calc(0.25rem * 3); + margin-left: calc(0.25rem * 2); + display: block; + height: calc(0.25rem * 1.5); + width: calc(0.25rem * 1.5); + opacity: 40%; + rotate: 45deg; + border-top: 1px solid; + border-right: 1px solid; + background-color: #0000; + } + [dir="rtl"] & + *:before { + rotate: -135deg; + } + } + } + } + } + .mr-1 { + margin-right: calc(var(--spacing) * 1); + } + .mr-2 { + margin-right: calc(var(--spacing) * 2); + } + .mr-3 { + margin-right: calc(var(--spacing) * 3); + } + .mr-4 { + margin-right: calc(var(--spacing) * 4); + } + .mr-\[3px\] { + margin-right: 3px; + } + .mr-\[5px\] { + margin-right: 5px; + } + .mr-\[6px\] { + margin-right: 6px; + } + .mr-\[7\.5px\] { + margin-right: 7.5px; + } + .mr-\[7px\] { + margin-right: 7px; + } + .mr-\[8px\] { + margin-right: 8px; + } + .mr-\[10px\] { + margin-right: 10px; + } + .mr-\[12px\] { + margin-right: 12px; + } + .mr-\[13px\] { + margin-right: 13px; + } + .mr-\[15px\] { + margin-right: 15px; + } + .mr-\[16px\] { + margin-right: 16px; + } + .mr-\[20px\] { + margin-right: 20px; + } + .mr-\[25px\] { + margin-right: 25px; + } + .mr-\[34px\] { + margin-right: 34px; + } + .mr-\[40px\] { + margin-right: 40px; + } + .mr-\[45px\] { + margin-right: 45px; + } + .-mb-px { + margin-bottom: -1px; + } + .mb-1 { + margin-bottom: calc(var(--spacing) * 1); + } + .mb-2 { + margin-bottom: calc(var(--spacing) * 2); + } + .mb-3 { + margin-bottom: calc(var(--spacing) * 3); + } + .mb-4 { + margin-bottom: calc(var(--spacing) * 4); + } + .mb-6 { + margin-bottom: calc(var(--spacing) * 6); + } + .mb-\[2px\] { + margin-bottom: 2px; + } + .mb-\[3px\] { + margin-bottom: 3px; + } + .mb-\[5px\] { + margin-bottom: 5px; + } + .mb-\[6px\] { + margin-bottom: 6px; + } + .mb-\[7px\] { + margin-bottom: 7px; + } + .mb-\[8px\] { + margin-bottom: 8px; + } + .mb-\[10px\] { + margin-bottom: 10px; + } + .mb-\[12px\] { + margin-bottom: 12px; + } + .mb-\[13px\] { + margin-bottom: 13px; + } + .mb-\[14px\] { + margin-bottom: 14px; + } + .mb-\[15px\] { + margin-bottom: 15px; + } + .mb-\[16px\] { + margin-bottom: 16px; + } + .mb-\[17px\] { + margin-bottom: 17px; + } + .mb-\[18px\] { + margin-bottom: 18px; + } + .mb-\[20px\] { + margin-bottom: 20px; + } + .mb-\[23px\] { + margin-bottom: 23px; + } + .mb-\[24px\] { + margin-bottom: 24px; + } + .mb-\[25px\] { + margin-bottom: 25px; + } + .mb-\[30px\] { + margin-bottom: 30px; + } + .mb-\[50px\] { + margin-bottom: 50px; + } + .mb-\[100px\] { + margin-bottom: 100px; + } + .ml-1 { + margin-left: calc(var(--spacing) * 1); + } + .ml-2 { + margin-left: calc(var(--spacing) * 2); + } + .ml-4 { + margin-left: calc(var(--spacing) * 4); + } + .ml-\[2px\] { + margin-left: 2px; + } + .ml-\[3px\] { + margin-left: 3px; + } + .ml-\[5px\] { + margin-left: 5px; + } + .ml-\[6px\] { + margin-left: 6px; + } + .ml-\[7px\] { + margin-left: 7px; + } + .ml-\[10px\] { + margin-left: 10px; + } + .ml-\[12px\] { + margin-left: 12px; + } + .ml-\[15px\] { + margin-left: 15px; + } + .ml-\[16px\] { + margin-left: 16px; + } + .ml-\[25px\] { + margin-left: 25px; + } + .status { + @layer daisyui.l1.l2.l3 { + display: inline-block; + aspect-ratio: 1 / 1; + width: calc(0.25rem * 2); + height: calc(0.25rem * 2); + border-radius: var(--radius-selector); + background-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-base-content) 20%, transparent); + } + background-position: center; + background-repeat: no-repeat; + vertical-align: middle; + color: color-mix(in srgb, #000 30%, transparent); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-black) 30%, transparent); + } + background-image: radial-gradient( circle at 35% 30%, oklch(1 0 0 / calc(var(--depth) * 0.5)), #0000 ); + box-shadow: 0 2px 3px -1px currentColor; + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 2px 3px -1px color-mix(in oklab, currentColor calc(var(--depth) * 100%), #0000); + } + } + } + .badge { + @layer daisyui.l1.l2.l3 { + display: inline-flex; + align-items: center; + justify-content: center; + gap: calc(0.25rem * 2); + border-radius: var(--radius-selector); + vertical-align: middle; + color: var(--badge-fg); + border: var(--border) solid var(--badge-color, var(--color-base-200)); + font-size: 0.875rem; + width: fit-content; + background-size: auto, calc(var(--noise) * 100%); + background-image: none, var(--fx-noise); + background-color: var(--badge-bg); + --badge-bg: var(--badge-color, var(--color-base-100)); + --badge-fg: var(--color-base-content); + --size: calc(var(--size-selector, 0.25rem) * 6); + height: var(--size); + padding-inline: calc(var(--size) / 2 - var(--border)); + } + } + .tabs { + @layer daisyui.l1.l2.l3 { + display: flex; + flex-wrap: wrap; + --tabs-height: auto; + --tabs-direction: row; + --tab-height: calc(var(--size-field, 0.25rem) * 10); + height: var(--tabs-height); + flex-direction: var(--tabs-direction); + } + } + .footer { + @layer daisyui.l1.l2.l3 { + display: grid; + width: 100%; + grid-auto-flow: row; + place-items: start; + column-gap: calc(0.25rem * 4); + row-gap: calc(0.25rem * 10); + font-size: 0.875rem; + line-height: 1.25rem; + & > * { + display: grid; + place-items: start; + gap: calc(0.25rem * 2); + } + &.footer-center { + grid-auto-flow: column dense; + place-items: center; + text-align: center; + & > * { + place-items: center; + } + } + } + } + .stat { + @layer daisyui.l1.l2.l3 { + display: inline-grid; + width: 100%; + column-gap: calc(0.25rem * 4); + padding-inline: calc(0.25rem * 6); + padding-block: calc(0.25rem * 4); + grid-template-columns: repeat(1, 1fr); + &:not(:last-child) { + border-inline-end: var(--border) dashed currentColor; + @supports (color: color-mix(in lab, red, red)) { + border-inline-end: var(--border) dashed color-mix(in oklab, currentColor 10%, #0000); + } + border-block-end: none; + } + } + } + .card-body { + @layer daisyui.l1.l2.l3 { + display: flex; + flex: auto; + flex-direction: column; + gap: calc(0.25rem * 2); + padding: var(--card-p, 1.5rem); + font-size: var(--card-fs, 0.875rem); + :where(p) { + flex-grow: 1; + } + } + } + .fieldset { + @layer daisyui.l1.l2.l3 { + display: grid; + gap: calc(0.25rem * 1.5); + padding-block: calc(0.25rem * 1); + font-size: 0.75rem; + grid-template-columns: 1fr; + grid-auto-rows: max-content; + } + } + .chat { + @layer daisyui.l1.l2.l3 { + display: grid; + grid-auto-rows: min-content; + column-gap: calc(0.25rem * 3); + padding-block: calc(0.25rem * 1); + --mask-chat: url("data:image/svg+xml,%3csvg width='13' height='13' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M0 11.5004C0 13.0004 2 13.0004 2 13.0004H12H13V0.00036329L12.5 0C12.5 0 11.977 2.09572 11.8581 2.50033C11.6075 3.35237 10.9149 4.22374 9 5.50036C6 7.50036 0 10.0004 0 11.5004Z'/%3e%3c/svg%3e"); + } + } + .join { + display: inline-flex; + align-items: stretch; + --join-ss: 0; + --join-se: 0; + --join-es: 0; + --join-ee: 0; + :where(.join-item) { + border-start-start-radius: var(--join-ss, 0); + border-start-end-radius: var(--join-se, 0); + border-end-start-radius: var(--join-es, 0); + border-end-end-radius: var(--join-ee, 0); + * { + --join-ss: var(--radius-field); + --join-se: var(--radius-field); + --join-es: var(--radius-field); + --join-ee: var(--radius-field); + } + } + > .join-item:where(:first-child) { + --join-ss: var(--radius-field); + --join-se: 0; + --join-es: var(--radius-field); + --join-ee: 0; + } + :first-child:not(:last-child) { + :where(.join-item) { + --join-ss: var(--radius-field); + --join-se: 0; + --join-es: var(--radius-field); + --join-ee: 0; + } + } + > .join-item:where(:last-child) { + --join-ss: 0; + --join-se: var(--radius-field); + --join-es: 0; + --join-ee: var(--radius-field); + } + :last-child:not(:first-child) { + :where(.join-item) { + --join-ss: 0; + --join-se: var(--radius-field); + --join-es: 0; + --join-ee: var(--radius-field); + } + } + > .join-item:where(:only-child) { + --join-ss: var(--radius-field); + --join-se: var(--radius-field); + --join-es: var(--radius-field); + --join-ee: var(--radius-field); + } + :only-child { + :where(.join-item) { + --join-ss: var(--radius-field); + --join-se: var(--radius-field); + --join-es: var(--radius-field); + --join-ee: var(--radius-field); + } + } + } + .line-clamp-1 { + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 1; + } + .mask { + @layer daisyui.l1.l2.l3 { + display: inline-block; + vertical-align: middle; + mask-size: contain; + mask-repeat: no-repeat; + mask-position: center; + } + } + .block { + display: block; + } + .contents { + display: contents; + } + .flex { + display: flex; + } + .grid { + display: grid; + } + .hidden { + display: none; + } + .inline { + display: inline; + } + .inline-block { + display: inline-block; + } + .inline-flex { + display: inline-flex; + } + .table { + display: table; + } + .btn-circle { + @layer daisyui.l1.l2 { + border-radius: calc(infinity * 1px); + padding-inline: calc(0.25rem * 0); + width: var(--size); + height: var(--size); + } + } + .btn-square { + @layer daisyui.l1.l2 { + padding-inline: calc(0.25rem * 0); + width: var(--size); + height: var(--size); + } + } + .size-1\.5 { + width: calc(var(--spacing) * 1.5); + height: calc(var(--spacing) * 1.5); + } + .size-3 { + width: calc(var(--spacing) * 3); + height: calc(var(--spacing) * 3); + } + .size-3\.5 { + width: calc(var(--spacing) * 3.5); + height: calc(var(--spacing) * 3.5); + } + .size-4 { + width: calc(var(--spacing) * 4); + height: calc(var(--spacing) * 4); + } + .size-4\.5 { + width: calc(var(--spacing) * 4.5); + height: calc(var(--spacing) * 4.5); + } + .size-5 { + width: calc(var(--spacing) * 5); + height: calc(var(--spacing) * 5); + } + .size-9 { + width: calc(var(--spacing) * 9); + height: calc(var(--spacing) * 9); + } + .size-10 { + width: calc(var(--spacing) * 10); + height: calc(var(--spacing) * 10); + } + .size-12 { + width: calc(var(--spacing) * 12); + height: calc(var(--spacing) * 12); + } + .size-20 { + width: calc(var(--spacing) * 20); + height: calc(var(--spacing) * 20); + } + .size-full { + width: 100%; + height: 100%; + } + .status-sm { + @layer daisyui.l1.l2 { + width: calc(0.25rem * 1); + height: calc(0.25rem * 1); + } + } + .h-1 { + height: calc(var(--spacing) * 1); + } + .h-2\.5 { + height: calc(var(--spacing) * 2.5); + } + .h-5 { + height: calc(var(--spacing) * 5); + } + .h-5\.5 { + height: calc(var(--spacing) * 5.5); + } + .h-9 { + height: calc(var(--spacing) * 9); + } + .h-\[6px\] { + height: 6px; + } + .h-\[13px\] { + height: 13px; + } + .h-\[14\.5px\] { + height: 14.5px; + } + .h-\[14px\] { + height: 14px; + } + .h-\[15px\] { + height: 15px; + } + .h-\[16px\] { + height: 16px; + } + .h-\[18px\] { + height: 18px; + } + .h-\[20px\] { + height: 20px; + } + .h-\[25px\] { + height: 25px; + } + .h-\[26px\] { + height: 26px; + } + .h-\[28px\] { + height: 28px; + } + .h-\[30px\] { + height: 30px; + } + .h-\[32px\] { + height: 32px; + } + .h-\[33px\] { + height: 33px; + } + .h-\[34px\] { + height: 34px; + } + .h-\[35px\] { + height: 35px; + } + .h-\[36px\] { + height: 36px; + } + .h-\[38px\] { + height: 38px; + } + .h-\[40px\] { + height: 40px; + } + .h-\[50px\] { + height: 50px; + } + .h-\[70px\] { + height: 70px; + } + .h-\[75px\] { + height: 75px; + } + .h-\[80px\] { + height: 80px; + } + .h-\[100\%\] { + height: 100%; + } + .h-\[100px\] { + height: 100px; + } + .h-\[120px\] { + height: 120px; + } + .h-\[225px\] { + height: 225px; + } + .h-\[300px\] { + height: 300px; + } + .h-\[350px\] { + height: 350px; + } + .h-\[380px\] { + height: 380px; + } + .h-\[400px\] { + height: 400px; + } + .h-full { + height: 100%; + } + .h-px { + height: 1px; + } + .h-screen { + height: 100vh; + } + .max-h-400 { + max-height: calc(var(--spacing) * 400); + } + .max-h-\[80px\] { + max-height: 80px; + } + .max-h-\[100px\] { + max-height: 100px; + } + .max-h-\[120px\] { + max-height: 120px; + } + .max-h-\[150px\] { + max-height: 150px; + } + .max-h-\[170px\] { + max-height: 170px; + } + .max-h-\[250px\] { + max-height: 250px; + } + .max-h-\[300px\] { + max-height: 300px; + } + .max-h-\[350px\] { + max-height: 350px; + } + .max-h-\[400px\] { + max-height: 400px; + } + .max-h-\[500px\] { + max-height: 500px; + } + .min-h-\[30px\] { + min-height: 30px; + } + .min-h-\[32px\] { + min-height: 32px; + } + .min-h-\[33px\] { + min-height: 33px; + } + .min-h-\[34px\] { + min-height: 34px; + } + .min-h-\[35px\] { + min-height: 35px; + } + .min-h-\[36px\] { + min-height: 36px; + } + .min-h-\[38px\] { + min-height: 38px; + } + .min-h-\[40px\] { + min-height: 40px; + } + .min-h-\[70px\] { + min-height: 70px; + } + .min-h-\[76px\] { + min-height: 76px; + } + .min-h-\[90px\] { + min-height: 90px; + } + .min-h-\[100px\] { + min-height: 100px; + } + .min-h-\[122px\] { + min-height: 122px; + } + .loading-sm { + @layer daisyui.l1.l2 { + width: calc(var(--size-selector, 0.25rem) * 5); + } + } + .w-1\/3 { + width: calc(1/3 * 100%); + } + .w-2 { + width: calc(var(--spacing) * 2); + } + .w-2\.5 { + width: calc(var(--spacing) * 2.5); + } + .w-3 { + width: calc(var(--spacing) * 3); + } + .w-6 { + width: calc(var(--spacing) * 6); + } + .w-8 { + width: calc(var(--spacing) * 8); + } + .w-11\/12 { + width: calc(11/12 * 100%); + } + .w-12 { + width: calc(var(--spacing) * 12); + } + .w-24 { + width: calc(var(--spacing) * 24); + } + .w-30 { + width: calc(var(--spacing) * 30); + } + .w-32 { + width: calc(var(--spacing) * 32); + } + .w-34 { + width: calc(var(--spacing) * 34); + } + .w-40 { + width: calc(var(--spacing) * 40); + } + .w-48 { + width: calc(var(--spacing) * 48); + } + .w-64 { + width: calc(var(--spacing) * 64); + } + .w-72 { + width: calc(var(--spacing) * 72); + } + .w-80 { + width: calc(var(--spacing) * 80); + } + .w-84 { + width: calc(var(--spacing) * 84); + } + .w-96 { + width: calc(var(--spacing) * 96); + } + .w-100 { + width: calc(var(--spacing) * 100); + } + .w-\[10\%\] { + width: 10%; + } + .w-\[13px\] { + width: 13px; + } + .w-\[14\.5px\] { + width: 14.5px; + } + .w-\[14px\] { + width: 14px; + } + .w-\[15px\] { + width: 15px; + } + .w-\[16px\] { + width: 16px; + } + .w-\[18px\] { + width: 18px; + } + .w-\[20\%\] { + width: 20%; + } + .w-\[20px\] { + width: 20px; + } + .w-\[25\%\] { + width: 25%; + } + .w-\[26px\] { + width: 26px; + } + .w-\[30\%\] { + width: 30%; + } + .w-\[30px\] { + width: 30px; + } + .w-\[32\%\] { + width: 32%; + } + .w-\[32px\] { + width: 32px; + } + .w-\[35\%\] { + width: 35%; + } + .w-\[38px\] { + width: 38px; + } + .w-\[40\%\] { + width: 40%; + } + .w-\[40px\] { + width: 40px; + } + .w-\[45\%\] { + width: 45%; + } + .w-\[45px\] { + width: 45px; + } + .w-\[49\%\] { + width: 49%; + } + .w-\[50\%\] { + width: 50%; + } + .w-\[50px\] { + width: 50px; + } + .w-\[55\%\] { + width: 55%; + } + .w-\[60px\] { + width: 60px; + } + .w-\[65px\] { + width: 65px; + } + .w-\[70\%\] { + width: 70%; + } + .w-\[70px\] { + width: 70px; + } + .w-\[75px\] { + width: 75px; + } + .w-\[78\%\] { + width: 78%; + } + .w-\[80\%\] { + width: 80%; + } + .w-\[80px\] { + width: 80px; + } + .w-\[80px_\!important\] { + width: 80px !important; + } + .w-\[82px\] { + width: 82px; + } + .w-\[85px\] { + width: 85px; + } + .w-\[86px\] { + width: 86px; + } + .w-\[90\%\] { + width: 90%; + } + .w-\[90px\] { + width: 90px; + } + .w-\[95px\] { + width: 95px; + } + .w-\[97\%\] { + width: 97%; + } + .w-\[100\%\] { + width: 100%; + } + .w-\[100px\] { + width: 100px; + } + .w-\[105px\] { + width: 105px; + } + .w-\[106px\] { + width: 106px; + } + .w-\[113px\] { + width: 113px; + } + .w-\[115px\] { + width: 115px; + } + .w-\[120px\] { + width: 120px; + } + .w-\[120px_\!important\] { + width: 120px !important; + } + .w-\[125px\] { + width: 125px; + } + .w-\[130px\] { + width: 130px; + } + .w-\[135px\] { + width: 135px; + } + .w-\[135px_\!important\] { + width: 135px !important; + } + .w-\[140px\] { + width: 140px; + } + .w-\[150px\] { + width: 150px; + } + .w-\[155px\] { + width: 155px; + } + .w-\[160px\] { + width: 160px; + } + .w-\[165px_\!important\] { + width: 165px !important; + } + .w-\[170px\] { + width: 170px; + } + .w-\[175px\] { + width: 175px; + } + .w-\[180px\] { + width: 180px; + } + .w-\[185px\] { + width: 185px; + } + .w-\[190px\] { + width: 190px; + } + .w-\[200px\] { + width: 200px; + } + .w-\[205px\] { + width: 205px; + } + .w-\[210px\] { + width: 210px; + } + .w-\[215px\] { + width: 215px; + } + .w-\[220px\] { + width: 220px; + } + .w-\[230px\] { + width: 230px; + } + .w-\[240px\] { + width: 240px; + } + .w-\[245px\] { + width: 245px; + } + .w-\[250px\] { + width: 250px; + } + .w-\[258px\] { + width: 258px; + } + .w-\[260px\] { + width: 260px; + } + .w-\[265px\] { + width: 265px; + } + .w-\[270px\] { + width: 270px; + } + .w-\[275px\] { + width: 275px; + } + .w-\[280px\] { + width: 280px; + } + .w-\[300px\] { + width: 300px; + } + .w-\[300px_\!important\] { + width: 300px !important; + } + .w-\[312px\] { + width: 312px; + } + .w-\[345px\] { + width: 345px; + } + .w-\[375px\] { + width: 375px; + } + .w-\[400px\] { + width: 400px; + } + .w-\[470px\] { + width: 470px; + } + .w-\[540px\] { + width: 540px; + } + .w-\[650px\] { + width: 650px; + } + .w-\[700px\] { + width: 700px; + } + .w-\[850px\] { + width: 850px; + } + .w-\[852px\] { + width: 852px; + } + .w-\[860px\] { + width: 860px; + } + .w-\[1140px\] { + width: 1140px; + } + .w-\[auto_\!important\] { + width: auto !important; + } + .w-\[calc\(100\%-36px\)\] { + width: calc(100% - 36px); + } + .w-\[calc\(100\%\/3\)\] { + width: calc(100% / 3); + } + .w-\[calc\(100\%_-25\%_-16px\)\] { + width: calc(100% - 25% - 16px); + } + .w-\[calc\(100\%_-140px\)\] { + width: calc(100% - 140px); + } + .w-\[calc\(100\%_-160px\)\] { + width: calc(100% - 160px); + } + .w-\[fit-content\] { + width: fit-content; + } + .w-full { + width: 100%; + } + .max-w-3xl { + max-width: var(--container-3xl); + } + .max-w-5xl { + max-width: var(--container-5xl); + } + .max-w-\[52px\] { + max-width: 52px; + } + .max-w-\[600px\] { + max-width: 600px; + } + .max-w-\[700px\] { + max-width: 700px; + } + .max-w-\[1024px\] { + max-width: 1024px; + } + .max-w-\[1140px\] { + max-width: 1140px; + } + .max-w-\[1141px\] { + max-width: 1141px; + } + .max-w-full { + max-width: 100%; + } + .max-w-sm { + max-width: var(--container-sm); + } + .max-w-xl { + max-width: var(--container-xl); + } + .max-w-xs { + max-width: var(--container-xs); + } + .min-w-0 { + min-width: calc(var(--spacing) * 0); + } + .min-w-\[36px\] { + min-width: 36px; + } + .min-w-\[100px\] { + min-width: 100px; + } + .min-w-\[140px\] { + min-width: 140px; + } + .min-w-\[160px\] { + min-width: 160px; + } + .min-w-\[200px\] { + min-width: 200px; + } + .grow { + flex-grow: 1; + } + .translate-x-2 { + --tw-translate-x: calc(var(--spacing) * 2); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .-translate-y-4 { + --tw-translate-y: calc(var(--spacing) * -4); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .translate-y-4 { + --tw-translate-y: calc(var(--spacing) * 4); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .scale-\[1\.2\] { + scale: 1.2; + } + .scale-\[1\.4\] { + scale: 1.4; + } + .scale-\[1\.5\] { + scale: 1.5; + } + .transform { + transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); + } + .link { + @layer daisyui.l1.l2.l3 { + cursor: pointer; + text-decoration-line: underline; + &:focus { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + &:focus-visible { + outline: 2px solid currentColor; + outline-offset: 2px; + } + } + } + .cursor-pointer { + cursor: pointer; + } + .resize { + resize: both; + } + .list-inside { + list-style-position: inside; + } + .list-disc { + list-style-type: disc; + } + .grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); + } + .grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + .grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + .grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + .grid-cols-6 { + grid-template-columns: repeat(6, minmax(0, 1fr)); + } + .grid-cols-12 { + grid-template-columns: repeat(12, minmax(0, 1fr)); + } + .flex-col { + flex-direction: column; + } + .flex-row { + flex-direction: row; + } + .flex-wrap { + flex-wrap: wrap; + } + .items-center { + align-items: center; + } + .items-end { + align-items: flex-end; + } + .items-start { + align-items: flex-start; + } + .justify-between { + justify-content: space-between; + } + .justify-center { + justify-content: center; + } + .justify-end { + justify-content: flex-end; + } + .justify-start { + justify-content: flex-start; + } + .gap-0\.5 { + gap: calc(var(--spacing) * 0.5); + } + .gap-1 { + gap: calc(var(--spacing) * 1); + } + .gap-1\.5 { + gap: calc(var(--spacing) * 1.5); + } + .gap-2 { + gap: calc(var(--spacing) * 2); + } + .gap-2\.5 { + gap: calc(var(--spacing) * 2.5); + } + .gap-3 { + gap: calc(var(--spacing) * 3); + } + .gap-5 { + gap: calc(var(--spacing) * 5); + } + .gap-\[10px\] { + gap: 10px; + } + .gap-\[15px\] { + gap: 15px; + } + .gap-\[30px\] { + gap: 30px; + } + .-space-y-0\.5 { + :where(& > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(calc(var(--spacing) * -0.5) * var(--tw-space-y-reverse)); + margin-block-end: calc(calc(var(--spacing) * -0.5) * calc(1 - var(--tw-space-y-reverse))); + } + } + .divide-base-300 { + :where(& > :not(:last-child)) { + border-color: var(--color-base-300); + } + } + .truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .overflow-auto { + overflow: auto; + } + .overflow-hidden { + overflow: hidden; + } + .overflow-x-auto { + overflow-x: auto; + } + .overflow-y-auto { + overflow-y: auto; + } + .overflow-y-scroll { + overflow-y: scroll; + } + .rounded { + border-radius: 0.25rem; + } + .rounded-\[0_0_10px_10px\] { + border-radius: 0 0 10px 10px; + } + .rounded-\[0_0_15px_15px\] { + border-radius: 0 0 15px 15px; + } + .rounded-\[4px\] { + border-radius: 4px; + } + .rounded-\[5px\] { + border-radius: 5px; + } + .rounded-\[9px\] { + border-radius: 9px; + } + .rounded-\[10px\] { + border-radius: 10px; + } + .rounded-\[10px_10px_0_0\] { + border-radius: 10px 10px 0 0; + } + .rounded-\[12px\] { + border-radius: 12px; + } + .rounded-\[15px\] { + border-radius: 15px; + } + .rounded-\[15px_15px_0_0\] { + border-radius: 15px 15px 0 0; + } + .rounded-\[20px\] { + border-radius: 20px; + } + .rounded-\[50\%\] { + border-radius: 50%; + } + .rounded-\[50px\] { + border-radius: 50px; + } + .rounded-box { + border-radius: var(--radius-box); + } + .rounded-box { + border-radius: var(--radius-box); + } + .rounded-full { + border-radius: calc(infinity * 1px); + } + .rounded-lg { + border-radius: var(--radius-lg); + } + .rounded-md { + border-radius: var(--radius-md); + } + .rounded-none { + border-radius: 0; + } + .rounded-sm { + border-radius: var(--radius-sm); + } + .rounded-t-box { + border-top-left-radius: var(--radius-box); + border-top-right-radius: var(--radius-box); + } + .rounded-t-box { + border-top-left-radius: var(--radius-box); + border-top-right-radius: var(--radius-box); + } + .border { + border-style: var(--tw-border-style); + border-width: 1px; + } + .border-0 { + border-style: var(--tw-border-style); + border-width: 0px; + } + .border-\[1px\] { + border-style: var(--tw-border-style); + border-width: 1px; + } + .border-\[3px\] { + border-style: var(--tw-border-style); + border-width: 3px; + } + .border-\[4px\] { + border-style: var(--tw-border-style); + border-width: 4px; + } + .border-t { + border-top-style: var(--tw-border-style); + border-top-width: 1px; + } + .border-t-\[1px\] { + border-top-style: var(--tw-border-style); + border-top-width: 1px; + } + .border-t-\[2px\] { + border-top-style: var(--tw-border-style); + border-top-width: 2px; + } + .border-t-\[6px\] { + border-top-style: var(--tw-border-style); + border-top-width: 6px; + } + .border-b { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 1px; + } + .border-b-\[1px\] { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 1px; + } + .border-b-\[6px\] { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 6px; + } + .border-b-\[8px\] { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 8px; + } + .btn-dash { + @layer daisyui.l1 { + &:not( .btn-active, :hover, :active:focus, :focus-visible, input:checked:not(.filter .btn), :disabled, [disabled], .btn-disabled ) { + --btn-shadow: ""; + --btn-bg: #0000; + --btn-fg: var(--btn-color); + --btn-border: var(--btn-color); + --btn-noise: none; + } + @media (hover: none) { + &:not(.btn-active, :active, :focus-visible, input:checked:not(.filter .btn)):hover { + --btn-shadow: ""; + --btn-bg: #0000; + --btn-fg: var(--btn-color); + --btn-border: var(--btn-color); + --btn-noise: none; + } + } + } + border-style: dashed; + } + .border-dashed { + --tw-border-style: dashed; + border-style: dashed; + } + .border-none { + --tw-border-style: none; + border-style: none; + } + .badge-ghost { + @layer daisyui.l1.l2 { + border-color: var(--color-base-200); + background-color: var(--color-base-200); + color: var(--color-base-content); + background-image: none; + } + } + .badge-soft { + @layer daisyui.l1.l2 { + color: var(--badge-color, var(--color-base-content)); + background-color: var(--badge-color, var(--color-base-content)); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix( in oklab, var(--badge-color, var(--color-base-content)) 8%, var(--color-base-100) ); + } + border-color: var(--badge-color, var(--color-base-content)); + @supports (color: color-mix(in lab, red, red)) { + border-color: color-mix( in oklab, var(--badge-color, var(--color-base-content)) 10%, var(--color-base-100) ); + } + background-image: none; + } + } + .border-\[\#000\] { + border-color: #000; + } + .border-\[\#6B7280\] { + border-color: #6B7280; + } + .border-\[\#9E9E9E\] { + border-color: #9E9E9E; + } + .border-\[\#0041E8\] { + border-color: #0041E8; + } + .border-\[\#0041E8_\!important\] { + border-color: #0041E8 !important; + } + .border-\[\#0041e8\] { + border-color: #0041e8; + } + .border-\[\#79B0E2\] { + border-color: #79B0E2; + } + .border-\[\#79b0e2\] { + border-color: #79b0e2; + } + .border-\[\#D8D8D8\] { + border-color: #D8D8D8; + } + .border-\[\#E00000\] { + border-color: #E00000; + } + .border-\[\#ECECEC\] { + border-color: #ECECEC; + } + .border-\[\#F6F6F6\] { + border-color: #F6F6F6; + } + .border-\[\#FAFAFB\] { + border-color: #FAFAFB; + } + .border-\[\#d8d8d8\] { + border-color: #d8d8d8; + } + .border-\[\#f6f6f6\] { + border-color: #f6f6f6; + } + .border-\[\#f8f8f8\] { + border-color: #f8f8f8; + } + .border-base-200 { + border-color: var(--color-base-200); + } + .border-base-300 { + border-color: var(--color-base-300); + } + .border-base-content\/5 { + border-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + border-color: color-mix(in oklab, var(--color-base-content) 5%, transparent); + } + } + .border-blue-600 { + border-color: var(--color-blue-600); + } + .border-blue-700 { + border-color: var(--color-blue-700); + } + .border-gray-100 { + border-color: var(--color-gray-100); + } + .border-gray-200 { + border-color: var(--color-gray-200); + } + .border-gray-600 { + border-color: var(--color-gray-600); + } + .border-primary-content\/10 { + border-color: var(--color-primary-content); + @supports (color: color-mix(in lab, red, red)) { + border-color: color-mix(in oklab, var(--color-primary-content) 10%, transparent); + } + } + .border-b-\[\#FAFAFB\] { + border-bottom-color: #FAFAFB; + } + .status-error { + @layer daisyui.l1.l2 { + background-color: var(--color-error); + color: var(--color-error); + } + } + .status-primary { + @layer daisyui.l1.l2 { + background-color: var(--color-primary); + color: var(--color-primary); + } + } + .table-zebra { + @layer daisyui.l1.l2 { + tbody { + tr { + &:where(:nth-child(even)) { + background-color: var(--color-base-200); + :where(.table-pin-cols tr th) { + background-color: var(--color-base-200); + } + } + &.row-hover { + &, &:where(:nth-child(even)) { + &:hover { + @media (hover: hover) { + background-color: var(--color-base-300); + } + } + } + } + } + } + } + } + .bg-\[\#0041E8\] { + background-color: #0041E8; + } + .bg-\[\#E00000\] { + background-color: #E00000; + } + .bg-\[\#E5E5E5\] { + background-color: #E5E5E5; + } + .bg-\[\#E8F7F2\] { + background-color: #E8F7F2; + } + .bg-\[\#ECECEC\] { + background-color: #ECECEC; + } + .bg-\[\#ECECEC_\!important\] { + background-color: #ECECEC !important; + } + .bg-\[\#F0F8FF\] { + background-color: #F0F8FF; + } + .bg-\[\#F0F9F2\] { + background-color: #F0F9F2; + } + .bg-\[\#F1F1F1\] { + background-color: #F1F1F1; + } + .bg-\[\#F5F7FF\] { + background-color: #F5F7FF; + } + .bg-\[\#F6F6F6\] { + background-color: #F6F6F6; + } + .bg-\[\#F7F5FF\] { + background-color: #F7F5FF; + } + .bg-\[\#F9F2F2\] { + background-color: #F9F2F2; + } + .bg-\[\#F9F9F9\] { + background-color: #F9F9F9; + } + .bg-\[\#FAFAFB\] { + background-color: #FAFAFB; + } + .bg-\[\#FFC700\] { + background-color: #FFC700; + } + .bg-\[\#FFE6C1\] { + background-color: #FFE6C1; + } + .bg-\[\#FFEEEB\] { + background-color: #FFEEEB; + } + .bg-\[\#f5f5f5\] { + background-color: #f5f5f5; + } + .bg-\[\#f6f6f6\] { + background-color: #f6f6f6; + } + .bg-\[\#f7f7ff\] { + background-color: #f7f7ff; + } + .bg-\[\#fff\] { + background-color: #fff; + } + .bg-\[rgba\(0\,0\,0\,0\.60\)\] { + background-color: rgba(0,0,0,0.60); + } + .bg-base-100 { + background-color: var(--color-base-100); + } + .bg-base-200 { + background-color: var(--color-base-200); + } + .bg-base-200\/30 { + background-color: var(--color-base-200); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-base-200) 30%, transparent); + } + } + .bg-base-300 { + background-color: var(--color-base-300); + } + .bg-blue-700 { + background-color: var(--color-blue-700); + } + .bg-green-100 { + background-color: var(--color-green-100); + } + .bg-primary { + background-color: var(--color-primary); + } + .bg-primary-content\/10 { + background-color: var(--color-primary-content); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-primary-content) 10%, transparent); + } + } + .bg-transparent { + background-color: transparent; + } + .bg-white { + background-color: var(--color-white); + } + .bg-linear-to-b { + --tw-gradient-position: to bottom; + @supports (background-image: linear-gradient(in lab, red, red)) { + --tw-gradient-position: to bottom in oklab; + } + background-image: linear-gradient(var(--tw-gradient-stops)); + } + .bg-linear-to-br { + --tw-gradient-position: to bottom right; + @supports (background-image: linear-gradient(in lab, red, red)) { + --tw-gradient-position: to bottom right in oklab; + } + background-image: linear-gradient(var(--tw-gradient-stops)); + } + .bg-linear-to-r { + --tw-gradient-position: to right; + @supports (background-image: linear-gradient(in lab, red, red)) { + --tw-gradient-position: to right in oklab; + } + background-image: linear-gradient(var(--tw-gradient-stops)); + } + .from-base-200 { + --tw-gradient-from: var(--color-base-200); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .from-orange-500\/80 { + --tw-gradient-from: color-mix(in srgb, oklch(70.5% 0.213 47.604) 80%, transparent); + @supports (color: color-mix(in lab, red, red)) { + --tw-gradient-from: color-mix(in oklab, var(--color-orange-500) 80%, transparent); + } + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .from-primary { + --tw-gradient-from: var(--color-primary); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .from-primary\/80 { + --tw-gradient-from: var(--color-primary); + @supports (color: color-mix(in lab, red, red)) { + --tw-gradient-from: color-mix(in oklab, var(--color-primary) 80%, transparent); + } + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .from-secondary { + --tw-gradient-from: var(--color-secondary); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .from-secondary\/80 { + --tw-gradient-from: var(--color-secondary); + @supports (color: color-mix(in lab, red, red)) { + --tw-gradient-from: color-mix(in oklab, var(--color-secondary) 80%, transparent); + } + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .from-success { + --tw-gradient-from: var(--color-success); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .from-warning { + --tw-gradient-from: var(--color-warning); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .via-base-200\/80 { + --tw-gradient-via: var(--color-base-200); + @supports (color: color-mix(in lab, red, red)) { + --tw-gradient-via: color-mix(in oklab, var(--color-base-200) 80%, transparent); + } + --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-via-stops); + } + .to-orange-500\/60 { + --tw-gradient-to: color-mix(in srgb, oklch(70.5% 0.213 47.604) 60%, transparent); + @supports (color: color-mix(in lab, red, red)) { + --tw-gradient-to: color-mix(in oklab, var(--color-orange-500) 60%, transparent); + } + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-primary\/60 { + --tw-gradient-to: var(--color-primary); + @supports (color: color-mix(in lab, red, red)) { + --tw-gradient-to: color-mix(in oklab, var(--color-primary) 60%, transparent); + } + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-primary\/80 { + --tw-gradient-to: var(--color-primary); + @supports (color: color-mix(in lab, red, red)) { + --tw-gradient-to: color-mix(in oklab, var(--color-primary) 80%, transparent); + } + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-secondary { + --tw-gradient-to: var(--color-secondary); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-secondary\/60 { + --tw-gradient-to: var(--color-secondary); + @supports (color: color-mix(in lab, red, red)) { + --tw-gradient-to: color-mix(in oklab, var(--color-secondary) 60%, transparent); + } + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-secondary\/80 { + --tw-gradient-to: var(--color-secondary); + @supports (color: color-mix(in lab, red, red)) { + --tw-gradient-to: color-mix(in oklab, var(--color-secondary) 80%, transparent); + } + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-success\/80 { + --tw-gradient-to: var(--color-success); + @supports (color: color-mix(in lab, red, red)) { + --tw-gradient-to: color-mix(in oklab, var(--color-success) 80%, transparent); + } + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-transparent { + --tw-gradient-to: transparent; + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-warning\/80 { + --tw-gradient-to: var(--color-warning); + @supports (color: color-mix(in lab, red, red)) { + --tw-gradient-to: color-mix(in oklab, var(--color-warning) 80%, transparent); + } + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .loading-bars { + @layer daisyui.l1.l2 { + mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3C/rect%3E%3Crect x='9' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3C/rect%3E%3Crect x='17' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3C/rect%3E%3C/svg%3E"); + } + } + .mask-squircle { + @layer daisyui.l1.l2 { + mask-image: url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M100 0C20 0 0 20 0 100s20 100 100 100 100-20 100-100S180 0 100 0Z'/%3e%3c/svg%3e"); + } + } + .fill-gray-500 { + fill: var(--color-gray-500); + } + .object-contain { + object-fit: contain; + } + .object-cover { + object-fit: cover; + } + .checkbox-sm { + @layer daisyui.l1.l2 { + padding: 0.1875rem; + --size: calc(var(--size-selector, 0.25rem) * 5); + } + } + .radio-sm { + @layer daisyui.l1.l2 { + padding: 0.1875rem; + &:is([type="radio"]) { + --size: calc(var(--size-selector, 0.25rem) * 5); + } + } + } + .p-0 { + padding: calc(var(--spacing) * 0); + } + .p-1 { + padding: calc(var(--spacing) * 1); + } + .p-1\.5 { + padding: calc(var(--spacing) * 1.5); + } + .p-2 { + padding: calc(var(--spacing) * 2); + } + .p-3 { + padding: calc(var(--spacing) * 3); + } + .p-4 { + padding: calc(var(--spacing) * 4); + } + .p-5 { + padding: calc(var(--spacing) * 5); + } + .p-\[0_5px\] { + padding: 0 5px; + } + .p-\[0_6px\] { + padding: 0 6px; + } + .p-\[0_7px\] { + padding: 0 7px; + } + .p-\[0_8px\] { + padding: 0 8px; + } + .p-\[0_9px\] { + padding: 0 9px; + } + .p-\[0_10px\] { + padding: 0 10px; + } + .p-\[0_10px_0_30px\] { + padding: 0 10px 0 30px; + } + .p-\[0_11px\] { + padding: 0 11px; + } + .p-\[0_12px\] { + padding: 0 12px; + } + .p-\[0_14px\] { + padding: 0 14px; + } + .p-\[0_15px\] { + padding: 0 15px; + } + .p-\[0_16px\] { + padding: 0 16px; + } + .p-\[1px_7px\] { + padding: 1px 7px; + } + .p-\[4px_10px\] { + padding: 4px 10px; + } + .p-\[5px\] { + padding: 5px; + } + .p-\[5px_0\] { + padding: 5px 0; + } + .p-\[5px_10px\] { + padding: 5px 10px; + } + .p-\[5px_10px_5px_10px\] { + padding: 5px 10px 5px 10px; + } + .p-\[6px_10px\] { + padding: 6px 10px; + } + .p-\[6px_16px\] { + padding: 6px 16px; + } + .p-\[7px\] { + padding: 7px; + } + .p-\[7px_10px\] { + padding: 7px 10px; + } + .p-\[8px\] { + padding: 8px; + } + .p-\[8px_10px\] { + padding: 8px 10px; + } + .p-\[8px_12px\] { + padding: 8px 12px; + } + .p-\[8px_13px\] { + padding: 8px 13px; + } + .p-\[10px\] { + padding: 10px; + } + .p-\[10px_10px_15px_13px\] { + padding: 10px 10px 15px 13px; + } + .p-\[10px_15px\] { + padding: 10px 15px; + } + .p-\[11px_16px\] { + padding: 11px 16px; + } + .p-\[12px_20px\] { + padding: 12px 20px; + } + .p-\[15px\] { + padding: 15px; + } + .p-\[16pX_16px_20px\] { + padding: 16pX 16px 20px; + } + .p-\[16px\] { + padding: 16px; + } + .p-\[20px\] { + padding: 20px; + } + .p-\[20px_15px\] { + padding: 20px 15px; + } + .p-\[20px_16px\] { + padding: 20px 16px; + } + .p-\[20px_20px_0_20px\] { + padding: 20px 20px 0 20px; + } + .p-\[_15px\] { + padding: 15px; + } + .menu-title { + @layer daisyui.l1.l2.l3 { + padding-inline: calc(0.25rem * 3); + padding-block: calc(0.25rem * 2); + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 40%, transparent); + } + font-size: 0.875rem; + font-weight: 600; + } + } + .select-md { + @layer daisyui.l1.l2 { + --size: calc(var(--size-field, 0.25rem) * 10); + font-size: 0.875rem; + option { + padding-inline: calc(0.25rem * 3); + padding-block: calc(0.25rem * 1.5); + } + } + } + .table-md { + @layer daisyui.l1.l2 { + :not(thead, tfoot) tr { + font-size: 0.875rem; + } + :where(th, td) { + padding-inline: calc(0.25rem * 4); + padding-block: calc(0.25rem * 3); + } + } + } + .table-sm { + @layer daisyui.l1.l2 { + :not(thead, tfoot) tr { + font-size: 0.75rem; + } + :where(th, td) { + padding-inline: calc(0.25rem * 3); + padding-block: calc(0.25rem * 2); + } + } + } + .px-0 { + padding-inline: calc(var(--spacing) * 0); + } + .px-1 { + padding-inline: calc(var(--spacing) * 1); + } + .px-1\.5 { + padding-inline: calc(var(--spacing) * 1.5); + } + .px-2 { + padding-inline: calc(var(--spacing) * 2); + } + .px-2\.5 { + padding-inline: calc(var(--spacing) * 2.5); + } + .px-3 { + padding-inline: calc(var(--spacing) * 3); + } + .px-4 { + padding-inline: calc(var(--spacing) * 4); + } + .px-5 { + padding-inline: calc(var(--spacing) * 5); + } + .px-6 { + padding-inline: calc(var(--spacing) * 6); + } + .px-\[5px\] { + padding-inline: 5px; + } + .px-\[8px\] { + padding-inline: 8px; + } + .px-\[10px\] { + padding-inline: 10px; + } + .px-\[15px\] { + padding-inline: 15px; + } + .px-\[20px\] { + padding-inline: 20px; + } + .px-\[30px\] { + padding-inline: 30px; + } + .py-0\.5 { + padding-block: calc(var(--spacing) * 0.5); + } + .py-1 { + padding-block: calc(var(--spacing) * 1); + } + .py-1\.5 { + padding-block: calc(var(--spacing) * 1.5); + } + .py-2 { + padding-block: calc(var(--spacing) * 2); + } + .py-3 { + padding-block: calc(var(--spacing) * 3); + } + .py-5 { + padding-block: calc(var(--spacing) * 5); + } + .py-12 { + padding-block: calc(var(--spacing) * 12); + } + .py-\[3px\] { + padding-block: 3px; + } + .py-\[5px\] { + padding-block: 5px; + } + .py-\[6px\] { + padding-block: 6px; + } + .py-\[8px\] { + padding-block: 8px; + } + .py-\[10px\] { + padding-block: 10px; + } + .py-\[15px\] { + padding-block: 15px; + } + .py-\[20px\] { + padding-block: 20px; + } + .ps-2\.5 { + padding-inline-start: calc(var(--spacing) * 2.5); + } + .ps-4 { + padding-inline-start: calc(var(--spacing) * 4); + } + .pe-2 { + padding-inline-end: calc(var(--spacing) * 2); + } + .pt-1 { + padding-top: calc(var(--spacing) * 1); + } + .pt-3 { + padding-top: calc(var(--spacing) * 3); + } + .pt-4 { + padding-top: calc(var(--spacing) * 4); + } + .pt-5 { + padding-top: calc(var(--spacing) * 5); + } + .pt-\[20px\] { + padding-top: 20px; + } + .pb-0 { + padding-bottom: calc(var(--spacing) * 0); + } + .pb-2 { + padding-bottom: calc(var(--spacing) * 2); + } + .pb-\[5px\] { + padding-bottom: 5px; + } + .pb-\[10px\] { + padding-bottom: 10px; + } + .pb-\[14px\] { + padding-bottom: 14px; + } + .pb-\[15px\] { + padding-bottom: 15px; + } + .pl-\[3px\] { + padding-left: 3px; + } + .pl-\[5px\] { + padding-left: 5px; + } + .pl-\[15px\] { + padding-left: 15px; + } + .pl-\[25px\] { + padding-left: 25px; + } + .pl-\[26px\] { + padding-left: 26px; + } + .pl-\[30px\] { + padding-left: 30px; + } + .text-center { + text-align: center; + } + .text-end { + text-align: end; + } + .text-left { + text-align: left; + } + .text-right { + text-align: right; + } + .text-start { + text-align: start; + } + .align-text-top { + vertical-align: text-top; + } + .align-top { + vertical-align: top; + } + .font-mono { + font-family: var(--font-mono); + } + .\!text-sm { + font-size: var(--text-sm) !important; + line-height: var(--tw-leading, var(--text-sm--line-height)) !important; + } + .text-2xl { + font-size: var(--text-2xl); + line-height: var(--tw-leading, var(--text-2xl--line-height)); + } + .text-4xl { + font-size: var(--text-4xl); + line-height: var(--tw-leading, var(--text-4xl--line-height)); + } + .text-base { + font-size: var(--text-base); + line-height: var(--tw-leading, var(--text-base--line-height)); + } + .text-lg { + font-size: var(--text-lg); + line-height: var(--tw-leading, var(--text-lg--line-height)); + } + .text-lg\/none { + font-size: var(--text-lg); + line-height: 1; + } + .text-sm { + font-size: var(--text-sm); + line-height: var(--tw-leading, var(--text-sm--line-height)); + } + .text-sm\/none { + font-size: var(--text-sm); + line-height: 1; + } + .text-xl { + font-size: var(--text-xl); + line-height: var(--tw-leading, var(--text-xl--line-height)); + } + .text-xs { + font-size: var(--text-xs); + line-height: var(--tw-leading, var(--text-xs--line-height)); + } + .text-xs\/none { + font-size: var(--text-xs); + line-height: 1; + } + .tabs-sm { + @layer daisyui.l1.l2 { + --tab-height: calc(var(--size-field, 0.25rem) * 8); + & > .tab { + font-size: 0.875rem; + --tab-p: 0.5rem; + --tab-radius-min: calc(0.5rem - var(--border)); + } + } + } + .tabs-xs { + @layer daisyui.l1.l2 { + --tab-height: calc(var(--size-field, 0.25rem) * 6); + & > .tab { + font-size: 0.75rem; + --tab-p: 0.375rem; + --tab-radius-min: calc(0.5rem - var(--border)); + } + } + } + .badge-sm { + @layer daisyui.l1.l2 { + --size: calc(var(--size-selector, 0.25rem) * 5); + font-size: 0.75rem; + } + } + .text-\[11px\] { + font-size: 11px; + } + .text-\[12px\] { + font-size: 12px; + } + .text-\[13px\] { + font-size: 13px; + } + .text-\[14px\] { + font-size: 14px; + } + .text-\[16px\] { + font-size: 16px; + } + .text-\[18px\] { + font-size: 18px; + } + .text-\[20px\] { + font-size: 20px; + } + .text-\[22px\] { + font-size: 22px; + } + .text-\[24px\] { + font-size: 24px; + } + .text-\[28px\] { + font-size: 28px; + } + .leading-\[10\.2px\] { + --tw-leading: 10.2px; + line-height: 10.2px; + } + .leading-\[10\.3px\] { + --tw-leading: 10.3px; + line-height: 10.3px; + } + .leading-\[10\.4px\] { + --tw-leading: 10.4px; + line-height: 10.4px; + } + .leading-\[10\.5px\] { + --tw-leading: 10.5px; + line-height: 10.5px; + } + .leading-\[10px\] { + --tw-leading: 10px; + line-height: 10px; + } + .leading-\[11px\] { + --tw-leading: 11px; + line-height: 11px; + } + .leading-\[12px\] { + --tw-leading: 12px; + line-height: 12px; + } + .leading-\[16px\] { + --tw-leading: 16px; + line-height: 16px; + } + .leading-\[18px\] { + --tw-leading: 18px; + line-height: 18px; + } + .leading-\[20px\] { + --tw-leading: 20px; + line-height: 20px; + } + .leading-\[23px\] { + --tw-leading: 23px; + line-height: 23px; + } + .leading-\[24px\] { + --tw-leading: 24px; + line-height: 24px; + } + .leading-\[25px\] { + --tw-leading: 25px; + line-height: 25px; + } + .leading-\[26px\] { + --tw-leading: 26px; + line-height: 26px; + } + .leading-\[28px\] { + --tw-leading: 28px; + line-height: 28px; + } + .leading-\[29px\] { + --tw-leading: 29px; + line-height: 29px; + } + .leading-\[30px\] { + --tw-leading: 30px; + line-height: 30px; + } + .leading-\[31px\] { + --tw-leading: 31px; + line-height: 31px; + } + .leading-\[32px\] { + --tw-leading: 32px; + line-height: 32px; + } + .leading-\[33px\] { + --tw-leading: 33px; + line-height: 33px; + } + .leading-\[34\.5px\] { + --tw-leading: 34.5px; + line-height: 34.5px; + } + .leading-\[34px\] { + --tw-leading: 34px; + line-height: 34px; + } + .leading-\[35px\] { + --tw-leading: 35px; + line-height: 35px; + } + .leading-\[36px\] { + --tw-leading: 36px; + line-height: 36px; + } + .leading-\[54px\] { + --tw-leading: 54px; + line-height: 54px; + } + .leading-none { + --tw-leading: 1; + line-height: 1; + } + .leading-tight { + --tw-leading: var(--leading-tight); + line-height: var(--leading-tight); + } + .font-\[16px\] { + --tw-font-weight: 16px; + font-weight: 16px; + } + .font-\[20px\] { + --tw-font-weight: 20px; + font-weight: 20px; + } + .font-\[300\] { + --tw-font-weight: 300; + font-weight: 300; + } + .font-\[400\] { + --tw-font-weight: 400; + font-weight: 400; + } + .font-\[500\] { + --tw-font-weight: 500; + font-weight: 500; + } + .font-\[600\] { + --tw-font-weight: 600; + font-weight: 600; + } + .font-\[700\] { + --tw-font-weight: 700; + font-weight: 700; + } + .font-bold { + --tw-font-weight: var(--font-weight-bold); + font-weight: var(--font-weight-bold); + } + .font-medium { + --tw-font-weight: var(--font-weight-medium); + font-weight: var(--font-weight-medium); + } + .font-normal { + --tw-font-weight: var(--font-weight-normal); + font-weight: var(--font-weight-normal); + } + .font-semibold { + --tw-font-weight: var(--font-weight-semibold); + font-weight: var(--font-weight-semibold); + } + .tracking-wider { + --tw-tracking: var(--tracking-wider); + letter-spacing: var(--tracking-wider); + } + .whitespace-nowrap { + white-space: nowrap; + } + .file-input-primary { + @layer daisyui.l1.l2 { + --btn-color: var(--color-primary); + &::file-selector-button { + color: var(--color-primary-content); + } + &, &:focus, &:focus-within { + --input-color: var(--color-primary); + } + } + } + .checkbox-success { + @layer daisyui.l1.l2 { + color: var(--color-success-content); + --input-color: var(--color-success); + } + } + .link-primary { + @layer daisyui.l1.l2 { + color: var(--color-primary); + @media (hover: hover) { + &:hover { + color: var(--color-primary); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-primary) 80%, #000); + } + } + } + } + } + .progress-accent { + @layer daisyui.l1.l2 { + color: var(--color-accent); + } + } + .progress-info { + @layer daisyui.l1.l2 { + color: var(--color-info); + } + } + .progress-primary { + @layer daisyui.l1.l2 { + color: var(--color-primary); + } + } + .progress-secondary { + @layer daisyui.l1.l2 { + color: var(--color-secondary); + } + } + .progress-warning { + @layer daisyui.l1.l2 { + color: var(--color-warning); + } + } + .text-\[\#000\] { + color: #000; + } + .text-\[\#6B7280\] { + color: #6B7280; + } + .text-\[\#7E7E7E\] { + color: #7E7E7E; + } + .text-\[\#9E9E9E\] { + color: #9E9E9E; + } + .text-\[\#9E9E9E_\!important\] { + color: #9E9E9E !important; + } + .text-\[\#0041E8\] { + color: #0041E8; + } + .text-\[\#0041E8_\!important\] { + color: #0041E8 !important; + } + .text-\[\#79B0E2\] { + color: #79B0E2; + } + .text-\[\#79b0e2\] { + color: #79b0e2; + } + .text-\[\#299D00\] { + color: #299D00; + } + .text-\[\#383C44\] { + color: #383C44; + } + .text-\[\#919699\] { + color: #919699; + } + .text-\[\#B1B1B1\] { + color: #B1B1B1; + } + .text-\[\#C5C5C5\] { + color: #C5C5C5; + } + .text-\[\#E00000\] { + color: #E00000; + } + .text-\[\#FFC700\] { + color: #FFC700; + } + .text-\[\#f6f6f6\] { + color: #f6f6f6; + } + .text-\[\#fff\] { + color: #fff; + } + .text-\[\#fff_\!important\] { + color: #fff !important; + } + .text-\[6b7280\] { + color: 6b7280; + } + .text-\[black\] { + color: black; + } + .text-\[red\] { + color: red; + } + .text-base-content { + color: var(--color-base-content); + } + .text-base-content\/50 { + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 50%, transparent); + } + } + .text-base-content\/60 { + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 60%, transparent); + } + } + .text-base-content\/70 { + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 70%, transparent); + } + } + .text-base-content\/80 { + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 80%, transparent); + } + } + .text-black { + color: var(--color-black); + } + .text-blue-600 { + color: var(--color-blue-600); + } + .text-blue-700 { + color: var(--color-blue-700); + } + .text-error { + color: var(--color-error); + } + .text-gray-500 { + color: var(--color-gray-500); + } + .text-gray-900 { + color: var(--color-gray-900); + } + .text-green-500 { + color: var(--color-green-500); + } + .text-green-800 { + color: var(--color-green-800); + } + .text-orange-500 { + color: var(--color-orange-500); + } + .text-primary { + color: var(--color-primary); + } + .text-primary-content { + color: var(--color-primary-content); + } + .text-red-500 { + color: var(--color-red-500); + } + .text-secondary-content { + color: var(--color-secondary-content); + } + .text-success { + color: var(--color-success); + } + .text-success-content { + color: var(--color-success-content); + } + .text-warning-content { + color: var(--color-warning-content); + } + .text-white { + color: var(--color-white); + } + .uppercase { + text-transform: uppercase; + } + .italic { + font-style: italic; + } + .underline { + text-decoration-line: underline; + } + .opacity-0 { + opacity: 0%; + } + .opacity-70 { + opacity: 70%; + } + .opacity-80 { + opacity: 80%; + } + .opacity-100 { + opacity: 100%; + } + .shadow { + --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-\[0_-1px_1px_0px_\#0000001A\] { + --tw-shadow: 0 -1px 1px 0px var(--tw-shadow-color, #0000001A); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-\[0_0_0_1px_\#0041E8\] { + --tw-shadow: 0 0 0 1px var(--tw-shadow-color, #0041E8); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-\[0_0_0_1px_\#E00000\] { + --tw-shadow: 0 0 0 1px var(--tw-shadow-color, #E00000); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-\[0_0_1px_0px_\#0000001A\] { + --tw-shadow: 0 0 1px 0px var(--tw-shadow-color, #0000001A); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-\[0_1px_1px_0_\#0000001A\] { + --tw-shadow: 0 1px 1px 0 var(--tw-shadow-color, #0000001A); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-\[0_1px_1px_0_rgba\(0\,0\,0\,0\.1\)\] { + --tw-shadow: 0 1px 1px 0 var(--tw-shadow-color, rgba(0,0,0,0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-\[0_1px_1px_0_rgba\(0\,0\,0\,0\.10\)\] { + --tw-shadow: 0 1px 1px 0 var(--tw-shadow-color, rgba(0,0,0,0.10)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-\[0_1px_1px_0px_\#0000001A\] { + --tw-shadow: 0 1px 1px 0px var(--tw-shadow-color, #0000001A); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-\[0_2px_4px_0_rgba\(0\,0\,0\,0\.12\)\] { + --tw-shadow: 0 2px 4px 0 var(--tw-shadow-color, rgba(0,0,0,0.12)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-\[0px_-1px_1px_0px_\#0000001A\] { + --tw-shadow: 0px -1px 1px 0px var(--tw-shadow-color, #0000001A); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-\[0px_-10px_40px_0px\] { + --tw-shadow: 0px -10px 40px 0px var(--tw-shadow-color, currentcolor); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-\[0px_1px_1px_0px_\#0000001A\] { + --tw-shadow: 0px 1px 1px 0px var(--tw-shadow-color, #0000001A); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-\[0px_1px_1px_0px_rgba\(0\,0\,0\,0\.10\)\] { + --tw-shadow: 0px 1px 1px 0px var(--tw-shadow-color, rgba(0,0,0,0.10)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-\[0px_2px_4px_0px_\#0000001F\] { + --tw-shadow: 0px 2px 4px 0px var(--tw-shadow-color, #0000001F); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-\[0px_2px_4px_0px_rgba\(0\,0\,0\,0\.10\)\] { + --tw-shadow: 0px 2px 4px 0px var(--tw-shadow-color, rgba(0,0,0,0.10)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-\[0px_2px_4px_0px_rgba\(0\,0\,0\,0\.12\)\] { + --tw-shadow: 0px 2px 4px 0px var(--tw-shadow-color, rgba(0,0,0,0.12)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-md { + --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-none { + --tw-shadow: 0 0 #0000; + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-sm { + --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-xl { + --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-xs { + --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-base-content\/4 { + --tw-shadow-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-base-content) 4%, transparent) var(--tw-shadow-alpha), transparent); + } + } + .outline-\[0px\] { + outline-style: var(--tw-outline-style); + outline-width: 0px; + } + .btn-ghost { + @layer daisyui.l1 { + &:not(.btn-active, :hover, :active:focus, :focus-visible, input:checked:not(.filter .btn)) { + --btn-shadow: ""; + --btn-bg: #0000; + --btn-border: #0000; + --btn-noise: none; + &:not(:disabled, [disabled], .btn-disabled) { + outline-color: currentcolor; + --btn-fg: var(--btn-color, currentColor); + } + } + @media (hover: none) { + &:not(.btn-active, :active, :focus-visible, input:checked:not(.filter .btn)):hover { + outline-color: currentcolor; + --btn-shadow: ""; + --btn-bg: #0000; + --btn-fg: var(--btn-color, currentColor); + --btn-border: #0000; + --btn-noise: none; + } + } + } + } + .blur { + --tw-blur: blur(8px); + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } + .grayscale-\[1\] { + --tw-grayscale: grayscale(1); + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } + .filter { + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } + .transition { + transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .transition-all { + transition-property: all; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .duration-300 { + --tw-duration: 300ms; + transition-duration: 300ms; + } + .duration-1000 { + --tw-duration: 1000ms; + transition-duration: 1000ms; + } + .btn-outline { + @layer daisyui.l1 { + &:not( .btn-active, :hover, :active:focus, :focus-visible, input:checked:not(.filter .btn), :disabled, [disabled], .btn-disabled ) { + --btn-shadow: ""; + --btn-bg: #0000; + --btn-fg: var(--btn-color); + --btn-border: var(--btn-color); + --btn-noise: none; + } + @media (hover: none) { + &:not(.btn-active, :active, :focus-visible, input:checked:not(.filter .btn)):hover { + --btn-shadow: ""; + --btn-bg: #0000; + --btn-fg: var(--btn-color); + --btn-border: var(--btn-color); + --btn-noise: none; + } + } + } + } + .btn-soft { + @layer daisyui.l1 { + &:not( .btn-active, :hover, :active:focus, :focus-visible, input:checked:not(.filter .btn), :disabled, [disabled], .btn-disabled ) { + --btn-shadow: ""; + --btn-fg: var(--btn-color, var(--color-base-content)); + --btn-bg: var(--btn-color, var(--color-base-content)); + @supports (color: color-mix(in lab, red, red)) { + --btn-bg: color-mix( + in oklab, + var(--btn-color, var(--color-base-content)) 8%, + var(--color-base-100) + ); + } + --btn-border: var(--btn-color, var(--color-base-content)); + @supports (color: color-mix(in lab, red, red)) { + --btn-border: color-mix( + in oklab, + var(--btn-color, var(--color-base-content)) 10%, + var(--color-base-100) + ); + } + --btn-noise: none; + } + @media (hover: none) { + &:not(.btn-active, :active, :focus-visible, input:checked:not(.filter .btn)):hover { + --btn-shadow: ""; + --btn-fg: var(--btn-color, var(--color-base-content)); + --btn-bg: var(--btn-color, var(--color-base-content)); + @supports (color: color-mix(in lab, red, red)) { + --btn-bg: color-mix( + in oklab, + var(--btn-color, var(--color-base-content)) 8%, + var(--color-base-100) + ); + } + --btn-border: var(--btn-color, var(--color-base-content)); + @supports (color: color-mix(in lab, red, red)) { + --btn-border: color-mix( + in oklab, + var(--btn-color, var(--color-base-content)) 10%, + var(--color-base-100) + ); + } + --btn-noise: none; + } + } + } + } + .btn-md { + @layer daisyui.l1.l2 { + --fontsize: 0.875rem; + --btn-p: 1rem; + --size: calc(var(--size-field, 0.25rem) * 10); + } + } + .btn-sm { + @layer daisyui.l1.l2 { + --fontsize: 0.75rem; + --btn-p: 0.75rem; + --size: calc(var(--size-field, 0.25rem) * 8); + } + } + .btn-xs { + @layer daisyui.l1.l2 { + --fontsize: 0.6875rem; + --btn-p: 0.5rem; + --size: calc(var(--size-field, 0.25rem) * 6); + } + } + .\!outline-none { + --tw-outline-style: none !important; + outline-style: none !important; + } + .badge-error { + @layer daisyui.l1.l2 { + --badge-color: var(--color-error); + --badge-fg: var(--color-error-content); + } + } + .badge-info { + @layer daisyui.l1.l2 { + --badge-color: var(--color-info); + --badge-fg: var(--color-info-content); + } + } + .badge-primary { + @layer daisyui.l1.l2 { + --badge-color: var(--color-primary); + --badge-fg: var(--color-primary-content); + } + } + .badge-success { + @layer daisyui.l1.l2 { + --badge-color: var(--color-success); + --badge-fg: var(--color-success-content); + } + } + .badge-warning { + @layer daisyui.l1.l2 { + --badge-color: var(--color-warning); + --badge-fg: var(--color-warning-content); + } + } + .btn-error { + @layer daisyui.l1.l2.l3 { + --btn-color: var(--color-error); + --btn-fg: var(--color-error-content); + } + } + .btn-primary { + @layer daisyui.l1.l2.l3 { + --btn-color: var(--color-primary); + --btn-fg: var(--color-primary-content); + } + } + .\[--chkfg\:white\] { + --chkfg: white; + } + .\*\:cursor-pointer { + :is(& > *) { + cursor: pointer; + } + } + .\*\:text-nowrap { + :is(& > *) { + text-wrap: nowrap; + } + } + .group-hover\:block { + &:is(:where(.group):hover *) { + @media (hover: hover) { + display: block; + } + } + } + .group-hover\:translate-x-0 { + &:is(:where(.group):hover *) { + @media (hover: hover) { + --tw-translate-x: calc(var(--spacing) * 0); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + } + .group-hover\:border-\[\#fff\] { + &:is(:where(.group):hover *) { + @media (hover: hover) { + border-color: #fff; + } + } + } + .group-hover\:border-white { + &:is(:where(.group):hover *) { + @media (hover: hover) { + border-color: var(--color-white); + } + } + } + .group-hover\:text-black { + &:is(:where(.group):hover *) { + @media (hover: hover) { + color: var(--color-black); + } + } + } + .group-hover\:text-white { + &:is(:where(.group):hover *) { + @media (hover: hover) { + color: var(--color-white); + } + } + } + .group-hover\:opacity-100 { + &:is(:where(.group):hover *) { + @media (hover: hover) { + opacity: 100%; + } + } + } + .group-hover\:filter-none { + &:is(:where(.group):hover *) { + @media (hover: hover) { + filter: none; + } + } + } + .group-has-\[\[id\=layout-sidebar-hover-trigger\]\:checked\]\/html\:flex { + &:is(:where(.group\/html):has(*:is([id=layout-sidebar-hover-trigger]:checked)) *) { + display: flex; + } + } + .group-has-\[\[id\=layout-sidebar-hover-trigger\]\:checked\]\/html\:hidden { + &:is(:where(.group\/html):has(*:is([id=layout-sidebar-hover-trigger]:checked)) *) { + display: none; + } + } + .group-data-\[theme\=dark\]\/html\:translate-y-0 { + &:is(:where(.group\/html)[data-theme="dark"] *) { + --tw-translate-y: calc(var(--spacing) * 0); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + .group-data-\[theme\=dark\]\/html\:opacity-0 { + &:is(:where(.group\/html)[data-theme="dark"] *) { + opacity: 0%; + } + } + .group-data-\[theme\=dark\]\/html\:opacity-100 { + &:is(:where(.group\/html)[data-theme="dark"] *) { + opacity: 100%; + } + } + .group-data-\[theme\=light\]\/html\:translate-y-0 { + &:is(:where(.group\/html)[data-theme="light"] *) { + --tw-translate-y: calc(var(--spacing) * 0); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + .group-data-\[theme\=light\]\/html\:opacity-0 { + &:is(:where(.group\/html)[data-theme="light"] *) { + opacity: 0%; + } + } + .group-data-\[theme\=light\]\/html\:opacity-100 { + &:is(:where(.group\/html)[data-theme="light"] *) { + opacity: 100%; + } + } + .checked\:bg-\[\#0041E8\] { + &:checked { + background-color: #0041E8; + } + } + .checked\:bg-blue-500 { + &:checked { + background-color: var(--color-blue-500); + } + } + .focus-within\:border-\[\#0041E8\] { + &:focus-within { + border-color: #0041E8; + } + } + .hover\:border-\[\#0041E8\] { + &:hover { + @media (hover: hover) { + border-color: #0041E8; + } + } + } + .hover\:bg-\[\#0041E8\] { + &:hover { + @media (hover: hover) { + background-color: #0041E8; + } + } + } + .hover\:bg-\[\#79B0E2\] { + &:hover { + @media (hover: hover) { + background-color: #79B0E2; + } + } + } + .hover\:bg-\[\#79b0e2\] { + &:hover { + @media (hover: hover) { + background-color: #79b0e2; + } + } + } + .hover\:bg-\[\#F5F7FF\] { + &:hover { + @media (hover: hover) { + background-color: #F5F7FF; + } + } + } + .hover\:bg-base-200 { + &:hover { + @media (hover: hover) { + background-color: var(--color-base-200); + } + } + } + .hover\:bg-base-200\/20 { + &:hover { + @media (hover: hover) { + background-color: var(--color-base-200); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-base-200) 20%, transparent); + } + } + } + } + .hover\:bg-base-300 { + &:hover { + @media (hover: hover) { + background-color: var(--color-base-300); + } + } + } + .hover\:bg-blue-700 { + &:hover { + @media (hover: hover) { + background-color: var(--color-blue-700); + } + } + } + .hover\:bg-error\/10 { + &:hover { + @media (hover: hover) { + background-color: var(--color-error); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-error) 10%, transparent); + } + } + } + } + .hover\:bg-gray-100 { + &:hover { + @media (hover: hover) { + background-color: var(--color-gray-100); + } + } + } + .hover\:stroke-white { + &:hover { + @media (hover: hover) { + stroke: var(--color-white); + } + } + } + .hover\:text-\[\#0041E8_\!important\] { + &:hover { + @media (hover: hover) { + color: #0041E8 !important; + } + } + } + .hover\:text-\[\#fff\] { + &:hover { + @media (hover: hover) { + color: #fff; + } + } + } + .hover\:text-\[\#fff_\!important\] { + &:hover { + @media (hover: hover) { + color: #fff !important; + } + } + } + .hover\:text-blue-700 { + &:hover { + @media (hover: hover) { + color: var(--color-blue-700); + } + } + } + .hover\:text-white { + &:hover { + @media (hover: hover) { + color: var(--color-white); + } + } + } + .hover\:opacity-95 { + &:hover { + @media (hover: hover) { + opacity: 95%; + } + } + } + .hover\:shadow-\[0px_1px_5px_0px_rgba\(0\,0\,0\,0\.20\)\] { + &:hover { + @media (hover: hover) { + --tw-shadow: 0px 1px 5px 0px var(--tw-shadow-color, rgba(0,0,0,0.20)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + } + } + .hover\:shadow-lg { + &:hover { + @media (hover: hover) { + --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + } + } + .data-error\:input-error { + &[data-error] { + @layer daisyui.l1.l2 { + &, &:focus, &:focus-within { + --input-color: var(--color-error); + } + } + } + } + .max-\[1620px\]\:p-\[10px\] { + @media (width < 1620px) { + padding: 10px; + } + } + .max-\[1620px\]\:text-\[22px\] { + @media (width < 1620px) { + font-size: 22px; + } + } + .max-sm\:hidden { + @media (width < 40rem) { + display: none; + } + } + .sm\:dropdown-end { + @media (width >= 40rem) { + @layer daisyui.l1.l2 { + --anchor-h: span-left; + :where(.dropdown-content) { + inset-inline-end: calc(0.25rem * 0); + translate: 0 0; + [dir="rtl"] & { + translate: 0 0; + } + } + &.dropdown-left { + --anchor-h: left; + --anchor-v: span-top; + .dropdown-content { + top: auto; + bottom: calc(0.25rem * 0); + } + } + &.dropdown-right { + --anchor-h: right; + --anchor-v: span-top; + .dropdown-content { + top: auto; + bottom: calc(0.25rem * 0); + } + } + } + } + } + .sm\:col-span-2 { + @media (width >= 40rem) { + grid-column: span 2 / span 2; + } + } + .sm\:mx-5 { + @media (width >= 40rem) { + margin-inline: calc(var(--spacing) * 5); + } + } + .sm\:mt-4 { + @media (width >= 40rem) { + margin-top: calc(var(--spacing) * 4); + } + } + .sm\:mt-6 { + @media (width >= 40rem) { + margin-top: calc(var(--spacing) * 6); + } + } + .sm\:mt-8 { + @media (width >= 40rem) { + margin-top: calc(var(--spacing) * 8); + } + } + .sm\:mr-\[0\] { + @media (width >= 40rem) { + margin-right: 0; + } + } + .sm\:block { + @media (width >= 40rem) { + display: block; + } + } + .sm\:size-6 { + @media (width >= 40rem) { + width: calc(var(--spacing) * 6); + height: calc(var(--spacing) * 6); + } + } + .sm\:w-84 { + @media (width >= 40rem) { + width: calc(var(--spacing) * 84); + } + } + .sm\:w-full { + @media (width >= 40rem) { + width: 100%; + } + } + .sm\:footer-horizontal { + @media (width >= 40rem) { + @layer daisyui.l1.l2 { + grid-auto-flow: column; + &.footer-center { + grid-auto-flow: row dense; + } + } + } + } + .sm\:grid-cols-3 { + @media (width >= 40rem) { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + } + .sm\:divide-x { + @media (width >= 40rem) { + :where(& > :not(:last-child)) { + --tw-divide-x-reverse: 0; + border-inline-style: var(--tw-border-style); + border-inline-start-width: calc(1px * var(--tw-divide-x-reverse)); + border-inline-end-width: calc(1px * calc(1 - var(--tw-divide-x-reverse))); + } + } + } + .sm\:p-2\.5 { + @media (width >= 40rem) { + padding: calc(var(--spacing) * 2.5); + } + } + .sm\:p-6 { + @media (width >= 40rem) { + padding: calc(var(--spacing) * 6); + } + } + .sm\:pt-8 { + @media (width >= 40rem) { + padding-top: calc(var(--spacing) * 8); + } + } + .sm\:text-lg { + @media (width >= 40rem) { + font-size: var(--text-lg); + line-height: var(--tw-leading, var(--text-lg--line-height)); + } + } + .sm\:whitespace-nowrap { + @media (width >= 40rem) { + white-space: nowrap; + } + } + .md\:mt-\[10px\] { + @media (width >= 48rem) { + margin-top: 10px; + } + } + .md\:flex { + @media (width >= 48rem) { + display: flex; + } + } + .md\:hidden { + @media (width >= 48rem) { + display: none; + } + } + .md\:size-24 { + @media (width >= 48rem) { + width: calc(var(--spacing) * 24); + height: calc(var(--spacing) * 24); + } + } + .md\:w-\[100\%\] { + @media (width >= 48rem) { + width: 100%; + } + } + .md\:justify-start { + @media (width >= 48rem) { + justify-content: flex-start; + } + } + .md\:whitespace-nowrap { + @media (width >= 48rem) { + white-space: nowrap; + } + } + .lg\:grid-cols-2 { + @media (width >= 64rem) { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + } + .lg\:whitespace-nowrap { + @media (width >= 64rem) { + white-space: nowrap; + } + } + .xl\:col-span-5 { + @media (width >= 80rem) { + grid-column: span 5 / span 5; + } + } + .xl\:col-span-7 { + @media (width >= 80rem) { + grid-column: span 7 / span 7; + } + } + .xl\:w-\[120px\] { + @media (width >= 80rem) { + width: 120px; + } + } + .xl\:grid-cols-4 { + @media (width >= 80rem) { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + } + .xl\:grid-cols-12 { + @media (width >= 80rem) { + grid-template-columns: repeat(12, minmax(0, 1fr)); + } + } + .\32 xl\:col-span-1 { + @media (width >= 96rem) { + grid-column: span 1 / span 1; + } + } + .\32 xl\:mr-\[16px\] { + @media (width >= 96rem) { + margin-right: 16px; + } + } + .\32 xl\:w-\[30\%\] { + @media (width >= 96rem) { + width: 30%; + } + } + .\32 xl\:w-\[50\%\] { + @media (width >= 96rem) { + width: 50%; + } + } + .\32 xl\:w-\[calc\(100\%_-30\%_-16px\)\] { + @media (width >= 96rem) { + width: calc(100% - 30% - 16px); + } + } + .\32 xl\:w-auto { + @media (width >= 96rem) { + width: auto; + } + } + .\32 xl\:justify-end { + @media (width >= 96rem) { + justify-content: flex-end; + } + } + .\32 xl\:whitespace-normal { + @media (width >= 96rem) { + white-space: normal; + } + } + .rtl\:rotate-180 { + &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) { + rotate: 180deg; + } + } + .dark\:border-gray-700 { + @media (prefers-color-scheme: dark) { + border-color: var(--color-gray-700); + } + } + .dark\:bg-green-900 { + @media (prefers-color-scheme: dark) { + background-color: var(--color-green-900); + } + } + .dark\:fill-gray-400 { + @media (prefers-color-scheme: dark) { + fill: var(--color-gray-400); + } + } + .dark\:text-gray-400 { + @media (prefers-color-scheme: dark) { + color: var(--color-gray-400); + } + } + .dark\:text-green-300 { + @media (prefers-color-scheme: dark) { + color: var(--color-green-300); + } + } + .dark\:text-green-500 { + @media (prefers-color-scheme: dark) { + color: var(--color-green-500); + } + } + .dark\:text-white { + @media (prefers-color-scheme: dark) { + color: var(--color-white); + } + } + .dark\:hover\:bg-gray-700 { + @media (prefers-color-scheme: dark) { + &:hover { + @media (hover: hover) { + background-color: var(--color-gray-700); + } + } + } + } + .dark\:hover\:text-blue-500 { + @media (prefers-color-scheme: dark) { + &:hover { + @media (hover: hover) { + color: var(--color-blue-500); + } + } + } + } + .dark\:focus\:ring-gray-700 { + @media (prefers-color-scheme: dark) { + &:focus { + --tw-ring-color: var(--color-gray-700); + } + } + } +} +@layer properties { + :root { + --font-sans: "Inclusive Sans", sans-serif; + --text-base: 16px; + --color-hura: #0041e8; + --color-header: #002bb5; + --text-base--line-height: 1.5; + --color-black: #000; + --color-white: #fff; + --spacing: 0.25rem; + --layout-topbar-background: #fff; + --menu-active: #e9f2ff; + --menu-text: #177bff; + --menu-sub-bg: #fff; + } +} +@layer base { + html, body { + font-family: var(--font-sans); + font-size: var(--text-base); + line-height: var(--text-base--line-height); + } + *, *::before, *::after { + box-sizing: border-box; + } +} +@layer components { + .btn-ouline, .btn-dash { + border-width: 1px; + border-color: gray; + } + .btn-active { + --btn-bg: var(--color-hura); + --btn-fg: #ffffff; + --btn-border: var(--color-hura); + color: var(--color-white); + } + .btn-active:hover { + --btn-bg: #002bb5; + --btn-border: #002bb5; + } + .bg-menu { + background-color: var(--color-header); + } + .btn-view { + background: #f5f7ff; + color: var(--color-hura); + border: 1px solid var(--color-hura); + } + .btn-view:hover { + background: var(--color-hura); + color: #fff; + } + .menu { + --menu-active-bg: #e9f2ff; + } + .menu-horizontal { + display: inline-flex; + flex-direction: row; + } + .menu-horizontal li { + position: relative; + } + .menu-horizontal li.active { + background: var(--menu-active); + } + .menu-horizontal li.active .grow, .menu-horizontal li.active svg { + color: var(--menu-text); + } + .menu-horizontal li.active ul li.active { + background: var(--color-hura); + } + .menu-horizontal li.active ul li.active a { + color: #fff; + } + .menu-horizontal li:hover { + background: var(--menu-active); + } + .menu-horizontal li:hover .grow, .menu-horizontal li:hover svg { + color: var(--color-hura); + } + .menu-horizontal li::before { + content: ""; + position: absolute; + left: 0; + bottom: -18px; + width: 100%; + height: 30px; + display: none; + } + .menu-horizontal li:hover::before { + display: block; + } + .menu-horizontal li .submenu { + position: absolute !important; + top: 125%; + left: 0; + background: var(--menu-sub-bg); + margin-left: 0 !important; + padding: 0.5rem; + z-index: 999; + border-radius: 10px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + max-height: 500px; + overflow-y: auto; + overflow-x: hidden; + display: none; + } + .menu-horizontal > li:not(.menu-title) > details > ul { + margin-top: 1rem; + padding-inline-end: 0.5rem; + } + .menu-horizontal li:hover .submenu, .menu-horizontal li:hover > details > ul { + display: block; + } + .menu-horizontal > li > details > ul:before { + content: none; + } + .menu-horizontal li ul li:hover { + background: var(--color-hura); + } + .menu-horizontal li ul li:hover a { + color: #fff; + } + .menu-horizontal li ul li:hover::before { + display: none; + } + .menu-horizontal .grow { + font-weight: 500; + } + .tw-qna { + gap: calc(var(--spacing) * 0.5); + } + .tw-zy { + align-items: center; + } + .tw-uba { + display: inline-flex; + } + .tw-usa { + width: calc(var(--spacing) * 5); + height: calc(var(--spacing) * 5); + } + .tw-sla { + width: calc(var(--spacing) * 4.5); + height: calc(var(--spacing) * 4.5); + } + .menu-icon-color { + color: #838383; + } + .card-body { + padding: calc(var(--spacing) * 4); + } + .-mt-25 { + margin-top: calc(var(--spacing) * -25); + } +} +#layout-topbar { + background: var(--layout-topbar-background); + top: calc(var(--spacing) * 0); + z-index: 10; + transition-property: top, margin, border-radius; + transition-timing-function: var( --tw-ease, var(--default-transition-timing-function) ); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + --tw-duration: 0.3s; + transition-duration: 0.3s; + position: sticky; + border-bottom-style: solid; + border-bottom-width: 1px; + border-color: var(--color-base-300); +} +#layout-content { + padding: calc(var(--spacing) * 6); + transition-property: all; + transition-timing-function: var( --tw-ease, var(--default-transition-timing-function) ); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + flex-grow: 1; +} +@layer base { + :where(:root),:root:has(input.theme-controller[value=light]:checked),[data-theme=light] { + color-scheme: light; + --color-base-100: oklch(100% 0 0); + --color-base-200: oklch(98% 0 0); + --color-base-300: oklch(95% 0 0); + --color-base-content: oklch(21% 0.006 285.885); + --color-primary: oklch(45% 0.24 277.023); + --color-primary-content: oklch(93% 0.034 272.788); + --color-secondary: oklch(65% 0.241 354.308); + --color-secondary-content: oklch(94% 0.028 342.258); + --color-accent: oklch(77% 0.152 181.912); + --color-accent-content: oklch(38% 0.063 188.416); + --color-neutral: oklch(14% 0.005 285.823); + --color-neutral-content: oklch(92% 0.004 286.32); + --color-info: oklch(74% 0.16 232.661); + --color-info-content: oklch(29% 0.066 243.157); + --color-success: oklch(76% 0.177 163.223); + --color-success-content: oklch(37% 0.077 168.94); + --color-warning: oklch(82% 0.189 84.429); + --color-warning-content: oklch(41% 0.112 45.904); + --color-error: oklch(71% 0.194 13.428); + --color-error-content: oklch(27% 0.105 12.094); + --radius-selector: 0.5rem; + --radius-field: 0.25rem; + --radius-box: 0.5rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 1; + --noise: 0; + } +} +@layer base { + @media (prefers-color-scheme: dark) { + :root:not([data-theme]) { + color-scheme: dark; + --color-base-100: oklch(25.33% 0.016 252.42); + --color-base-200: oklch(23.26% 0.014 253.1); + --color-base-300: oklch(21.15% 0.012 254.09); + --color-base-content: oklch(97.807% 0.029 256.847); + --color-primary: oklch(58% 0.233 277.117); + --color-primary-content: oklch(96% 0.018 272.314); + --color-secondary: oklch(65% 0.241 354.308); + --color-secondary-content: oklch(94% 0.028 342.258); + --color-accent: oklch(77% 0.152 181.912); + --color-accent-content: oklch(38% 0.063 188.416); + --color-neutral: oklch(14% 0.005 285.823); + --color-neutral-content: oklch(92% 0.004 286.32); + --color-info: oklch(74% 0.16 232.661); + --color-info-content: oklch(29% 0.066 243.157); + --color-success: oklch(76% 0.177 163.223); + --color-success-content: oklch(37% 0.077 168.94); + --color-warning: oklch(82% 0.189 84.429); + --color-warning-content: oklch(41% 0.112 45.904); + --color-error: oklch(71% 0.194 13.428); + --color-error-content: oklch(27% 0.105 12.094); + --radius-selector: 0.5rem; + --radius-field: 0.25rem; + --radius-box: 0.5rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 1; + --noise: 0; + } + } +} +@layer base { + :root:has(input.theme-controller[value=light]:checked),[data-theme=light] { + color-scheme: light; + --color-base-100: oklch(100% 0 0); + --color-base-200: oklch(98% 0 0); + --color-base-300: oklch(95% 0 0); + --color-base-content: oklch(21% 0.006 285.885); + --color-primary: oklch(45% 0.24 277.023); + --color-primary-content: oklch(93% 0.034 272.788); + --color-secondary: oklch(65% 0.241 354.308); + --color-secondary-content: oklch(94% 0.028 342.258); + --color-accent: oklch(77% 0.152 181.912); + --color-accent-content: oklch(38% 0.063 188.416); + --color-neutral: oklch(14% 0.005 285.823); + --color-neutral-content: oklch(92% 0.004 286.32); + --color-info: oklch(74% 0.16 232.661); + --color-info-content: oklch(29% 0.066 243.157); + --color-success: oklch(76% 0.177 163.223); + --color-success-content: oklch(37% 0.077 168.94); + --color-warning: oklch(82% 0.189 84.429); + --color-warning-content: oklch(41% 0.112 45.904); + --color-error: oklch(71% 0.194 13.428); + --color-error-content: oklch(27% 0.105 12.094); + --radius-selector: 0.5rem; + --radius-field: 0.25rem; + --radius-box: 0.5rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 1; + --noise: 0; + } +} +@layer base { + :root:has(input.theme-controller[value=dark]:checked),[data-theme=dark] { + color-scheme: dark; + --color-base-100: oklch(25.33% 0.016 252.42); + --color-base-200: oklch(23.26% 0.014 253.1); + --color-base-300: oklch(21.15% 0.012 254.09); + --color-base-content: oklch(97.807% 0.029 256.847); + --color-primary: oklch(58% 0.233 277.117); + --color-primary-content: oklch(96% 0.018 272.314); + --color-secondary: oklch(65% 0.241 354.308); + --color-secondary-content: oklch(94% 0.028 342.258); + --color-accent: oklch(77% 0.152 181.912); + --color-accent-content: oklch(38% 0.063 188.416); + --color-neutral: oklch(14% 0.005 285.823); + --color-neutral-content: oklch(92% 0.004 286.32); + --color-info: oklch(74% 0.16 232.661); + --color-info-content: oklch(29% 0.066 243.157); + --color-success: oklch(76% 0.177 163.223); + --color-success-content: oklch(37% 0.077 168.94); + --color-warning: oklch(82% 0.189 84.429); + --color-warning-content: oklch(41% 0.112 45.904); + --color-error: oklch(71% 0.194 13.428); + --color-error-content: oklch(27% 0.105 12.094); + --radius-selector: 0.5rem; + --radius-field: 0.25rem; + --radius-box: 0.5rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 1; + --noise: 0; + } +} +@layer base { + :root { + --fx-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.34' numOctaves='4' stitchTiles='stitch'%3E%3C/feTurbulence%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23a)' opacity='0.2'%3E%3C/rect%3E%3C/svg%3E"); + } +} +@layer base { + :root { + scrollbar-color: currentColor #0000; + @supports (color: color-mix(in lab, red, red)) { + scrollbar-color: color-mix(in oklch, currentColor 35%, #0000) #0000; + } + } +} +@layer base { + @property --radialprogress { + syntax: ""; + inherits: true; + initial-value: 0%; + } +} +@layer base { + :root:not(span) { + overflow: var(--page-overflow); + } +} +@layer base { + :root { + --page-scroll-bg-on: linear-gradient(var(--root-bg), var(--root-bg)) + var(--root-bg); + @supports (color: color-mix(in lab, red, red)) { + --page-scroll-bg-on: linear-gradient(var(--root-bg), var(--root-bg)) + color-mix(in srgb, var(--root-bg), oklch(0% 0 0) calc(var(--page-has-backdrop, 0) * 40%)); + } + --page-scroll-transition-on: background-color 0.3s ease-out; + transition: var(--page-scroll-transition); + scrollbar-gutter: var(--page-scroll-gutter, unset); + scrollbar-gutter: if(style(--page-has-scroll: 1): var(--page-scroll-gutter, unset) ; else: unset); + } + :root:root { + background: var(--page-scroll-bg, var(--root-bg, var(--color-base-100))); + } + @keyframes set-page-has-scroll { + 0%, to { + --page-has-scroll: 1; + } + } +} +@layer base { + :root, [data-theme] { + background-color: var(--root-bg, var(--color-base-100)); + color: var(--color-base-content); + } + :where(:root, [data-theme]) { + --root-bg: var(--color-base-100); + } +} +@keyframes rating { + 0%, 40% { + scale: 1.1; + filter: brightness(1.05) contrast(1.05); + } +} +@keyframes dropdown { + 0% { + opacity: 0; + } +} +@keyframes radio { + 0% { + padding: 5px; + } + 50% { + padding: 3px; + } +} +@keyframes toast { + 0% { + scale: 0.9; + opacity: 0; + } + 100% { + scale: 1; + opacity: 1; + } +} +@keyframes rotator { + 89.9999%, 100% { + --first-item-position: 0 0%; + } + 90%, 99.9999% { + --first-item-position: 0 calc(var(--items) * 100%); + } + 100% { + translate: 0 -100%; + } +} +@keyframes skeleton { + 0% { + background-position: 150%; + } + 100% { + background-position: -50%; + } +} +@keyframes menu { + 0% { + opacity: 0; + } +} +@keyframes progress { + 50% { + background-position-x: -115%; + } +} +@property --tw-translate-x { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-translate-y { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-translate-z { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-rotate-x { + syntax: "*"; + inherits: false; +} +@property --tw-rotate-y { + syntax: "*"; + inherits: false; +} +@property --tw-rotate-z { + syntax: "*"; + inherits: false; +} +@property --tw-skew-x { + syntax: "*"; + inherits: false; +} +@property --tw-skew-y { + syntax: "*"; + inherits: false; +} +@property --tw-space-y-reverse { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-border-style { + syntax: "*"; + inherits: false; + initial-value: solid; +} +@property --tw-gradient-position { + syntax: "*"; + inherits: false; +} +@property --tw-gradient-from { + syntax: ""; + inherits: false; + initial-value: #0000; +} +@property --tw-gradient-via { + syntax: ""; + inherits: false; + initial-value: #0000; +} +@property --tw-gradient-to { + syntax: ""; + inherits: false; + initial-value: #0000; +} +@property --tw-gradient-stops { + syntax: "*"; + inherits: false; +} +@property --tw-gradient-via-stops { + syntax: "*"; + inherits: false; +} +@property --tw-gradient-from-position { + syntax: ""; + inherits: false; + initial-value: 0%; +} +@property --tw-gradient-via-position { + syntax: ""; + inherits: false; + initial-value: 50%; +} +@property --tw-gradient-to-position { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-leading { + syntax: "*"; + inherits: false; +} +@property --tw-font-weight { + syntax: "*"; + inherits: false; +} +@property --tw-tracking { + syntax: "*"; + inherits: false; +} +@property --tw-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-inset-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-inset-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-inset-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-ring-color { + syntax: "*"; + inherits: false; +} +@property --tw-ring-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-inset-ring-color { + syntax: "*"; + inherits: false; +} +@property --tw-inset-ring-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-ring-inset { + syntax: "*"; + inherits: false; +} +@property --tw-ring-offset-width { + syntax: ""; + inherits: false; + initial-value: 0px; +} +@property --tw-ring-offset-color { + syntax: "*"; + inherits: false; + initial-value: #fff; +} +@property --tw-ring-offset-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-outline-style { + syntax: "*"; + inherits: false; + initial-value: solid; +} +@property --tw-blur { + syntax: "*"; + inherits: false; +} +@property --tw-brightness { + syntax: "*"; + inherits: false; +} +@property --tw-contrast { + syntax: "*"; + inherits: false; +} +@property --tw-grayscale { + syntax: "*"; + inherits: false; +} +@property --tw-hue-rotate { + syntax: "*"; + inherits: false; +} +@property --tw-invert { + syntax: "*"; + inherits: false; +} +@property --tw-opacity { + syntax: "*"; + inherits: false; +} +@property --tw-saturate { + syntax: "*"; + inherits: false; +} +@property --tw-sepia { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-drop-shadow-size { + syntax: "*"; + inherits: false; +} +@property --tw-duration { + syntax: "*"; + inherits: false; +} +@property --tw-divide-x-reverse { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@keyframes spin { + to { + transform: rotate(360deg); + } +} +@keyframes ping { + 75%, 100% { + transform: scale(2); + opacity: 0; + } +} +@layer properties { + @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) { + *, ::before, ::after, ::backdrop { + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-translate-z: 0; + --tw-rotate-x: initial; + --tw-rotate-y: initial; + --tw-rotate-z: initial; + --tw-skew-x: initial; + --tw-skew-y: initial; + --tw-space-y-reverse: 0; + --tw-border-style: solid; + --tw-gradient-position: initial; + --tw-gradient-from: #0000; + --tw-gradient-via: #0000; + --tw-gradient-to: #0000; + --tw-gradient-stops: initial; + --tw-gradient-via-stops: initial; + --tw-gradient-from-position: 0%; + --tw-gradient-via-position: 50%; + --tw-gradient-to-position: 100%; + --tw-leading: initial; + --tw-font-weight: initial; + --tw-tracking: initial; + --tw-shadow: 0 0 #0000; + --tw-shadow-color: initial; + --tw-shadow-alpha: 100%; + --tw-inset-shadow: 0 0 #0000; + --tw-inset-shadow-color: initial; + --tw-inset-shadow-alpha: 100%; + --tw-ring-color: initial; + --tw-ring-shadow: 0 0 #0000; + --tw-inset-ring-color: initial; + --tw-inset-ring-shadow: 0 0 #0000; + --tw-ring-inset: initial; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-offset-shadow: 0 0 #0000; + --tw-outline-style: solid; + --tw-blur: initial; + --tw-brightness: initial; + --tw-contrast: initial; + --tw-grayscale: initial; + --tw-hue-rotate: initial; + --tw-invert: initial; + --tw-opacity: initial; + --tw-saturate: initial; + --tw-sepia: initial; + --tw-drop-shadow: initial; + --tw-drop-shadow-color: initial; + --tw-drop-shadow-alpha: 100%; + --tw-drop-shadow-size: initial; + --tw-duration: initial; + --tw-divide-x-reverse: 0; + } + } +} diff --git a/assets/script/hura.global.css b/assets/script/hura.global.css new file mode 100644 index 0000000..a6ac84f --- /dev/null +++ b/assets/script/hura.global.css @@ -0,0 +1,244 @@ +/* =========================== + FONT IMPORT (Dùng chung) + =========================== */ +@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@100;200;300;400;500;600;700;800;900;1000&display=swap"; +@import "https://fonts.googleapis.com/css2?family=Wix+Madefor+Text:wght@400;500;600;700;800;1000&display=swap"; +@import "https://fonts.googleapis.com/css2?family=Inclusive+Sans:wght@400;500;600;700;800;900;1000&display=swap"; +@import "https://fonts.googleapis.com/css2?family=AR+One+Sans:wght@400;500;600;700;800;1000&display=swap"; + +@import "tailwindcss"; +@plugin "daisyui"; + +@layer properties { + :root { + --font-sans: "Inclusive Sans", sans-serif; + --text-base: 16px; + --color-hura: #0041e8; + --color-header: #002bb5; + --text-base--line-height: 1.5; + --color-black: #000; + --color-white: #fff; + --spacing: 0.25rem; + --layout-topbar-background: #fff; + --menu-active: #e9f2ff; + --menu-text: #177bff; + --menu-sub-bg: #fff; + } +} + +@layer base { + html, + body { + font-family: var(--font-sans); + font-size: var(--text-base); + line-height: var(--text-base--line-height); + } + *, + *::before, + *::after { + box-sizing: border-box; + } +} + +@layer components { + .btn-ouline, + .btn-dash { + border-width: 1px; + border-color: gray; + } + .btn-active { + --btn-bg: var(--color-hura); + --btn-fg: #ffffff; + --btn-border: var(--color-hura); + color: var(--color-white); + } + .btn-active:hover { + --btn-bg: #002bb5; + --btn-border: #002bb5; + } + .bg-menu { + background-color: var(--color-header); + } + .btn-view { + background: #f5f7ff; + color: var(--color-hura); + border: 1px solid var(--color-hura); + } + + .btn-view:hover { + background: var(--color-hura); + color: #fff; + } + + /* menu */ + .menu { + & { + --menu-active-bg: #e9f2ff; + } + } + + .menu-horizontal { + display: inline-flex; + flex-direction: row; + } + + .menu-horizontal li { + position: relative; + } + + /* ACTIVE STATE (LEVEL 1) */ + + .menu-horizontal li.active { + background: var(--menu-active); + } + + .menu-horizontal li.active .grow, + .menu-horizontal li.active svg { + color: var(--menu-text); + } + + /* ACTIVE STATE (LEVEL 2) */ + .menu-horizontal li.active ul li.active { + background: var(--color-hura); + } + + .menu-horizontal li.active ul li.active a { + color: #fff; + } + /* HOVER LEVEL 1 */ + + .menu-horizontal li:hover { + background: var(--menu-active); + } + + .menu-horizontal li:hover .grow, + .menu-horizontal li:hover svg { + color: var(--color-hura); + } + + /* Dải hover giữ submenu không bị mất */ + .menu-horizontal li::before { + content: ""; + position: absolute; + left: 0; + bottom: -18px; + width: 100%; + height: 30px; + display: none; + } + + .menu-horizontal li:hover::before { + display: block; + } + + /* ========================== + SUBMENU (UL) + ========================== */ + .menu-horizontal li .submenu { + position: absolute !important; + top: 125%; + left: 0; + background: var(--menu-sub-bg); + margin-left: 0 !important; + padding: 0.5rem; + z-index: 999; + border-radius: 10px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + max-height: 500px; + overflow-y: auto; + overflow-x: hidden; + display: none; + } + + /* DaisyUI details submenu spacing */ + .menu-horizontal > li:not(.menu-title) > details > ul { + margin-top: 1rem; + padding-inline-end: 0.5rem; + } + + /* SHOW SUBMENU ON HOVER */ + .menu-horizontal li:hover .submenu, + .menu-horizontal li:hover > details > ul { + display: block; + } + + /* Remove extra before from DaisyUI */ + .menu-horizontal > li > details > ul:before { + content: none; + } + + /* ========================== + SUBMENU HOVER ITEMS +========================== */ + .menu-horizontal li ul li:hover { + background: var(--color-hura); + } + + .menu-horizontal li ul li:hover a { + color: #fff; + } + + .menu-horizontal li ul li:hover::before { + display: none; + } + + /* Font weight chung */ + .menu-horizontal .grow { + font-weight: 500; + } + + .tw-qna { + gap: calc(var(--spacing) * 0.5); + } + .tw-zy { + align-items: center; + } + .tw-uba { + display: inline-flex; + } + .tw-usa { + width: calc(var(--spacing) * 5); + height: calc(var(--spacing) * 5); + } + .tw-sla { + width: calc(var(--spacing) * 4.5); + height: calc(var(--spacing) * 4.5); + } + .menu-icon-color { + color: #838383; + } + .card-body { + padding: calc(var(--spacing) * 4); + } + .-mt-25 { + margin-top: calc(var(--spacing) * -25); + } +} + +#layout-topbar { + background: var(--layout-topbar-background); + top: calc(var(--spacing) * 0); + z-index: 10; + transition-property: top, margin, border-radius; + transition-timing-function: var( + --tw-ease, + var(--default-transition-timing-function) + ); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + --tw-duration: 0.3s; + transition-duration: 0.3s; + position: sticky; + border-bottom-style: solid; + border-bottom-width: 1px; + border-color: var(--color-base-300); +} +#layout-content { + padding: calc(var(--spacing) * 6); + transition-property: all; + transition-timing-function: var( + --tw-ease, + var(--default-transition-timing-function) + ); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + flex-grow: 1; +} diff --git a/assets/script/style_hura.css b/assets/script/hura_style.css similarity index 99% rename from assets/script/style_hura.css rename to assets/script/hura_style.css index 591324d..f8a4792 100644 --- a/assets/script/style_hura.css +++ b/assets/script/hura_style.css @@ -1,3 +1,7 @@ +:root { + --color-primary: #0041e8; +} + .btn-dash { border-style: dashed; border-color: gray; diff --git a/data/menu_item/article.php b/data/menu_item/article.php index 7f1f199..ffe6e78 100644 --- a/data/menu_item/article.php +++ b/data/menu_item/article.php @@ -3,7 +3,7 @@ return array( 'enable' => true , "name" => "Nội dung", - "icon_class" => 'iconify lucide--users tw-tsa', + "icon_class" => 'users', "url" => "", "menu" => array( diff --git a/data/menu_item/customer.php b/data/menu_item/customer.php index c9e5c9a..a83e2c8 100644 --- a/data/menu_item/customer.php +++ b/data/menu_item/customer.php @@ -3,7 +3,7 @@ return array( 'enable' => true , "name" => "Khách hàng", - "icon_class" => 'iconify lucide--user tw-tsa', + "icon_class" => 'user', "url" => "", "menu" => array( array( diff --git a/data/menu_item/distributor.php b/data/menu_item/distributor.php index 80cbb65..b01a7f0 100644 --- a/data/menu_item/distributor.php +++ b/data/menu_item/distributor.php @@ -3,7 +3,7 @@ return array( 'enable' => true , "name" => "Đại lý", - "icon_class" => 'iconify lucide--shopping-bag tw-tsa', + "icon_class" => 'shopping-bag', "url" => "", "menu" => array( 0 => array( diff --git a/data/menu_item/job.php b/data/menu_item/job.php index 7a41e92..b7a34c8 100644 --- a/data/menu_item/job.php +++ b/data/menu_item/job.php @@ -3,7 +3,7 @@ return array( 'enable' => true , "name" => "Tuyển dụng", - "icon_class" => 'iconify lucide--megaphone tw-tsa', + "icon_class" => 'megaphone', "url" => "", "menu" => array( array( diff --git a/data/menu_item/marketing.php b/data/menu_item/marketing.php index 6fd149e..74ef05c 100644 --- a/data/menu_item/marketing.php +++ b/data/menu_item/marketing.php @@ -3,7 +3,7 @@ return array( 'enable' => true , "name" => "Marketing", - "icon_class" => 'iconify lucide--newspaper tw-tsa', + "icon_class" => 'newspaper', "url" => "", "menu" => array( array( diff --git a/data/menu_item/order.php b/data/menu_item/order.php index b161ef1..60561dc 100644 --- a/data/menu_item/order.php +++ b/data/menu_item/order.php @@ -3,7 +3,7 @@ return array( 'enable' => true , "name" => "Bán hàng", - "icon_class" => "iconify lucide--store tw-tsa", + "icon_class" => "store", "url" => "", "menu" => array( array( diff --git a/data/menu_item/payinstall.php b/data/menu_item/payinstall.php index 15740a3..5c08453 100644 --- a/data/menu_item/payinstall.php +++ b/data/menu_item/payinstall.php @@ -3,7 +3,7 @@ return array( 'enable' => true , "name" => "Trả góp", - "icon_class" => "iconify lucide--handshake tw-tsa", + "icon_class" => "handshake", "url" => "", "menu" => array( array( diff --git a/data/menu_item/pcbuilder.php b/data/menu_item/pcbuilder.php index de9fd7b..c621f2e 100644 --- a/data/menu_item/pcbuilder.php +++ b/data/menu_item/pcbuilder.php @@ -3,7 +3,7 @@ return array( 'enable' => true , "name" => "Xây dựng máy tính", - "icon_class" => 'iconify lucide--monitor-smartphone tw-tsa', + "icon_class" => 'monitor-smartphone', "url" => "", "menu" => array( array( diff --git a/data/menu_item/product.php b/data/menu_item/product.php index 686d57e..826fdc5 100644 --- a/data/menu_item/product.php +++ b/data/menu_item/product.php @@ -5,7 +5,7 @@ return array( 'enable' => true , "name" => "Sản phẩm", - "icon_class" => 'iconify lucide--package tw-tsa', + "icon_class" => 'package', "url" => "", "menu" => array( array( diff --git a/data/menu_item/report.php b/data/menu_item/report.php index d8e156e..830e9bb 100644 --- a/data/menu_item/report.php +++ b/data/menu_item/report.php @@ -4,7 +4,7 @@ return array( 'enable' => true , "name" => "Thống kê", - "icon_class" => 'iconify lucide--pie-chart tw-tsa', + "icon_class" => 'pie-chart', "url" => "", "menu" => array( array( diff --git a/data/menu_item/system.php b/data/menu_item/system.php index ea9cb84..b1e3800 100644 --- a/data/menu_item/system.php +++ b/data/menu_item/system.php @@ -3,7 +3,7 @@ return array( 'enable' => true , "name" => "Hệ thống", - "icon_class" => 'iconify hugeicons--settings-04 tw-tsa', + "icon_class" => 'settings', "url" => "", "menu" => array( array( diff --git a/node_modules/.bin/autoprefixer b/node_modules/.bin/autoprefixer new file mode 100644 index 0000000..2d2ee70 --- /dev/null +++ b/node_modules/.bin/autoprefixer @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../autoprefixer/bin/autoprefixer" "$@" +else + exec node "$basedir/../autoprefixer/bin/autoprefixer" "$@" +fi diff --git a/node_modules/.bin/autoprefixer.cmd b/node_modules/.bin/autoprefixer.cmd new file mode 100644 index 0000000..7ed417d --- /dev/null +++ b/node_modules/.bin/autoprefixer.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\autoprefixer\bin\autoprefixer" %* diff --git a/node_modules/.bin/autoprefixer.ps1 b/node_modules/.bin/autoprefixer.ps1 new file mode 100644 index 0000000..b0f0b6f --- /dev/null +++ b/node_modules/.bin/autoprefixer.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args + } else { + & "$basedir/node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args + } else { + & "node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/baseline-browser-mapping b/node_modules/.bin/baseline-browser-mapping new file mode 100644 index 0000000..1977474 --- /dev/null +++ b/node_modules/.bin/baseline-browser-mapping @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../baseline-browser-mapping/dist/cli.js" "$@" +else + exec node "$basedir/../baseline-browser-mapping/dist/cli.js" "$@" +fi diff --git a/node_modules/.bin/baseline-browser-mapping.cmd b/node_modules/.bin/baseline-browser-mapping.cmd new file mode 100644 index 0000000..7db3642 --- /dev/null +++ b/node_modules/.bin/baseline-browser-mapping.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\baseline-browser-mapping\dist\cli.js" %* diff --git a/node_modules/.bin/baseline-browser-mapping.ps1 b/node_modules/.bin/baseline-browser-mapping.ps1 new file mode 100644 index 0000000..e241c1d --- /dev/null +++ b/node_modules/.bin/baseline-browser-mapping.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../baseline-browser-mapping/dist/cli.js" $args + } else { + & "$basedir/node$exe" "$basedir/../baseline-browser-mapping/dist/cli.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../baseline-browser-mapping/dist/cli.js" $args + } else { + & "node$exe" "$basedir/../baseline-browser-mapping/dist/cli.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/browserslist b/node_modules/.bin/browserslist new file mode 100644 index 0000000..60e71ad --- /dev/null +++ b/node_modules/.bin/browserslist @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../browserslist/cli.js" "$@" +else + exec node "$basedir/../browserslist/cli.js" "$@" +fi diff --git a/node_modules/.bin/browserslist.cmd b/node_modules/.bin/browserslist.cmd new file mode 100644 index 0000000..f93c251 --- /dev/null +++ b/node_modules/.bin/browserslist.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\browserslist\cli.js" %* diff --git a/node_modules/.bin/browserslist.ps1 b/node_modules/.bin/browserslist.ps1 new file mode 100644 index 0000000..01e10a0 --- /dev/null +++ b/node_modules/.bin/browserslist.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../browserslist/cli.js" $args + } else { + & "$basedir/node$exe" "$basedir/../browserslist/cli.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../browserslist/cli.js" $args + } else { + & "node$exe" "$basedir/../browserslist/cli.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/detect-libc b/node_modules/.bin/detect-libc new file mode 100644 index 0000000..76becf3 --- /dev/null +++ b/node_modules/.bin/detect-libc @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../detect-libc/bin/detect-libc.js" "$@" +else + exec node "$basedir/../detect-libc/bin/detect-libc.js" "$@" +fi diff --git a/node_modules/.bin/detect-libc.cmd b/node_modules/.bin/detect-libc.cmd new file mode 100644 index 0000000..1c5d86d --- /dev/null +++ b/node_modules/.bin/detect-libc.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\detect-libc\bin\detect-libc.js" %* diff --git a/node_modules/.bin/detect-libc.ps1 b/node_modules/.bin/detect-libc.ps1 new file mode 100644 index 0000000..5ebeae1 --- /dev/null +++ b/node_modules/.bin/detect-libc.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../detect-libc/bin/detect-libc.js" $args + } else { + & "$basedir/node$exe" "$basedir/../detect-libc/bin/detect-libc.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../detect-libc/bin/detect-libc.js" $args + } else { + & "node$exe" "$basedir/../detect-libc/bin/detect-libc.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/jiti b/node_modules/.bin/jiti new file mode 100644 index 0000000..f4ef06f --- /dev/null +++ b/node_modules/.bin/jiti @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../jiti/lib/jiti-cli.mjs" "$@" +else + exec node "$basedir/../jiti/lib/jiti-cli.mjs" "$@" +fi diff --git a/node_modules/.bin/jiti.cmd b/node_modules/.bin/jiti.cmd new file mode 100644 index 0000000..b2360f3 --- /dev/null +++ b/node_modules/.bin/jiti.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\jiti\lib\jiti-cli.mjs" %* diff --git a/node_modules/.bin/jiti.ps1 b/node_modules/.bin/jiti.ps1 new file mode 100644 index 0000000..baf5345 --- /dev/null +++ b/node_modules/.bin/jiti.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../jiti/lib/jiti-cli.mjs" $args + } else { + & "$basedir/node$exe" "$basedir/../jiti/lib/jiti-cli.mjs" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../jiti/lib/jiti-cli.mjs" $args + } else { + & "node$exe" "$basedir/../jiti/lib/jiti-cli.mjs" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/nanoid b/node_modules/.bin/nanoid new file mode 100644 index 0000000..46220bd --- /dev/null +++ b/node_modules/.bin/nanoid @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../nanoid/bin/nanoid.cjs" "$@" +else + exec node "$basedir/../nanoid/bin/nanoid.cjs" "$@" +fi diff --git a/node_modules/.bin/nanoid.cmd b/node_modules/.bin/nanoid.cmd new file mode 100644 index 0000000..9c40107 --- /dev/null +++ b/node_modules/.bin/nanoid.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nanoid\bin\nanoid.cjs" %* diff --git a/node_modules/.bin/nanoid.ps1 b/node_modules/.bin/nanoid.ps1 new file mode 100644 index 0000000..d8a4d7a --- /dev/null +++ b/node_modules/.bin/nanoid.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args + } else { + & "$basedir/node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args + } else { + & "node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/tailwindcss b/node_modules/.bin/tailwindcss new file mode 100644 index 0000000..5fd5a4b --- /dev/null +++ b/node_modules/.bin/tailwindcss @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../@tailwindcss/cli/dist/index.mjs" "$@" +else + exec node "$basedir/../@tailwindcss/cli/dist/index.mjs" "$@" +fi diff --git a/node_modules/.bin/tailwindcss.cmd b/node_modules/.bin/tailwindcss.cmd new file mode 100644 index 0000000..4739657 --- /dev/null +++ b/node_modules/.bin/tailwindcss.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\@tailwindcss\cli\dist\index.mjs" %* diff --git a/node_modules/.bin/tailwindcss.ps1 b/node_modules/.bin/tailwindcss.ps1 new file mode 100644 index 0000000..66d83e7 --- /dev/null +++ b/node_modules/.bin/tailwindcss.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../@tailwindcss/cli/dist/index.mjs" $args + } else { + & "$basedir/node$exe" "$basedir/../@tailwindcss/cli/dist/index.mjs" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../@tailwindcss/cli/dist/index.mjs" $args + } else { + & "node$exe" "$basedir/../@tailwindcss/cli/dist/index.mjs" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/update-browserslist-db b/node_modules/.bin/update-browserslist-db new file mode 100644 index 0000000..cced63c --- /dev/null +++ b/node_modules/.bin/update-browserslist-db @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../update-browserslist-db/cli.js" "$@" +else + exec node "$basedir/../update-browserslist-db/cli.js" "$@" +fi diff --git a/node_modules/.bin/update-browserslist-db.cmd b/node_modules/.bin/update-browserslist-db.cmd new file mode 100644 index 0000000..2e14905 --- /dev/null +++ b/node_modules/.bin/update-browserslist-db.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\update-browserslist-db\cli.js" %* diff --git a/node_modules/.bin/update-browserslist-db.ps1 b/node_modules/.bin/update-browserslist-db.ps1 new file mode 100644 index 0000000..7abdf26 --- /dev/null +++ b/node_modules/.bin/update-browserslist-db.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../update-browserslist-db/cli.js" $args + } else { + & "$basedir/node$exe" "$basedir/../update-browserslist-db/cli.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../update-browserslist-db/cli.js" $args + } else { + & "node$exe" "$basedir/../update-browserslist-db/cli.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..ff354aa --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,709 @@ +{ + "name": "admin_hura_8", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@tailwindcss/cli": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/cli/-/cli-4.1.17.tgz", + "integrity": "sha512-jUIxcyUNlCC2aNPnyPEWU/L2/ik3pB4fF3auKGXr8AvN3T3OFESVctFKOBoPZQaZJIeUpPn1uCLp0MRxuek8gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/watcher": "^2.5.1", + "@tailwindcss/node": "4.1.17", + "@tailwindcss/oxide": "4.1.17", + "enhanced-resolve": "^5.18.3", + "mri": "^1.2.0", + "picocolors": "^1.1.1", + "tailwindcss": "4.1.17" + }, + "bin": { + "tailwindcss": "dist/index.mjs" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.17.tgz", + "integrity": "sha512-csIkHIgLb3JisEFQ0vxr2Y57GUNYh447C8xzwj89U/8fdW8LhProdxvnVH6U8M2Y73QKiTIH+LWbK3V2BBZsAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "enhanced-resolve": "^5.18.3", + "jiti": "^2.6.1", + "lightningcss": "1.30.2", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.17" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.17.tgz", + "integrity": "sha512-F0F7d01fmkQhsTjXezGBLdrl1KresJTcI3DB8EkScCldyKp3Msz4hub4uyYaVnk88BAS1g5DQjjF6F5qczheLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.17", + "@tailwindcss/oxide-darwin-arm64": "4.1.17", + "@tailwindcss/oxide-darwin-x64": "4.1.17", + "@tailwindcss/oxide-freebsd-x64": "4.1.17", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.17", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.17", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.17", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.17", + "@tailwindcss/oxide-linux-x64-musl": "4.1.17", + "@tailwindcss/oxide-wasm32-wasi": "4.1.17", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.17", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.17" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.17.tgz", + "integrity": "sha512-SKWM4waLuqx0IH+FMDUw6R66Hu4OuTALFgnleKbqhgGU30DY20NORZMZUKgLRjQXNN2TLzKvh48QXTig4h4bGw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.22", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.22.tgz", + "integrity": "sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.27.0", + "caniuse-lite": "^1.0.30001754", + "fraction.js": "^5.3.4", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.2.tgz", + "integrity": "sha512-PxSsosKQjI38iXkmb3d0Y32efqyA0uW4s41u4IVBsLlWLhCiYNpH/AfNOVWRqCQBlD8TFJTz6OUWNd4DFJCnmw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001759", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001759.tgz", + "integrity": "sha512-Pzfx9fOKoKvevQf8oCXoyNRQ5QyxJj+3O0Rqx2V5oxT61KGx8+n6hV/IUyJeifUci2clnmmKVpvtiqRzgiWjSw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/daisyui": { + "version": "5.5.8", + "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-5.5.8.tgz", + "integrity": "sha512-6psL9jIEOFOw68V10j/BKCWcRgx8dh81mmNxShr+g7HDM6UHNoPharlp9zq/PQkHNuGU1ZQsajR3HgpvavbRKQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/saadeghi/daisyui?sponsor=1" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.265", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.265.tgz", + "integrity": "sha512-B7IkLR1/AE+9jR2LtVF/1/6PFhY5TlnEHnlrKmGk7PvkJibg5jr+mLXLLzq3QYl6PA1T/vLDthQPqIPAlS/PPA==", + "dev": true, + "license": "ISC" + }, + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/lightningcss": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", + "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.30.2", + "lightningcss-darwin-arm64": "1.30.2", + "lightningcss-darwin-x64": "1.30.2", + "lightningcss-freebsd-x64": "1.30.2", + "lightningcss-linux-arm-gnueabihf": "1.30.2", + "lightningcss-linux-arm64-gnu": "1.30.2", + "lightningcss-linux-arm64-musl": "1.30.2", + "lightningcss-linux-x64-gnu": "1.30.2", + "lightningcss-linux-x64-musl": "1.30.2", + "lightningcss-win32-arm64-msvc": "1.30.2", + "lightningcss-win32-x64-msvc": "1.30.2" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz", + "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss/node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tailwindcss": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.17.tgz", + "integrity": "sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.2.tgz", + "integrity": "sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + } + } +} diff --git a/node_modules/@jridgewell/gen-mapping/LICENSE b/node_modules/@jridgewell/gen-mapping/LICENSE new file mode 100644 index 0000000..1f6ce94 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/LICENSE @@ -0,0 +1,19 @@ +Copyright 2024 Justin Ridgewell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@jridgewell/gen-mapping/README.md b/node_modules/@jridgewell/gen-mapping/README.md new file mode 100644 index 0000000..93692b1 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/README.md @@ -0,0 +1,227 @@ +# @jridgewell/gen-mapping + +> Generate source maps + +`gen-mapping` allows you to generate a source map during transpilation or minification. +With a source map, you're able to trace the original location in the source file, either in Chrome's +DevTools or using a library like [`@jridgewell/trace-mapping`][trace-mapping]. + +You may already be familiar with the [`source-map`][source-map] package's `SourceMapGenerator`. This +provides the same `addMapping` and `setSourceContent` API. + +## Installation + +```sh +npm install @jridgewell/gen-mapping +``` + +## Usage + +```typescript +import { GenMapping, addMapping, setSourceContent, toEncodedMap, toDecodedMap } from '@jridgewell/gen-mapping'; + +const map = new GenMapping({ + file: 'output.js', + sourceRoot: 'https://example.com/', +}); + +setSourceContent(map, 'input.js', `function foo() {}`); + +addMapping(map, { + // Lines start at line 1, columns at column 0. + generated: { line: 1, column: 0 }, + source: 'input.js', + original: { line: 1, column: 0 }, +}); + +addMapping(map, { + generated: { line: 1, column: 9 }, + source: 'input.js', + original: { line: 1, column: 9 }, + name: 'foo', +}); + +assert.deepEqual(toDecodedMap(map), { + version: 3, + file: 'output.js', + names: ['foo'], + sourceRoot: 'https://example.com/', + sources: ['input.js'], + sourcesContent: ['function foo() {}'], + mappings: [ + [ [0, 0, 0, 0], [9, 0, 0, 9, 0] ] + ], +}); + +assert.deepEqual(toEncodedMap(map), { + version: 3, + file: 'output.js', + names: ['foo'], + sourceRoot: 'https://example.com/', + sources: ['input.js'], + sourcesContent: ['function foo() {}'], + mappings: 'AAAA,SAASA', +}); +``` + +### Smaller Sourcemaps + +Not everything needs to be added to a sourcemap, and needless markings can cause signficantly +larger file sizes. `gen-mapping` exposes `maybeAddSegment`/`maybeAddMapping` APIs that will +intelligently determine if this marking adds useful information. If not, the marking will be +skipped. + +```typescript +import { maybeAddMapping } from '@jridgewell/gen-mapping'; + +const map = new GenMapping(); + +// Adding a sourceless marking at the beginning of a line isn't useful. +maybeAddMapping(map, { + generated: { line: 1, column: 0 }, +}); + +// Adding a new source marking is useful. +maybeAddMapping(map, { + generated: { line: 1, column: 0 }, + source: 'input.js', + original: { line: 1, column: 0 }, +}); + +// But adding another marking pointing to the exact same original location isn't, even if the +// generated column changed. +maybeAddMapping(map, { + generated: { line: 1, column: 9 }, + source: 'input.js', + original: { line: 1, column: 0 }, +}); + +assert.deepEqual(toEncodedMap(map), { + version: 3, + names: [], + sources: ['input.js'], + sourcesContent: [null], + mappings: 'AAAA', +}); +``` + +## Benchmarks + +``` +node v18.0.0 + +amp.js.map +Memory Usage: +gen-mapping: addSegment 5852872 bytes +gen-mapping: addMapping 7716042 bytes +source-map-js 6143250 bytes +source-map-0.6.1 6124102 bytes +source-map-0.8.0 6121173 bytes +Smallest memory usage is gen-mapping: addSegment + +Adding speed: +gen-mapping: addSegment x 441 ops/sec ±2.07% (90 runs sampled) +gen-mapping: addMapping x 350 ops/sec ±2.40% (86 runs sampled) +source-map-js: addMapping x 169 ops/sec ±2.42% (80 runs sampled) +source-map-0.6.1: addMapping x 167 ops/sec ±2.56% (80 runs sampled) +source-map-0.8.0: addMapping x 168 ops/sec ±2.52% (80 runs sampled) +Fastest is gen-mapping: addSegment + +Generate speed: +gen-mapping: decoded output x 150,824,370 ops/sec ±0.07% (102 runs sampled) +gen-mapping: encoded output x 663 ops/sec ±0.22% (98 runs sampled) +source-map-js: encoded output x 197 ops/sec ±0.45% (84 runs sampled) +source-map-0.6.1: encoded output x 198 ops/sec ±0.33% (85 runs sampled) +source-map-0.8.0: encoded output x 197 ops/sec ±0.06% (93 runs sampled) +Fastest is gen-mapping: decoded output + + +*** + + +babel.min.js.map +Memory Usage: +gen-mapping: addSegment 37578063 bytes +gen-mapping: addMapping 37212897 bytes +source-map-js 47638527 bytes +source-map-0.6.1 47690503 bytes +source-map-0.8.0 47470188 bytes +Smallest memory usage is gen-mapping: addMapping + +Adding speed: +gen-mapping: addSegment x 31.05 ops/sec ±8.31% (43 runs sampled) +gen-mapping: addMapping x 29.83 ops/sec ±7.36% (51 runs sampled) +source-map-js: addMapping x 20.73 ops/sec ±6.22% (38 runs sampled) +source-map-0.6.1: addMapping x 20.03 ops/sec ±10.51% (38 runs sampled) +source-map-0.8.0: addMapping x 19.30 ops/sec ±8.27% (37 runs sampled) +Fastest is gen-mapping: addSegment + +Generate speed: +gen-mapping: decoded output x 381,379,234 ops/sec ±0.29% (96 runs sampled) +gen-mapping: encoded output x 95.15 ops/sec ±2.98% (72 runs sampled) +source-map-js: encoded output x 15.20 ops/sec ±7.41% (33 runs sampled) +source-map-0.6.1: encoded output x 16.36 ops/sec ±10.46% (31 runs sampled) +source-map-0.8.0: encoded output x 16.06 ops/sec ±6.45% (31 runs sampled) +Fastest is gen-mapping: decoded output + + +*** + + +preact.js.map +Memory Usage: +gen-mapping: addSegment 416247 bytes +gen-mapping: addMapping 419824 bytes +source-map-js 1024619 bytes +source-map-0.6.1 1146004 bytes +source-map-0.8.0 1113250 bytes +Smallest memory usage is gen-mapping: addSegment + +Adding speed: +gen-mapping: addSegment x 13,755 ops/sec ±0.15% (98 runs sampled) +gen-mapping: addMapping x 13,013 ops/sec ±0.11% (101 runs sampled) +source-map-js: addMapping x 4,564 ops/sec ±0.21% (98 runs sampled) +source-map-0.6.1: addMapping x 4,562 ops/sec ±0.11% (99 runs sampled) +source-map-0.8.0: addMapping x 4,593 ops/sec ±0.11% (100 runs sampled) +Fastest is gen-mapping: addSegment + +Generate speed: +gen-mapping: decoded output x 379,864,020 ops/sec ±0.23% (93 runs sampled) +gen-mapping: encoded output x 14,368 ops/sec ±4.07% (82 runs sampled) +source-map-js: encoded output x 5,261 ops/sec ±0.21% (99 runs sampled) +source-map-0.6.1: encoded output x 5,124 ops/sec ±0.58% (99 runs sampled) +source-map-0.8.0: encoded output x 5,434 ops/sec ±0.33% (96 runs sampled) +Fastest is gen-mapping: decoded output + + +*** + + +react.js.map +Memory Usage: +gen-mapping: addSegment 975096 bytes +gen-mapping: addMapping 1102981 bytes +source-map-js 2918836 bytes +source-map-0.6.1 2885435 bytes +source-map-0.8.0 2874336 bytes +Smallest memory usage is gen-mapping: addSegment + +Adding speed: +gen-mapping: addSegment x 4,772 ops/sec ±0.15% (100 runs sampled) +gen-mapping: addMapping x 4,456 ops/sec ±0.13% (97 runs sampled) +source-map-js: addMapping x 1,618 ops/sec ±0.24% (97 runs sampled) +source-map-0.6.1: addMapping x 1,622 ops/sec ±0.12% (99 runs sampled) +source-map-0.8.0: addMapping x 1,631 ops/sec ±0.12% (100 runs sampled) +Fastest is gen-mapping: addSegment + +Generate speed: +gen-mapping: decoded output x 379,107,695 ops/sec ±0.07% (99 runs sampled) +gen-mapping: encoded output x 5,421 ops/sec ±1.60% (89 runs sampled) +source-map-js: encoded output x 2,113 ops/sec ±1.81% (98 runs sampled) +source-map-0.6.1: encoded output x 2,126 ops/sec ±0.10% (100 runs sampled) +source-map-0.8.0: encoded output x 2,176 ops/sec ±0.39% (98 runs sampled) +Fastest is gen-mapping: decoded output +``` + +[source-map]: https://www.npmjs.com/package/source-map +[trace-mapping]: https://github.com/jridgewell/sourcemaps/tree/main/packages/trace-mapping diff --git a/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs b/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs new file mode 100644 index 0000000..bbb0cac --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs @@ -0,0 +1,292 @@ +// src/set-array.ts +var SetArray = class { + constructor() { + this._indexes = { __proto__: null }; + this.array = []; + } +}; +function cast(set) { + return set; +} +function get(setarr, key) { + return cast(setarr)._indexes[key]; +} +function put(setarr, key) { + const index = get(setarr, key); + if (index !== void 0) return index; + const { array, _indexes: indexes } = cast(setarr); + const length = array.push(key); + return indexes[key] = length - 1; +} +function remove(setarr, key) { + const index = get(setarr, key); + if (index === void 0) return; + const { array, _indexes: indexes } = cast(setarr); + for (let i = index + 1; i < array.length; i++) { + const k = array[i]; + array[i - 1] = k; + indexes[k]--; + } + indexes[key] = void 0; + array.pop(); +} + +// src/gen-mapping.ts +import { + encode +} from "@jridgewell/sourcemap-codec"; +import { TraceMap, decodedMappings } from "@jridgewell/trace-mapping"; + +// src/sourcemap-segment.ts +var COLUMN = 0; +var SOURCES_INDEX = 1; +var SOURCE_LINE = 2; +var SOURCE_COLUMN = 3; +var NAMES_INDEX = 4; + +// src/gen-mapping.ts +var NO_NAME = -1; +var GenMapping = class { + constructor({ file, sourceRoot } = {}) { + this._names = new SetArray(); + this._sources = new SetArray(); + this._sourcesContent = []; + this._mappings = []; + this.file = file; + this.sourceRoot = sourceRoot; + this._ignoreList = new SetArray(); + } +}; +function cast2(map) { + return map; +} +function addSegment(map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) { + return addSegmentInternal( + false, + map, + genLine, + genColumn, + source, + sourceLine, + sourceColumn, + name, + content + ); +} +function addMapping(map, mapping) { + return addMappingInternal(false, map, mapping); +} +var maybeAddSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => { + return addSegmentInternal( + true, + map, + genLine, + genColumn, + source, + sourceLine, + sourceColumn, + name, + content + ); +}; +var maybeAddMapping = (map, mapping) => { + return addMappingInternal(true, map, mapping); +}; +function setSourceContent(map, source, content) { + const { + _sources: sources, + _sourcesContent: sourcesContent + // _originalScopes: originalScopes, + } = cast2(map); + const index = put(sources, source); + sourcesContent[index] = content; +} +function setIgnore(map, source, ignore = true) { + const { + _sources: sources, + _sourcesContent: sourcesContent, + _ignoreList: ignoreList + // _originalScopes: originalScopes, + } = cast2(map); + const index = put(sources, source); + if (index === sourcesContent.length) sourcesContent[index] = null; + if (ignore) put(ignoreList, index); + else remove(ignoreList, index); +} +function toDecodedMap(map) { + const { + _mappings: mappings, + _sources: sources, + _sourcesContent: sourcesContent, + _names: names, + _ignoreList: ignoreList + // _originalScopes: originalScopes, + // _generatedRanges: generatedRanges, + } = cast2(map); + removeEmptyFinalLines(mappings); + return { + version: 3, + file: map.file || void 0, + names: names.array, + sourceRoot: map.sourceRoot || void 0, + sources: sources.array, + sourcesContent, + mappings, + // originalScopes, + // generatedRanges, + ignoreList: ignoreList.array + }; +} +function toEncodedMap(map) { + const decoded = toDecodedMap(map); + return Object.assign({}, decoded, { + // originalScopes: decoded.originalScopes.map((os) => encodeOriginalScopes(os)), + // generatedRanges: encodeGeneratedRanges(decoded.generatedRanges as GeneratedRange[]), + mappings: encode(decoded.mappings) + }); +} +function fromMap(input) { + const map = new TraceMap(input); + const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot }); + putAll(cast2(gen)._names, map.names); + putAll(cast2(gen)._sources, map.sources); + cast2(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null); + cast2(gen)._mappings = decodedMappings(map); + if (map.ignoreList) putAll(cast2(gen)._ignoreList, map.ignoreList); + return gen; +} +function allMappings(map) { + const out = []; + const { _mappings: mappings, _sources: sources, _names: names } = cast2(map); + for (let i = 0; i < mappings.length; i++) { + const line = mappings[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + const generated = { line: i + 1, column: seg[COLUMN] }; + let source = void 0; + let original = void 0; + let name = void 0; + if (seg.length !== 1) { + source = sources.array[seg[SOURCES_INDEX]]; + original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] }; + if (seg.length === 5) name = names.array[seg[NAMES_INDEX]]; + } + out.push({ generated, source, original, name }); + } + } + return out; +} +function addSegmentInternal(skipable, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) { + const { + _mappings: mappings, + _sources: sources, + _sourcesContent: sourcesContent, + _names: names + // _originalScopes: originalScopes, + } = cast2(map); + const line = getIndex(mappings, genLine); + const index = getColumnIndex(line, genColumn); + if (!source) { + if (skipable && skipSourceless(line, index)) return; + return insert(line, index, [genColumn]); + } + assert(sourceLine); + assert(sourceColumn); + const sourcesIndex = put(sources, source); + const namesIndex = name ? put(names, name) : NO_NAME; + if (sourcesIndex === sourcesContent.length) sourcesContent[sourcesIndex] = content != null ? content : null; + if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) { + return; + } + return insert( + line, + index, + name ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex] : [genColumn, sourcesIndex, sourceLine, sourceColumn] + ); +} +function assert(_val) { +} +function getIndex(arr, index) { + for (let i = arr.length; i <= index; i++) { + arr[i] = []; + } + return arr[index]; +} +function getColumnIndex(line, genColumn) { + let index = line.length; + for (let i = index - 1; i >= 0; index = i--) { + const current = line[i]; + if (genColumn >= current[COLUMN]) break; + } + return index; +} +function insert(array, index, value) { + for (let i = array.length; i > index; i--) { + array[i] = array[i - 1]; + } + array[index] = value; +} +function removeEmptyFinalLines(mappings) { + const { length } = mappings; + let len = length; + for (let i = len - 1; i >= 0; len = i, i--) { + if (mappings[i].length > 0) break; + } + if (len < length) mappings.length = len; +} +function putAll(setarr, array) { + for (let i = 0; i < array.length; i++) put(setarr, array[i]); +} +function skipSourceless(line, index) { + if (index === 0) return true; + const prev = line[index - 1]; + return prev.length === 1; +} +function skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) { + if (index === 0) return false; + const prev = line[index - 1]; + if (prev.length === 1) return false; + return sourcesIndex === prev[SOURCES_INDEX] && sourceLine === prev[SOURCE_LINE] && sourceColumn === prev[SOURCE_COLUMN] && namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME); +} +function addMappingInternal(skipable, map, mapping) { + const { generated, source, original, name, content } = mapping; + if (!source) { + return addSegmentInternal( + skipable, + map, + generated.line - 1, + generated.column, + null, + null, + null, + null, + null + ); + } + assert(original); + return addSegmentInternal( + skipable, + map, + generated.line - 1, + generated.column, + source, + original.line - 1, + original.column, + name, + content + ); +} +export { + GenMapping, + addMapping, + addSegment, + allMappings, + fromMap, + maybeAddMapping, + maybeAddSegment, + setIgnore, + setSourceContent, + toDecodedMap, + toEncodedMap +}; +//# sourceMappingURL=gen-mapping.mjs.map diff --git a/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs.map b/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs.map new file mode 100644 index 0000000..4e37e45 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../src/set-array.ts", "../src/gen-mapping.ts", "../src/sourcemap-segment.ts"], + "mappings": "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", + "names": ["cast"] +} diff --git a/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js b/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js new file mode 100644 index 0000000..cb84af5 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js @@ -0,0 +1,358 @@ +(function (global, factory) { + if (typeof exports === 'object' && typeof module !== 'undefined') { + factory(module, require('@jridgewell/sourcemap-codec'), require('@jridgewell/trace-mapping')); + module.exports = def(module); + } else if (typeof define === 'function' && define.amd) { + define(['module', '@jridgewell/sourcemap-codec', '@jridgewell/trace-mapping'], function(mod) { + factory.apply(this, arguments); + mod.exports = def(mod); + }); + } else { + const mod = { exports: {} }; + factory(mod, global.sourcemapCodec, global.traceMapping); + global = typeof globalThis !== 'undefined' ? globalThis : global || self; + global.genMapping = def(mod); + } + function def(m) { return 'default' in m.exports ? m.exports.default : m.exports; } +})(this, (function (module, require_sourcemapCodec, require_traceMapping) { +"use strict"; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// umd:@jridgewell/sourcemap-codec +var require_sourcemap_codec = __commonJS({ + "umd:@jridgewell/sourcemap-codec"(exports, module2) { + module2.exports = require_sourcemapCodec; + } +}); + +// umd:@jridgewell/trace-mapping +var require_trace_mapping = __commonJS({ + "umd:@jridgewell/trace-mapping"(exports, module2) { + module2.exports = require_traceMapping; + } +}); + +// src/gen-mapping.ts +var gen_mapping_exports = {}; +__export(gen_mapping_exports, { + GenMapping: () => GenMapping, + addMapping: () => addMapping, + addSegment: () => addSegment, + allMappings: () => allMappings, + fromMap: () => fromMap, + maybeAddMapping: () => maybeAddMapping, + maybeAddSegment: () => maybeAddSegment, + setIgnore: () => setIgnore, + setSourceContent: () => setSourceContent, + toDecodedMap: () => toDecodedMap, + toEncodedMap: () => toEncodedMap +}); +module.exports = __toCommonJS(gen_mapping_exports); + +// src/set-array.ts +var SetArray = class { + constructor() { + this._indexes = { __proto__: null }; + this.array = []; + } +}; +function cast(set) { + return set; +} +function get(setarr, key) { + return cast(setarr)._indexes[key]; +} +function put(setarr, key) { + const index = get(setarr, key); + if (index !== void 0) return index; + const { array, _indexes: indexes } = cast(setarr); + const length = array.push(key); + return indexes[key] = length - 1; +} +function remove(setarr, key) { + const index = get(setarr, key); + if (index === void 0) return; + const { array, _indexes: indexes } = cast(setarr); + for (let i = index + 1; i < array.length; i++) { + const k = array[i]; + array[i - 1] = k; + indexes[k]--; + } + indexes[key] = void 0; + array.pop(); +} + +// src/gen-mapping.ts +var import_sourcemap_codec = __toESM(require_sourcemap_codec()); +var import_trace_mapping = __toESM(require_trace_mapping()); + +// src/sourcemap-segment.ts +var COLUMN = 0; +var SOURCES_INDEX = 1; +var SOURCE_LINE = 2; +var SOURCE_COLUMN = 3; +var NAMES_INDEX = 4; + +// src/gen-mapping.ts +var NO_NAME = -1; +var GenMapping = class { + constructor({ file, sourceRoot } = {}) { + this._names = new SetArray(); + this._sources = new SetArray(); + this._sourcesContent = []; + this._mappings = []; + this.file = file; + this.sourceRoot = sourceRoot; + this._ignoreList = new SetArray(); + } +}; +function cast2(map) { + return map; +} +function addSegment(map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) { + return addSegmentInternal( + false, + map, + genLine, + genColumn, + source, + sourceLine, + sourceColumn, + name, + content + ); +} +function addMapping(map, mapping) { + return addMappingInternal(false, map, mapping); +} +var maybeAddSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => { + return addSegmentInternal( + true, + map, + genLine, + genColumn, + source, + sourceLine, + sourceColumn, + name, + content + ); +}; +var maybeAddMapping = (map, mapping) => { + return addMappingInternal(true, map, mapping); +}; +function setSourceContent(map, source, content) { + const { + _sources: sources, + _sourcesContent: sourcesContent + // _originalScopes: originalScopes, + } = cast2(map); + const index = put(sources, source); + sourcesContent[index] = content; +} +function setIgnore(map, source, ignore = true) { + const { + _sources: sources, + _sourcesContent: sourcesContent, + _ignoreList: ignoreList + // _originalScopes: originalScopes, + } = cast2(map); + const index = put(sources, source); + if (index === sourcesContent.length) sourcesContent[index] = null; + if (ignore) put(ignoreList, index); + else remove(ignoreList, index); +} +function toDecodedMap(map) { + const { + _mappings: mappings, + _sources: sources, + _sourcesContent: sourcesContent, + _names: names, + _ignoreList: ignoreList + // _originalScopes: originalScopes, + // _generatedRanges: generatedRanges, + } = cast2(map); + removeEmptyFinalLines(mappings); + return { + version: 3, + file: map.file || void 0, + names: names.array, + sourceRoot: map.sourceRoot || void 0, + sources: sources.array, + sourcesContent, + mappings, + // originalScopes, + // generatedRanges, + ignoreList: ignoreList.array + }; +} +function toEncodedMap(map) { + const decoded = toDecodedMap(map); + return Object.assign({}, decoded, { + // originalScopes: decoded.originalScopes.map((os) => encodeOriginalScopes(os)), + // generatedRanges: encodeGeneratedRanges(decoded.generatedRanges as GeneratedRange[]), + mappings: (0, import_sourcemap_codec.encode)(decoded.mappings) + }); +} +function fromMap(input) { + const map = new import_trace_mapping.TraceMap(input); + const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot }); + putAll(cast2(gen)._names, map.names); + putAll(cast2(gen)._sources, map.sources); + cast2(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null); + cast2(gen)._mappings = (0, import_trace_mapping.decodedMappings)(map); + if (map.ignoreList) putAll(cast2(gen)._ignoreList, map.ignoreList); + return gen; +} +function allMappings(map) { + const out = []; + const { _mappings: mappings, _sources: sources, _names: names } = cast2(map); + for (let i = 0; i < mappings.length; i++) { + const line = mappings[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + const generated = { line: i + 1, column: seg[COLUMN] }; + let source = void 0; + let original = void 0; + let name = void 0; + if (seg.length !== 1) { + source = sources.array[seg[SOURCES_INDEX]]; + original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] }; + if (seg.length === 5) name = names.array[seg[NAMES_INDEX]]; + } + out.push({ generated, source, original, name }); + } + } + return out; +} +function addSegmentInternal(skipable, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) { + const { + _mappings: mappings, + _sources: sources, + _sourcesContent: sourcesContent, + _names: names + // _originalScopes: originalScopes, + } = cast2(map); + const line = getIndex(mappings, genLine); + const index = getColumnIndex(line, genColumn); + if (!source) { + if (skipable && skipSourceless(line, index)) return; + return insert(line, index, [genColumn]); + } + assert(sourceLine); + assert(sourceColumn); + const sourcesIndex = put(sources, source); + const namesIndex = name ? put(names, name) : NO_NAME; + if (sourcesIndex === sourcesContent.length) sourcesContent[sourcesIndex] = content != null ? content : null; + if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) { + return; + } + return insert( + line, + index, + name ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex] : [genColumn, sourcesIndex, sourceLine, sourceColumn] + ); +} +function assert(_val) { +} +function getIndex(arr, index) { + for (let i = arr.length; i <= index; i++) { + arr[i] = []; + } + return arr[index]; +} +function getColumnIndex(line, genColumn) { + let index = line.length; + for (let i = index - 1; i >= 0; index = i--) { + const current = line[i]; + if (genColumn >= current[COLUMN]) break; + } + return index; +} +function insert(array, index, value) { + for (let i = array.length; i > index; i--) { + array[i] = array[i - 1]; + } + array[index] = value; +} +function removeEmptyFinalLines(mappings) { + const { length } = mappings; + let len = length; + for (let i = len - 1; i >= 0; len = i, i--) { + if (mappings[i].length > 0) break; + } + if (len < length) mappings.length = len; +} +function putAll(setarr, array) { + for (let i = 0; i < array.length; i++) put(setarr, array[i]); +} +function skipSourceless(line, index) { + if (index === 0) return true; + const prev = line[index - 1]; + return prev.length === 1; +} +function skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) { + if (index === 0) return false; + const prev = line[index - 1]; + if (prev.length === 1) return false; + return sourcesIndex === prev[SOURCES_INDEX] && sourceLine === prev[SOURCE_LINE] && sourceColumn === prev[SOURCE_COLUMN] && namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME); +} +function addMappingInternal(skipable, map, mapping) { + const { generated, source, original, name, content } = mapping; + if (!source) { + return addSegmentInternal( + skipable, + map, + generated.line - 1, + generated.column, + null, + null, + null, + null, + null + ); + } + assert(original); + return addSegmentInternal( + skipable, + map, + generated.line - 1, + generated.column, + source, + original.line - 1, + original.column, + name, + content + ); +} +})); +//# sourceMappingURL=gen-mapping.umd.js.map diff --git a/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js.map b/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js.map new file mode 100644 index 0000000..b13750b --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["umd:@jridgewell/sourcemap-codec", "umd:@jridgewell/trace-mapping", "../src/gen-mapping.ts", "../src/set-array.ts", "../src/sourcemap-segment.ts"], + "mappings": "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", + "names": ["module", "module", "cast"] +} diff --git a/node_modules/@jridgewell/gen-mapping/dist/types/gen-mapping.d.ts b/node_modules/@jridgewell/gen-mapping/dist/types/gen-mapping.d.ts new file mode 100644 index 0000000..9ba936e --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/dist/types/gen-mapping.d.ts @@ -0,0 +1,88 @@ +import type { SourceMapInput } from '@jridgewell/trace-mapping'; +import type { DecodedSourceMap, EncodedSourceMap, Pos, Mapping } from './types'; +export type { DecodedSourceMap, EncodedSourceMap, Mapping }; +export type Options = { + file?: string | null; + sourceRoot?: string | null; +}; +/** + * Provides the state to generate a sourcemap. + */ +export declare class GenMapping { + private _names; + private _sources; + private _sourcesContent; + private _mappings; + private _ignoreList; + file: string | null | undefined; + sourceRoot: string | null | undefined; + constructor({ file, sourceRoot }?: Options); +} +/** + * A low-level API to associate a generated position with an original source position. Line and + * column here are 0-based, unlike `addMapping`. + */ +export declare function addSegment(map: GenMapping, genLine: number, genColumn: number, source?: null, sourceLine?: null, sourceColumn?: null, name?: null, content?: null): void; +export declare function addSegment(map: GenMapping, genLine: number, genColumn: number, source: string, sourceLine: number, sourceColumn: number, name?: null, content?: string | null): void; +export declare function addSegment(map: GenMapping, genLine: number, genColumn: number, source: string, sourceLine: number, sourceColumn: number, name: string, content?: string | null): void; +/** + * A high-level API to associate a generated position with an original source position. Line is + * 1-based, but column is 0-based, due to legacy behavior in `source-map` library. + */ +export declare function addMapping(map: GenMapping, mapping: { + generated: Pos; + source?: null; + original?: null; + name?: null; + content?: null; +}): void; +export declare function addMapping(map: GenMapping, mapping: { + generated: Pos; + source: string; + original: Pos; + name?: null; + content?: string | null; +}): void; +export declare function addMapping(map: GenMapping, mapping: { + generated: Pos; + source: string; + original: Pos; + name: string; + content?: string | null; +}): void; +/** + * Same as `addSegment`, but will only add the segment if it generates useful information in the + * resulting map. This only works correctly if segments are added **in order**, meaning you should + * not add a segment with a lower generated line/column than one that came before. + */ +export declare const maybeAddSegment: typeof addSegment; +/** + * Same as `addMapping`, but will only add the mapping if it generates useful information in the + * resulting map. This only works correctly if mappings are added **in order**, meaning you should + * not add a mapping with a lower generated line/column than one that came before. + */ +export declare const maybeAddMapping: typeof addMapping; +/** + * Adds/removes the content of the source file to the source map. + */ +export declare function setSourceContent(map: GenMapping, source: string, content: string | null): void; +export declare function setIgnore(map: GenMapping, source: string, ignore?: boolean): void; +/** + * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +export declare function toDecodedMap(map: GenMapping): DecodedSourceMap; +/** + * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +export declare function toEncodedMap(map: GenMapping): EncodedSourceMap; +/** + * Constructs a new GenMapping, using the already present mappings of the input. + */ +export declare function fromMap(input: SourceMapInput): GenMapping; +/** + * Returns an array of high-level mapping objects for every recorded segment, which could then be + * passed to the `source-map` library. + */ +export declare function allMappings(map: GenMapping): Mapping[]; diff --git a/node_modules/@jridgewell/gen-mapping/dist/types/set-array.d.ts b/node_modules/@jridgewell/gen-mapping/dist/types/set-array.d.ts new file mode 100644 index 0000000..6ed4354 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/dist/types/set-array.d.ts @@ -0,0 +1,32 @@ +type Key = string | number | symbol; +/** + * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the + * index of the `key` in the backing array. + * + * This is designed to allow synchronizing a second array with the contents of the backing array, + * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`, + * and there are never duplicates. + */ +export declare class SetArray { + private _indexes; + array: readonly T[]; + constructor(); +} +/** + * Gets the index associated with `key` in the backing array, if it is already present. + */ +export declare function get(setarr: SetArray, key: T): number | undefined; +/** + * Puts `key` into the backing array, if it is not already present. Returns + * the index of the `key` in the backing array. + */ +export declare function put(setarr: SetArray, key: T): number; +/** + * Pops the last added item out of the SetArray. + */ +export declare function pop(setarr: SetArray): void; +/** + * Removes the key, if it exists in the set. + */ +export declare function remove(setarr: SetArray, key: T): void; +export {}; diff --git a/node_modules/@jridgewell/gen-mapping/dist/types/sourcemap-segment.d.ts b/node_modules/@jridgewell/gen-mapping/dist/types/sourcemap-segment.d.ts new file mode 100644 index 0000000..aa19fb5 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/dist/types/sourcemap-segment.d.ts @@ -0,0 +1,12 @@ +type GeneratedColumn = number; +type SourcesIndex = number; +type SourceLine = number; +type SourceColumn = number; +type NamesIndex = number; +export type SourceMapSegment = [GeneratedColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex]; +export declare const COLUMN = 0; +export declare const SOURCES_INDEX = 1; +export declare const SOURCE_LINE = 2; +export declare const SOURCE_COLUMN = 3; +export declare const NAMES_INDEX = 4; +export {}; diff --git a/node_modules/@jridgewell/gen-mapping/dist/types/types.d.ts b/node_modules/@jridgewell/gen-mapping/dist/types/types.d.ts new file mode 100644 index 0000000..8eb90fb --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/dist/types/types.d.ts @@ -0,0 +1,43 @@ +import type { SourceMapSegment } from './sourcemap-segment'; +export interface SourceMapV3 { + file?: string | null; + names: readonly string[]; + sourceRoot?: string; + sources: readonly (string | null)[]; + sourcesContent?: readonly (string | null)[]; + version: 3; + ignoreList?: readonly number[]; +} +export interface EncodedSourceMap extends SourceMapV3 { + mappings: string; +} +export interface DecodedSourceMap extends SourceMapV3 { + mappings: readonly SourceMapSegment[][]; +} +export interface Pos { + line: number; + column: number; +} +export interface OriginalPos extends Pos { + source: string; +} +export interface BindingExpressionRange { + start: Pos; + expression: string; +} +export type Mapping = { + generated: Pos; + source: undefined; + original: undefined; + name: undefined; +} | { + generated: Pos; + source: string; + original: Pos; + name: string; +} | { + generated: Pos; + source: string; + original: Pos; + name: undefined; +}; diff --git a/node_modules/@jridgewell/gen-mapping/package.json b/node_modules/@jridgewell/gen-mapping/package.json new file mode 100644 index 0000000..036f9b7 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/package.json @@ -0,0 +1,67 @@ +{ + "name": "@jridgewell/gen-mapping", + "version": "0.3.13", + "description": "Generate source maps", + "keywords": [ + "source", + "map" + ], + "main": "dist/gen-mapping.umd.js", + "module": "dist/gen-mapping.mjs", + "types": "types/gen-mapping.d.cts", + "files": [ + "dist", + "src", + "types" + ], + "exports": { + ".": [ + { + "import": { + "types": "./types/gen-mapping.d.mts", + "default": "./dist/gen-mapping.mjs" + }, + "default": { + "types": "./types/gen-mapping.d.cts", + "default": "./dist/gen-mapping.umd.js" + } + }, + "./dist/gen-mapping.umd.js" + ], + "./package.json": "./package.json" + }, + "scripts": { + "benchmark": "run-s build:code benchmark:*", + "benchmark:install": "cd benchmark && npm install", + "benchmark:only": "node --expose-gc benchmark/index.js", + "build": "run-s -n build:code build:types", + "build:code": "node ../../esbuild.mjs gen-mapping.ts", + "build:types": "run-s build:types:force build:types:emit build:types:mts", + "build:types:force": "rimraf tsconfig.build.tsbuildinfo", + "build:types:emit": "tsc --project tsconfig.build.json", + "build:types:mts": "node ../../mts-types.mjs", + "clean": "run-s -n clean:code clean:types", + "clean:code": "tsc --build --clean tsconfig.build.json", + "clean:types": "rimraf dist types", + "test": "run-s -n test:types test:only test:format", + "test:format": "prettier --check '{src,test}/**/*.ts'", + "test:only": "mocha", + "test:types": "eslint '{src,test}/**/*.ts'", + "lint": "run-s -n lint:types lint:format", + "lint:format": "npm run test:format -- --write", + "lint:types": "npm run test:types -- --fix", + "prepublishOnly": "npm run-s -n build test" + }, + "homepage": "https://github.com/jridgewell/sourcemaps/tree/main/packages/gen-mapping", + "repository": { + "type": "git", + "url": "git+https://github.com/jridgewell/sourcemaps.git", + "directory": "packages/gen-mapping" + }, + "author": "Justin Ridgewell ", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } +} diff --git a/node_modules/@jridgewell/gen-mapping/src/gen-mapping.ts b/node_modules/@jridgewell/gen-mapping/src/gen-mapping.ts new file mode 100644 index 0000000..ecc878c --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/src/gen-mapping.ts @@ -0,0 +1,614 @@ +import { SetArray, put, remove } from './set-array'; +import { + encode, + // encodeGeneratedRanges, + // encodeOriginalScopes +} from '@jridgewell/sourcemap-codec'; +import { TraceMap, decodedMappings } from '@jridgewell/trace-mapping'; + +import { + COLUMN, + SOURCES_INDEX, + SOURCE_LINE, + SOURCE_COLUMN, + NAMES_INDEX, +} from './sourcemap-segment'; + +import type { SourceMapInput } from '@jridgewell/trace-mapping'; +// import type { OriginalScope, GeneratedRange } from '@jridgewell/sourcemap-codec'; +import type { SourceMapSegment } from './sourcemap-segment'; +import type { + DecodedSourceMap, + EncodedSourceMap, + Pos, + Mapping, + // BindingExpressionRange, + // OriginalPos, + // OriginalScopeInfo, + // GeneratedRangeInfo, +} from './types'; + +export type { DecodedSourceMap, EncodedSourceMap, Mapping }; + +export type Options = { + file?: string | null; + sourceRoot?: string | null; +}; + +const NO_NAME = -1; + +/** + * Provides the state to generate a sourcemap. + */ +export class GenMapping { + declare private _names: SetArray; + declare private _sources: SetArray; + declare private _sourcesContent: (string | null)[]; + declare private _mappings: SourceMapSegment[][]; + // private declare _originalScopes: OriginalScope[][]; + // private declare _generatedRanges: GeneratedRange[]; + declare private _ignoreList: SetArray; + declare file: string | null | undefined; + declare sourceRoot: string | null | undefined; + + constructor({ file, sourceRoot }: Options = {}) { + this._names = new SetArray(); + this._sources = new SetArray(); + this._sourcesContent = []; + this._mappings = []; + // this._originalScopes = []; + // this._generatedRanges = []; + this.file = file; + this.sourceRoot = sourceRoot; + this._ignoreList = new SetArray(); + } +} + +interface PublicMap { + _names: GenMapping['_names']; + _sources: GenMapping['_sources']; + _sourcesContent: GenMapping['_sourcesContent']; + _mappings: GenMapping['_mappings']; + // _originalScopes: GenMapping['_originalScopes']; + // _generatedRanges: GenMapping['_generatedRanges']; + _ignoreList: GenMapping['_ignoreList']; +} + +/** + * Typescript doesn't allow friend access to private fields, so this just casts the map into a type + * with public access modifiers. + */ +function cast(map: unknown): PublicMap { + return map as any; +} + +/** + * A low-level API to associate a generated position with an original source position. Line and + * column here are 0-based, unlike `addMapping`. + */ +export function addSegment( + map: GenMapping, + genLine: number, + genColumn: number, + source?: null, + sourceLine?: null, + sourceColumn?: null, + name?: null, + content?: null, +): void; +export function addSegment( + map: GenMapping, + genLine: number, + genColumn: number, + source: string, + sourceLine: number, + sourceColumn: number, + name?: null, + content?: string | null, +): void; +export function addSegment( + map: GenMapping, + genLine: number, + genColumn: number, + source: string, + sourceLine: number, + sourceColumn: number, + name: string, + content?: string | null, +): void; +export function addSegment( + map: GenMapping, + genLine: number, + genColumn: number, + source?: string | null, + sourceLine?: number | null, + sourceColumn?: number | null, + name?: string | null, + content?: string | null, +): void { + return addSegmentInternal( + false, + map, + genLine, + genColumn, + source, + sourceLine, + sourceColumn, + name, + content, + ); +} + +/** + * A high-level API to associate a generated position with an original source position. Line is + * 1-based, but column is 0-based, due to legacy behavior in `source-map` library. + */ +export function addMapping( + map: GenMapping, + mapping: { + generated: Pos; + source?: null; + original?: null; + name?: null; + content?: null; + }, +): void; +export function addMapping( + map: GenMapping, + mapping: { + generated: Pos; + source: string; + original: Pos; + name?: null; + content?: string | null; + }, +): void; +export function addMapping( + map: GenMapping, + mapping: { + generated: Pos; + source: string; + original: Pos; + name: string; + content?: string | null; + }, +): void; +export function addMapping( + map: GenMapping, + mapping: { + generated: Pos; + source?: string | null; + original?: Pos | null; + name?: string | null; + content?: string | null; + }, +): void { + return addMappingInternal(false, map, mapping as Parameters[2]); +} + +/** + * Same as `addSegment`, but will only add the segment if it generates useful information in the + * resulting map. This only works correctly if segments are added **in order**, meaning you should + * not add a segment with a lower generated line/column than one that came before. + */ +export const maybeAddSegment: typeof addSegment = ( + map, + genLine, + genColumn, + source, + sourceLine, + sourceColumn, + name, + content, +) => { + return addSegmentInternal( + true, + map, + genLine, + genColumn, + source, + sourceLine, + sourceColumn, + name, + content, + ); +}; + +/** + * Same as `addMapping`, but will only add the mapping if it generates useful information in the + * resulting map. This only works correctly if mappings are added **in order**, meaning you should + * not add a mapping with a lower generated line/column than one that came before. + */ +export const maybeAddMapping: typeof addMapping = (map, mapping) => { + return addMappingInternal(true, map, mapping as Parameters[2]); +}; + +/** + * Adds/removes the content of the source file to the source map. + */ +export function setSourceContent(map: GenMapping, source: string, content: string | null): void { + const { + _sources: sources, + _sourcesContent: sourcesContent, + // _originalScopes: originalScopes, + } = cast(map); + const index = put(sources, source); + sourcesContent[index] = content; + // if (index === originalScopes.length) originalScopes[index] = []; +} + +export function setIgnore(map: GenMapping, source: string, ignore = true) { + const { + _sources: sources, + _sourcesContent: sourcesContent, + _ignoreList: ignoreList, + // _originalScopes: originalScopes, + } = cast(map); + const index = put(sources, source); + if (index === sourcesContent.length) sourcesContent[index] = null; + // if (index === originalScopes.length) originalScopes[index] = []; + if (ignore) put(ignoreList, index); + else remove(ignoreList, index); +} + +/** + * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +export function toDecodedMap(map: GenMapping): DecodedSourceMap { + const { + _mappings: mappings, + _sources: sources, + _sourcesContent: sourcesContent, + _names: names, + _ignoreList: ignoreList, + // _originalScopes: originalScopes, + // _generatedRanges: generatedRanges, + } = cast(map); + removeEmptyFinalLines(mappings); + + return { + version: 3, + file: map.file || undefined, + names: names.array, + sourceRoot: map.sourceRoot || undefined, + sources: sources.array, + sourcesContent, + mappings, + // originalScopes, + // generatedRanges, + ignoreList: ignoreList.array, + }; +} + +/** + * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +export function toEncodedMap(map: GenMapping): EncodedSourceMap { + const decoded = toDecodedMap(map); + return Object.assign({}, decoded, { + // originalScopes: decoded.originalScopes.map((os) => encodeOriginalScopes(os)), + // generatedRanges: encodeGeneratedRanges(decoded.generatedRanges as GeneratedRange[]), + mappings: encode(decoded.mappings as SourceMapSegment[][]), + }); +} + +/** + * Constructs a new GenMapping, using the already present mappings of the input. + */ +export function fromMap(input: SourceMapInput): GenMapping { + const map = new TraceMap(input); + const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot }); + + putAll(cast(gen)._names, map.names); + putAll(cast(gen)._sources, map.sources as string[]); + cast(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null); + cast(gen)._mappings = decodedMappings(map) as GenMapping['_mappings']; + // TODO: implement originalScopes/generatedRanges + if (map.ignoreList) putAll(cast(gen)._ignoreList, map.ignoreList); + + return gen; +} + +/** + * Returns an array of high-level mapping objects for every recorded segment, which could then be + * passed to the `source-map` library. + */ +export function allMappings(map: GenMapping): Mapping[] { + const out: Mapping[] = []; + const { _mappings: mappings, _sources: sources, _names: names } = cast(map); + + for (let i = 0; i < mappings.length; i++) { + const line = mappings[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + + const generated = { line: i + 1, column: seg[COLUMN] }; + let source: string | undefined = undefined; + let original: Pos | undefined = undefined; + let name: string | undefined = undefined; + + if (seg.length !== 1) { + source = sources.array[seg[SOURCES_INDEX]]; + original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] }; + + if (seg.length === 5) name = names.array[seg[NAMES_INDEX]]; + } + + out.push({ generated, source, original, name } as Mapping); + } + } + + return out; +} + +// This split declaration is only so that terser can elminiate the static initialization block. +function addSegmentInternal( + skipable: boolean, + map: GenMapping, + genLine: number, + genColumn: number, + source: S, + sourceLine: S extends string ? number : null | undefined, + sourceColumn: S extends string ? number : null | undefined, + name: S extends string ? string | null | undefined : null | undefined, + content: S extends string ? string | null | undefined : null | undefined, +): void { + const { + _mappings: mappings, + _sources: sources, + _sourcesContent: sourcesContent, + _names: names, + // _originalScopes: originalScopes, + } = cast(map); + const line = getIndex(mappings, genLine); + const index = getColumnIndex(line, genColumn); + + if (!source) { + if (skipable && skipSourceless(line, index)) return; + return insert(line, index, [genColumn]); + } + + // Sigh, TypeScript can't figure out sourceLine and sourceColumn aren't nullish if source + // isn't nullish. + assert(sourceLine); + assert(sourceColumn); + + const sourcesIndex = put(sources, source); + const namesIndex = name ? put(names, name) : NO_NAME; + if (sourcesIndex === sourcesContent.length) sourcesContent[sourcesIndex] = content ?? null; + // if (sourcesIndex === originalScopes.length) originalScopes[sourcesIndex] = []; + + if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) { + return; + } + + return insert( + line, + index, + name + ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex] + : [genColumn, sourcesIndex, sourceLine, sourceColumn], + ); +} + +function assert(_val: unknown): asserts _val is T { + // noop. +} + +function getIndex(arr: T[][], index: number): T[] { + for (let i = arr.length; i <= index; i++) { + arr[i] = []; + } + return arr[index]; +} + +function getColumnIndex(line: SourceMapSegment[], genColumn: number): number { + let index = line.length; + for (let i = index - 1; i >= 0; index = i--) { + const current = line[i]; + if (genColumn >= current[COLUMN]) break; + } + return index; +} + +function insert(array: T[], index: number, value: T) { + for (let i = array.length; i > index; i--) { + array[i] = array[i - 1]; + } + array[index] = value; +} + +function removeEmptyFinalLines(mappings: SourceMapSegment[][]) { + const { length } = mappings; + let len = length; + for (let i = len - 1; i >= 0; len = i, i--) { + if (mappings[i].length > 0) break; + } + if (len < length) mappings.length = len; +} + +function putAll(setarr: SetArray, array: T[]) { + for (let i = 0; i < array.length; i++) put(setarr, array[i]); +} + +function skipSourceless(line: SourceMapSegment[], index: number): boolean { + // The start of a line is already sourceless, so adding a sourceless segment to the beginning + // doesn't generate any useful information. + if (index === 0) return true; + + const prev = line[index - 1]; + // If the previous segment is also sourceless, then adding another sourceless segment doesn't + // genrate any new information. Else, this segment will end the source/named segment and point to + // a sourceless position, which is useful. + return prev.length === 1; +} + +function skipSource( + line: SourceMapSegment[], + index: number, + sourcesIndex: number, + sourceLine: number, + sourceColumn: number, + namesIndex: number, +): boolean { + // A source/named segment at the start of a line gives position at that genColumn + if (index === 0) return false; + + const prev = line[index - 1]; + + // If the previous segment is sourceless, then we're transitioning to a source. + if (prev.length === 1) return false; + + // If the previous segment maps to the exact same source position, then this segment doesn't + // provide any new position information. + return ( + sourcesIndex === prev[SOURCES_INDEX] && + sourceLine === prev[SOURCE_LINE] && + sourceColumn === prev[SOURCE_COLUMN] && + namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME) + ); +} + +function addMappingInternal( + skipable: boolean, + map: GenMapping, + mapping: { + generated: Pos; + source: S; + original: S extends string ? Pos : null | undefined; + name: S extends string ? string | null | undefined : null | undefined; + content: S extends string ? string | null | undefined : null | undefined; + }, +) { + const { generated, source, original, name, content } = mapping; + if (!source) { + return addSegmentInternal( + skipable, + map, + generated.line - 1, + generated.column, + null, + null, + null, + null, + null, + ); + } + assert(original); + return addSegmentInternal( + skipable, + map, + generated.line - 1, + generated.column, + source as string, + original.line - 1, + original.column, + name, + content, + ); +} + +/* +export function addOriginalScope( + map: GenMapping, + data: { + start: Pos; + end: Pos; + source: string; + kind: string; + name?: string; + variables?: string[]; + }, +): OriginalScopeInfo { + const { start, end, source, kind, name, variables } = data; + const { + _sources: sources, + _sourcesContent: sourcesContent, + _originalScopes: originalScopes, + _names: names, + } = cast(map); + const index = put(sources, source); + if (index === sourcesContent.length) sourcesContent[index] = null; + if (index === originalScopes.length) originalScopes[index] = []; + + const kindIndex = put(names, kind); + const scope: OriginalScope = name + ? [start.line - 1, start.column, end.line - 1, end.column, kindIndex, put(names, name)] + : [start.line - 1, start.column, end.line - 1, end.column, kindIndex]; + if (variables) { + scope.vars = variables.map((v) => put(names, v)); + } + const len = originalScopes[index].push(scope); + return [index, len - 1, variables]; +} +*/ + +// Generated Ranges +/* +export function addGeneratedRange( + map: GenMapping, + data: { + start: Pos; + isScope: boolean; + originalScope?: OriginalScopeInfo; + callsite?: OriginalPos; + }, +): GeneratedRangeInfo { + const { start, isScope, originalScope, callsite } = data; + const { + _originalScopes: originalScopes, + _sources: sources, + _sourcesContent: sourcesContent, + _generatedRanges: generatedRanges, + } = cast(map); + + const range: GeneratedRange = [ + start.line - 1, + start.column, + 0, + 0, + originalScope ? originalScope[0] : -1, + originalScope ? originalScope[1] : -1, + ]; + if (originalScope?.[2]) { + range.bindings = originalScope[2].map(() => [[-1]]); + } + if (callsite) { + const index = put(sources, callsite.source); + if (index === sourcesContent.length) sourcesContent[index] = null; + if (index === originalScopes.length) originalScopes[index] = []; + range.callsite = [index, callsite.line - 1, callsite.column]; + } + if (isScope) range.isScope = true; + generatedRanges.push(range); + + return [range, originalScope?.[2]]; +} + +export function setEndPosition(range: GeneratedRangeInfo, pos: Pos) { + range[0][2] = pos.line - 1; + range[0][3] = pos.column; +} + +export function addBinding( + map: GenMapping, + range: GeneratedRangeInfo, + variable: string, + expression: string | BindingExpressionRange, +) { + const { _names: names } = cast(map); + const bindings = (range[0].bindings ||= []); + const vars = range[1]; + + const index = vars!.indexOf(variable); + const binding = getIndex(bindings, index); + + if (typeof expression === 'string') binding[0] = [put(names, expression)]; + else { + const { start } = expression; + binding.push([put(names, expression.expression), start.line - 1, start.column]); + } +} +*/ diff --git a/node_modules/@jridgewell/gen-mapping/src/set-array.ts b/node_modules/@jridgewell/gen-mapping/src/set-array.ts new file mode 100644 index 0000000..a2a73a5 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/src/set-array.ts @@ -0,0 +1,82 @@ +type Key = string | number | symbol; + +/** + * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the + * index of the `key` in the backing array. + * + * This is designed to allow synchronizing a second array with the contents of the backing array, + * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`, + * and there are never duplicates. + */ +export class SetArray { + declare private _indexes: Record; + declare array: readonly T[]; + + constructor() { + this._indexes = { __proto__: null } as any; + this.array = []; + } +} + +interface PublicSet { + array: T[]; + _indexes: SetArray['_indexes']; +} + +/** + * Typescript doesn't allow friend access to private fields, so this just casts the set into a type + * with public access modifiers. + */ +function cast(set: SetArray): PublicSet { + return set as any; +} + +/** + * Gets the index associated with `key` in the backing array, if it is already present. + */ +export function get(setarr: SetArray, key: T): number | undefined { + return cast(setarr)._indexes[key]; +} + +/** + * Puts `key` into the backing array, if it is not already present. Returns + * the index of the `key` in the backing array. + */ +export function put(setarr: SetArray, key: T): number { + // The key may or may not be present. If it is present, it's a number. + const index = get(setarr, key); + if (index !== undefined) return index; + + const { array, _indexes: indexes } = cast(setarr); + + const length = array.push(key); + return (indexes[key] = length - 1); +} + +/** + * Pops the last added item out of the SetArray. + */ +export function pop(setarr: SetArray): void { + const { array, _indexes: indexes } = cast(setarr); + if (array.length === 0) return; + + const last = array.pop()!; + indexes[last] = undefined; +} + +/** + * Removes the key, if it exists in the set. + */ +export function remove(setarr: SetArray, key: T): void { + const index = get(setarr, key); + if (index === undefined) return; + + const { array, _indexes: indexes } = cast(setarr); + for (let i = index + 1; i < array.length; i++) { + const k = array[i]; + array[i - 1] = k; + indexes[k]!--; + } + indexes[key] = undefined; + array.pop(); +} diff --git a/node_modules/@jridgewell/gen-mapping/src/sourcemap-segment.ts b/node_modules/@jridgewell/gen-mapping/src/sourcemap-segment.ts new file mode 100644 index 0000000..fb296dd --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/src/sourcemap-segment.ts @@ -0,0 +1,16 @@ +type GeneratedColumn = number; +type SourcesIndex = number; +type SourceLine = number; +type SourceColumn = number; +type NamesIndex = number; + +export type SourceMapSegment = + | [GeneratedColumn] + | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn] + | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex]; + +export const COLUMN = 0; +export const SOURCES_INDEX = 1; +export const SOURCE_LINE = 2; +export const SOURCE_COLUMN = 3; +export const NAMES_INDEX = 4; diff --git a/node_modules/@jridgewell/gen-mapping/src/types.ts b/node_modules/@jridgewell/gen-mapping/src/types.ts new file mode 100644 index 0000000..b087f70 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/src/types.ts @@ -0,0 +1,61 @@ +// import type { GeneratedRange, OriginalScope } from '@jridgewell/sourcemap-codec'; +import type { SourceMapSegment } from './sourcemap-segment'; + +export interface SourceMapV3 { + file?: string | null; + names: readonly string[]; + sourceRoot?: string; + sources: readonly (string | null)[]; + sourcesContent?: readonly (string | null)[]; + version: 3; + ignoreList?: readonly number[]; +} + +export interface EncodedSourceMap extends SourceMapV3 { + mappings: string; + // originalScopes: string[]; + // generatedRanges: string; +} + +export interface DecodedSourceMap extends SourceMapV3 { + mappings: readonly SourceMapSegment[][]; + // originalScopes: readonly OriginalScope[][]; + // generatedRanges: readonly GeneratedRange[]; +} + +export interface Pos { + line: number; // 1-based + column: number; // 0-based +} + +export interface OriginalPos extends Pos { + source: string; +} + +export interface BindingExpressionRange { + start: Pos; + expression: string; +} + +// export type OriginalScopeInfo = [number, number, string[] | undefined]; +// export type GeneratedRangeInfo = [GeneratedRange, string[] | undefined]; + +export type Mapping = + | { + generated: Pos; + source: undefined; + original: undefined; + name: undefined; + } + | { + generated: Pos; + source: string; + original: Pos; + name: string; + } + | { + generated: Pos; + source: string; + original: Pos; + name: undefined; + }; diff --git a/node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.cts b/node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.cts new file mode 100644 index 0000000..7618d85 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.cts @@ -0,0 +1,89 @@ +import type { SourceMapInput } from '@jridgewell/trace-mapping'; +import type { DecodedSourceMap, EncodedSourceMap, Pos, Mapping } from './types.cts'; +export type { DecodedSourceMap, EncodedSourceMap, Mapping }; +export type Options = { + file?: string | null; + sourceRoot?: string | null; +}; +/** + * Provides the state to generate a sourcemap. + */ +export declare class GenMapping { + private _names; + private _sources; + private _sourcesContent; + private _mappings; + private _ignoreList; + file: string | null | undefined; + sourceRoot: string | null | undefined; + constructor({ file, sourceRoot }?: Options); +} +/** + * A low-level API to associate a generated position with an original source position. Line and + * column here are 0-based, unlike `addMapping`. + */ +export declare function addSegment(map: GenMapping, genLine: number, genColumn: number, source?: null, sourceLine?: null, sourceColumn?: null, name?: null, content?: null): void; +export declare function addSegment(map: GenMapping, genLine: number, genColumn: number, source: string, sourceLine: number, sourceColumn: number, name?: null, content?: string | null): void; +export declare function addSegment(map: GenMapping, genLine: number, genColumn: number, source: string, sourceLine: number, sourceColumn: number, name: string, content?: string | null): void; +/** + * A high-level API to associate a generated position with an original source position. Line is + * 1-based, but column is 0-based, due to legacy behavior in `source-map` library. + */ +export declare function addMapping(map: GenMapping, mapping: { + generated: Pos; + source?: null; + original?: null; + name?: null; + content?: null; +}): void; +export declare function addMapping(map: GenMapping, mapping: { + generated: Pos; + source: string; + original: Pos; + name?: null; + content?: string | null; +}): void; +export declare function addMapping(map: GenMapping, mapping: { + generated: Pos; + source: string; + original: Pos; + name: string; + content?: string | null; +}): void; +/** + * Same as `addSegment`, but will only add the segment if it generates useful information in the + * resulting map. This only works correctly if segments are added **in order**, meaning you should + * not add a segment with a lower generated line/column than one that came before. + */ +export declare const maybeAddSegment: typeof addSegment; +/** + * Same as `addMapping`, but will only add the mapping if it generates useful information in the + * resulting map. This only works correctly if mappings are added **in order**, meaning you should + * not add a mapping with a lower generated line/column than one that came before. + */ +export declare const maybeAddMapping: typeof addMapping; +/** + * Adds/removes the content of the source file to the source map. + */ +export declare function setSourceContent(map: GenMapping, source: string, content: string | null): void; +export declare function setIgnore(map: GenMapping, source: string, ignore?: boolean): void; +/** + * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +export declare function toDecodedMap(map: GenMapping): DecodedSourceMap; +/** + * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +export declare function toEncodedMap(map: GenMapping): EncodedSourceMap; +/** + * Constructs a new GenMapping, using the already present mappings of the input. + */ +export declare function fromMap(input: SourceMapInput): GenMapping; +/** + * Returns an array of high-level mapping objects for every recorded segment, which could then be + * passed to the `source-map` library. + */ +export declare function allMappings(map: GenMapping): Mapping[]; +//# sourceMappingURL=gen-mapping.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.cts.map b/node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.cts.map new file mode 100644 index 0000000..8a2b183 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"gen-mapping.d.ts","sourceRoot":"","sources":["../src/gen-mapping.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.mts b/node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.mts new file mode 100644 index 0000000..bbc0d89 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.mts @@ -0,0 +1,89 @@ +import type { SourceMapInput } from '@jridgewell/trace-mapping'; +import type { DecodedSourceMap, EncodedSourceMap, Pos, Mapping } from './types.mts'; +export type { DecodedSourceMap, EncodedSourceMap, Mapping }; +export type Options = { + file?: string | null; + sourceRoot?: string | null; +}; +/** + * Provides the state to generate a sourcemap. + */ +export declare class GenMapping { + private _names; + private _sources; + private _sourcesContent; + private _mappings; + private _ignoreList; + file: string | null | undefined; + sourceRoot: string | null | undefined; + constructor({ file, sourceRoot }?: Options); +} +/** + * A low-level API to associate a generated position with an original source position. Line and + * column here are 0-based, unlike `addMapping`. + */ +export declare function addSegment(map: GenMapping, genLine: number, genColumn: number, source?: null, sourceLine?: null, sourceColumn?: null, name?: null, content?: null): void; +export declare function addSegment(map: GenMapping, genLine: number, genColumn: number, source: string, sourceLine: number, sourceColumn: number, name?: null, content?: string | null): void; +export declare function addSegment(map: GenMapping, genLine: number, genColumn: number, source: string, sourceLine: number, sourceColumn: number, name: string, content?: string | null): void; +/** + * A high-level API to associate a generated position with an original source position. Line is + * 1-based, but column is 0-based, due to legacy behavior in `source-map` library. + */ +export declare function addMapping(map: GenMapping, mapping: { + generated: Pos; + source?: null; + original?: null; + name?: null; + content?: null; +}): void; +export declare function addMapping(map: GenMapping, mapping: { + generated: Pos; + source: string; + original: Pos; + name?: null; + content?: string | null; +}): void; +export declare function addMapping(map: GenMapping, mapping: { + generated: Pos; + source: string; + original: Pos; + name: string; + content?: string | null; +}): void; +/** + * Same as `addSegment`, but will only add the segment if it generates useful information in the + * resulting map. This only works correctly if segments are added **in order**, meaning you should + * not add a segment with a lower generated line/column than one that came before. + */ +export declare const maybeAddSegment: typeof addSegment; +/** + * Same as `addMapping`, but will only add the mapping if it generates useful information in the + * resulting map. This only works correctly if mappings are added **in order**, meaning you should + * not add a mapping with a lower generated line/column than one that came before. + */ +export declare const maybeAddMapping: typeof addMapping; +/** + * Adds/removes the content of the source file to the source map. + */ +export declare function setSourceContent(map: GenMapping, source: string, content: string | null): void; +export declare function setIgnore(map: GenMapping, source: string, ignore?: boolean): void; +/** + * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +export declare function toDecodedMap(map: GenMapping): DecodedSourceMap; +/** + * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +export declare function toEncodedMap(map: GenMapping): EncodedSourceMap; +/** + * Constructs a new GenMapping, using the already present mappings of the input. + */ +export declare function fromMap(input: SourceMapInput): GenMapping; +/** + * Returns an array of high-level mapping objects for every recorded segment, which could then be + * passed to the `source-map` library. + */ +export declare function allMappings(map: GenMapping): Mapping[]; +//# sourceMappingURL=gen-mapping.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.mts.map b/node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.mts.map new file mode 100644 index 0000000..8a2b183 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"gen-mapping.d.ts","sourceRoot":"","sources":["../src/gen-mapping.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@jridgewell/gen-mapping/types/set-array.d.cts b/node_modules/@jridgewell/gen-mapping/types/set-array.d.cts new file mode 100644 index 0000000..5d8cda3 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/types/set-array.d.cts @@ -0,0 +1,33 @@ +type Key = string | number | symbol; +/** + * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the + * index of the `key` in the backing array. + * + * This is designed to allow synchronizing a second array with the contents of the backing array, + * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`, + * and there are never duplicates. + */ +export declare class SetArray { + private _indexes; + array: readonly T[]; + constructor(); +} +/** + * Gets the index associated with `key` in the backing array, if it is already present. + */ +export declare function get(setarr: SetArray, key: T): number | undefined; +/** + * Puts `key` into the backing array, if it is not already present. Returns + * the index of the `key` in the backing array. + */ +export declare function put(setarr: SetArray, key: T): number; +/** + * Pops the last added item out of the SetArray. + */ +export declare function pop(setarr: SetArray): void; +/** + * Removes the key, if it exists in the set. + */ +export declare function remove(setarr: SetArray, key: T): void; +export {}; +//# sourceMappingURL=set-array.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/gen-mapping/types/set-array.d.cts.map b/node_modules/@jridgewell/gen-mapping/types/set-array.d.cts.map new file mode 100644 index 0000000..c52b8bc --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/types/set-array.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"set-array.d.ts","sourceRoot":"","sources":["../src/set-array.ts"],"names":[],"mappings":"AAAA,KAAK,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpC;;;;;;;GAOG;AACH,qBAAa,QAAQ,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG;IACvC,QAAgB,QAAQ,CAAgC;IAChD,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;;CAM7B;AAeD;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,GAAG,SAAS,CAElF;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAStE;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAM5D;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAYvE"} \ No newline at end of file diff --git a/node_modules/@jridgewell/gen-mapping/types/set-array.d.mts b/node_modules/@jridgewell/gen-mapping/types/set-array.d.mts new file mode 100644 index 0000000..5d8cda3 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/types/set-array.d.mts @@ -0,0 +1,33 @@ +type Key = string | number | symbol; +/** + * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the + * index of the `key` in the backing array. + * + * This is designed to allow synchronizing a second array with the contents of the backing array, + * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`, + * and there are never duplicates. + */ +export declare class SetArray { + private _indexes; + array: readonly T[]; + constructor(); +} +/** + * Gets the index associated with `key` in the backing array, if it is already present. + */ +export declare function get(setarr: SetArray, key: T): number | undefined; +/** + * Puts `key` into the backing array, if it is not already present. Returns + * the index of the `key` in the backing array. + */ +export declare function put(setarr: SetArray, key: T): number; +/** + * Pops the last added item out of the SetArray. + */ +export declare function pop(setarr: SetArray): void; +/** + * Removes the key, if it exists in the set. + */ +export declare function remove(setarr: SetArray, key: T): void; +export {}; +//# sourceMappingURL=set-array.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/gen-mapping/types/set-array.d.mts.map b/node_modules/@jridgewell/gen-mapping/types/set-array.d.mts.map new file mode 100644 index 0000000..c52b8bc --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/types/set-array.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"set-array.d.ts","sourceRoot":"","sources":["../src/set-array.ts"],"names":[],"mappings":"AAAA,KAAK,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpC;;;;;;;GAOG;AACH,qBAAa,QAAQ,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG;IACvC,QAAgB,QAAQ,CAAgC;IAChD,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;;CAM7B;AAeD;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,GAAG,SAAS,CAElF;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAStE;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAM5D;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAYvE"} \ No newline at end of file diff --git a/node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.cts b/node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.cts new file mode 100644 index 0000000..6886295 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.cts @@ -0,0 +1,13 @@ +type GeneratedColumn = number; +type SourcesIndex = number; +type SourceLine = number; +type SourceColumn = number; +type NamesIndex = number; +export type SourceMapSegment = [GeneratedColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex]; +export declare const COLUMN = 0; +export declare const SOURCES_INDEX = 1; +export declare const SOURCE_LINE = 2; +export declare const SOURCE_COLUMN = 3; +export declare const NAMES_INDEX = 4; +export {}; +//# sourceMappingURL=sourcemap-segment.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.cts.map b/node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.cts.map new file mode 100644 index 0000000..23cdc45 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"sourcemap-segment.d.ts","sourceRoot":"","sources":["../src/sourcemap-segment.ts"],"names":[],"mappings":"AAAA,KAAK,eAAe,GAAG,MAAM,CAAC;AAC9B,KAAK,YAAY,GAAG,MAAM,CAAC;AAC3B,KAAK,UAAU,GAAG,MAAM,CAAC;AACzB,KAAK,YAAY,GAAG,MAAM,CAAC;AAC3B,KAAK,UAAU,GAAG,MAAM,CAAC;AAEzB,MAAM,MAAM,gBAAgB,GACxB,CAAC,eAAe,CAAC,GACjB,CAAC,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,GACzD,CAAC,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAE1E,eAAO,MAAM,MAAM,IAAI,CAAC;AACxB,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,WAAW,IAAI,CAAC"} \ No newline at end of file diff --git a/node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.mts b/node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.mts new file mode 100644 index 0000000..6886295 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.mts @@ -0,0 +1,13 @@ +type GeneratedColumn = number; +type SourcesIndex = number; +type SourceLine = number; +type SourceColumn = number; +type NamesIndex = number; +export type SourceMapSegment = [GeneratedColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex]; +export declare const COLUMN = 0; +export declare const SOURCES_INDEX = 1; +export declare const SOURCE_LINE = 2; +export declare const SOURCE_COLUMN = 3; +export declare const NAMES_INDEX = 4; +export {}; +//# sourceMappingURL=sourcemap-segment.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.mts.map b/node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.mts.map new file mode 100644 index 0000000..23cdc45 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"sourcemap-segment.d.ts","sourceRoot":"","sources":["../src/sourcemap-segment.ts"],"names":[],"mappings":"AAAA,KAAK,eAAe,GAAG,MAAM,CAAC;AAC9B,KAAK,YAAY,GAAG,MAAM,CAAC;AAC3B,KAAK,UAAU,GAAG,MAAM,CAAC;AACzB,KAAK,YAAY,GAAG,MAAM,CAAC;AAC3B,KAAK,UAAU,GAAG,MAAM,CAAC;AAEzB,MAAM,MAAM,gBAAgB,GACxB,CAAC,eAAe,CAAC,GACjB,CAAC,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,GACzD,CAAC,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAE1E,eAAO,MAAM,MAAM,IAAI,CAAC;AACxB,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,WAAW,IAAI,CAAC"} \ No newline at end of file diff --git a/node_modules/@jridgewell/gen-mapping/types/types.d.cts b/node_modules/@jridgewell/gen-mapping/types/types.d.cts new file mode 100644 index 0000000..58da00a --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/types/types.d.cts @@ -0,0 +1,44 @@ +import type { SourceMapSegment } from './sourcemap-segment.cts'; +export interface SourceMapV3 { + file?: string | null; + names: readonly string[]; + sourceRoot?: string; + sources: readonly (string | null)[]; + sourcesContent?: readonly (string | null)[]; + version: 3; + ignoreList?: readonly number[]; +} +export interface EncodedSourceMap extends SourceMapV3 { + mappings: string; +} +export interface DecodedSourceMap extends SourceMapV3 { + mappings: readonly SourceMapSegment[][]; +} +export interface Pos { + line: number; + column: number; +} +export interface OriginalPos extends Pos { + source: string; +} +export interface BindingExpressionRange { + start: Pos; + expression: string; +} +export type Mapping = { + generated: Pos; + source: undefined; + original: undefined; + name: undefined; +} | { + generated: Pos; + source: string; + original: Pos; + name: string; +} | { + generated: Pos; + source: string; + original: Pos; + name: undefined; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/gen-mapping/types/types.d.cts.map b/node_modules/@jridgewell/gen-mapping/types/types.d.cts.map new file mode 100644 index 0000000..159e734 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/types/types.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IACpC,cAAc,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC;IACX,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,QAAQ,EAAE,MAAM,CAAC;CAGlB;AAED,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EAAE,CAAC;CAGzC;AAED,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,GAAG;IACtC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACpB;AAKD,MAAM,MAAM,OAAO,GACf;IACE,SAAS,EAAE,GAAG,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;CACjB,GACD;IACE,SAAS,EAAE,GAAG,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,GACD;IACE,SAAS,EAAE,GAAG,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC"} \ No newline at end of file diff --git a/node_modules/@jridgewell/gen-mapping/types/types.d.mts b/node_modules/@jridgewell/gen-mapping/types/types.d.mts new file mode 100644 index 0000000..e9837eb --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/types/types.d.mts @@ -0,0 +1,44 @@ +import type { SourceMapSegment } from './sourcemap-segment.mts'; +export interface SourceMapV3 { + file?: string | null; + names: readonly string[]; + sourceRoot?: string; + sources: readonly (string | null)[]; + sourcesContent?: readonly (string | null)[]; + version: 3; + ignoreList?: readonly number[]; +} +export interface EncodedSourceMap extends SourceMapV3 { + mappings: string; +} +export interface DecodedSourceMap extends SourceMapV3 { + mappings: readonly SourceMapSegment[][]; +} +export interface Pos { + line: number; + column: number; +} +export interface OriginalPos extends Pos { + source: string; +} +export interface BindingExpressionRange { + start: Pos; + expression: string; +} +export type Mapping = { + generated: Pos; + source: undefined; + original: undefined; + name: undefined; +} | { + generated: Pos; + source: string; + original: Pos; + name: string; +} | { + generated: Pos; + source: string; + original: Pos; + name: undefined; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/gen-mapping/types/types.d.mts.map b/node_modules/@jridgewell/gen-mapping/types/types.d.mts.map new file mode 100644 index 0000000..159e734 --- /dev/null +++ b/node_modules/@jridgewell/gen-mapping/types/types.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IACpC,cAAc,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC;IACX,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,QAAQ,EAAE,MAAM,CAAC;CAGlB;AAED,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EAAE,CAAC;CAGzC;AAED,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,GAAG;IACtC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACpB;AAKD,MAAM,MAAM,OAAO,GACf;IACE,SAAS,EAAE,GAAG,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;CACjB,GACD;IACE,SAAS,EAAE,GAAG,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,GACD;IACE,SAAS,EAAE,GAAG,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC"} \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/LICENSE b/node_modules/@jridgewell/remapping/LICENSE new file mode 100644 index 0000000..1f6ce94 --- /dev/null +++ b/node_modules/@jridgewell/remapping/LICENSE @@ -0,0 +1,19 @@ +Copyright 2024 Justin Ridgewell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@jridgewell/remapping/README.md b/node_modules/@jridgewell/remapping/README.md new file mode 100644 index 0000000..6d092d7 --- /dev/null +++ b/node_modules/@jridgewell/remapping/README.md @@ -0,0 +1,218 @@ +# @jridgewell/remapping + +> Remap sequential sourcemaps through transformations to point at the original source code + +Remapping allows you to take the sourcemaps generated through transforming your code and "remap" +them to the original source locations. Think "my minified code, transformed with babel and bundled +with webpack", all pointing to the correct location in your original source code. + +With remapping, none of your source code transformations need to be aware of the input's sourcemap, +they only need to generate an output sourcemap. This greatly simplifies building custom +transformations (think a find-and-replace). + +## Installation + +```sh +npm install @jridgewell/remapping +``` + +## Usage + +```typescript +function remapping( + map: SourceMap | SourceMap[], + loader: (file: string, ctx: LoaderContext) => (SourceMap | null | undefined), + options?: { excludeContent: boolean, decodedMappings: boolean } +): SourceMap; + +// LoaderContext gives the loader the importing sourcemap, tree depth, the ability to override the +// "source" location (where child sources are resolved relative to, or the location of original +// source), and the ability to override the "content" of an original source for inclusion in the +// output sourcemap. +type LoaderContext = { + readonly importer: string; + readonly depth: number; + source: string; + content: string | null | undefined; +} +``` + +`remapping` takes the final output sourcemap, and a `loader` function. For every source file pointer +in the sourcemap, the `loader` will be called with the resolved path. If the path itself represents +a transformed file (it has a sourcmap associated with it), then the `loader` should return that +sourcemap. If not, the path will be treated as an original, untransformed source code. + +```js +// Babel transformed "helloworld.js" into "transformed.js" +const transformedMap = JSON.stringify({ + file: 'transformed.js', + // 1st column of 2nd line of output file translates into the 1st source + // file, line 3, column 2 + mappings: ';CAEE', + sources: ['helloworld.js'], + version: 3, +}); + +// Uglify minified "transformed.js" into "transformed.min.js" +const minifiedTransformedMap = JSON.stringify({ + file: 'transformed.min.js', + // 0th column of 1st line of output file translates into the 1st source + // file, line 2, column 1. + mappings: 'AACC', + names: [], + sources: ['transformed.js'], + version: 3, +}); + +const remapped = remapping( + minifiedTransformedMap, + (file, ctx) => { + + // The "transformed.js" file is an transformed file. + if (file === 'transformed.js') { + // The root importer is empty. + console.assert(ctx.importer === ''); + // The depth in the sourcemap tree we're currently loading. + // The root `minifiedTransformedMap` is depth 0, and its source children are depth 1, etc. + console.assert(ctx.depth === 1); + + return transformedMap; + } + + // Loader will be called to load transformedMap's source file pointers as well. + console.assert(file === 'helloworld.js'); + // `transformed.js`'s sourcemap points into `helloworld.js`. + console.assert(ctx.importer === 'transformed.js'); + // This is a source child of `transformed`, which is a source child of `minifiedTransformedMap`. + console.assert(ctx.depth === 2); + return null; + } +); + +console.log(remapped); +// { +// file: 'transpiled.min.js', +// mappings: 'AAEE', +// sources: ['helloworld.js'], +// version: 3, +// }; +``` + +In this example, `loader` will be called twice: + +1. `"transformed.js"`, the first source file pointer in the `minifiedTransformedMap`. We return the + associated sourcemap for it (its a transformed file, after all) so that sourcemap locations can + be traced through it into the source files it represents. +2. `"helloworld.js"`, our original, unmodified source code. This file does not have a sourcemap, so + we return `null`. + +The `remapped` sourcemap now points from `transformed.min.js` into locations in `helloworld.js`. If +you were to read the `mappings`, it says "0th column of the first line output line points to the 1st +column of the 2nd line of the file `helloworld.js`". + +### Multiple transformations of a file + +As a convenience, if you have multiple single-source transformations of a file, you may pass an +array of sourcemap files in the order of most-recent transformation sourcemap first. Note that this +changes the `importer` and `depth` of each call to our loader. So our above example could have been +written as: + +```js +const remapped = remapping( + [minifiedTransformedMap, transformedMap], + () => null +); + +console.log(remapped); +// { +// file: 'transpiled.min.js', +// mappings: 'AAEE', +// sources: ['helloworld.js'], +// version: 3, +// }; +``` + +### Advanced control of the loading graph + +#### `source` + +The `source` property can overridden to any value to change the location of the current load. Eg, +for an original source file, it allows us to change the location to the original source regardless +of what the sourcemap source entry says. And for transformed files, it allows us to change the +relative resolving location for child sources of the loaded sourcemap. + +```js +const remapped = remapping( + minifiedTransformedMap, + (file, ctx) => { + + if (file === 'transformed.js') { + // We pretend the transformed.js file actually exists in the 'src/' directory. When the nested + // source files are loaded, they will now be relative to `src/`. + ctx.source = 'src/transformed.js'; + return transformedMap; + } + + console.assert(file === 'src/helloworld.js'); + // We could futher change the source of this original file, eg, to be inside a nested directory + // itself. This will be reflected in the remapped sourcemap. + ctx.source = 'src/nested/transformed.js'; + return null; + } +); + +console.log(remapped); +// { +// …, +// sources: ['src/nested/helloworld.js'], +// }; +``` + + +#### `content` + +The `content` property can be overridden when we encounter an original source file. Eg, this allows +you to manually provide the source content of the original file regardless of whether the +`sourcesContent` field is present in the parent sourcemap. It can also be set to `null` to remove +the source content. + +```js +const remapped = remapping( + minifiedTransformedMap, + (file, ctx) => { + + if (file === 'transformed.js') { + // transformedMap does not include a `sourcesContent` field, so usually the remapped sourcemap + // would not include any `sourcesContent` values. + return transformedMap; + } + + console.assert(file === 'helloworld.js'); + // We can read the file to provide the source content. + ctx.content = fs.readFileSync(file, 'utf8'); + return null; + } +); + +console.log(remapped); +// { +// …, +// sourcesContent: [ +// 'console.log("Hello world!")', +// ], +// }; +``` + +### Options + +#### excludeContent + +By default, `excludeContent` is `false`. Passing `{ excludeContent: true }` will exclude the +`sourcesContent` field from the returned sourcemap. This is mainly useful when you want to reduce +the size out the sourcemap. + +#### decodedMappings + +By default, `decodedMappings` is `false`. Passing `{ decodedMappings: true }` will leave the +`mappings` field in a [decoded state](https://github.com/rich-harris/sourcemap-codec) instead of +encoding into a VLQ string. diff --git a/node_modules/@jridgewell/remapping/dist/remapping.mjs b/node_modules/@jridgewell/remapping/dist/remapping.mjs new file mode 100644 index 0000000..8b7009c --- /dev/null +++ b/node_modules/@jridgewell/remapping/dist/remapping.mjs @@ -0,0 +1,144 @@ +// src/build-source-map-tree.ts +import { TraceMap } from "@jridgewell/trace-mapping"; + +// src/source-map-tree.ts +import { GenMapping, maybeAddSegment, setIgnore, setSourceContent } from "@jridgewell/gen-mapping"; +import { traceSegment, decodedMappings } from "@jridgewell/trace-mapping"; +var SOURCELESS_MAPPING = /* @__PURE__ */ SegmentObject("", -1, -1, "", null, false); +var EMPTY_SOURCES = []; +function SegmentObject(source, line, column, name, content, ignore) { + return { source, line, column, name, content, ignore }; +} +function Source(map, sources, source, content, ignore) { + return { + map, + sources, + source, + content, + ignore + }; +} +function MapSource(map, sources) { + return Source(map, sources, "", null, false); +} +function OriginalSource(source, content, ignore) { + return Source(null, EMPTY_SOURCES, source, content, ignore); +} +function traceMappings(tree) { + const gen = new GenMapping({ file: tree.map.file }); + const { sources: rootSources, map } = tree; + const rootNames = map.names; + const rootMappings = decodedMappings(map); + for (let i = 0; i < rootMappings.length; i++) { + const segments = rootMappings[i]; + for (let j = 0; j < segments.length; j++) { + const segment = segments[j]; + const genCol = segment[0]; + let traced = SOURCELESS_MAPPING; + if (segment.length !== 1) { + const source2 = rootSources[segment[1]]; + traced = originalPositionFor( + source2, + segment[2], + segment[3], + segment.length === 5 ? rootNames[segment[4]] : "" + ); + if (traced == null) continue; + } + const { column, line, name, content, source, ignore } = traced; + maybeAddSegment(gen, i, genCol, source, line, column, name); + if (source && content != null) setSourceContent(gen, source, content); + if (ignore) setIgnore(gen, source, true); + } + } + return gen; +} +function originalPositionFor(source, line, column, name) { + if (!source.map) { + return SegmentObject(source.source, line, column, name, source.content, source.ignore); + } + const segment = traceSegment(source.map, line, column); + if (segment == null) return null; + if (segment.length === 1) return SOURCELESS_MAPPING; + return originalPositionFor( + source.sources[segment[1]], + segment[2], + segment[3], + segment.length === 5 ? source.map.names[segment[4]] : name + ); +} + +// src/build-source-map-tree.ts +function asArray(value) { + if (Array.isArray(value)) return value; + return [value]; +} +function buildSourceMapTree(input, loader) { + const maps = asArray(input).map((m) => new TraceMap(m, "")); + const map = maps.pop(); + for (let i = 0; i < maps.length; i++) { + if (maps[i].sources.length > 1) { + throw new Error( + `Transformation map ${i} must have exactly one source file. +Did you specify these with the most recent transformation maps first?` + ); + } + } + let tree = build(map, loader, "", 0); + for (let i = maps.length - 1; i >= 0; i--) { + tree = MapSource(maps[i], [tree]); + } + return tree; +} +function build(map, loader, importer, importerDepth) { + const { resolvedSources, sourcesContent, ignoreList } = map; + const depth = importerDepth + 1; + const children = resolvedSources.map((sourceFile, i) => { + const ctx = { + importer, + depth, + source: sourceFile || "", + content: void 0, + ignore: void 0 + }; + const sourceMap = loader(ctx.source, ctx); + const { source, content, ignore } = ctx; + if (sourceMap) return build(new TraceMap(sourceMap, source), loader, source, depth); + const sourceContent = content !== void 0 ? content : sourcesContent ? sourcesContent[i] : null; + const ignored = ignore !== void 0 ? ignore : ignoreList ? ignoreList.includes(i) : false; + return OriginalSource(source, sourceContent, ignored); + }); + return MapSource(map, children); +} + +// src/source-map.ts +import { toDecodedMap, toEncodedMap } from "@jridgewell/gen-mapping"; +var SourceMap = class { + constructor(map, options) { + const out = options.decodedMappings ? toDecodedMap(map) : toEncodedMap(map); + this.version = out.version; + this.file = out.file; + this.mappings = out.mappings; + this.names = out.names; + this.ignoreList = out.ignoreList; + this.sourceRoot = out.sourceRoot; + this.sources = out.sources; + if (!options.excludeContent) { + this.sourcesContent = out.sourcesContent; + } + } + toString() { + return JSON.stringify(this); + } +}; + +// src/remapping.ts +function remapping(input, loader, options) { + const opts = typeof options === "object" ? options : { excludeContent: !!options, decodedMappings: false }; + const tree = buildSourceMapTree(input, loader); + return new SourceMap(traceMappings(tree), opts); +} +export { + remapping as default +}; +//# sourceMappingURL=remapping.mjs.map diff --git a/node_modules/@jridgewell/remapping/dist/remapping.mjs.map b/node_modules/@jridgewell/remapping/dist/remapping.mjs.map new file mode 100644 index 0000000..66801e6 --- /dev/null +++ b/node_modules/@jridgewell/remapping/dist/remapping.mjs.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../src/build-source-map-tree.ts", "../src/source-map-tree.ts", "../src/source-map.ts", "../src/remapping.ts"], + "mappings": "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", + "names": ["source"] +} diff --git a/node_modules/@jridgewell/remapping/dist/remapping.umd.js b/node_modules/@jridgewell/remapping/dist/remapping.umd.js new file mode 100644 index 0000000..077eb4d --- /dev/null +++ b/node_modules/@jridgewell/remapping/dist/remapping.umd.js @@ -0,0 +1,212 @@ +(function (global, factory) { + if (typeof exports === 'object' && typeof module !== 'undefined') { + factory(module, require('@jridgewell/gen-mapping'), require('@jridgewell/trace-mapping')); + module.exports = def(module); + } else if (typeof define === 'function' && define.amd) { + define(['module', '@jridgewell/gen-mapping', '@jridgewell/trace-mapping'], function(mod) { + factory.apply(this, arguments); + mod.exports = def(mod); + }); + } else { + const mod = { exports: {} }; + factory(mod, global.genMapping, global.traceMapping); + global = typeof globalThis !== 'undefined' ? globalThis : global || self; + global.remapping = def(mod); + } + function def(m) { return 'default' in m.exports ? m.exports.default : m.exports; } +})(this, (function (module, require_genMapping, require_traceMapping) { +"use strict"; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// umd:@jridgewell/trace-mapping +var require_trace_mapping = __commonJS({ + "umd:@jridgewell/trace-mapping"(exports, module2) { + module2.exports = require_traceMapping; + } +}); + +// umd:@jridgewell/gen-mapping +var require_gen_mapping = __commonJS({ + "umd:@jridgewell/gen-mapping"(exports, module2) { + module2.exports = require_genMapping; + } +}); + +// src/remapping.ts +var remapping_exports = {}; +__export(remapping_exports, { + default: () => remapping +}); +module.exports = __toCommonJS(remapping_exports); + +// src/build-source-map-tree.ts +var import_trace_mapping2 = __toESM(require_trace_mapping()); + +// src/source-map-tree.ts +var import_gen_mapping = __toESM(require_gen_mapping()); +var import_trace_mapping = __toESM(require_trace_mapping()); +var SOURCELESS_MAPPING = /* @__PURE__ */ SegmentObject("", -1, -1, "", null, false); +var EMPTY_SOURCES = []; +function SegmentObject(source, line, column, name, content, ignore) { + return { source, line, column, name, content, ignore }; +} +function Source(map, sources, source, content, ignore) { + return { + map, + sources, + source, + content, + ignore + }; +} +function MapSource(map, sources) { + return Source(map, sources, "", null, false); +} +function OriginalSource(source, content, ignore) { + return Source(null, EMPTY_SOURCES, source, content, ignore); +} +function traceMappings(tree) { + const gen = new import_gen_mapping.GenMapping({ file: tree.map.file }); + const { sources: rootSources, map } = tree; + const rootNames = map.names; + const rootMappings = (0, import_trace_mapping.decodedMappings)(map); + for (let i = 0; i < rootMappings.length; i++) { + const segments = rootMappings[i]; + for (let j = 0; j < segments.length; j++) { + const segment = segments[j]; + const genCol = segment[0]; + let traced = SOURCELESS_MAPPING; + if (segment.length !== 1) { + const source2 = rootSources[segment[1]]; + traced = originalPositionFor( + source2, + segment[2], + segment[3], + segment.length === 5 ? rootNames[segment[4]] : "" + ); + if (traced == null) continue; + } + const { column, line, name, content, source, ignore } = traced; + (0, import_gen_mapping.maybeAddSegment)(gen, i, genCol, source, line, column, name); + if (source && content != null) (0, import_gen_mapping.setSourceContent)(gen, source, content); + if (ignore) (0, import_gen_mapping.setIgnore)(gen, source, true); + } + } + return gen; +} +function originalPositionFor(source, line, column, name) { + if (!source.map) { + return SegmentObject(source.source, line, column, name, source.content, source.ignore); + } + const segment = (0, import_trace_mapping.traceSegment)(source.map, line, column); + if (segment == null) return null; + if (segment.length === 1) return SOURCELESS_MAPPING; + return originalPositionFor( + source.sources[segment[1]], + segment[2], + segment[3], + segment.length === 5 ? source.map.names[segment[4]] : name + ); +} + +// src/build-source-map-tree.ts +function asArray(value) { + if (Array.isArray(value)) return value; + return [value]; +} +function buildSourceMapTree(input, loader) { + const maps = asArray(input).map((m) => new import_trace_mapping2.TraceMap(m, "")); + const map = maps.pop(); + for (let i = 0; i < maps.length; i++) { + if (maps[i].sources.length > 1) { + throw new Error( + `Transformation map ${i} must have exactly one source file. +Did you specify these with the most recent transformation maps first?` + ); + } + } + let tree = build(map, loader, "", 0); + for (let i = maps.length - 1; i >= 0; i--) { + tree = MapSource(maps[i], [tree]); + } + return tree; +} +function build(map, loader, importer, importerDepth) { + const { resolvedSources, sourcesContent, ignoreList } = map; + const depth = importerDepth + 1; + const children = resolvedSources.map((sourceFile, i) => { + const ctx = { + importer, + depth, + source: sourceFile || "", + content: void 0, + ignore: void 0 + }; + const sourceMap = loader(ctx.source, ctx); + const { source, content, ignore } = ctx; + if (sourceMap) return build(new import_trace_mapping2.TraceMap(sourceMap, source), loader, source, depth); + const sourceContent = content !== void 0 ? content : sourcesContent ? sourcesContent[i] : null; + const ignored = ignore !== void 0 ? ignore : ignoreList ? ignoreList.includes(i) : false; + return OriginalSource(source, sourceContent, ignored); + }); + return MapSource(map, children); +} + +// src/source-map.ts +var import_gen_mapping2 = __toESM(require_gen_mapping()); +var SourceMap = class { + constructor(map, options) { + const out = options.decodedMappings ? (0, import_gen_mapping2.toDecodedMap)(map) : (0, import_gen_mapping2.toEncodedMap)(map); + this.version = out.version; + this.file = out.file; + this.mappings = out.mappings; + this.names = out.names; + this.ignoreList = out.ignoreList; + this.sourceRoot = out.sourceRoot; + this.sources = out.sources; + if (!options.excludeContent) { + this.sourcesContent = out.sourcesContent; + } + } + toString() { + return JSON.stringify(this); + } +}; + +// src/remapping.ts +function remapping(input, loader, options) { + const opts = typeof options === "object" ? options : { excludeContent: !!options, decodedMappings: false }; + const tree = buildSourceMapTree(input, loader); + return new SourceMap(traceMappings(tree), opts); +} +})); +//# sourceMappingURL=remapping.umd.js.map diff --git a/node_modules/@jridgewell/remapping/dist/remapping.umd.js.map b/node_modules/@jridgewell/remapping/dist/remapping.umd.js.map new file mode 100644 index 0000000..d5e0786 --- /dev/null +++ b/node_modules/@jridgewell/remapping/dist/remapping.umd.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["umd:@jridgewell/trace-mapping", "umd:@jridgewell/gen-mapping", "../src/remapping.ts", "../src/build-source-map-tree.ts", "../src/source-map-tree.ts", "../src/source-map.ts"], + "mappings": "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", + "names": ["module", "module", "import_trace_mapping", "source", "import_gen_mapping"] +} diff --git a/node_modules/@jridgewell/remapping/package.json b/node_modules/@jridgewell/remapping/package.json new file mode 100644 index 0000000..ed00441 --- /dev/null +++ b/node_modules/@jridgewell/remapping/package.json @@ -0,0 +1,71 @@ +{ + "name": "@jridgewell/remapping", + "version": "2.3.5", + "description": "Remap sequential sourcemaps through transformations to point at the original source code", + "keywords": [ + "source", + "map", + "remap" + ], + "main": "dist/remapping.umd.js", + "module": "dist/remapping.mjs", + "types": "types/remapping.d.cts", + "files": [ + "dist", + "src", + "types" + ], + "exports": { + ".": [ + { + "import": { + "types": "./types/remapping.d.mts", + "default": "./dist/remapping.mjs" + }, + "default": { + "types": "./types/remapping.d.cts", + "default": "./dist/remapping.umd.js" + } + }, + "./dist/remapping.umd.js" + ], + "./package.json": "./package.json" + }, + "scripts": { + "benchmark": "run-s build:code benchmark:*", + "benchmark:install": "cd benchmark && npm install", + "benchmark:only": "node --expose-gc benchmark/index.js", + "build": "run-s -n build:code build:types", + "build:code": "node ../../esbuild.mjs remapping.ts", + "build:types": "run-s build:types:force build:types:emit build:types:mts", + "build:types:force": "rimraf tsconfig.build.tsbuildinfo", + "build:types:emit": "tsc --project tsconfig.build.json", + "build:types:mts": "node ../../mts-types.mjs", + "clean": "run-s -n clean:code clean:types", + "clean:code": "tsc --build --clean tsconfig.build.json", + "clean:types": "rimraf dist types", + "test": "run-s -n test:types test:only test:format", + "test:format": "prettier --check '{src,test}/**/*.ts'", + "test:only": "mocha", + "test:types": "eslint '{src,test}/**/*.ts'", + "lint": "run-s -n lint:types lint:format", + "lint:format": "npm run test:format -- --write", + "lint:types": "npm run test:types -- --fix", + "prepublishOnly": "npm run-s -n build test" + }, + "homepage": "https://github.com/jridgewell/sourcemaps/tree/main/packages/remapping", + "repository": { + "type": "git", + "url": "git+https://github.com/jridgewell/sourcemaps.git", + "directory": "packages/remapping" + }, + "author": "Justin Ridgewell ", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "devDependencies": { + "source-map": "0.6.1" + } +} diff --git a/node_modules/@jridgewell/remapping/src/build-source-map-tree.ts b/node_modules/@jridgewell/remapping/src/build-source-map-tree.ts new file mode 100644 index 0000000..3e0262b --- /dev/null +++ b/node_modules/@jridgewell/remapping/src/build-source-map-tree.ts @@ -0,0 +1,89 @@ +import { TraceMap } from '@jridgewell/trace-mapping'; + +import { OriginalSource, MapSource } from './source-map-tree'; + +import type { Sources, MapSource as MapSourceType } from './source-map-tree'; +import type { SourceMapInput, SourceMapLoader, LoaderContext } from './types'; + +function asArray(value: T | T[]): T[] { + if (Array.isArray(value)) return value; + return [value]; +} + +/** + * Recursively builds a tree structure out of sourcemap files, with each node + * being either an `OriginalSource` "leaf" or a `SourceMapTree` composed of + * `OriginalSource`s and `SourceMapTree`s. + * + * Every sourcemap is composed of a collection of source files and mappings + * into locations of those source files. When we generate a `SourceMapTree` for + * the sourcemap, we attempt to load each source file's own sourcemap. If it + * does not have an associated sourcemap, it is considered an original, + * unmodified source file. + */ +export default function buildSourceMapTree( + input: SourceMapInput | SourceMapInput[], + loader: SourceMapLoader, +): MapSourceType { + const maps = asArray(input).map((m) => new TraceMap(m, '')); + const map = maps.pop()!; + + for (let i = 0; i < maps.length; i++) { + if (maps[i].sources.length > 1) { + throw new Error( + `Transformation map ${i} must have exactly one source file.\n` + + 'Did you specify these with the most recent transformation maps first?', + ); + } + } + + let tree = build(map, loader, '', 0); + for (let i = maps.length - 1; i >= 0; i--) { + tree = MapSource(maps[i], [tree]); + } + return tree; +} + +function build( + map: TraceMap, + loader: SourceMapLoader, + importer: string, + importerDepth: number, +): MapSourceType { + const { resolvedSources, sourcesContent, ignoreList } = map; + + const depth = importerDepth + 1; + const children = resolvedSources.map((sourceFile: string | null, i: number): Sources => { + // The loading context gives the loader more information about why this file is being loaded + // (eg, from which importer). It also allows the loader to override the location of the loaded + // sourcemap/original source, or to override the content in the sourcesContent field if it's + // an unmodified source file. + const ctx: LoaderContext = { + importer, + depth, + source: sourceFile || '', + content: undefined, + ignore: undefined, + }; + + // Use the provided loader callback to retrieve the file's sourcemap. + // TODO: We should eventually support async loading of sourcemap files. + const sourceMap = loader(ctx.source, ctx); + + const { source, content, ignore } = ctx; + + // If there is a sourcemap, then we need to recurse into it to load its source files. + if (sourceMap) return build(new TraceMap(sourceMap, source), loader, source, depth); + + // Else, it's an unmodified source file. + // The contents of this unmodified source file can be overridden via the loader context, + // allowing it to be explicitly null or a string. If it remains undefined, we fall back to + // the importing sourcemap's `sourcesContent` field. + const sourceContent = + content !== undefined ? content : sourcesContent ? sourcesContent[i] : null; + const ignored = ignore !== undefined ? ignore : ignoreList ? ignoreList.includes(i) : false; + return OriginalSource(source, sourceContent, ignored); + }); + + return MapSource(map, children); +} diff --git a/node_modules/@jridgewell/remapping/src/remapping.ts b/node_modules/@jridgewell/remapping/src/remapping.ts new file mode 100644 index 0000000..c0f8b0d --- /dev/null +++ b/node_modules/@jridgewell/remapping/src/remapping.ts @@ -0,0 +1,42 @@ +import buildSourceMapTree from './build-source-map-tree'; +import { traceMappings } from './source-map-tree'; +import SourceMap from './source-map'; + +import type { SourceMapInput, SourceMapLoader, Options } from './types'; +export type { + SourceMapSegment, + EncodedSourceMap, + EncodedSourceMap as RawSourceMap, + DecodedSourceMap, + SourceMapInput, + SourceMapLoader, + LoaderContext, + Options, +} from './types'; +export type { SourceMap }; + +/** + * Traces through all the mappings in the root sourcemap, through the sources + * (and their sourcemaps), all the way back to the original source location. + * + * `loader` will be called every time we encounter a source file. If it returns + * a sourcemap, we will recurse into that sourcemap to continue the trace. If + * it returns a falsey value, that source file is treated as an original, + * unmodified source file. + * + * Pass `excludeContent` to exclude any self-containing source file content + * from the output sourcemap. + * + * Pass `decodedMappings` to receive a SourceMap with decoded (instead of + * VLQ encoded) mappings. + */ +export default function remapping( + input: SourceMapInput | SourceMapInput[], + loader: SourceMapLoader, + options?: boolean | Options, +): SourceMap { + const opts = + typeof options === 'object' ? options : { excludeContent: !!options, decodedMappings: false }; + const tree = buildSourceMapTree(input, loader); + return new SourceMap(traceMappings(tree), opts); +} diff --git a/node_modules/@jridgewell/remapping/src/source-map-tree.ts b/node_modules/@jridgewell/remapping/src/source-map-tree.ts new file mode 100644 index 0000000..935240f --- /dev/null +++ b/node_modules/@jridgewell/remapping/src/source-map-tree.ts @@ -0,0 +1,172 @@ +import { GenMapping, maybeAddSegment, setIgnore, setSourceContent } from '@jridgewell/gen-mapping'; +import { traceSegment, decodedMappings } from '@jridgewell/trace-mapping'; + +import type { TraceMap } from '@jridgewell/trace-mapping'; + +export type SourceMapSegmentObject = { + column: number; + line: number; + name: string; + source: string; + content: string | null; + ignore: boolean; +}; + +export type OriginalSource = { + map: null; + sources: Sources[]; + source: string; + content: string | null; + ignore: boolean; +}; + +export type MapSource = { + map: TraceMap; + sources: Sources[]; + source: string; + content: null; + ignore: false; +}; + +export type Sources = OriginalSource | MapSource; + +const SOURCELESS_MAPPING = /* #__PURE__ */ SegmentObject('', -1, -1, '', null, false); +const EMPTY_SOURCES: Sources[] = []; + +function SegmentObject( + source: string, + line: number, + column: number, + name: string, + content: string | null, + ignore: boolean, +): SourceMapSegmentObject { + return { source, line, column, name, content, ignore }; +} + +function Source( + map: TraceMap, + sources: Sources[], + source: '', + content: null, + ignore: false, +): MapSource; +function Source( + map: null, + sources: Sources[], + source: string, + content: string | null, + ignore: boolean, +): OriginalSource; +function Source( + map: TraceMap | null, + sources: Sources[], + source: string | '', + content: string | null, + ignore: boolean, +): Sources { + return { + map, + sources, + source, + content, + ignore, + } as any; +} + +/** + * MapSource represents a single sourcemap, with the ability to trace mappings into its child nodes + * (which may themselves be SourceMapTrees). + */ +export function MapSource(map: TraceMap, sources: Sources[]): MapSource { + return Source(map, sources, '', null, false); +} + +/** + * A "leaf" node in the sourcemap tree, representing an original, unmodified source file. Recursive + * segment tracing ends at the `OriginalSource`. + */ +export function OriginalSource( + source: string, + content: string | null, + ignore: boolean, +): OriginalSource { + return Source(null, EMPTY_SOURCES, source, content, ignore); +} + +/** + * traceMappings is only called on the root level SourceMapTree, and begins the process of + * resolving each mapping in terms of the original source files. + */ +export function traceMappings(tree: MapSource): GenMapping { + // TODO: Eventually support sourceRoot, which has to be removed because the sources are already + // fully resolved. We'll need to make sources relative to the sourceRoot before adding them. + const gen = new GenMapping({ file: tree.map.file }); + const { sources: rootSources, map } = tree; + const rootNames = map.names; + const rootMappings = decodedMappings(map); + + for (let i = 0; i < rootMappings.length; i++) { + const segments = rootMappings[i]; + + for (let j = 0; j < segments.length; j++) { + const segment = segments[j]; + const genCol = segment[0]; + let traced: SourceMapSegmentObject | null = SOURCELESS_MAPPING; + + // 1-length segments only move the current generated column, there's no source information + // to gather from it. + if (segment.length !== 1) { + const source = rootSources[segment[1]]; + traced = originalPositionFor( + source, + segment[2], + segment[3], + segment.length === 5 ? rootNames[segment[4]] : '', + ); + + // If the trace is invalid, then the trace ran into a sourcemap that doesn't contain a + // respective segment into an original source. + if (traced == null) continue; + } + + const { column, line, name, content, source, ignore } = traced; + + maybeAddSegment(gen, i, genCol, source, line, column, name); + if (source && content != null) setSourceContent(gen, source, content); + if (ignore) setIgnore(gen, source, true); + } + } + + return gen; +} + +/** + * originalPositionFor is only called on children SourceMapTrees. It recurses down into its own + * child SourceMapTrees, until we find the original source map. + */ +export function originalPositionFor( + source: Sources, + line: number, + column: number, + name: string, +): SourceMapSegmentObject | null { + if (!source.map) { + return SegmentObject(source.source, line, column, name, source.content, source.ignore); + } + + const segment = traceSegment(source.map, line, column); + + // If we couldn't find a segment, then this doesn't exist in the sourcemap. + if (segment == null) return null; + // 1-length segments only move the current generated column, there's no source information + // to gather from it. + if (segment.length === 1) return SOURCELESS_MAPPING; + + return originalPositionFor( + source.sources[segment[1]], + segment[2], + segment[3], + segment.length === 5 ? source.map.names[segment[4]] : name, + ); +} diff --git a/node_modules/@jridgewell/remapping/src/source-map.ts b/node_modules/@jridgewell/remapping/src/source-map.ts new file mode 100644 index 0000000..5156086 --- /dev/null +++ b/node_modules/@jridgewell/remapping/src/source-map.ts @@ -0,0 +1,38 @@ +import { toDecodedMap, toEncodedMap } from '@jridgewell/gen-mapping'; + +import type { GenMapping } from '@jridgewell/gen-mapping'; +import type { DecodedSourceMap, EncodedSourceMap, Options } from './types'; + +/** + * A SourceMap v3 compatible sourcemap, which only includes fields that were + * provided to it. + */ +export default class SourceMap { + declare file?: string | null; + declare mappings: EncodedSourceMap['mappings'] | DecodedSourceMap['mappings']; + declare sourceRoot?: string; + declare names: string[]; + declare sources: (string | null)[]; + declare sourcesContent?: (string | null)[]; + declare version: 3; + declare ignoreList: number[] | undefined; + + constructor(map: GenMapping, options: Options) { + const out = options.decodedMappings ? toDecodedMap(map) : toEncodedMap(map); + this.version = out.version; // SourceMap spec says this should be first. + this.file = out.file; + this.mappings = out.mappings as SourceMap['mappings']; + this.names = out.names as SourceMap['names']; + this.ignoreList = out.ignoreList as SourceMap['ignoreList']; + this.sourceRoot = out.sourceRoot; + + this.sources = out.sources as SourceMap['sources']; + if (!options.excludeContent) { + this.sourcesContent = out.sourcesContent as SourceMap['sourcesContent']; + } + } + + toString(): string { + return JSON.stringify(this); + } +} diff --git a/node_modules/@jridgewell/remapping/src/types.ts b/node_modules/@jridgewell/remapping/src/types.ts new file mode 100644 index 0000000..384961d --- /dev/null +++ b/node_modules/@jridgewell/remapping/src/types.ts @@ -0,0 +1,27 @@ +import type { SourceMapInput } from '@jridgewell/trace-mapping'; + +export type { + SourceMapSegment, + DecodedSourceMap, + EncodedSourceMap, +} from '@jridgewell/trace-mapping'; + +export type { SourceMapInput }; + +export type LoaderContext = { + readonly importer: string; + readonly depth: number; + source: string; + content: string | null | undefined; + ignore: boolean | undefined; +}; + +export type SourceMapLoader = ( + file: string, + ctx: LoaderContext, +) => SourceMapInput | null | undefined | void; + +export type Options = { + excludeContent?: boolean; + decodedMappings?: boolean; +}; diff --git a/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.cts b/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.cts new file mode 100644 index 0000000..e089aea --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.cts @@ -0,0 +1,15 @@ +import type { MapSource as MapSourceType } from './source-map-tree.cts'; +import type { SourceMapInput, SourceMapLoader } from './types.cts'; +/** + * Recursively builds a tree structure out of sourcemap files, with each node + * being either an `OriginalSource` "leaf" or a `SourceMapTree` composed of + * `OriginalSource`s and `SourceMapTree`s. + * + * Every sourcemap is composed of a collection of source files and mappings + * into locations of those source files. When we generate a `SourceMapTree` for + * the sourcemap, we attempt to load each source file's own sourcemap. If it + * does not have an associated sourcemap, it is considered an original, + * unmodified source file. + */ +export = function buildSourceMapTree(input: SourceMapInput | SourceMapInput[], loader: SourceMapLoader): MapSourceType; +//# sourceMappingURL=build-source-map-tree.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.cts.map b/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.cts.map new file mode 100644 index 0000000..38e4290 --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"build-source-map-tree.d.ts","sourceRoot":"","sources":["../src/build-source-map-tree.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAW,SAAS,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAiB,MAAM,SAAS,CAAC;AAO9E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,KAAK,EAAE,cAAc,GAAG,cAAc,EAAE,EACxC,MAAM,EAAE,eAAe,GACtB,aAAa,CAkBf"} \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.mts b/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.mts new file mode 100644 index 0000000..746ac5f --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.mts @@ -0,0 +1,15 @@ +import type { MapSource as MapSourceType } from './source-map-tree.mts'; +import type { SourceMapInput, SourceMapLoader } from './types.mts'; +/** + * Recursively builds a tree structure out of sourcemap files, with each node + * being either an `OriginalSource` "leaf" or a `SourceMapTree` composed of + * `OriginalSource`s and `SourceMapTree`s. + * + * Every sourcemap is composed of a collection of source files and mappings + * into locations of those source files. When we generate a `SourceMapTree` for + * the sourcemap, we attempt to load each source file's own sourcemap. If it + * does not have an associated sourcemap, it is considered an original, + * unmodified source file. + */ +export default function buildSourceMapTree(input: SourceMapInput | SourceMapInput[], loader: SourceMapLoader): MapSourceType; +//# sourceMappingURL=build-source-map-tree.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.mts.map b/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.mts.map new file mode 100644 index 0000000..38e4290 --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"build-source-map-tree.d.ts","sourceRoot":"","sources":["../src/build-source-map-tree.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAW,SAAS,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAiB,MAAM,SAAS,CAAC;AAO9E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,KAAK,EAAE,cAAc,GAAG,cAAc,EAAE,EACxC,MAAM,EAAE,eAAe,GACtB,aAAa,CAkBf"} \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/remapping.d.cts b/node_modules/@jridgewell/remapping/types/remapping.d.cts new file mode 100644 index 0000000..2022784 --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/remapping.d.cts @@ -0,0 +1,21 @@ +import SourceMap from './source-map.cts'; +import type { SourceMapInput, SourceMapLoader, Options } from './types.cts'; +export type { SourceMapSegment, EncodedSourceMap, EncodedSourceMap as RawSourceMap, DecodedSourceMap, SourceMapInput, SourceMapLoader, LoaderContext, Options, } from './types.cts'; +export type { SourceMap }; +/** + * Traces through all the mappings in the root sourcemap, through the sources + * (and their sourcemaps), all the way back to the original source location. + * + * `loader` will be called every time we encounter a source file. If it returns + * a sourcemap, we will recurse into that sourcemap to continue the trace. If + * it returns a falsey value, that source file is treated as an original, + * unmodified source file. + * + * Pass `excludeContent` to exclude any self-containing source file content + * from the output sourcemap. + * + * Pass `decodedMappings` to receive a SourceMap with decoded (instead of + * VLQ encoded) mappings. + */ +export = function remapping(input: SourceMapInput | SourceMapInput[], loader: SourceMapLoader, options?: boolean | Options): SourceMap; +//# sourceMappingURL=remapping.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/remapping.d.cts.map b/node_modules/@jridgewell/remapping/types/remapping.d.cts.map new file mode 100644 index 0000000..9f2fd0e --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/remapping.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"remapping.d.ts","sourceRoot":"","sources":["../src/remapping.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACxE,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,IAAI,YAAY,EAChC,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,aAAa,EACb,OAAO,GACR,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,SAAS,EAAE,CAAC;AAE1B;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,KAAK,EAAE,cAAc,GAAG,cAAc,EAAE,EACxC,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,GAC1B,SAAS,CAKX"} \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/remapping.d.mts b/node_modules/@jridgewell/remapping/types/remapping.d.mts new file mode 100644 index 0000000..95c4066 --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/remapping.d.mts @@ -0,0 +1,21 @@ +import SourceMap from './source-map.mts'; +import type { SourceMapInput, SourceMapLoader, Options } from './types.mts'; +export type { SourceMapSegment, EncodedSourceMap, EncodedSourceMap as RawSourceMap, DecodedSourceMap, SourceMapInput, SourceMapLoader, LoaderContext, Options, } from './types.mts'; +export type { SourceMap }; +/** + * Traces through all the mappings in the root sourcemap, through the sources + * (and their sourcemaps), all the way back to the original source location. + * + * `loader` will be called every time we encounter a source file. If it returns + * a sourcemap, we will recurse into that sourcemap to continue the trace. If + * it returns a falsey value, that source file is treated as an original, + * unmodified source file. + * + * Pass `excludeContent` to exclude any self-containing source file content + * from the output sourcemap. + * + * Pass `decodedMappings` to receive a SourceMap with decoded (instead of + * VLQ encoded) mappings. + */ +export default function remapping(input: SourceMapInput | SourceMapInput[], loader: SourceMapLoader, options?: boolean | Options): SourceMap; +//# sourceMappingURL=remapping.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/remapping.d.mts.map b/node_modules/@jridgewell/remapping/types/remapping.d.mts.map new file mode 100644 index 0000000..9f2fd0e --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/remapping.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"remapping.d.ts","sourceRoot":"","sources":["../src/remapping.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACxE,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,IAAI,YAAY,EAChC,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,aAAa,EACb,OAAO,GACR,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,SAAS,EAAE,CAAC;AAE1B;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,KAAK,EAAE,cAAc,GAAG,cAAc,EAAE,EACxC,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,GAC1B,SAAS,CAKX"} \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/source-map-tree.d.cts b/node_modules/@jridgewell/remapping/types/source-map-tree.d.cts new file mode 100644 index 0000000..440f65b --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/source-map-tree.d.cts @@ -0,0 +1,46 @@ +import { GenMapping } from '@jridgewell/gen-mapping'; +import type { TraceMap } from '@jridgewell/trace-mapping'; +export type SourceMapSegmentObject = { + column: number; + line: number; + name: string; + source: string; + content: string | null; + ignore: boolean; +}; +export type OriginalSource = { + map: null; + sources: Sources[]; + source: string; + content: string | null; + ignore: boolean; +}; +export type MapSource = { + map: TraceMap; + sources: Sources[]; + source: string; + content: null; + ignore: false; +}; +export type Sources = OriginalSource | MapSource; +/** + * MapSource represents a single sourcemap, with the ability to trace mappings into its child nodes + * (which may themselves be SourceMapTrees). + */ +export declare function MapSource(map: TraceMap, sources: Sources[]): MapSource; +/** + * A "leaf" node in the sourcemap tree, representing an original, unmodified source file. Recursive + * segment tracing ends at the `OriginalSource`. + */ +export declare function OriginalSource(source: string, content: string | null, ignore: boolean): OriginalSource; +/** + * traceMappings is only called on the root level SourceMapTree, and begins the process of + * resolving each mapping in terms of the original source files. + */ +export declare function traceMappings(tree: MapSource): GenMapping; +/** + * originalPositionFor is only called on children SourceMapTrees. It recurses down into its own + * child SourceMapTrees, until we find the original source map. + */ +export declare function originalPositionFor(source: Sources, line: number, column: number, name: string): SourceMapSegmentObject | null; +//# sourceMappingURL=source-map-tree.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/source-map-tree.d.cts.map b/node_modules/@jridgewell/remapping/types/source-map-tree.d.cts.map new file mode 100644 index 0000000..e7cbfb9 --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/source-map-tree.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"source-map-tree.d.ts","sourceRoot":"","sources":["../src/source-map-tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAgD,MAAM,yBAAyB,CAAC;AAGnG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,IAAI,CAAC;IACV,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,QAAQ,CAAC;IACd,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC;AA8CjD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,CAEtE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,MAAM,EAAE,OAAO,GACd,cAAc,CAEhB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAyCzD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,sBAAsB,GAAG,IAAI,CAmB/B"} \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/source-map-tree.d.mts b/node_modules/@jridgewell/remapping/types/source-map-tree.d.mts new file mode 100644 index 0000000..440f65b --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/source-map-tree.d.mts @@ -0,0 +1,46 @@ +import { GenMapping } from '@jridgewell/gen-mapping'; +import type { TraceMap } from '@jridgewell/trace-mapping'; +export type SourceMapSegmentObject = { + column: number; + line: number; + name: string; + source: string; + content: string | null; + ignore: boolean; +}; +export type OriginalSource = { + map: null; + sources: Sources[]; + source: string; + content: string | null; + ignore: boolean; +}; +export type MapSource = { + map: TraceMap; + sources: Sources[]; + source: string; + content: null; + ignore: false; +}; +export type Sources = OriginalSource | MapSource; +/** + * MapSource represents a single sourcemap, with the ability to trace mappings into its child nodes + * (which may themselves be SourceMapTrees). + */ +export declare function MapSource(map: TraceMap, sources: Sources[]): MapSource; +/** + * A "leaf" node in the sourcemap tree, representing an original, unmodified source file. Recursive + * segment tracing ends at the `OriginalSource`. + */ +export declare function OriginalSource(source: string, content: string | null, ignore: boolean): OriginalSource; +/** + * traceMappings is only called on the root level SourceMapTree, and begins the process of + * resolving each mapping in terms of the original source files. + */ +export declare function traceMappings(tree: MapSource): GenMapping; +/** + * originalPositionFor is only called on children SourceMapTrees. It recurses down into its own + * child SourceMapTrees, until we find the original source map. + */ +export declare function originalPositionFor(source: Sources, line: number, column: number, name: string): SourceMapSegmentObject | null; +//# sourceMappingURL=source-map-tree.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/source-map-tree.d.mts.map b/node_modules/@jridgewell/remapping/types/source-map-tree.d.mts.map new file mode 100644 index 0000000..e7cbfb9 --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/source-map-tree.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"source-map-tree.d.ts","sourceRoot":"","sources":["../src/source-map-tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAgD,MAAM,yBAAyB,CAAC;AAGnG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,IAAI,CAAC;IACV,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,QAAQ,CAAC;IACd,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC;AA8CjD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,CAEtE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,MAAM,EAAE,OAAO,GACd,cAAc,CAEhB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAyCzD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,sBAAsB,GAAG,IAAI,CAmB/B"} \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/source-map.d.cts b/node_modules/@jridgewell/remapping/types/source-map.d.cts new file mode 100644 index 0000000..fdb7eed --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/source-map.d.cts @@ -0,0 +1,19 @@ +import type { GenMapping } from '@jridgewell/gen-mapping'; +import type { DecodedSourceMap, EncodedSourceMap, Options } from './types.cts'; +/** + * A SourceMap v3 compatible sourcemap, which only includes fields that were + * provided to it. + */ +export = class SourceMap { + file?: string | null; + mappings: EncodedSourceMap['mappings'] | DecodedSourceMap['mappings']; + sourceRoot?: string; + names: string[]; + sources: (string | null)[]; + sourcesContent?: (string | null)[]; + version: 3; + ignoreList: number[] | undefined; + constructor(map: GenMapping, options: Options); + toString(): string; +} +//# sourceMappingURL=source-map.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/source-map.d.cts.map b/node_modules/@jridgewell/remapping/types/source-map.d.cts.map new file mode 100644 index 0000000..593daf8 --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/source-map.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"source-map.d.ts","sourceRoot":"","sources":["../src/source-map.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAE3E;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC;IACX,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;gBAE7B,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;IAe7C,QAAQ,IAAI,MAAM;CAGnB"} \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/source-map.d.mts b/node_modules/@jridgewell/remapping/types/source-map.d.mts new file mode 100644 index 0000000..52ebba2 --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/source-map.d.mts @@ -0,0 +1,19 @@ +import type { GenMapping } from '@jridgewell/gen-mapping'; +import type { DecodedSourceMap, EncodedSourceMap, Options } from './types.mts'; +/** + * A SourceMap v3 compatible sourcemap, which only includes fields that were + * provided to it. + */ +export default class SourceMap { + file?: string | null; + mappings: EncodedSourceMap['mappings'] | DecodedSourceMap['mappings']; + sourceRoot?: string; + names: string[]; + sources: (string | null)[]; + sourcesContent?: (string | null)[]; + version: 3; + ignoreList: number[] | undefined; + constructor(map: GenMapping, options: Options); + toString(): string; +} +//# sourceMappingURL=source-map.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/source-map.d.mts.map b/node_modules/@jridgewell/remapping/types/source-map.d.mts.map new file mode 100644 index 0000000..593daf8 --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/source-map.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"source-map.d.ts","sourceRoot":"","sources":["../src/source-map.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAE3E;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC;IACX,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;gBAE7B,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;IAe7C,QAAQ,IAAI,MAAM;CAGnB"} \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/types.d.cts b/node_modules/@jridgewell/remapping/types/types.d.cts new file mode 100644 index 0000000..eeb320f --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/types.d.cts @@ -0,0 +1,16 @@ +import type { SourceMapInput } from '@jridgewell/trace-mapping'; +export type { SourceMapSegment, DecodedSourceMap, EncodedSourceMap, } from '@jridgewell/trace-mapping'; +export type { SourceMapInput }; +export type LoaderContext = { + readonly importer: string; + readonly depth: number; + source: string; + content: string | null | undefined; + ignore: boolean | undefined; +}; +export type SourceMapLoader = (file: string, ctx: LoaderContext) => SourceMapInput | null | undefined | void; +export type Options = { + excludeContent?: boolean; + decodedMappings?: boolean; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/types.d.cts.map b/node_modules/@jridgewell/remapping/types/types.d.cts.map new file mode 100644 index 0000000..4f8647e --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/types.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAC5B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,aAAa,KACf,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;AAE9C,MAAM,MAAM,OAAO,GAAG;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC"} \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/types.d.mts b/node_modules/@jridgewell/remapping/types/types.d.mts new file mode 100644 index 0000000..eeb320f --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/types.d.mts @@ -0,0 +1,16 @@ +import type { SourceMapInput } from '@jridgewell/trace-mapping'; +export type { SourceMapSegment, DecodedSourceMap, EncodedSourceMap, } from '@jridgewell/trace-mapping'; +export type { SourceMapInput }; +export type LoaderContext = { + readonly importer: string; + readonly depth: number; + source: string; + content: string | null | undefined; + ignore: boolean | undefined; +}; +export type SourceMapLoader = (file: string, ctx: LoaderContext) => SourceMapInput | null | undefined | void; +export type Options = { + excludeContent?: boolean; + decodedMappings?: boolean; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/remapping/types/types.d.mts.map b/node_modules/@jridgewell/remapping/types/types.d.mts.map new file mode 100644 index 0000000..4f8647e --- /dev/null +++ b/node_modules/@jridgewell/remapping/types/types.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAC5B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,aAAa,KACf,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;AAE9C,MAAM,MAAM,OAAO,GAAG;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC"} \ No newline at end of file diff --git a/node_modules/@jridgewell/resolve-uri/LICENSE b/node_modules/@jridgewell/resolve-uri/LICENSE new file mode 100644 index 0000000..0a81b2a --- /dev/null +++ b/node_modules/@jridgewell/resolve-uri/LICENSE @@ -0,0 +1,19 @@ +Copyright 2019 Justin Ridgewell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/node_modules/@jridgewell/resolve-uri/README.md b/node_modules/@jridgewell/resolve-uri/README.md new file mode 100644 index 0000000..2fe70df --- /dev/null +++ b/node_modules/@jridgewell/resolve-uri/README.md @@ -0,0 +1,40 @@ +# @jridgewell/resolve-uri + +> Resolve a URI relative to an optional base URI + +Resolve any combination of absolute URIs, protocol-realtive URIs, absolute paths, or relative paths. + +## Installation + +```sh +npm install @jridgewell/resolve-uri +``` + +## Usage + +```typescript +function resolve(input: string, base?: string): string; +``` + +```js +import resolve from '@jridgewell/resolve-uri'; + +resolve('foo', 'https://example.com'); // => 'https://example.com/foo' +``` + +| Input | Base | Resolution | Explanation | +|-----------------------|-------------------------|--------------------------------|--------------------------------------------------------------| +| `https://example.com` | _any_ | `https://example.com/` | Input is normalized only | +| `//example.com` | `https://base.com/` | `https://example.com/` | Input inherits the base's protocol | +| `//example.com` | _rest_ | `//example.com/` | Input is normalized only | +| `/example` | `https://base.com/` | `https://base.com/example` | Input inherits the base's origin | +| `/example` | `//base.com/` | `//base.com/example` | Input inherits the base's host and remains protocol relative | +| `/example` | _rest_ | `/example` | Input is normalized only | +| `example` | `https://base.com/dir/` | `https://base.com/dir/example` | Input is joined with the base | +| `example` | `https://base.com/file` | `https://base.com/example` | Input is joined with the base without its file | +| `example` | `//base.com/dir/` | `//base.com/dir/example` | Input is joined with the base's last directory | +| `example` | `//base.com/file` | `//base.com/example` | Input is joined with the base without its file | +| `example` | `/base/dir/` | `/base/dir/example` | Input is joined with the base's last directory | +| `example` | `/base/file` | `/base/example` | Input is joined with the base without its file | +| `example` | `base/dir/` | `base/dir/example` | Input is joined with the base's last directory | +| `example` | `base/file` | `base/example` | Input is joined with the base without its file | diff --git a/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs new file mode 100644 index 0000000..e958e88 --- /dev/null +++ b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs @@ -0,0 +1,232 @@ +// Matches the scheme of a URL, eg "http://" +const schemeRegex = /^[\w+.-]+:\/\//; +/** + * Matches the parts of a URL: + * 1. Scheme, including ":", guaranteed. + * 2. User/password, including "@", optional. + * 3. Host, guaranteed. + * 4. Port, including ":", optional. + * 5. Path, including "/", optional. + * 6. Query, including "?", optional. + * 7. Hash, including "#", optional. + */ +const urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/; +/** + * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start + * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive). + * + * 1. Host, optional. + * 2. Path, which may include "/", guaranteed. + * 3. Query, including "?", optional. + * 4. Hash, including "#", optional. + */ +const fileRegex = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i; +function isAbsoluteUrl(input) { + return schemeRegex.test(input); +} +function isSchemeRelativeUrl(input) { + return input.startsWith('//'); +} +function isAbsolutePath(input) { + return input.startsWith('/'); +} +function isFileUrl(input) { + return input.startsWith('file:'); +} +function isRelative(input) { + return /^[.?#]/.test(input); +} +function parseAbsoluteUrl(input) { + const match = urlRegex.exec(input); + return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/', match[6] || '', match[7] || ''); +} +function parseFileUrl(input) { + const match = fileRegex.exec(input); + const path = match[2]; + return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path, match[3] || '', match[4] || ''); +} +function makeUrl(scheme, user, host, port, path, query, hash) { + return { + scheme, + user, + host, + port, + path, + query, + hash, + type: 7 /* Absolute */, + }; +} +function parseUrl(input) { + if (isSchemeRelativeUrl(input)) { + const url = parseAbsoluteUrl('http:' + input); + url.scheme = ''; + url.type = 6 /* SchemeRelative */; + return url; + } + if (isAbsolutePath(input)) { + const url = parseAbsoluteUrl('http://foo.com' + input); + url.scheme = ''; + url.host = ''; + url.type = 5 /* AbsolutePath */; + return url; + } + if (isFileUrl(input)) + return parseFileUrl(input); + if (isAbsoluteUrl(input)) + return parseAbsoluteUrl(input); + const url = parseAbsoluteUrl('http://foo.com/' + input); + url.scheme = ''; + url.host = ''; + url.type = input + ? input.startsWith('?') + ? 3 /* Query */ + : input.startsWith('#') + ? 2 /* Hash */ + : 4 /* RelativePath */ + : 1 /* Empty */; + return url; +} +function stripPathFilename(path) { + // If a path ends with a parent directory "..", then it's a relative path with excess parent + // paths. It's not a file, so we can't strip it. + if (path.endsWith('/..')) + return path; + const index = path.lastIndexOf('/'); + return path.slice(0, index + 1); +} +function mergePaths(url, base) { + normalizePath(base, base.type); + // If the path is just a "/", then it was an empty path to begin with (remember, we're a relative + // path). + if (url.path === '/') { + url.path = base.path; + } + else { + // Resolution happens relative to the base path's directory, not the file. + url.path = stripPathFilename(base.path) + url.path; + } +} +/** + * The path can have empty directories "//", unneeded parents "foo/..", or current directory + * "foo/.". We need to normalize to a standard representation. + */ +function normalizePath(url, type) { + const rel = type <= 4 /* RelativePath */; + const pieces = url.path.split('/'); + // We need to preserve the first piece always, so that we output a leading slash. The item at + // pieces[0] is an empty string. + let pointer = 1; + // Positive is the number of real directories we've output, used for popping a parent directory. + // Eg, "foo/bar/.." will have a positive 2, and we can decrement to be left with just "foo". + let positive = 0; + // We need to keep a trailing slash if we encounter an empty directory (eg, splitting "foo/" will + // generate `["foo", ""]` pieces). And, if we pop a parent directory. But once we encounter a + // real directory, we won't need to append, unless the other conditions happen again. + let addTrailingSlash = false; + for (let i = 1; i < pieces.length; i++) { + const piece = pieces[i]; + // An empty directory, could be a trailing slash, or just a double "//" in the path. + if (!piece) { + addTrailingSlash = true; + continue; + } + // If we encounter a real directory, then we don't need to append anymore. + addTrailingSlash = false; + // A current directory, which we can always drop. + if (piece === '.') + continue; + // A parent directory, we need to see if there are any real directories we can pop. Else, we + // have an excess of parents, and we'll need to keep the "..". + if (piece === '..') { + if (positive) { + addTrailingSlash = true; + positive--; + pointer--; + } + else if (rel) { + // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute + // URL, protocol relative URL, or an absolute path, we don't need to keep excess. + pieces[pointer++] = piece; + } + continue; + } + // We've encountered a real directory. Move it to the next insertion pointer, which accounts for + // any popped or dropped directories. + pieces[pointer++] = piece; + positive++; + } + let path = ''; + for (let i = 1; i < pointer; i++) { + path += '/' + pieces[i]; + } + if (!path || (addTrailingSlash && !path.endsWith('/..'))) { + path += '/'; + } + url.path = path; +} +/** + * Attempts to resolve `input` URL/path relative to `base`. + */ +function resolve(input, base) { + if (!input && !base) + return ''; + const url = parseUrl(input); + let inputType = url.type; + if (base && inputType !== 7 /* Absolute */) { + const baseUrl = parseUrl(base); + const baseType = baseUrl.type; + switch (inputType) { + case 1 /* Empty */: + url.hash = baseUrl.hash; + // fall through + case 2 /* Hash */: + url.query = baseUrl.query; + // fall through + case 3 /* Query */: + case 4 /* RelativePath */: + mergePaths(url, baseUrl); + // fall through + case 5 /* AbsolutePath */: + // The host, user, and port are joined, you can't copy one without the others. + url.user = baseUrl.user; + url.host = baseUrl.host; + url.port = baseUrl.port; + // fall through + case 6 /* SchemeRelative */: + // The input doesn't have a schema at least, so we need to copy at least that over. + url.scheme = baseUrl.scheme; + } + if (baseType > inputType) + inputType = baseType; + } + normalizePath(url, inputType); + const queryHash = url.query + url.hash; + switch (inputType) { + // This is impossible, because of the empty checks at the start of the function. + // case UrlType.Empty: + case 2 /* Hash */: + case 3 /* Query */: + return queryHash; + case 4 /* RelativePath */: { + // The first char is always a "/", and we need it to be relative. + const path = url.path.slice(1); + if (!path) + return queryHash || '.'; + if (isRelative(base || input) && !isRelative(path)) { + // If base started with a leading ".", or there is no base and input started with a ".", + // then we need to ensure that the relative path starts with a ".". We don't know if + // relative starts with a "..", though, so check before prepending. + return './' + path + queryHash; + } + return path + queryHash; + } + case 5 /* AbsolutePath */: + return url.path + queryHash; + default: + return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash; + } +} + +export { resolve as default }; +//# sourceMappingURL=resolve-uri.mjs.map diff --git a/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map new file mode 100644 index 0000000..1de97d0 --- /dev/null +++ b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"resolve-uri.mjs","sources":["../src/resolve-uri.ts"],"sourcesContent":["// Matches the scheme of a URL, eg \"http://\"\nconst schemeRegex = /^[\\w+.-]+:\\/\\//;\n\n/**\n * Matches the parts of a URL:\n * 1. Scheme, including \":\", guaranteed.\n * 2. User/password, including \"@\", optional.\n * 3. Host, guaranteed.\n * 4. Port, including \":\", optional.\n * 5. Path, including \"/\", optional.\n * 6. Query, including \"?\", optional.\n * 7. Hash, including \"#\", optional.\n */\nconst urlRegex = /^([\\w+.-]+:)\\/\\/([^@/#?]*@)?([^:/#?]*)(:\\d+)?(\\/[^#?]*)?(\\?[^#]*)?(#.*)?/;\n\n/**\n * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start\n * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).\n *\n * 1. Host, optional.\n * 2. Path, which may include \"/\", guaranteed.\n * 3. Query, including \"?\", optional.\n * 4. Hash, including \"#\", optional.\n */\nconst fileRegex = /^file:(?:\\/\\/((?![a-z]:)[^/#?]*)?)?(\\/?[^#?]*)(\\?[^#]*)?(#.*)?/i;\n\ntype Url = {\n scheme: string;\n user: string;\n host: string;\n port: string;\n path: string;\n query: string;\n hash: string;\n type: UrlType;\n};\n\nconst enum UrlType {\n Empty = 1,\n Hash = 2,\n Query = 3,\n RelativePath = 4,\n AbsolutePath = 5,\n SchemeRelative = 6,\n Absolute = 7,\n}\n\nfunction isAbsoluteUrl(input: string): boolean {\n return schemeRegex.test(input);\n}\n\nfunction isSchemeRelativeUrl(input: string): boolean {\n return input.startsWith('//');\n}\n\nfunction isAbsolutePath(input: string): boolean {\n return input.startsWith('/');\n}\n\nfunction isFileUrl(input: string): boolean {\n return input.startsWith('file:');\n}\n\nfunction isRelative(input: string): boolean {\n return /^[.?#]/.test(input);\n}\n\nfunction parseAbsoluteUrl(input: string): Url {\n const match = urlRegex.exec(input)!;\n return makeUrl(\n match[1],\n match[2] || '',\n match[3],\n match[4] || '',\n match[5] || '/',\n match[6] || '',\n match[7] || '',\n );\n}\n\nfunction parseFileUrl(input: string): Url {\n const match = fileRegex.exec(input)!;\n const path = match[2];\n return makeUrl(\n 'file:',\n '',\n match[1] || '',\n '',\n isAbsolutePath(path) ? path : '/' + path,\n match[3] || '',\n match[4] || '',\n );\n}\n\nfunction makeUrl(\n scheme: string,\n user: string,\n host: string,\n port: string,\n path: string,\n query: string,\n hash: string,\n): Url {\n return {\n scheme,\n user,\n host,\n port,\n path,\n query,\n hash,\n type: UrlType.Absolute,\n };\n}\n\nfunction parseUrl(input: string): Url {\n if (isSchemeRelativeUrl(input)) {\n const url = parseAbsoluteUrl('http:' + input);\n url.scheme = '';\n url.type = UrlType.SchemeRelative;\n return url;\n }\n\n if (isAbsolutePath(input)) {\n const url = parseAbsoluteUrl('http://foo.com' + input);\n url.scheme = '';\n url.host = '';\n url.type = UrlType.AbsolutePath;\n return url;\n }\n\n if (isFileUrl(input)) return parseFileUrl(input);\n\n if (isAbsoluteUrl(input)) return parseAbsoluteUrl(input);\n\n const url = parseAbsoluteUrl('http://foo.com/' + input);\n url.scheme = '';\n url.host = '';\n url.type = input\n ? input.startsWith('?')\n ? UrlType.Query\n : input.startsWith('#')\n ? UrlType.Hash\n : UrlType.RelativePath\n : UrlType.Empty;\n return url;\n}\n\nfunction stripPathFilename(path: string): string {\n // If a path ends with a parent directory \"..\", then it's a relative path with excess parent\n // paths. It's not a file, so we can't strip it.\n if (path.endsWith('/..')) return path;\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\n\nfunction mergePaths(url: Url, base: Url) {\n normalizePath(base, base.type);\n\n // If the path is just a \"/\", then it was an empty path to begin with (remember, we're a relative\n // path).\n if (url.path === '/') {\n url.path = base.path;\n } else {\n // Resolution happens relative to the base path's directory, not the file.\n url.path = stripPathFilename(base.path) + url.path;\n }\n}\n\n/**\n * The path can have empty directories \"//\", unneeded parents \"foo/..\", or current directory\n * \"foo/.\". We need to normalize to a standard representation.\n */\nfunction normalizePath(url: Url, type: UrlType) {\n const rel = type <= UrlType.RelativePath;\n const pieces = url.path.split('/');\n\n // We need to preserve the first piece always, so that we output a leading slash. The item at\n // pieces[0] is an empty string.\n let pointer = 1;\n\n // Positive is the number of real directories we've output, used for popping a parent directory.\n // Eg, \"foo/bar/..\" will have a positive 2, and we can decrement to be left with just \"foo\".\n let positive = 0;\n\n // We need to keep a trailing slash if we encounter an empty directory (eg, splitting \"foo/\" will\n // generate `[\"foo\", \"\"]` pieces). And, if we pop a parent directory. But once we encounter a\n // real directory, we won't need to append, unless the other conditions happen again.\n let addTrailingSlash = false;\n\n for (let i = 1; i < pieces.length; i++) {\n const piece = pieces[i];\n\n // An empty directory, could be a trailing slash, or just a double \"//\" in the path.\n if (!piece) {\n addTrailingSlash = true;\n continue;\n }\n\n // If we encounter a real directory, then we don't need to append anymore.\n addTrailingSlash = false;\n\n // A current directory, which we can always drop.\n if (piece === '.') continue;\n\n // A parent directory, we need to see if there are any real directories we can pop. Else, we\n // have an excess of parents, and we'll need to keep the \"..\".\n if (piece === '..') {\n if (positive) {\n addTrailingSlash = true;\n positive--;\n pointer--;\n } else if (rel) {\n // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute\n // URL, protocol relative URL, or an absolute path, we don't need to keep excess.\n pieces[pointer++] = piece;\n }\n continue;\n }\n\n // We've encountered a real directory. Move it to the next insertion pointer, which accounts for\n // any popped or dropped directories.\n pieces[pointer++] = piece;\n positive++;\n }\n\n let path = '';\n for (let i = 1; i < pointer; i++) {\n path += '/' + pieces[i];\n }\n if (!path || (addTrailingSlash && !path.endsWith('/..'))) {\n path += '/';\n }\n url.path = path;\n}\n\n/**\n * Attempts to resolve `input` URL/path relative to `base`.\n */\nexport default function resolve(input: string, base: string | undefined): string {\n if (!input && !base) return '';\n\n const url = parseUrl(input);\n let inputType = url.type;\n\n if (base && inputType !== UrlType.Absolute) {\n const baseUrl = parseUrl(base);\n const baseType = baseUrl.type;\n\n switch (inputType) {\n case UrlType.Empty:\n url.hash = baseUrl.hash;\n // fall through\n\n case UrlType.Hash:\n url.query = baseUrl.query;\n // fall through\n\n case UrlType.Query:\n case UrlType.RelativePath:\n mergePaths(url, baseUrl);\n // fall through\n\n case UrlType.AbsolutePath:\n // The host, user, and port are joined, you can't copy one without the others.\n url.user = baseUrl.user;\n url.host = baseUrl.host;\n url.port = baseUrl.port;\n // fall through\n\n case UrlType.SchemeRelative:\n // The input doesn't have a schema at least, so we need to copy at least that over.\n url.scheme = baseUrl.scheme;\n }\n if (baseType > inputType) inputType = baseType;\n }\n\n normalizePath(url, inputType);\n\n const queryHash = url.query + url.hash;\n switch (inputType) {\n // This is impossible, because of the empty checks at the start of the function.\n // case UrlType.Empty:\n\n case UrlType.Hash:\n case UrlType.Query:\n return queryHash;\n\n case UrlType.RelativePath: {\n // The first char is always a \"/\", and we need it to be relative.\n const path = url.path.slice(1);\n\n if (!path) return queryHash || '.';\n\n if (isRelative(base || input) && !isRelative(path)) {\n // If base started with a leading \".\", or there is no base and input started with a \".\",\n // then we need to ensure that the relative path starts with a \".\". We don't know if\n // relative starts with a \"..\", though, so check before prepending.\n return './' + path + queryHash;\n }\n\n return path + queryHash;\n }\n\n case UrlType.AbsolutePath:\n return url.path + queryHash;\n\n default:\n return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;\n }\n}\n"],"names":[],"mappings":"AAAA;AACA,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAErC;;;;;;;;;;AAUA,MAAM,QAAQ,GAAG,0EAA0E,CAAC;AAE5F;;;;;;;;;AASA,MAAM,SAAS,GAAG,iEAAiE,CAAC;AAuBpF,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC;IACpC,OAAO,OAAO,CACZ,KAAK,CAAC,CAAC,CAAC,EACR,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,KAAK,CAAC,CAAC,CAAC,EACR,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EACf,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CACf,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC;IACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,OAAO,OAAO,CACZ,OAAO,EACP,EAAE,EACF,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,EAAE,EACF,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,EACxC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CACf,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CACd,MAAc,EACd,IAAY,EACZ,IAAY,EACZ,IAAY,EACZ,IAAY,EACZ,KAAa,EACb,IAAY;IAEZ,OAAO;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;QAC9B,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;QAC9C,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;QAChB,GAAG,CAAC,IAAI,0BAA0B;QAClC,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;QACzB,MAAM,GAAG,GAAG,gBAAgB,CAAC,gBAAgB,GAAG,KAAK,CAAC,CAAC;QACvD,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;QAChB,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,IAAI,wBAAwB;QAChC,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;IAEjD,IAAI,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAEzD,MAAM,GAAG,GAAG,gBAAgB,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC;IACxD,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IACd,GAAG,CAAC,IAAI,GAAG,KAAK;UACZ,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;;cAEnB,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;;;wBAGT;IAClB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;;;IAGrC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,GAAQ,EAAE,IAAS;IACrC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;;IAI/B,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;QACpB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;KACtB;SAAM;;QAEL,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;KACpD;AACH,CAAC;AAED;;;;AAIA,SAAS,aAAa,CAAC,GAAQ,EAAE,IAAa;IAC5C,MAAM,GAAG,GAAG,IAAI,yBAAyB;IACzC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;;IAInC,IAAI,OAAO,GAAG,CAAC,CAAC;;;IAIhB,IAAI,QAAQ,GAAG,CAAC,CAAC;;;;IAKjB,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;;QAGxB,IAAI,CAAC,KAAK,EAAE;YACV,gBAAgB,GAAG,IAAI,CAAC;YACxB,SAAS;SACV;;QAGD,gBAAgB,GAAG,KAAK,CAAC;;QAGzB,IAAI,KAAK,KAAK,GAAG;YAAE,SAAS;;;QAI5B,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,IAAI,QAAQ,EAAE;gBACZ,gBAAgB,GAAG,IAAI,CAAC;gBACxB,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE,CAAC;aACX;iBAAM,IAAI,GAAG,EAAE;;;gBAGd,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC;aAC3B;YACD,SAAS;SACV;;;QAID,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC;QAC1B,QAAQ,EAAE,CAAC;KACZ;IAED,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;QAChC,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;KACzB;IACD,IAAI,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;QACxD,IAAI,IAAI,GAAG,CAAC;KACb;IACD,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;AAClB,CAAC;AAED;;;SAGwB,OAAO,CAAC,KAAa,EAAE,IAAwB;IACrE,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAE/B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;IAEzB,IAAI,IAAI,IAAI,SAAS,uBAAuB;QAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;QAE9B,QAAQ,SAAS;YACf;gBACE,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;YAG1B;gBACE,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;;YAG5B,mBAAmB;YACnB;gBACE,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;;YAG3B;;gBAEE,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBACxB,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBACxB,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;YAG1B;;gBAEE,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;SAC/B;QACD,IAAI,QAAQ,GAAG,SAAS;YAAE,SAAS,GAAG,QAAQ,CAAC;KAChD;IAED,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAE9B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC;IACvC,QAAQ,SAAS;;;QAIf,kBAAkB;QAClB;YACE,OAAO,SAAS,CAAC;QAEnB,2BAA2B;;YAEzB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,CAAC,IAAI;gBAAE,OAAO,SAAS,IAAI,GAAG,CAAC;YAEnC,IAAI,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;;;;gBAIlD,OAAO,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;aAChC;YAED,OAAO,IAAI,GAAG,SAAS,CAAC;SACzB;QAED;YACE,OAAO,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;QAE9B;YACE,OAAO,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;KACpF;AACH;;;;"} \ No newline at end of file diff --git a/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js new file mode 100644 index 0000000..a783049 --- /dev/null +++ b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js @@ -0,0 +1,240 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.resolveURI = factory()); +})(this, (function () { 'use strict'; + + // Matches the scheme of a URL, eg "http://" + const schemeRegex = /^[\w+.-]+:\/\//; + /** + * Matches the parts of a URL: + * 1. Scheme, including ":", guaranteed. + * 2. User/password, including "@", optional. + * 3. Host, guaranteed. + * 4. Port, including ":", optional. + * 5. Path, including "/", optional. + * 6. Query, including "?", optional. + * 7. Hash, including "#", optional. + */ + const urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/; + /** + * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start + * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive). + * + * 1. Host, optional. + * 2. Path, which may include "/", guaranteed. + * 3. Query, including "?", optional. + * 4. Hash, including "#", optional. + */ + const fileRegex = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i; + function isAbsoluteUrl(input) { + return schemeRegex.test(input); + } + function isSchemeRelativeUrl(input) { + return input.startsWith('//'); + } + function isAbsolutePath(input) { + return input.startsWith('/'); + } + function isFileUrl(input) { + return input.startsWith('file:'); + } + function isRelative(input) { + return /^[.?#]/.test(input); + } + function parseAbsoluteUrl(input) { + const match = urlRegex.exec(input); + return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/', match[6] || '', match[7] || ''); + } + function parseFileUrl(input) { + const match = fileRegex.exec(input); + const path = match[2]; + return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path, match[3] || '', match[4] || ''); + } + function makeUrl(scheme, user, host, port, path, query, hash) { + return { + scheme, + user, + host, + port, + path, + query, + hash, + type: 7 /* Absolute */, + }; + } + function parseUrl(input) { + if (isSchemeRelativeUrl(input)) { + const url = parseAbsoluteUrl('http:' + input); + url.scheme = ''; + url.type = 6 /* SchemeRelative */; + return url; + } + if (isAbsolutePath(input)) { + const url = parseAbsoluteUrl('http://foo.com' + input); + url.scheme = ''; + url.host = ''; + url.type = 5 /* AbsolutePath */; + return url; + } + if (isFileUrl(input)) + return parseFileUrl(input); + if (isAbsoluteUrl(input)) + return parseAbsoluteUrl(input); + const url = parseAbsoluteUrl('http://foo.com/' + input); + url.scheme = ''; + url.host = ''; + url.type = input + ? input.startsWith('?') + ? 3 /* Query */ + : input.startsWith('#') + ? 2 /* Hash */ + : 4 /* RelativePath */ + : 1 /* Empty */; + return url; + } + function stripPathFilename(path) { + // If a path ends with a parent directory "..", then it's a relative path with excess parent + // paths. It's not a file, so we can't strip it. + if (path.endsWith('/..')) + return path; + const index = path.lastIndexOf('/'); + return path.slice(0, index + 1); + } + function mergePaths(url, base) { + normalizePath(base, base.type); + // If the path is just a "/", then it was an empty path to begin with (remember, we're a relative + // path). + if (url.path === '/') { + url.path = base.path; + } + else { + // Resolution happens relative to the base path's directory, not the file. + url.path = stripPathFilename(base.path) + url.path; + } + } + /** + * The path can have empty directories "//", unneeded parents "foo/..", or current directory + * "foo/.". We need to normalize to a standard representation. + */ + function normalizePath(url, type) { + const rel = type <= 4 /* RelativePath */; + const pieces = url.path.split('/'); + // We need to preserve the first piece always, so that we output a leading slash. The item at + // pieces[0] is an empty string. + let pointer = 1; + // Positive is the number of real directories we've output, used for popping a parent directory. + // Eg, "foo/bar/.." will have a positive 2, and we can decrement to be left with just "foo". + let positive = 0; + // We need to keep a trailing slash if we encounter an empty directory (eg, splitting "foo/" will + // generate `["foo", ""]` pieces). And, if we pop a parent directory. But once we encounter a + // real directory, we won't need to append, unless the other conditions happen again. + let addTrailingSlash = false; + for (let i = 1; i < pieces.length; i++) { + const piece = pieces[i]; + // An empty directory, could be a trailing slash, or just a double "//" in the path. + if (!piece) { + addTrailingSlash = true; + continue; + } + // If we encounter a real directory, then we don't need to append anymore. + addTrailingSlash = false; + // A current directory, which we can always drop. + if (piece === '.') + continue; + // A parent directory, we need to see if there are any real directories we can pop. Else, we + // have an excess of parents, and we'll need to keep the "..". + if (piece === '..') { + if (positive) { + addTrailingSlash = true; + positive--; + pointer--; + } + else if (rel) { + // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute + // URL, protocol relative URL, or an absolute path, we don't need to keep excess. + pieces[pointer++] = piece; + } + continue; + } + // We've encountered a real directory. Move it to the next insertion pointer, which accounts for + // any popped or dropped directories. + pieces[pointer++] = piece; + positive++; + } + let path = ''; + for (let i = 1; i < pointer; i++) { + path += '/' + pieces[i]; + } + if (!path || (addTrailingSlash && !path.endsWith('/..'))) { + path += '/'; + } + url.path = path; + } + /** + * Attempts to resolve `input` URL/path relative to `base`. + */ + function resolve(input, base) { + if (!input && !base) + return ''; + const url = parseUrl(input); + let inputType = url.type; + if (base && inputType !== 7 /* Absolute */) { + const baseUrl = parseUrl(base); + const baseType = baseUrl.type; + switch (inputType) { + case 1 /* Empty */: + url.hash = baseUrl.hash; + // fall through + case 2 /* Hash */: + url.query = baseUrl.query; + // fall through + case 3 /* Query */: + case 4 /* RelativePath */: + mergePaths(url, baseUrl); + // fall through + case 5 /* AbsolutePath */: + // The host, user, and port are joined, you can't copy one without the others. + url.user = baseUrl.user; + url.host = baseUrl.host; + url.port = baseUrl.port; + // fall through + case 6 /* SchemeRelative */: + // The input doesn't have a schema at least, so we need to copy at least that over. + url.scheme = baseUrl.scheme; + } + if (baseType > inputType) + inputType = baseType; + } + normalizePath(url, inputType); + const queryHash = url.query + url.hash; + switch (inputType) { + // This is impossible, because of the empty checks at the start of the function. + // case UrlType.Empty: + case 2 /* Hash */: + case 3 /* Query */: + return queryHash; + case 4 /* RelativePath */: { + // The first char is always a "/", and we need it to be relative. + const path = url.path.slice(1); + if (!path) + return queryHash || '.'; + if (isRelative(base || input) && !isRelative(path)) { + // If base started with a leading ".", or there is no base and input started with a ".", + // then we need to ensure that the relative path starts with a ".". We don't know if + // relative starts with a "..", though, so check before prepending. + return './' + path + queryHash; + } + return path + queryHash; + } + case 5 /* AbsolutePath */: + return url.path + queryHash; + default: + return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash; + } + } + + return resolve; + +})); +//# sourceMappingURL=resolve-uri.umd.js.map diff --git a/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map new file mode 100644 index 0000000..70a37f2 --- /dev/null +++ b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolve-uri.umd.js","sources":["../src/resolve-uri.ts"],"sourcesContent":["// Matches the scheme of a URL, eg \"http://\"\nconst schemeRegex = /^[\\w+.-]+:\\/\\//;\n\n/**\n * Matches the parts of a URL:\n * 1. Scheme, including \":\", guaranteed.\n * 2. User/password, including \"@\", optional.\n * 3. Host, guaranteed.\n * 4. Port, including \":\", optional.\n * 5. Path, including \"/\", optional.\n * 6. Query, including \"?\", optional.\n * 7. Hash, including \"#\", optional.\n */\nconst urlRegex = /^([\\w+.-]+:)\\/\\/([^@/#?]*@)?([^:/#?]*)(:\\d+)?(\\/[^#?]*)?(\\?[^#]*)?(#.*)?/;\n\n/**\n * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start\n * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).\n *\n * 1. Host, optional.\n * 2. Path, which may include \"/\", guaranteed.\n * 3. Query, including \"?\", optional.\n * 4. Hash, including \"#\", optional.\n */\nconst fileRegex = /^file:(?:\\/\\/((?![a-z]:)[^/#?]*)?)?(\\/?[^#?]*)(\\?[^#]*)?(#.*)?/i;\n\ntype Url = {\n scheme: string;\n user: string;\n host: string;\n port: string;\n path: string;\n query: string;\n hash: string;\n type: UrlType;\n};\n\nconst enum UrlType {\n Empty = 1,\n Hash = 2,\n Query = 3,\n RelativePath = 4,\n AbsolutePath = 5,\n SchemeRelative = 6,\n Absolute = 7,\n}\n\nfunction isAbsoluteUrl(input: string): boolean {\n return schemeRegex.test(input);\n}\n\nfunction isSchemeRelativeUrl(input: string): boolean {\n return input.startsWith('//');\n}\n\nfunction isAbsolutePath(input: string): boolean {\n return input.startsWith('/');\n}\n\nfunction isFileUrl(input: string): boolean {\n return input.startsWith('file:');\n}\n\nfunction isRelative(input: string): boolean {\n return /^[.?#]/.test(input);\n}\n\nfunction parseAbsoluteUrl(input: string): Url {\n const match = urlRegex.exec(input)!;\n return makeUrl(\n match[1],\n match[2] || '',\n match[3],\n match[4] || '',\n match[5] || '/',\n match[6] || '',\n match[7] || '',\n );\n}\n\nfunction parseFileUrl(input: string): Url {\n const match = fileRegex.exec(input)!;\n const path = match[2];\n return makeUrl(\n 'file:',\n '',\n match[1] || '',\n '',\n isAbsolutePath(path) ? path : '/' + path,\n match[3] || '',\n match[4] || '',\n );\n}\n\nfunction makeUrl(\n scheme: string,\n user: string,\n host: string,\n port: string,\n path: string,\n query: string,\n hash: string,\n): Url {\n return {\n scheme,\n user,\n host,\n port,\n path,\n query,\n hash,\n type: UrlType.Absolute,\n };\n}\n\nfunction parseUrl(input: string): Url {\n if (isSchemeRelativeUrl(input)) {\n const url = parseAbsoluteUrl('http:' + input);\n url.scheme = '';\n url.type = UrlType.SchemeRelative;\n return url;\n }\n\n if (isAbsolutePath(input)) {\n const url = parseAbsoluteUrl('http://foo.com' + input);\n url.scheme = '';\n url.host = '';\n url.type = UrlType.AbsolutePath;\n return url;\n }\n\n if (isFileUrl(input)) return parseFileUrl(input);\n\n if (isAbsoluteUrl(input)) return parseAbsoluteUrl(input);\n\n const url = parseAbsoluteUrl('http://foo.com/' + input);\n url.scheme = '';\n url.host = '';\n url.type = input\n ? input.startsWith('?')\n ? UrlType.Query\n : input.startsWith('#')\n ? UrlType.Hash\n : UrlType.RelativePath\n : UrlType.Empty;\n return url;\n}\n\nfunction stripPathFilename(path: string): string {\n // If a path ends with a parent directory \"..\", then it's a relative path with excess parent\n // paths. It's not a file, so we can't strip it.\n if (path.endsWith('/..')) return path;\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\n\nfunction mergePaths(url: Url, base: Url) {\n normalizePath(base, base.type);\n\n // If the path is just a \"/\", then it was an empty path to begin with (remember, we're a relative\n // path).\n if (url.path === '/') {\n url.path = base.path;\n } else {\n // Resolution happens relative to the base path's directory, not the file.\n url.path = stripPathFilename(base.path) + url.path;\n }\n}\n\n/**\n * The path can have empty directories \"//\", unneeded parents \"foo/..\", or current directory\n * \"foo/.\". We need to normalize to a standard representation.\n */\nfunction normalizePath(url: Url, type: UrlType) {\n const rel = type <= UrlType.RelativePath;\n const pieces = url.path.split('/');\n\n // We need to preserve the first piece always, so that we output a leading slash. The item at\n // pieces[0] is an empty string.\n let pointer = 1;\n\n // Positive is the number of real directories we've output, used for popping a parent directory.\n // Eg, \"foo/bar/..\" will have a positive 2, and we can decrement to be left with just \"foo\".\n let positive = 0;\n\n // We need to keep a trailing slash if we encounter an empty directory (eg, splitting \"foo/\" will\n // generate `[\"foo\", \"\"]` pieces). And, if we pop a parent directory. But once we encounter a\n // real directory, we won't need to append, unless the other conditions happen again.\n let addTrailingSlash = false;\n\n for (let i = 1; i < pieces.length; i++) {\n const piece = pieces[i];\n\n // An empty directory, could be a trailing slash, or just a double \"//\" in the path.\n if (!piece) {\n addTrailingSlash = true;\n continue;\n }\n\n // If we encounter a real directory, then we don't need to append anymore.\n addTrailingSlash = false;\n\n // A current directory, which we can always drop.\n if (piece === '.') continue;\n\n // A parent directory, we need to see if there are any real directories we can pop. Else, we\n // have an excess of parents, and we'll need to keep the \"..\".\n if (piece === '..') {\n if (positive) {\n addTrailingSlash = true;\n positive--;\n pointer--;\n } else if (rel) {\n // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute\n // URL, protocol relative URL, or an absolute path, we don't need to keep excess.\n pieces[pointer++] = piece;\n }\n continue;\n }\n\n // We've encountered a real directory. Move it to the next insertion pointer, which accounts for\n // any popped or dropped directories.\n pieces[pointer++] = piece;\n positive++;\n }\n\n let path = '';\n for (let i = 1; i < pointer; i++) {\n path += '/' + pieces[i];\n }\n if (!path || (addTrailingSlash && !path.endsWith('/..'))) {\n path += '/';\n }\n url.path = path;\n}\n\n/**\n * Attempts to resolve `input` URL/path relative to `base`.\n */\nexport default function resolve(input: string, base: string | undefined): string {\n if (!input && !base) return '';\n\n const url = parseUrl(input);\n let inputType = url.type;\n\n if (base && inputType !== UrlType.Absolute) {\n const baseUrl = parseUrl(base);\n const baseType = baseUrl.type;\n\n switch (inputType) {\n case UrlType.Empty:\n url.hash = baseUrl.hash;\n // fall through\n\n case UrlType.Hash:\n url.query = baseUrl.query;\n // fall through\n\n case UrlType.Query:\n case UrlType.RelativePath:\n mergePaths(url, baseUrl);\n // fall through\n\n case UrlType.AbsolutePath:\n // The host, user, and port are joined, you can't copy one without the others.\n url.user = baseUrl.user;\n url.host = baseUrl.host;\n url.port = baseUrl.port;\n // fall through\n\n case UrlType.SchemeRelative:\n // The input doesn't have a schema at least, so we need to copy at least that over.\n url.scheme = baseUrl.scheme;\n }\n if (baseType > inputType) inputType = baseType;\n }\n\n normalizePath(url, inputType);\n\n const queryHash = url.query + url.hash;\n switch (inputType) {\n // This is impossible, because of the empty checks at the start of the function.\n // case UrlType.Empty:\n\n case UrlType.Hash:\n case UrlType.Query:\n return queryHash;\n\n case UrlType.RelativePath: {\n // The first char is always a \"/\", and we need it to be relative.\n const path = url.path.slice(1);\n\n if (!path) return queryHash || '.';\n\n if (isRelative(base || input) && !isRelative(path)) {\n // If base started with a leading \".\", or there is no base and input started with a \".\",\n // then we need to ensure that the relative path starts with a \".\". We don't know if\n // relative starts with a \"..\", though, so check before prepending.\n return './' + path + queryHash;\n }\n\n return path + queryHash;\n }\n\n case UrlType.AbsolutePath:\n return url.path + queryHash;\n\n default:\n return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;\n }\n}\n"],"names":[],"mappings":";;;;;;IAAA;IACA,MAAM,WAAW,GAAG,gBAAgB,CAAC;IAErC;;;;;;;;;;IAUA,MAAM,QAAQ,GAAG,0EAA0E,CAAC;IAE5F;;;;;;;;;IASA,MAAM,SAAS,GAAG,iEAAiE,CAAC;IAuBpF,SAAS,aAAa,CAAC,KAAa;QAClC,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,SAAS,mBAAmB,CAAC,KAAa;QACxC,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,cAAc,CAAC,KAAa;QACnC,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS,SAAS,CAAC,KAAa;QAC9B,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,SAAS,UAAU,CAAC,KAAa;QAC/B,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,gBAAgB,CAAC,KAAa;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC;QACpC,OAAO,OAAO,CACZ,KAAK,CAAC,CAAC,CAAC,EACR,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,KAAK,CAAC,CAAC,CAAC,EACR,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EACf,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CACf,CAAC;IACJ,CAAC;IAED,SAAS,YAAY,CAAC,KAAa;QACjC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,OAAO,OAAO,CACZ,OAAO,EACP,EAAE,EACF,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,EAAE,EACF,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,EACxC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CACf,CAAC;IACJ,CAAC;IAED,SAAS,OAAO,CACd,MAAc,EACd,IAAY,EACZ,IAAY,EACZ,IAAY,EACZ,IAAY,EACZ,KAAa,EACb,IAAY;QAEZ,OAAO;YACL,MAAM;YACN,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,KAAK;YACL,IAAI;YACJ,IAAI;SACL,CAAC;IACJ,CAAC;IAED,SAAS,QAAQ,CAAC,KAAa;QAC7B,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;YAC9B,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;YAC9C,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;YAChB,GAAG,CAAC,IAAI,0BAA0B;YAClC,OAAO,GAAG,CAAC;SACZ;QAED,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;YACzB,MAAM,GAAG,GAAG,gBAAgB,CAAC,gBAAgB,GAAG,KAAK,CAAC,CAAC;YACvD,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;YAChB,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,IAAI,wBAAwB;YAChC,OAAO,GAAG,CAAC;SACZ;QAED,IAAI,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAEjD,IAAI,aAAa,CAAC,KAAK,CAAC;YAAE,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAEzD,MAAM,GAAG,GAAG,gBAAgB,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC;QACxD,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;QAChB,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,IAAI,GAAG,KAAK;cACZ,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;;kBAEnB,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;;;4BAGT;QAClB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,SAAS,iBAAiB,CAAC,IAAY;;;QAGrC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,SAAS,UAAU,CAAC,GAAQ,EAAE,IAAS;QACrC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;;QAI/B,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;YACpB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACtB;aAAM;;YAEL,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;SACpD;IACH,CAAC;IAED;;;;IAIA,SAAS,aAAa,CAAC,GAAQ,EAAE,IAAa;QAC5C,MAAM,GAAG,GAAG,IAAI,yBAAyB;QACzC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;;QAInC,IAAI,OAAO,GAAG,CAAC,CAAC;;;QAIhB,IAAI,QAAQ,GAAG,CAAC,CAAC;;;;QAKjB,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;;YAGxB,IAAI,CAAC,KAAK,EAAE;gBACV,gBAAgB,GAAG,IAAI,CAAC;gBACxB,SAAS;aACV;;YAGD,gBAAgB,GAAG,KAAK,CAAC;;YAGzB,IAAI,KAAK,KAAK,GAAG;gBAAE,SAAS;;;YAI5B,IAAI,KAAK,KAAK,IAAI,EAAE;gBAClB,IAAI,QAAQ,EAAE;oBACZ,gBAAgB,GAAG,IAAI,CAAC;oBACxB,QAAQ,EAAE,CAAC;oBACX,OAAO,EAAE,CAAC;iBACX;qBAAM,IAAI,GAAG,EAAE;;;oBAGd,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC;iBAC3B;gBACD,SAAS;aACV;;;YAID,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC;YAC1B,QAAQ,EAAE,CAAC;SACZ;QAED,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;YAChC,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;YACxD,IAAI,IAAI,GAAG,CAAC;SACb;QACD,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED;;;aAGwB,OAAO,CAAC,KAAa,EAAE,IAAwB;QACrE,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAE/B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;QAEzB,IAAI,IAAI,IAAI,SAAS,uBAAuB;YAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YAE9B,QAAQ,SAAS;gBACf;oBACE,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;gBAG1B;oBACE,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;;gBAG5B,mBAAmB;gBACnB;oBACE,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;;gBAG3B;;oBAEE,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBACxB,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBACxB,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;gBAG1B;;oBAEE,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;aAC/B;YACD,IAAI,QAAQ,GAAG,SAAS;gBAAE,SAAS,GAAG,QAAQ,CAAC;SAChD;QAED,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAE9B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC;QACvC,QAAQ,SAAS;;;YAIf,kBAAkB;YAClB;gBACE,OAAO,SAAS,CAAC;YAEnB,2BAA2B;;gBAEzB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAE/B,IAAI,CAAC,IAAI;oBAAE,OAAO,SAAS,IAAI,GAAG,CAAC;gBAEnC,IAAI,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;;;;oBAIlD,OAAO,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;iBAChC;gBAED,OAAO,IAAI,GAAG,SAAS,CAAC;aACzB;YAED;gBACE,OAAO,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;YAE9B;gBACE,OAAO,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;SACpF;IACH;;;;;;;;"} \ No newline at end of file diff --git a/node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts b/node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts new file mode 100644 index 0000000..b7f0b3b --- /dev/null +++ b/node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts @@ -0,0 +1,4 @@ +/** + * Attempts to resolve `input` URL/path relative to `base`. + */ +export default function resolve(input: string, base: string | undefined): string; diff --git a/node_modules/@jridgewell/resolve-uri/package.json b/node_modules/@jridgewell/resolve-uri/package.json new file mode 100644 index 0000000..02a4c51 --- /dev/null +++ b/node_modules/@jridgewell/resolve-uri/package.json @@ -0,0 +1,69 @@ +{ + "name": "@jridgewell/resolve-uri", + "version": "3.1.2", + "description": "Resolve a URI relative to an optional base URI", + "keywords": [ + "resolve", + "uri", + "url", + "path" + ], + "author": "Justin Ridgewell ", + "license": "MIT", + "repository": "https://github.com/jridgewell/resolve-uri", + "main": "dist/resolve-uri.umd.js", + "module": "dist/resolve-uri.mjs", + "types": "dist/types/resolve-uri.d.ts", + "exports": { + ".": [ + { + "types": "./dist/types/resolve-uri.d.ts", + "browser": "./dist/resolve-uri.umd.js", + "require": "./dist/resolve-uri.umd.js", + "import": "./dist/resolve-uri.mjs" + }, + "./dist/resolve-uri.umd.js" + ], + "./package.json": "./package.json" + }, + "files": [ + "dist" + ], + "engines": { + "node": ">=6.0.0" + }, + "scripts": { + "prebuild": "rm -rf dist", + "build": "run-s -n build:*", + "build:rollup": "rollup -c rollup.config.js", + "build:ts": "tsc --project tsconfig.build.json", + "lint": "run-s -n lint:*", + "lint:prettier": "npm run test:lint:prettier -- --write", + "lint:ts": "npm run test:lint:ts -- --fix", + "pretest": "run-s build:rollup", + "test": "run-s -n test:lint test:only", + "test:debug": "mocha --inspect-brk", + "test:lint": "run-s -n test:lint:*", + "test:lint:prettier": "prettier --check '{src,test}/**/*.ts'", + "test:lint:ts": "eslint '{src,test}/**/*.ts'", + "test:only": "mocha", + "test:coverage": "c8 mocha", + "test:watch": "mocha --watch", + "prepublishOnly": "npm run preversion", + "preversion": "run-s test build" + }, + "devDependencies": { + "@jridgewell/resolve-uri-latest": "npm:@jridgewell/resolve-uri@*", + "@rollup/plugin-typescript": "8.3.0", + "@typescript-eslint/eslint-plugin": "5.10.0", + "@typescript-eslint/parser": "5.10.0", + "c8": "7.11.0", + "eslint": "8.7.0", + "eslint-config-prettier": "8.3.0", + "mocha": "9.2.0", + "npm-run-all": "4.1.5", + "prettier": "2.5.1", + "rollup": "2.66.0", + "typescript": "4.5.5" + } +} diff --git a/node_modules/@jridgewell/sourcemap-codec/LICENSE b/node_modules/@jridgewell/sourcemap-codec/LICENSE new file mode 100644 index 0000000..1f6ce94 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/LICENSE @@ -0,0 +1,19 @@ +Copyright 2024 Justin Ridgewell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@jridgewell/sourcemap-codec/README.md b/node_modules/@jridgewell/sourcemap-codec/README.md new file mode 100644 index 0000000..b3e0708 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/README.md @@ -0,0 +1,264 @@ +# @jridgewell/sourcemap-codec + +Encode/decode the `mappings` property of a [sourcemap](https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit). + + +## Why? + +Sourcemaps are difficult to generate and manipulate, because the `mappings` property – the part that actually links the generated code back to the original source – is encoded using an obscure method called [Variable-length quantity](https://en.wikipedia.org/wiki/Variable-length_quantity). On top of that, each segment in the mapping contains offsets rather than absolute indices, which means that you can't look at a segment in isolation – you have to understand the whole sourcemap. + +This package makes the process slightly easier. + + +## Installation + +```bash +npm install @jridgewell/sourcemap-codec +``` + + +## Usage + +```js +import { encode, decode } from '@jridgewell/sourcemap-codec'; + +var decoded = decode( ';EAEEA,EAAE,EAAC,CAAE;ECQY,UACC' ); + +assert.deepEqual( decoded, [ + // the first line (of the generated code) has no mappings, + // as shown by the starting semi-colon (which separates lines) + [], + + // the second line contains four (comma-separated) segments + [ + // segments are encoded as you'd expect: + // [ generatedCodeColumn, sourceIndex, sourceCodeLine, sourceCodeColumn, nameIndex ] + + // i.e. the first segment begins at column 2, and maps back to the second column + // of the second line (both zero-based) of the 0th source, and uses the 0th + // name in the `map.names` array + [ 2, 0, 2, 2, 0 ], + + // the remaining segments are 4-length rather than 5-length, + // because they don't map a name + [ 4, 0, 2, 4 ], + [ 6, 0, 2, 5 ], + [ 7, 0, 2, 7 ] + ], + + // the final line contains two segments + [ + [ 2, 1, 10, 19 ], + [ 12, 1, 11, 20 ] + ] +]); + +var encoded = encode( decoded ); +assert.equal( encoded, ';EAEEA,EAAE,EAAC,CAAE;ECQY,UACC' ); +``` + +## Benchmarks + +``` +node v20.10.0 + +amp.js.map - 45120 segments + +Decode Memory Usage: +local code 5815135 bytes +@jridgewell/sourcemap-codec 1.4.15 5868160 bytes +sourcemap-codec 5492584 bytes +source-map-0.6.1 13569984 bytes +source-map-0.8.0 6390584 bytes +chrome dev tools 8011136 bytes +Smallest memory usage is sourcemap-codec + +Decode speed: +decode: local code x 492 ops/sec ±1.22% (90 runs sampled) +decode: @jridgewell/sourcemap-codec 1.4.15 x 499 ops/sec ±1.16% (89 runs sampled) +decode: sourcemap-codec x 376 ops/sec ±1.66% (89 runs sampled) +decode: source-map-0.6.1 x 34.99 ops/sec ±0.94% (48 runs sampled) +decode: source-map-0.8.0 x 351 ops/sec ±0.07% (95 runs sampled) +chrome dev tools x 165 ops/sec ±0.91% (86 runs sampled) +Fastest is decode: @jridgewell/sourcemap-codec 1.4.15 + +Encode Memory Usage: +local code 444248 bytes +@jridgewell/sourcemap-codec 1.4.15 623024 bytes +sourcemap-codec 8696280 bytes +source-map-0.6.1 8745176 bytes +source-map-0.8.0 8736624 bytes +Smallest memory usage is local code + +Encode speed: +encode: local code x 796 ops/sec ±0.11% (97 runs sampled) +encode: @jridgewell/sourcemap-codec 1.4.15 x 795 ops/sec ±0.25% (98 runs sampled) +encode: sourcemap-codec x 231 ops/sec ±0.83% (86 runs sampled) +encode: source-map-0.6.1 x 166 ops/sec ±0.57% (86 runs sampled) +encode: source-map-0.8.0 x 203 ops/sec ±0.45% (88 runs sampled) +Fastest is encode: local code,encode: @jridgewell/sourcemap-codec 1.4.15 + + +*** + + +babel.min.js.map - 347793 segments + +Decode Memory Usage: +local code 35424960 bytes +@jridgewell/sourcemap-codec 1.4.15 35424696 bytes +sourcemap-codec 36033464 bytes +source-map-0.6.1 62253704 bytes +source-map-0.8.0 43843920 bytes +chrome dev tools 45111400 bytes +Smallest memory usage is @jridgewell/sourcemap-codec 1.4.15 + +Decode speed: +decode: local code x 38.18 ops/sec ±5.44% (52 runs sampled) +decode: @jridgewell/sourcemap-codec 1.4.15 x 38.36 ops/sec ±5.02% (52 runs sampled) +decode: sourcemap-codec x 34.05 ops/sec ±4.45% (47 runs sampled) +decode: source-map-0.6.1 x 4.31 ops/sec ±2.76% (15 runs sampled) +decode: source-map-0.8.0 x 55.60 ops/sec ±0.13% (73 runs sampled) +chrome dev tools x 16.94 ops/sec ±3.78% (46 runs sampled) +Fastest is decode: source-map-0.8.0 + +Encode Memory Usage: +local code 2606016 bytes +@jridgewell/sourcemap-codec 1.4.15 2626440 bytes +sourcemap-codec 21152576 bytes +source-map-0.6.1 25023928 bytes +source-map-0.8.0 25256448 bytes +Smallest memory usage is local code + +Encode speed: +encode: local code x 127 ops/sec ±0.18% (83 runs sampled) +encode: @jridgewell/sourcemap-codec 1.4.15 x 128 ops/sec ±0.26% (83 runs sampled) +encode: sourcemap-codec x 29.31 ops/sec ±2.55% (53 runs sampled) +encode: source-map-0.6.1 x 18.85 ops/sec ±3.19% (36 runs sampled) +encode: source-map-0.8.0 x 19.34 ops/sec ±1.97% (36 runs sampled) +Fastest is encode: @jridgewell/sourcemap-codec 1.4.15 + + +*** + + +preact.js.map - 1992 segments + +Decode Memory Usage: +local code 261696 bytes +@jridgewell/sourcemap-codec 1.4.15 244296 bytes +sourcemap-codec 302816 bytes +source-map-0.6.1 939176 bytes +source-map-0.8.0 336 bytes +chrome dev tools 587368 bytes +Smallest memory usage is source-map-0.8.0 + +Decode speed: +decode: local code x 17,782 ops/sec ±0.32% (97 runs sampled) +decode: @jridgewell/sourcemap-codec 1.4.15 x 17,863 ops/sec ±0.40% (100 runs sampled) +decode: sourcemap-codec x 12,453 ops/sec ±0.27% (101 runs sampled) +decode: source-map-0.6.1 x 1,288 ops/sec ±1.05% (96 runs sampled) +decode: source-map-0.8.0 x 9,289 ops/sec ±0.27% (101 runs sampled) +chrome dev tools x 4,769 ops/sec ±0.18% (100 runs sampled) +Fastest is decode: @jridgewell/sourcemap-codec 1.4.15 + +Encode Memory Usage: +local code 262944 bytes +@jridgewell/sourcemap-codec 1.4.15 25544 bytes +sourcemap-codec 323048 bytes +source-map-0.6.1 507808 bytes +source-map-0.8.0 507480 bytes +Smallest memory usage is @jridgewell/sourcemap-codec 1.4.15 + +Encode speed: +encode: local code x 24,207 ops/sec ±0.79% (95 runs sampled) +encode: @jridgewell/sourcemap-codec 1.4.15 x 24,288 ops/sec ±0.48% (96 runs sampled) +encode: sourcemap-codec x 6,761 ops/sec ±0.21% (100 runs sampled) +encode: source-map-0.6.1 x 5,374 ops/sec ±0.17% (99 runs sampled) +encode: source-map-0.8.0 x 5,633 ops/sec ±0.32% (99 runs sampled) +Fastest is encode: @jridgewell/sourcemap-codec 1.4.15,encode: local code + + +*** + + +react.js.map - 5726 segments + +Decode Memory Usage: +local code 678816 bytes +@jridgewell/sourcemap-codec 1.4.15 678816 bytes +sourcemap-codec 816400 bytes +source-map-0.6.1 2288864 bytes +source-map-0.8.0 721360 bytes +chrome dev tools 1012512 bytes +Smallest memory usage is local code + +Decode speed: +decode: local code x 6,178 ops/sec ±0.19% (98 runs sampled) +decode: @jridgewell/sourcemap-codec 1.4.15 x 6,261 ops/sec ±0.22% (100 runs sampled) +decode: sourcemap-codec x 4,472 ops/sec ±0.90% (99 runs sampled) +decode: source-map-0.6.1 x 449 ops/sec ±0.31% (95 runs sampled) +decode: source-map-0.8.0 x 3,219 ops/sec ±0.13% (100 runs sampled) +chrome dev tools x 1,743 ops/sec ±0.20% (99 runs sampled) +Fastest is decode: @jridgewell/sourcemap-codec 1.4.15 + +Encode Memory Usage: +local code 140960 bytes +@jridgewell/sourcemap-codec 1.4.15 159808 bytes +sourcemap-codec 969304 bytes +source-map-0.6.1 930520 bytes +source-map-0.8.0 930248 bytes +Smallest memory usage is local code + +Encode speed: +encode: local code x 8,013 ops/sec ±0.19% (100 runs sampled) +encode: @jridgewell/sourcemap-codec 1.4.15 x 7,989 ops/sec ±0.20% (101 runs sampled) +encode: sourcemap-codec x 2,472 ops/sec ±0.21% (99 runs sampled) +encode: source-map-0.6.1 x 2,200 ops/sec ±0.17% (99 runs sampled) +encode: source-map-0.8.0 x 2,220 ops/sec ±0.37% (99 runs sampled) +Fastest is encode: local code + + +*** + + +vscode.map - 2141001 segments + +Decode Memory Usage: +local code 198955264 bytes +@jridgewell/sourcemap-codec 1.4.15 199175352 bytes +sourcemap-codec 199102688 bytes +source-map-0.6.1 386323432 bytes +source-map-0.8.0 244116432 bytes +chrome dev tools 293734280 bytes +Smallest memory usage is local code + +Decode speed: +decode: local code x 3.90 ops/sec ±22.21% (15 runs sampled) +decode: @jridgewell/sourcemap-codec 1.4.15 x 3.95 ops/sec ±23.53% (15 runs sampled) +decode: sourcemap-codec x 3.82 ops/sec ±17.94% (14 runs sampled) +decode: source-map-0.6.1 x 0.61 ops/sec ±7.81% (6 runs sampled) +decode: source-map-0.8.0 x 9.54 ops/sec ±0.28% (28 runs sampled) +chrome dev tools x 2.18 ops/sec ±10.58% (10 runs sampled) +Fastest is decode: source-map-0.8.0 + +Encode Memory Usage: +local code 13509880 bytes +@jridgewell/sourcemap-codec 1.4.15 13537648 bytes +sourcemap-codec 32540104 bytes +source-map-0.6.1 127531040 bytes +source-map-0.8.0 127535312 bytes +Smallest memory usage is local code + +Encode speed: +encode: local code x 20.10 ops/sec ±0.19% (38 runs sampled) +encode: @jridgewell/sourcemap-codec 1.4.15 x 20.26 ops/sec ±0.32% (38 runs sampled) +encode: sourcemap-codec x 5.44 ops/sec ±1.64% (18 runs sampled) +encode: source-map-0.6.1 x 2.30 ops/sec ±4.79% (10 runs sampled) +encode: source-map-0.8.0 x 2.46 ops/sec ±6.53% (10 runs sampled) +Fastest is encode: @jridgewell/sourcemap-codec 1.4.15 +``` + +# License + +MIT diff --git a/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs new file mode 100644 index 0000000..532bab3 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs @@ -0,0 +1,423 @@ +// src/vlq.ts +var comma = ",".charCodeAt(0); +var semicolon = ";".charCodeAt(0); +var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +var intToChar = new Uint8Array(64); +var charToInt = new Uint8Array(128); +for (let i = 0; i < chars.length; i++) { + const c = chars.charCodeAt(i); + intToChar[i] = c; + charToInt[c] = i; +} +function decodeInteger(reader, relative) { + let value = 0; + let shift = 0; + let integer = 0; + do { + const c = reader.next(); + integer = charToInt[c]; + value |= (integer & 31) << shift; + shift += 5; + } while (integer & 32); + const shouldNegate = value & 1; + value >>>= 1; + if (shouldNegate) { + value = -2147483648 | -value; + } + return relative + value; +} +function encodeInteger(builder, num, relative) { + let delta = num - relative; + delta = delta < 0 ? -delta << 1 | 1 : delta << 1; + do { + let clamped = delta & 31; + delta >>>= 5; + if (delta > 0) clamped |= 32; + builder.write(intToChar[clamped]); + } while (delta > 0); + return num; +} +function hasMoreVlq(reader, max) { + if (reader.pos >= max) return false; + return reader.peek() !== comma; +} + +// src/strings.ts +var bufLength = 1024 * 16; +var td = typeof TextDecoder !== "undefined" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer !== "undefined" ? { + decode(buf) { + const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength); + return out.toString(); + } +} : { + decode(buf) { + let out = ""; + for (let i = 0; i < buf.length; i++) { + out += String.fromCharCode(buf[i]); + } + return out; + } +}; +var StringWriter = class { + constructor() { + this.pos = 0; + this.out = ""; + this.buffer = new Uint8Array(bufLength); + } + write(v) { + const { buffer } = this; + buffer[this.pos++] = v; + if (this.pos === bufLength) { + this.out += td.decode(buffer); + this.pos = 0; + } + } + flush() { + const { buffer, out, pos } = this; + return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out; + } +}; +var StringReader = class { + constructor(buffer) { + this.pos = 0; + this.buffer = buffer; + } + next() { + return this.buffer.charCodeAt(this.pos++); + } + peek() { + return this.buffer.charCodeAt(this.pos); + } + indexOf(char) { + const { buffer, pos } = this; + const idx = buffer.indexOf(char, pos); + return idx === -1 ? buffer.length : idx; + } +}; + +// src/scopes.ts +var EMPTY = []; +function decodeOriginalScopes(input) { + const { length } = input; + const reader = new StringReader(input); + const scopes = []; + const stack = []; + let line = 0; + for (; reader.pos < length; reader.pos++) { + line = decodeInteger(reader, line); + const column = decodeInteger(reader, 0); + if (!hasMoreVlq(reader, length)) { + const last = stack.pop(); + last[2] = line; + last[3] = column; + continue; + } + const kind = decodeInteger(reader, 0); + const fields = decodeInteger(reader, 0); + const hasName = fields & 1; + const scope = hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind]; + let vars = EMPTY; + if (hasMoreVlq(reader, length)) { + vars = []; + do { + const varsIndex = decodeInteger(reader, 0); + vars.push(varsIndex); + } while (hasMoreVlq(reader, length)); + } + scope.vars = vars; + scopes.push(scope); + stack.push(scope); + } + return scopes; +} +function encodeOriginalScopes(scopes) { + const writer = new StringWriter(); + for (let i = 0; i < scopes.length; ) { + i = _encodeOriginalScopes(scopes, i, writer, [0]); + } + return writer.flush(); +} +function _encodeOriginalScopes(scopes, index, writer, state) { + const scope = scopes[index]; + const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope; + if (index > 0) writer.write(comma); + state[0] = encodeInteger(writer, startLine, state[0]); + encodeInteger(writer, startColumn, 0); + encodeInteger(writer, kind, 0); + const fields = scope.length === 6 ? 1 : 0; + encodeInteger(writer, fields, 0); + if (scope.length === 6) encodeInteger(writer, scope[5], 0); + for (const v of vars) { + encodeInteger(writer, v, 0); + } + for (index++; index < scopes.length; ) { + const next = scopes[index]; + const { 0: l, 1: c } = next; + if (l > endLine || l === endLine && c >= endColumn) { + break; + } + index = _encodeOriginalScopes(scopes, index, writer, state); + } + writer.write(comma); + state[0] = encodeInteger(writer, endLine, state[0]); + encodeInteger(writer, endColumn, 0); + return index; +} +function decodeGeneratedRanges(input) { + const { length } = input; + const reader = new StringReader(input); + const ranges = []; + const stack = []; + let genLine = 0; + let definitionSourcesIndex = 0; + let definitionScopeIndex = 0; + let callsiteSourcesIndex = 0; + let callsiteLine = 0; + let callsiteColumn = 0; + let bindingLine = 0; + let bindingColumn = 0; + do { + const semi = reader.indexOf(";"); + let genColumn = 0; + for (; reader.pos < semi; reader.pos++) { + genColumn = decodeInteger(reader, genColumn); + if (!hasMoreVlq(reader, semi)) { + const last = stack.pop(); + last[2] = genLine; + last[3] = genColumn; + continue; + } + const fields = decodeInteger(reader, 0); + const hasDefinition = fields & 1; + const hasCallsite = fields & 2; + const hasScope = fields & 4; + let callsite = null; + let bindings = EMPTY; + let range; + if (hasDefinition) { + const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex); + definitionScopeIndex = decodeInteger( + reader, + definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0 + ); + definitionSourcesIndex = defSourcesIndex; + range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex]; + } else { + range = [genLine, genColumn, 0, 0]; + } + range.isScope = !!hasScope; + if (hasCallsite) { + const prevCsi = callsiteSourcesIndex; + const prevLine = callsiteLine; + callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex); + const sameSource = prevCsi === callsiteSourcesIndex; + callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0); + callsiteColumn = decodeInteger( + reader, + sameSource && prevLine === callsiteLine ? callsiteColumn : 0 + ); + callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn]; + } + range.callsite = callsite; + if (hasMoreVlq(reader, semi)) { + bindings = []; + do { + bindingLine = genLine; + bindingColumn = genColumn; + const expressionsCount = decodeInteger(reader, 0); + let expressionRanges; + if (expressionsCount < -1) { + expressionRanges = [[decodeInteger(reader, 0)]]; + for (let i = -1; i > expressionsCount; i--) { + const prevBl = bindingLine; + bindingLine = decodeInteger(reader, bindingLine); + bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0); + const expression = decodeInteger(reader, 0); + expressionRanges.push([expression, bindingLine, bindingColumn]); + } + } else { + expressionRanges = [[expressionsCount]]; + } + bindings.push(expressionRanges); + } while (hasMoreVlq(reader, semi)); + } + range.bindings = bindings; + ranges.push(range); + stack.push(range); + } + genLine++; + reader.pos = semi + 1; + } while (reader.pos < length); + return ranges; +} +function encodeGeneratedRanges(ranges) { + if (ranges.length === 0) return ""; + const writer = new StringWriter(); + for (let i = 0; i < ranges.length; ) { + i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]); + } + return writer.flush(); +} +function _encodeGeneratedRanges(ranges, index, writer, state) { + const range = ranges[index]; + const { + 0: startLine, + 1: startColumn, + 2: endLine, + 3: endColumn, + isScope, + callsite, + bindings + } = range; + if (state[0] < startLine) { + catchupLine(writer, state[0], startLine); + state[0] = startLine; + state[1] = 0; + } else if (index > 0) { + writer.write(comma); + } + state[1] = encodeInteger(writer, range[1], state[1]); + const fields = (range.length === 6 ? 1 : 0) | (callsite ? 2 : 0) | (isScope ? 4 : 0); + encodeInteger(writer, fields, 0); + if (range.length === 6) { + const { 4: sourcesIndex, 5: scopesIndex } = range; + if (sourcesIndex !== state[2]) { + state[3] = 0; + } + state[2] = encodeInteger(writer, sourcesIndex, state[2]); + state[3] = encodeInteger(writer, scopesIndex, state[3]); + } + if (callsite) { + const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite; + if (sourcesIndex !== state[4]) { + state[5] = 0; + state[6] = 0; + } else if (callLine !== state[5]) { + state[6] = 0; + } + state[4] = encodeInteger(writer, sourcesIndex, state[4]); + state[5] = encodeInteger(writer, callLine, state[5]); + state[6] = encodeInteger(writer, callColumn, state[6]); + } + if (bindings) { + for (const binding of bindings) { + if (binding.length > 1) encodeInteger(writer, -binding.length, 0); + const expression = binding[0][0]; + encodeInteger(writer, expression, 0); + let bindingStartLine = startLine; + let bindingStartColumn = startColumn; + for (let i = 1; i < binding.length; i++) { + const expRange = binding[i]; + bindingStartLine = encodeInteger(writer, expRange[1], bindingStartLine); + bindingStartColumn = encodeInteger(writer, expRange[2], bindingStartColumn); + encodeInteger(writer, expRange[0], 0); + } + } + } + for (index++; index < ranges.length; ) { + const next = ranges[index]; + const { 0: l, 1: c } = next; + if (l > endLine || l === endLine && c >= endColumn) { + break; + } + index = _encodeGeneratedRanges(ranges, index, writer, state); + } + if (state[0] < endLine) { + catchupLine(writer, state[0], endLine); + state[0] = endLine; + state[1] = 0; + } else { + writer.write(comma); + } + state[1] = encodeInteger(writer, endColumn, state[1]); + return index; +} +function catchupLine(writer, lastLine, line) { + do { + writer.write(semicolon); + } while (++lastLine < line); +} + +// src/sourcemap-codec.ts +function decode(mappings) { + const { length } = mappings; + const reader = new StringReader(mappings); + const decoded = []; + let genColumn = 0; + let sourcesIndex = 0; + let sourceLine = 0; + let sourceColumn = 0; + let namesIndex = 0; + do { + const semi = reader.indexOf(";"); + const line = []; + let sorted = true; + let lastCol = 0; + genColumn = 0; + while (reader.pos < semi) { + let seg; + genColumn = decodeInteger(reader, genColumn); + if (genColumn < lastCol) sorted = false; + lastCol = genColumn; + if (hasMoreVlq(reader, semi)) { + sourcesIndex = decodeInteger(reader, sourcesIndex); + sourceLine = decodeInteger(reader, sourceLine); + sourceColumn = decodeInteger(reader, sourceColumn); + if (hasMoreVlq(reader, semi)) { + namesIndex = decodeInteger(reader, namesIndex); + seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]; + } else { + seg = [genColumn, sourcesIndex, sourceLine, sourceColumn]; + } + } else { + seg = [genColumn]; + } + line.push(seg); + reader.pos++; + } + if (!sorted) sort(line); + decoded.push(line); + reader.pos = semi + 1; + } while (reader.pos <= length); + return decoded; +} +function sort(line) { + line.sort(sortComparator); +} +function sortComparator(a, b) { + return a[0] - b[0]; +} +function encode(decoded) { + const writer = new StringWriter(); + let sourcesIndex = 0; + let sourceLine = 0; + let sourceColumn = 0; + let namesIndex = 0; + for (let i = 0; i < decoded.length; i++) { + const line = decoded[i]; + if (i > 0) writer.write(semicolon); + if (line.length === 0) continue; + let genColumn = 0; + for (let j = 0; j < line.length; j++) { + const segment = line[j]; + if (j > 0) writer.write(comma); + genColumn = encodeInteger(writer, segment[0], genColumn); + if (segment.length === 1) continue; + sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex); + sourceLine = encodeInteger(writer, segment[2], sourceLine); + sourceColumn = encodeInteger(writer, segment[3], sourceColumn); + if (segment.length === 4) continue; + namesIndex = encodeInteger(writer, segment[4], namesIndex); + } + } + return writer.flush(); +} +export { + decode, + decodeGeneratedRanges, + decodeOriginalScopes, + encode, + encodeGeneratedRanges, + encodeOriginalScopes +}; +//# sourceMappingURL=sourcemap-codec.mjs.map diff --git a/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map new file mode 100644 index 0000000..c276844 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../src/vlq.ts", "../src/strings.ts", "../src/scopes.ts", "../src/sourcemap-codec.ts"], + "mappings": "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", + "names": [] +} diff --git a/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js new file mode 100644 index 0000000..2d8e459 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js @@ -0,0 +1,464 @@ +(function (global, factory) { + if (typeof exports === 'object' && typeof module !== 'undefined') { + factory(module); + module.exports = def(module); + } else if (typeof define === 'function' && define.amd) { + define(['module'], function(mod) { + factory.apply(this, arguments); + mod.exports = def(mod); + }); + } else { + const mod = { exports: {} }; + factory(mod); + global = typeof globalThis !== 'undefined' ? globalThis : global || self; + global.sourcemapCodec = def(mod); + } + function def(m) { return 'default' in m.exports ? m.exports.default : m.exports; } +})(this, (function (module) { +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/sourcemap-codec.ts +var sourcemap_codec_exports = {}; +__export(sourcemap_codec_exports, { + decode: () => decode, + decodeGeneratedRanges: () => decodeGeneratedRanges, + decodeOriginalScopes: () => decodeOriginalScopes, + encode: () => encode, + encodeGeneratedRanges: () => encodeGeneratedRanges, + encodeOriginalScopes: () => encodeOriginalScopes +}); +module.exports = __toCommonJS(sourcemap_codec_exports); + +// src/vlq.ts +var comma = ",".charCodeAt(0); +var semicolon = ";".charCodeAt(0); +var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +var intToChar = new Uint8Array(64); +var charToInt = new Uint8Array(128); +for (let i = 0; i < chars.length; i++) { + const c = chars.charCodeAt(i); + intToChar[i] = c; + charToInt[c] = i; +} +function decodeInteger(reader, relative) { + let value = 0; + let shift = 0; + let integer = 0; + do { + const c = reader.next(); + integer = charToInt[c]; + value |= (integer & 31) << shift; + shift += 5; + } while (integer & 32); + const shouldNegate = value & 1; + value >>>= 1; + if (shouldNegate) { + value = -2147483648 | -value; + } + return relative + value; +} +function encodeInteger(builder, num, relative) { + let delta = num - relative; + delta = delta < 0 ? -delta << 1 | 1 : delta << 1; + do { + let clamped = delta & 31; + delta >>>= 5; + if (delta > 0) clamped |= 32; + builder.write(intToChar[clamped]); + } while (delta > 0); + return num; +} +function hasMoreVlq(reader, max) { + if (reader.pos >= max) return false; + return reader.peek() !== comma; +} + +// src/strings.ts +var bufLength = 1024 * 16; +var td = typeof TextDecoder !== "undefined" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer !== "undefined" ? { + decode(buf) { + const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength); + return out.toString(); + } +} : { + decode(buf) { + let out = ""; + for (let i = 0; i < buf.length; i++) { + out += String.fromCharCode(buf[i]); + } + return out; + } +}; +var StringWriter = class { + constructor() { + this.pos = 0; + this.out = ""; + this.buffer = new Uint8Array(bufLength); + } + write(v) { + const { buffer } = this; + buffer[this.pos++] = v; + if (this.pos === bufLength) { + this.out += td.decode(buffer); + this.pos = 0; + } + } + flush() { + const { buffer, out, pos } = this; + return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out; + } +}; +var StringReader = class { + constructor(buffer) { + this.pos = 0; + this.buffer = buffer; + } + next() { + return this.buffer.charCodeAt(this.pos++); + } + peek() { + return this.buffer.charCodeAt(this.pos); + } + indexOf(char) { + const { buffer, pos } = this; + const idx = buffer.indexOf(char, pos); + return idx === -1 ? buffer.length : idx; + } +}; + +// src/scopes.ts +var EMPTY = []; +function decodeOriginalScopes(input) { + const { length } = input; + const reader = new StringReader(input); + const scopes = []; + const stack = []; + let line = 0; + for (; reader.pos < length; reader.pos++) { + line = decodeInteger(reader, line); + const column = decodeInteger(reader, 0); + if (!hasMoreVlq(reader, length)) { + const last = stack.pop(); + last[2] = line; + last[3] = column; + continue; + } + const kind = decodeInteger(reader, 0); + const fields = decodeInteger(reader, 0); + const hasName = fields & 1; + const scope = hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind]; + let vars = EMPTY; + if (hasMoreVlq(reader, length)) { + vars = []; + do { + const varsIndex = decodeInteger(reader, 0); + vars.push(varsIndex); + } while (hasMoreVlq(reader, length)); + } + scope.vars = vars; + scopes.push(scope); + stack.push(scope); + } + return scopes; +} +function encodeOriginalScopes(scopes) { + const writer = new StringWriter(); + for (let i = 0; i < scopes.length; ) { + i = _encodeOriginalScopes(scopes, i, writer, [0]); + } + return writer.flush(); +} +function _encodeOriginalScopes(scopes, index, writer, state) { + const scope = scopes[index]; + const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope; + if (index > 0) writer.write(comma); + state[0] = encodeInteger(writer, startLine, state[0]); + encodeInteger(writer, startColumn, 0); + encodeInteger(writer, kind, 0); + const fields = scope.length === 6 ? 1 : 0; + encodeInteger(writer, fields, 0); + if (scope.length === 6) encodeInteger(writer, scope[5], 0); + for (const v of vars) { + encodeInteger(writer, v, 0); + } + for (index++; index < scopes.length; ) { + const next = scopes[index]; + const { 0: l, 1: c } = next; + if (l > endLine || l === endLine && c >= endColumn) { + break; + } + index = _encodeOriginalScopes(scopes, index, writer, state); + } + writer.write(comma); + state[0] = encodeInteger(writer, endLine, state[0]); + encodeInteger(writer, endColumn, 0); + return index; +} +function decodeGeneratedRanges(input) { + const { length } = input; + const reader = new StringReader(input); + const ranges = []; + const stack = []; + let genLine = 0; + let definitionSourcesIndex = 0; + let definitionScopeIndex = 0; + let callsiteSourcesIndex = 0; + let callsiteLine = 0; + let callsiteColumn = 0; + let bindingLine = 0; + let bindingColumn = 0; + do { + const semi = reader.indexOf(";"); + let genColumn = 0; + for (; reader.pos < semi; reader.pos++) { + genColumn = decodeInteger(reader, genColumn); + if (!hasMoreVlq(reader, semi)) { + const last = stack.pop(); + last[2] = genLine; + last[3] = genColumn; + continue; + } + const fields = decodeInteger(reader, 0); + const hasDefinition = fields & 1; + const hasCallsite = fields & 2; + const hasScope = fields & 4; + let callsite = null; + let bindings = EMPTY; + let range; + if (hasDefinition) { + const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex); + definitionScopeIndex = decodeInteger( + reader, + definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0 + ); + definitionSourcesIndex = defSourcesIndex; + range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex]; + } else { + range = [genLine, genColumn, 0, 0]; + } + range.isScope = !!hasScope; + if (hasCallsite) { + const prevCsi = callsiteSourcesIndex; + const prevLine = callsiteLine; + callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex); + const sameSource = prevCsi === callsiteSourcesIndex; + callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0); + callsiteColumn = decodeInteger( + reader, + sameSource && prevLine === callsiteLine ? callsiteColumn : 0 + ); + callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn]; + } + range.callsite = callsite; + if (hasMoreVlq(reader, semi)) { + bindings = []; + do { + bindingLine = genLine; + bindingColumn = genColumn; + const expressionsCount = decodeInteger(reader, 0); + let expressionRanges; + if (expressionsCount < -1) { + expressionRanges = [[decodeInteger(reader, 0)]]; + for (let i = -1; i > expressionsCount; i--) { + const prevBl = bindingLine; + bindingLine = decodeInteger(reader, bindingLine); + bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0); + const expression = decodeInteger(reader, 0); + expressionRanges.push([expression, bindingLine, bindingColumn]); + } + } else { + expressionRanges = [[expressionsCount]]; + } + bindings.push(expressionRanges); + } while (hasMoreVlq(reader, semi)); + } + range.bindings = bindings; + ranges.push(range); + stack.push(range); + } + genLine++; + reader.pos = semi + 1; + } while (reader.pos < length); + return ranges; +} +function encodeGeneratedRanges(ranges) { + if (ranges.length === 0) return ""; + const writer = new StringWriter(); + for (let i = 0; i < ranges.length; ) { + i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]); + } + return writer.flush(); +} +function _encodeGeneratedRanges(ranges, index, writer, state) { + const range = ranges[index]; + const { + 0: startLine, + 1: startColumn, + 2: endLine, + 3: endColumn, + isScope, + callsite, + bindings + } = range; + if (state[0] < startLine) { + catchupLine(writer, state[0], startLine); + state[0] = startLine; + state[1] = 0; + } else if (index > 0) { + writer.write(comma); + } + state[1] = encodeInteger(writer, range[1], state[1]); + const fields = (range.length === 6 ? 1 : 0) | (callsite ? 2 : 0) | (isScope ? 4 : 0); + encodeInteger(writer, fields, 0); + if (range.length === 6) { + const { 4: sourcesIndex, 5: scopesIndex } = range; + if (sourcesIndex !== state[2]) { + state[3] = 0; + } + state[2] = encodeInteger(writer, sourcesIndex, state[2]); + state[3] = encodeInteger(writer, scopesIndex, state[3]); + } + if (callsite) { + const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite; + if (sourcesIndex !== state[4]) { + state[5] = 0; + state[6] = 0; + } else if (callLine !== state[5]) { + state[6] = 0; + } + state[4] = encodeInteger(writer, sourcesIndex, state[4]); + state[5] = encodeInteger(writer, callLine, state[5]); + state[6] = encodeInteger(writer, callColumn, state[6]); + } + if (bindings) { + for (const binding of bindings) { + if (binding.length > 1) encodeInteger(writer, -binding.length, 0); + const expression = binding[0][0]; + encodeInteger(writer, expression, 0); + let bindingStartLine = startLine; + let bindingStartColumn = startColumn; + for (let i = 1; i < binding.length; i++) { + const expRange = binding[i]; + bindingStartLine = encodeInteger(writer, expRange[1], bindingStartLine); + bindingStartColumn = encodeInteger(writer, expRange[2], bindingStartColumn); + encodeInteger(writer, expRange[0], 0); + } + } + } + for (index++; index < ranges.length; ) { + const next = ranges[index]; + const { 0: l, 1: c } = next; + if (l > endLine || l === endLine && c >= endColumn) { + break; + } + index = _encodeGeneratedRanges(ranges, index, writer, state); + } + if (state[0] < endLine) { + catchupLine(writer, state[0], endLine); + state[0] = endLine; + state[1] = 0; + } else { + writer.write(comma); + } + state[1] = encodeInteger(writer, endColumn, state[1]); + return index; +} +function catchupLine(writer, lastLine, line) { + do { + writer.write(semicolon); + } while (++lastLine < line); +} + +// src/sourcemap-codec.ts +function decode(mappings) { + const { length } = mappings; + const reader = new StringReader(mappings); + const decoded = []; + let genColumn = 0; + let sourcesIndex = 0; + let sourceLine = 0; + let sourceColumn = 0; + let namesIndex = 0; + do { + const semi = reader.indexOf(";"); + const line = []; + let sorted = true; + let lastCol = 0; + genColumn = 0; + while (reader.pos < semi) { + let seg; + genColumn = decodeInteger(reader, genColumn); + if (genColumn < lastCol) sorted = false; + lastCol = genColumn; + if (hasMoreVlq(reader, semi)) { + sourcesIndex = decodeInteger(reader, sourcesIndex); + sourceLine = decodeInteger(reader, sourceLine); + sourceColumn = decodeInteger(reader, sourceColumn); + if (hasMoreVlq(reader, semi)) { + namesIndex = decodeInteger(reader, namesIndex); + seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]; + } else { + seg = [genColumn, sourcesIndex, sourceLine, sourceColumn]; + } + } else { + seg = [genColumn]; + } + line.push(seg); + reader.pos++; + } + if (!sorted) sort(line); + decoded.push(line); + reader.pos = semi + 1; + } while (reader.pos <= length); + return decoded; +} +function sort(line) { + line.sort(sortComparator); +} +function sortComparator(a, b) { + return a[0] - b[0]; +} +function encode(decoded) { + const writer = new StringWriter(); + let sourcesIndex = 0; + let sourceLine = 0; + let sourceColumn = 0; + let namesIndex = 0; + for (let i = 0; i < decoded.length; i++) { + const line = decoded[i]; + if (i > 0) writer.write(semicolon); + if (line.length === 0) continue; + let genColumn = 0; + for (let j = 0; j < line.length; j++) { + const segment = line[j]; + if (j > 0) writer.write(comma); + genColumn = encodeInteger(writer, segment[0], genColumn); + if (segment.length === 1) continue; + sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex); + sourceLine = encodeInteger(writer, segment[2], sourceLine); + sourceColumn = encodeInteger(writer, segment[3], sourceColumn); + if (segment.length === 4) continue; + namesIndex = encodeInteger(writer, segment[4], namesIndex); + } + } + return writer.flush(); +} +})); +//# sourceMappingURL=sourcemap-codec.umd.js.map diff --git a/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map new file mode 100644 index 0000000..abc18d2 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../src/sourcemap-codec.ts", "../src/vlq.ts", "../src/strings.ts", "../src/scopes.ts"], + "mappings": "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", + "names": [] +} diff --git a/node_modules/@jridgewell/sourcemap-codec/package.json b/node_modules/@jridgewell/sourcemap-codec/package.json new file mode 100644 index 0000000..da55137 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/package.json @@ -0,0 +1,63 @@ +{ + "name": "@jridgewell/sourcemap-codec", + "version": "1.5.5", + "description": "Encode/decode sourcemap mappings", + "keywords": [ + "sourcemap", + "vlq" + ], + "main": "dist/sourcemap-codec.umd.js", + "module": "dist/sourcemap-codec.mjs", + "types": "types/sourcemap-codec.d.cts", + "files": [ + "dist", + "src", + "types" + ], + "exports": { + ".": [ + { + "import": { + "types": "./types/sourcemap-codec.d.mts", + "default": "./dist/sourcemap-codec.mjs" + }, + "default": { + "types": "./types/sourcemap-codec.d.cts", + "default": "./dist/sourcemap-codec.umd.js" + } + }, + "./dist/sourcemap-codec.umd.js" + ], + "./package.json": "./package.json" + }, + "scripts": { + "benchmark": "run-s build:code benchmark:*", + "benchmark:install": "cd benchmark && npm install", + "benchmark:only": "node --expose-gc benchmark/index.js", + "build": "run-s -n build:code build:types", + "build:code": "node ../../esbuild.mjs sourcemap-codec.ts", + "build:types": "run-s build:types:force build:types:emit build:types:mts", + "build:types:force": "rimraf tsconfig.build.tsbuildinfo", + "build:types:emit": "tsc --project tsconfig.build.json", + "build:types:mts": "node ../../mts-types.mjs", + "clean": "run-s -n clean:code clean:types", + "clean:code": "tsc --build --clean tsconfig.build.json", + "clean:types": "rimraf dist types", + "test": "run-s -n test:types test:only test:format", + "test:format": "prettier --check '{src,test}/**/*.ts'", + "test:only": "mocha", + "test:types": "eslint '{src,test}/**/*.ts'", + "lint": "run-s -n lint:types lint:format", + "lint:format": "npm run test:format -- --write", + "lint:types": "npm run test:types -- --fix", + "prepublishOnly": "npm run-s -n build test" + }, + "homepage": "https://github.com/jridgewell/sourcemaps/tree/main/packages/sourcemap-codec", + "repository": { + "type": "git", + "url": "git+https://github.com/jridgewell/sourcemaps.git", + "directory": "packages/sourcemap-codec" + }, + "author": "Justin Ridgewell ", + "license": "MIT" +} diff --git a/node_modules/@jridgewell/sourcemap-codec/src/scopes.ts b/node_modules/@jridgewell/sourcemap-codec/src/scopes.ts new file mode 100644 index 0000000..d194c2f --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/src/scopes.ts @@ -0,0 +1,345 @@ +import { StringReader, StringWriter } from './strings'; +import { comma, decodeInteger, encodeInteger, hasMoreVlq, semicolon } from './vlq'; + +const EMPTY: any[] = []; + +type Line = number; +type Column = number; +type Kind = number; +type Name = number; +type Var = number; +type SourcesIndex = number; +type ScopesIndex = number; + +type Mix = (A & O) | (B & O); + +export type OriginalScope = Mix< + [Line, Column, Line, Column, Kind], + [Line, Column, Line, Column, Kind, Name], + { vars: Var[] } +>; + +export type GeneratedRange = Mix< + [Line, Column, Line, Column], + [Line, Column, Line, Column, SourcesIndex, ScopesIndex], + { + callsite: CallSite | null; + bindings: Binding[]; + isScope: boolean; + } +>; +export type CallSite = [SourcesIndex, Line, Column]; +type Binding = BindingExpressionRange[]; +export type BindingExpressionRange = [Name] | [Name, Line, Column]; + +export function decodeOriginalScopes(input: string): OriginalScope[] { + const { length } = input; + const reader = new StringReader(input); + const scopes: OriginalScope[] = []; + const stack: OriginalScope[] = []; + let line = 0; + + for (; reader.pos < length; reader.pos++) { + line = decodeInteger(reader, line); + const column = decodeInteger(reader, 0); + + if (!hasMoreVlq(reader, length)) { + const last = stack.pop()!; + last[2] = line; + last[3] = column; + continue; + } + + const kind = decodeInteger(reader, 0); + const fields = decodeInteger(reader, 0); + const hasName = fields & 0b0001; + + const scope: OriginalScope = ( + hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind] + ) as OriginalScope; + + let vars: Var[] = EMPTY; + if (hasMoreVlq(reader, length)) { + vars = []; + do { + const varsIndex = decodeInteger(reader, 0); + vars.push(varsIndex); + } while (hasMoreVlq(reader, length)); + } + scope.vars = vars; + + scopes.push(scope); + stack.push(scope); + } + + return scopes; +} + +export function encodeOriginalScopes(scopes: OriginalScope[]): string { + const writer = new StringWriter(); + + for (let i = 0; i < scopes.length; ) { + i = _encodeOriginalScopes(scopes, i, writer, [0]); + } + + return writer.flush(); +} + +function _encodeOriginalScopes( + scopes: OriginalScope[], + index: number, + writer: StringWriter, + state: [ + number, // GenColumn + ], +): number { + const scope = scopes[index]; + const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope; + + if (index > 0) writer.write(comma); + + state[0] = encodeInteger(writer, startLine, state[0]); + encodeInteger(writer, startColumn, 0); + encodeInteger(writer, kind, 0); + + const fields = scope.length === 6 ? 0b0001 : 0; + encodeInteger(writer, fields, 0); + if (scope.length === 6) encodeInteger(writer, scope[5], 0); + + for (const v of vars) { + encodeInteger(writer, v, 0); + } + + for (index++; index < scopes.length; ) { + const next = scopes[index]; + const { 0: l, 1: c } = next; + if (l > endLine || (l === endLine && c >= endColumn)) { + break; + } + index = _encodeOriginalScopes(scopes, index, writer, state); + } + + writer.write(comma); + state[0] = encodeInteger(writer, endLine, state[0]); + encodeInteger(writer, endColumn, 0); + + return index; +} + +export function decodeGeneratedRanges(input: string): GeneratedRange[] { + const { length } = input; + const reader = new StringReader(input); + const ranges: GeneratedRange[] = []; + const stack: GeneratedRange[] = []; + + let genLine = 0; + let definitionSourcesIndex = 0; + let definitionScopeIndex = 0; + let callsiteSourcesIndex = 0; + let callsiteLine = 0; + let callsiteColumn = 0; + let bindingLine = 0; + let bindingColumn = 0; + + do { + const semi = reader.indexOf(';'); + let genColumn = 0; + + for (; reader.pos < semi; reader.pos++) { + genColumn = decodeInteger(reader, genColumn); + + if (!hasMoreVlq(reader, semi)) { + const last = stack.pop()!; + last[2] = genLine; + last[3] = genColumn; + continue; + } + + const fields = decodeInteger(reader, 0); + const hasDefinition = fields & 0b0001; + const hasCallsite = fields & 0b0010; + const hasScope = fields & 0b0100; + + let callsite: CallSite | null = null; + let bindings: Binding[] = EMPTY; + let range: GeneratedRange; + if (hasDefinition) { + const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex); + definitionScopeIndex = decodeInteger( + reader, + definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0, + ); + + definitionSourcesIndex = defSourcesIndex; + range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex] as GeneratedRange; + } else { + range = [genLine, genColumn, 0, 0] as GeneratedRange; + } + + range.isScope = !!hasScope; + + if (hasCallsite) { + const prevCsi = callsiteSourcesIndex; + const prevLine = callsiteLine; + callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex); + const sameSource = prevCsi === callsiteSourcesIndex; + callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0); + callsiteColumn = decodeInteger( + reader, + sameSource && prevLine === callsiteLine ? callsiteColumn : 0, + ); + + callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn]; + } + range.callsite = callsite; + + if (hasMoreVlq(reader, semi)) { + bindings = []; + do { + bindingLine = genLine; + bindingColumn = genColumn; + const expressionsCount = decodeInteger(reader, 0); + let expressionRanges: BindingExpressionRange[]; + if (expressionsCount < -1) { + expressionRanges = [[decodeInteger(reader, 0)]]; + for (let i = -1; i > expressionsCount; i--) { + const prevBl = bindingLine; + bindingLine = decodeInteger(reader, bindingLine); + bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0); + const expression = decodeInteger(reader, 0); + expressionRanges.push([expression, bindingLine, bindingColumn]); + } + } else { + expressionRanges = [[expressionsCount]]; + } + bindings.push(expressionRanges); + } while (hasMoreVlq(reader, semi)); + } + range.bindings = bindings; + + ranges.push(range); + stack.push(range); + } + + genLine++; + reader.pos = semi + 1; + } while (reader.pos < length); + + return ranges; +} + +export function encodeGeneratedRanges(ranges: GeneratedRange[]): string { + if (ranges.length === 0) return ''; + + const writer = new StringWriter(); + + for (let i = 0; i < ranges.length; ) { + i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]); + } + + return writer.flush(); +} + +function _encodeGeneratedRanges( + ranges: GeneratedRange[], + index: number, + writer: StringWriter, + state: [ + number, // GenLine + number, // GenColumn + number, // DefSourcesIndex + number, // DefScopesIndex + number, // CallSourcesIndex + number, // CallLine + number, // CallColumn + ], +): number { + const range = ranges[index]; + const { + 0: startLine, + 1: startColumn, + 2: endLine, + 3: endColumn, + isScope, + callsite, + bindings, + } = range; + + if (state[0] < startLine) { + catchupLine(writer, state[0], startLine); + state[0] = startLine; + state[1] = 0; + } else if (index > 0) { + writer.write(comma); + } + + state[1] = encodeInteger(writer, range[1], state[1]); + + const fields = + (range.length === 6 ? 0b0001 : 0) | (callsite ? 0b0010 : 0) | (isScope ? 0b0100 : 0); + encodeInteger(writer, fields, 0); + + if (range.length === 6) { + const { 4: sourcesIndex, 5: scopesIndex } = range; + if (sourcesIndex !== state[2]) { + state[3] = 0; + } + state[2] = encodeInteger(writer, sourcesIndex, state[2]); + state[3] = encodeInteger(writer, scopesIndex, state[3]); + } + + if (callsite) { + const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite!; + if (sourcesIndex !== state[4]) { + state[5] = 0; + state[6] = 0; + } else if (callLine !== state[5]) { + state[6] = 0; + } + state[4] = encodeInteger(writer, sourcesIndex, state[4]); + state[5] = encodeInteger(writer, callLine, state[5]); + state[6] = encodeInteger(writer, callColumn, state[6]); + } + + if (bindings) { + for (const binding of bindings) { + if (binding.length > 1) encodeInteger(writer, -binding.length, 0); + const expression = binding[0][0]; + encodeInteger(writer, expression, 0); + let bindingStartLine = startLine; + let bindingStartColumn = startColumn; + for (let i = 1; i < binding.length; i++) { + const expRange = binding[i]; + bindingStartLine = encodeInteger(writer, expRange[1]!, bindingStartLine); + bindingStartColumn = encodeInteger(writer, expRange[2]!, bindingStartColumn); + encodeInteger(writer, expRange[0]!, 0); + } + } + } + + for (index++; index < ranges.length; ) { + const next = ranges[index]; + const { 0: l, 1: c } = next; + if (l > endLine || (l === endLine && c >= endColumn)) { + break; + } + index = _encodeGeneratedRanges(ranges, index, writer, state); + } + + if (state[0] < endLine) { + catchupLine(writer, state[0], endLine); + state[0] = endLine; + state[1] = 0; + } else { + writer.write(comma); + } + state[1] = encodeInteger(writer, endColumn, state[1]); + + return index; +} + +function catchupLine(writer: StringWriter, lastLine: number, line: number) { + do { + writer.write(semicolon); + } while (++lastLine < line); +} diff --git a/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts b/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts new file mode 100644 index 0000000..a81f894 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts @@ -0,0 +1,111 @@ +import { comma, decodeInteger, encodeInteger, hasMoreVlq, semicolon } from './vlq'; +import { StringWriter, StringReader } from './strings'; + +export { + decodeOriginalScopes, + encodeOriginalScopes, + decodeGeneratedRanges, + encodeGeneratedRanges, +} from './scopes'; +export type { OriginalScope, GeneratedRange, CallSite, BindingExpressionRange } from './scopes'; + +export type SourceMapSegment = + | [number] + | [number, number, number, number] + | [number, number, number, number, number]; +export type SourceMapLine = SourceMapSegment[]; +export type SourceMapMappings = SourceMapLine[]; + +export function decode(mappings: string): SourceMapMappings { + const { length } = mappings; + const reader = new StringReader(mappings); + const decoded: SourceMapMappings = []; + let genColumn = 0; + let sourcesIndex = 0; + let sourceLine = 0; + let sourceColumn = 0; + let namesIndex = 0; + + do { + const semi = reader.indexOf(';'); + const line: SourceMapLine = []; + let sorted = true; + let lastCol = 0; + genColumn = 0; + + while (reader.pos < semi) { + let seg: SourceMapSegment; + + genColumn = decodeInteger(reader, genColumn); + if (genColumn < lastCol) sorted = false; + lastCol = genColumn; + + if (hasMoreVlq(reader, semi)) { + sourcesIndex = decodeInteger(reader, sourcesIndex); + sourceLine = decodeInteger(reader, sourceLine); + sourceColumn = decodeInteger(reader, sourceColumn); + + if (hasMoreVlq(reader, semi)) { + namesIndex = decodeInteger(reader, namesIndex); + seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]; + } else { + seg = [genColumn, sourcesIndex, sourceLine, sourceColumn]; + } + } else { + seg = [genColumn]; + } + + line.push(seg); + reader.pos++; + } + + if (!sorted) sort(line); + decoded.push(line); + reader.pos = semi + 1; + } while (reader.pos <= length); + + return decoded; +} + +function sort(line: SourceMapSegment[]) { + line.sort(sortComparator); +} + +function sortComparator(a: SourceMapSegment, b: SourceMapSegment): number { + return a[0] - b[0]; +} + +export function encode(decoded: SourceMapMappings): string; +export function encode(decoded: Readonly): string; +export function encode(decoded: Readonly): string { + const writer = new StringWriter(); + let sourcesIndex = 0; + let sourceLine = 0; + let sourceColumn = 0; + let namesIndex = 0; + + for (let i = 0; i < decoded.length; i++) { + const line = decoded[i]; + if (i > 0) writer.write(semicolon); + if (line.length === 0) continue; + + let genColumn = 0; + + for (let j = 0; j < line.length; j++) { + const segment = line[j]; + if (j > 0) writer.write(comma); + + genColumn = encodeInteger(writer, segment[0], genColumn); + + if (segment.length === 1) continue; + sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex); + sourceLine = encodeInteger(writer, segment[2], sourceLine); + sourceColumn = encodeInteger(writer, segment[3], sourceColumn); + + if (segment.length === 4) continue; + namesIndex = encodeInteger(writer, segment[4], namesIndex); + } + } + + return writer.flush(); +} diff --git a/node_modules/@jridgewell/sourcemap-codec/src/strings.ts b/node_modules/@jridgewell/sourcemap-codec/src/strings.ts new file mode 100644 index 0000000..d161965 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/src/strings.ts @@ -0,0 +1,65 @@ +const bufLength = 1024 * 16; + +// Provide a fallback for older environments. +const td = + typeof TextDecoder !== 'undefined' + ? /* #__PURE__ */ new TextDecoder() + : typeof Buffer !== 'undefined' + ? { + decode(buf: Uint8Array): string { + const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength); + return out.toString(); + }, + } + : { + decode(buf: Uint8Array): string { + let out = ''; + for (let i = 0; i < buf.length; i++) { + out += String.fromCharCode(buf[i]); + } + return out; + }, + }; + +export class StringWriter { + pos = 0; + private out = ''; + private buffer = new Uint8Array(bufLength); + + write(v: number): void { + const { buffer } = this; + buffer[this.pos++] = v; + if (this.pos === bufLength) { + this.out += td.decode(buffer); + this.pos = 0; + } + } + + flush(): string { + const { buffer, out, pos } = this; + return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out; + } +} + +export class StringReader { + pos = 0; + declare private buffer: string; + + constructor(buffer: string) { + this.buffer = buffer; + } + + next(): number { + return this.buffer.charCodeAt(this.pos++); + } + + peek(): number { + return this.buffer.charCodeAt(this.pos); + } + + indexOf(char: string): number { + const { buffer, pos } = this; + const idx = buffer.indexOf(char, pos); + return idx === -1 ? buffer.length : idx; + } +} diff --git a/node_modules/@jridgewell/sourcemap-codec/src/vlq.ts b/node_modules/@jridgewell/sourcemap-codec/src/vlq.ts new file mode 100644 index 0000000..a42c681 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/src/vlq.ts @@ -0,0 +1,55 @@ +import type { StringReader, StringWriter } from './strings'; + +export const comma = ','.charCodeAt(0); +export const semicolon = ';'.charCodeAt(0); + +const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; +const intToChar = new Uint8Array(64); // 64 possible chars. +const charToInt = new Uint8Array(128); // z is 122 in ASCII + +for (let i = 0; i < chars.length; i++) { + const c = chars.charCodeAt(i); + intToChar[i] = c; + charToInt[c] = i; +} + +export function decodeInteger(reader: StringReader, relative: number): number { + let value = 0; + let shift = 0; + let integer = 0; + + do { + const c = reader.next(); + integer = charToInt[c]; + value |= (integer & 31) << shift; + shift += 5; + } while (integer & 32); + + const shouldNegate = value & 1; + value >>>= 1; + + if (shouldNegate) { + value = -0x80000000 | -value; + } + + return relative + value; +} + +export function encodeInteger(builder: StringWriter, num: number, relative: number): number { + let delta = num - relative; + + delta = delta < 0 ? (-delta << 1) | 1 : delta << 1; + do { + let clamped = delta & 0b011111; + delta >>>= 5; + if (delta > 0) clamped |= 0b100000; + builder.write(intToChar[clamped]); + } while (delta > 0); + + return num; +} + +export function hasMoreVlq(reader: StringReader, max: number) { + if (reader.pos >= max) return false; + return reader.peek() !== comma; +} diff --git a/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts new file mode 100644 index 0000000..c583c75 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts @@ -0,0 +1,50 @@ +type Line = number; +type Column = number; +type Kind = number; +type Name = number; +type Var = number; +type SourcesIndex = number; +type ScopesIndex = number; +type Mix = (A & O) | (B & O); +export type OriginalScope = Mix<[ + Line, + Column, + Line, + Column, + Kind +], [ + Line, + Column, + Line, + Column, + Kind, + Name +], { + vars: Var[]; +}>; +export type GeneratedRange = Mix<[ + Line, + Column, + Line, + Column +], [ + Line, + Column, + Line, + Column, + SourcesIndex, + ScopesIndex +], { + callsite: CallSite | null; + bindings: Binding[]; + isScope: boolean; +}>; +export type CallSite = [SourcesIndex, Line, Column]; +type Binding = BindingExpressionRange[]; +export type BindingExpressionRange = [Name] | [Name, Line, Column]; +export declare function decodeOriginalScopes(input: string): OriginalScope[]; +export declare function encodeOriginalScopes(scopes: OriginalScope[]): string; +export declare function decodeGeneratedRanges(input: string): GeneratedRange[]; +export declare function encodeGeneratedRanges(ranges: GeneratedRange[]): string; +export {}; +//# sourceMappingURL=scopes.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts.map b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts.map new file mode 100644 index 0000000..630e647 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../src/scopes.ts"],"names":[],"mappings":"AAKA,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,MAAM,GAAG,MAAM,CAAC;AACrB,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,GAAG,GAAG,MAAM,CAAC;AAClB,KAAK,YAAY,GAAG,MAAM,CAAC;AAC3B,KAAK,WAAW,GAAG,MAAM,CAAC;AAE1B,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAEtC,MAAM,MAAM,aAAa,GAAG,GAAG,CAC7B;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;IAAE,IAAI;CAAC,EAClC;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,IAAI;CAAC,EACxC;IAAE,IAAI,EAAE,GAAG,EAAE,CAAA;CAAE,CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,GAAG,CAC9B;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;CAAC,EAC5B;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;IAAE,YAAY;IAAE,WAAW;CAAC,EACvD;IACE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB,CACF,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACpD,KAAK,OAAO,GAAG,sBAAsB,EAAE,CAAC;AACxC,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAEnE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAyCnE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAQpE;AA2CD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAoGrE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAUtE"} \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts new file mode 100644 index 0000000..c583c75 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts @@ -0,0 +1,50 @@ +type Line = number; +type Column = number; +type Kind = number; +type Name = number; +type Var = number; +type SourcesIndex = number; +type ScopesIndex = number; +type Mix = (A & O) | (B & O); +export type OriginalScope = Mix<[ + Line, + Column, + Line, + Column, + Kind +], [ + Line, + Column, + Line, + Column, + Kind, + Name +], { + vars: Var[]; +}>; +export type GeneratedRange = Mix<[ + Line, + Column, + Line, + Column +], [ + Line, + Column, + Line, + Column, + SourcesIndex, + ScopesIndex +], { + callsite: CallSite | null; + bindings: Binding[]; + isScope: boolean; +}>; +export type CallSite = [SourcesIndex, Line, Column]; +type Binding = BindingExpressionRange[]; +export type BindingExpressionRange = [Name] | [Name, Line, Column]; +export declare function decodeOriginalScopes(input: string): OriginalScope[]; +export declare function encodeOriginalScopes(scopes: OriginalScope[]): string; +export declare function decodeGeneratedRanges(input: string): GeneratedRange[]; +export declare function encodeGeneratedRanges(ranges: GeneratedRange[]): string; +export {}; +//# sourceMappingURL=scopes.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts.map b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts.map new file mode 100644 index 0000000..630e647 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../src/scopes.ts"],"names":[],"mappings":"AAKA,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,MAAM,GAAG,MAAM,CAAC;AACrB,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,GAAG,GAAG,MAAM,CAAC;AAClB,KAAK,YAAY,GAAG,MAAM,CAAC;AAC3B,KAAK,WAAW,GAAG,MAAM,CAAC;AAE1B,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAEtC,MAAM,MAAM,aAAa,GAAG,GAAG,CAC7B;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;IAAE,IAAI;CAAC,EAClC;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,IAAI;CAAC,EACxC;IAAE,IAAI,EAAE,GAAG,EAAE,CAAA;CAAE,CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,GAAG,CAC9B;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;CAAC,EAC5B;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;IAAE,YAAY;IAAE,WAAW;CAAC,EACvD;IACE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB,CACF,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACpD,KAAK,OAAO,GAAG,sBAAsB,EAAE,CAAC;AACxC,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAEnE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAyCnE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAQpE;AA2CD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAoGrE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAUtE"} \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts new file mode 100644 index 0000000..5f35e22 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts @@ -0,0 +1,9 @@ +export { decodeOriginalScopes, encodeOriginalScopes, decodeGeneratedRanges, encodeGeneratedRanges, } from './scopes.cts'; +export type { OriginalScope, GeneratedRange, CallSite, BindingExpressionRange } from './scopes.cts'; +export type SourceMapSegment = [number] | [number, number, number, number] | [number, number, number, number, number]; +export type SourceMapLine = SourceMapSegment[]; +export type SourceMapMappings = SourceMapLine[]; +export declare function decode(mappings: string): SourceMapMappings; +export declare function encode(decoded: SourceMapMappings): string; +export declare function encode(decoded: Readonly): string; +//# sourceMappingURL=sourcemap-codec.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts.map b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts.map new file mode 100644 index 0000000..7123d52 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"sourcemap-codec.d.ts","sourceRoot":"","sources":["../src/sourcemap-codec.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEhG,MAAM,MAAM,gBAAgB,GACxB,CAAC,MAAM,CAAC,GACR,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAChC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,MAAM,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;AAC/C,MAAM,MAAM,iBAAiB,GAAG,aAAa,EAAE,CAAC;AAEhD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAiD1D;AAUD,wBAAgB,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAAC;AAC3D,wBAAgB,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC"} \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts new file mode 100644 index 0000000..199fb9f --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts @@ -0,0 +1,9 @@ +export { decodeOriginalScopes, encodeOriginalScopes, decodeGeneratedRanges, encodeGeneratedRanges, } from './scopes.mts'; +export type { OriginalScope, GeneratedRange, CallSite, BindingExpressionRange } from './scopes.mts'; +export type SourceMapSegment = [number] | [number, number, number, number] | [number, number, number, number, number]; +export type SourceMapLine = SourceMapSegment[]; +export type SourceMapMappings = SourceMapLine[]; +export declare function decode(mappings: string): SourceMapMappings; +export declare function encode(decoded: SourceMapMappings): string; +export declare function encode(decoded: Readonly): string; +//# sourceMappingURL=sourcemap-codec.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts.map b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts.map new file mode 100644 index 0000000..7123d52 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"sourcemap-codec.d.ts","sourceRoot":"","sources":["../src/sourcemap-codec.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEhG,MAAM,MAAM,gBAAgB,GACxB,CAAC,MAAM,CAAC,GACR,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAChC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,MAAM,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;AAC/C,MAAM,MAAM,iBAAiB,GAAG,aAAa,EAAE,CAAC;AAEhD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAiD1D;AAUD,wBAAgB,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAAC;AAC3D,wBAAgB,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC"} \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts new file mode 100644 index 0000000..62faceb --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts @@ -0,0 +1,16 @@ +export declare class StringWriter { + pos: number; + private out; + private buffer; + write(v: number): void; + flush(): string; +} +export declare class StringReader { + pos: number; + private buffer; + constructor(buffer: string); + next(): number; + peek(): number; + indexOf(char: string): number; +} +//# sourceMappingURL=strings.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts.map b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts.map new file mode 100644 index 0000000..d3602da --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../src/strings.ts"],"names":[],"mappings":"AAuBA,qBAAa,YAAY;IACvB,GAAG,SAAK;IACR,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,MAAM,CAA6B;IAE3C,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAStB,KAAK,IAAI,MAAM;CAIhB;AAED,qBAAa,YAAY;IACvB,GAAG,SAAK;IACR,QAAgB,MAAM,CAAS;gBAEnB,MAAM,EAAE,MAAM;IAI1B,IAAI,IAAI,MAAM;IAId,IAAI,IAAI,MAAM;IAId,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAK9B"} \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts new file mode 100644 index 0000000..62faceb --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts @@ -0,0 +1,16 @@ +export declare class StringWriter { + pos: number; + private out; + private buffer; + write(v: number): void; + flush(): string; +} +export declare class StringReader { + pos: number; + private buffer; + constructor(buffer: string); + next(): number; + peek(): number; + indexOf(char: string): number; +} +//# sourceMappingURL=strings.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts.map b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts.map new file mode 100644 index 0000000..d3602da --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../src/strings.ts"],"names":[],"mappings":"AAuBA,qBAAa,YAAY;IACvB,GAAG,SAAK;IACR,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,MAAM,CAA6B;IAE3C,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAStB,KAAK,IAAI,MAAM;CAIhB;AAED,qBAAa,YAAY;IACvB,GAAG,SAAK;IACR,QAAgB,MAAM,CAAS;gBAEnB,MAAM,EAAE,MAAM;IAI1B,IAAI,IAAI,MAAM;IAId,IAAI,IAAI,MAAM;IAId,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAK9B"} \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts new file mode 100644 index 0000000..dbd6602 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts @@ -0,0 +1,7 @@ +import type { StringReader, StringWriter } from './strings.cts'; +export declare const comma: number; +export declare const semicolon: number; +export declare function decodeInteger(reader: StringReader, relative: number): number; +export declare function encodeInteger(builder: StringWriter, num: number, relative: number): number; +export declare function hasMoreVlq(reader: StringReader, max: number): boolean; +//# sourceMappingURL=vlq.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts.map b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts.map new file mode 100644 index 0000000..6fdc356 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"vlq.d.ts","sourceRoot":"","sources":["../src/vlq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE5D,eAAO,MAAM,KAAK,QAAoB,CAAC;AACvC,eAAO,MAAM,SAAS,QAAoB,CAAC;AAY3C,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoB5E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY1F;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,WAG3D"} \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts new file mode 100644 index 0000000..2c739bc --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts @@ -0,0 +1,7 @@ +import type { StringReader, StringWriter } from './strings.mts'; +export declare const comma: number; +export declare const semicolon: number; +export declare function decodeInteger(reader: StringReader, relative: number): number; +export declare function encodeInteger(builder: StringWriter, num: number, relative: number): number; +export declare function hasMoreVlq(reader: StringReader, max: number): boolean; +//# sourceMappingURL=vlq.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts.map b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts.map new file mode 100644 index 0000000..6fdc356 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"vlq.d.ts","sourceRoot":"","sources":["../src/vlq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE5D,eAAO,MAAM,KAAK,QAAoB,CAAC;AACvC,eAAO,MAAM,SAAS,QAAoB,CAAC;AAY3C,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoB5E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY1F;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,WAG3D"} \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/LICENSE b/node_modules/@jridgewell/trace-mapping/LICENSE new file mode 100644 index 0000000..1f6ce94 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/LICENSE @@ -0,0 +1,19 @@ +Copyright 2024 Justin Ridgewell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@jridgewell/trace-mapping/README.md b/node_modules/@jridgewell/trace-mapping/README.md new file mode 100644 index 0000000..9fc0ed0 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/README.md @@ -0,0 +1,348 @@ +# @jridgewell/trace-mapping + +> Trace the original position through a source map + +`trace-mapping` allows you to take the line and column of an output file and trace it to the +original location in the source file through a source map. + +You may already be familiar with the [`source-map`][source-map] package's `SourceMapConsumer`. This +provides the same `originalPositionFor` and `generatedPositionFor` API, without requiring WASM. + +## Installation + +```sh +npm install @jridgewell/trace-mapping +``` + +## Usage + +```typescript +import { + TraceMap, + originalPositionFor, + generatedPositionFor, + sourceContentFor, + isIgnored, +} from '@jridgewell/trace-mapping'; + +const tracer = new TraceMap({ + version: 3, + sources: ['input.js'], + sourcesContent: ['content of input.js'], + names: ['foo'], + mappings: 'KAyCIA', + ignoreList: [], +}); + +// Lines start at line 1, columns at column 0. +const traced = originalPositionFor(tracer, { line: 1, column: 5 }); +assert.deepEqual(traced, { + source: 'input.js', + line: 42, + column: 4, + name: 'foo', +}); + +const content = sourceContentFor(tracer, traced.source); +assert.strictEqual(content, 'content for input.js'); + +const generated = generatedPositionFor(tracer, { + source: 'input.js', + line: 42, + column: 4, +}); +assert.deepEqual(generated, { + line: 1, + column: 5, +}); + +const ignored = isIgnored(tracer, 'input.js'); +assert.equal(ignored, false); +``` + +We also provide a lower level API to get the actual segment that matches our line and column. Unlike +`originalPositionFor`, `traceSegment` uses a 0-base for `line`: + +```typescript +import { traceSegment } from '@jridgewell/trace-mapping'; + +// line is 0-base. +const traced = traceSegment(tracer, /* line */ 0, /* column */ 5); + +// Segments are [outputColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex] +// Again, line is 0-base and so is sourceLine +assert.deepEqual(traced, [5, 0, 41, 4, 0]); +``` + +### SectionedSourceMaps + +The sourcemap spec defines a special `sections` field that's designed to handle concatenation of +output code with associated sourcemaps. This type of sourcemap is rarely used (no major build tool +produces it), but if you are hand coding a concatenation you may need it. We provide an `AnyMap` +helper that can receive either a regular sourcemap or a `SectionedSourceMap` and returns a +`TraceMap` instance: + +```typescript +import { AnyMap } from '@jridgewell/trace-mapping'; +const fooOutput = 'foo'; +const barOutput = 'bar'; +const output = [fooOutput, barOutput].join('\n'); + +const sectioned = new AnyMap({ + version: 3, + sections: [ + { + // 0-base line and column + offset: { line: 0, column: 0 }, + // fooOutput's sourcemap + map: { + version: 3, + sources: ['foo.js'], + names: ['foo'], + mappings: 'AAAAA', + }, + }, + { + // barOutput's sourcemap will not affect the first line, only the second + offset: { line: 1, column: 0 }, + map: { + version: 3, + sources: ['bar.js'], + names: ['bar'], + mappings: 'AAAAA', + }, + }, + ], +}); + +const traced = originalPositionFor(sectioned, { + line: 2, + column: 0, +}); + +assert.deepEqual(traced, { + source: 'bar.js', + line: 1, + column: 0, + name: 'bar', +}); +``` + +## Benchmarks + +``` +node v20.10.0 + +amp.js.map - 45120 segments + +Memory Usage: +trace-mapping decoded 414164 bytes +trace-mapping encoded 6274352 bytes +source-map-js 10968904 bytes +source-map-0.6.1 17587160 bytes +source-map-0.8.0 8812155 bytes +Chrome dev tools 8672912 bytes +Smallest memory usage is trace-mapping decoded + +Init speed: +trace-mapping: decoded JSON input x 205 ops/sec ±0.19% (88 runs sampled) +trace-mapping: encoded JSON input x 405 ops/sec ±1.47% (88 runs sampled) +trace-mapping: decoded Object input x 4,645 ops/sec ±0.15% (98 runs sampled) +trace-mapping: encoded Object input x 458 ops/sec ±1.63% (91 runs sampled) +source-map-js: encoded Object input x 75.48 ops/sec ±1.64% (67 runs sampled) +source-map-0.6.1: encoded Object input x 39.37 ops/sec ±1.44% (53 runs sampled) +Chrome dev tools: encoded Object input x 150 ops/sec ±1.76% (79 runs sampled) +Fastest is trace-mapping: decoded Object input + +Trace speed (random): +trace-mapping: decoded originalPositionFor x 44,946 ops/sec ±0.16% (99 runs sampled) +trace-mapping: encoded originalPositionFor x 37,995 ops/sec ±1.81% (89 runs sampled) +source-map-js: encoded originalPositionFor x 9,230 ops/sec ±1.36% (93 runs sampled) +source-map-0.6.1: encoded originalPositionFor x 8,057 ops/sec ±0.84% (96 runs sampled) +source-map-0.8.0: encoded originalPositionFor x 28,198 ops/sec ±1.12% (91 runs sampled) +Chrome dev tools: encoded originalPositionFor x 46,276 ops/sec ±1.35% (95 runs sampled) +Fastest is Chrome dev tools: encoded originalPositionFor + +Trace speed (ascending): +trace-mapping: decoded originalPositionFor x 204,406 ops/sec ±0.19% (97 runs sampled) +trace-mapping: encoded originalPositionFor x 196,695 ops/sec ±0.24% (99 runs sampled) +source-map-js: encoded originalPositionFor x 11,948 ops/sec ±0.94% (99 runs sampled) +source-map-0.6.1: encoded originalPositionFor x 10,730 ops/sec ±0.36% (100 runs sampled) +source-map-0.8.0: encoded originalPositionFor x 51,427 ops/sec ±0.21% (98 runs sampled) +Chrome dev tools: encoded originalPositionFor x 162,615 ops/sec ±0.18% (98 runs sampled) +Fastest is trace-mapping: decoded originalPositionFor + + +*** + + +babel.min.js.map - 347793 segments + +Memory Usage: +trace-mapping decoded 18504 bytes +trace-mapping encoded 35428008 bytes +source-map-js 51676808 bytes +source-map-0.6.1 63367136 bytes +source-map-0.8.0 43158400 bytes +Chrome dev tools 50721552 bytes +Smallest memory usage is trace-mapping decoded + +Init speed: +trace-mapping: decoded JSON input x 17.82 ops/sec ±6.35% (35 runs sampled) +trace-mapping: encoded JSON input x 31.57 ops/sec ±7.50% (43 runs sampled) +trace-mapping: decoded Object input x 867 ops/sec ±0.74% (94 runs sampled) +trace-mapping: encoded Object input x 33.83 ops/sec ±7.66% (46 runs sampled) +source-map-js: encoded Object input x 6.58 ops/sec ±3.31% (20 runs sampled) +source-map-0.6.1: encoded Object input x 4.23 ops/sec ±3.43% (15 runs sampled) +Chrome dev tools: encoded Object input x 22.14 ops/sec ±3.79% (41 runs sampled) +Fastest is trace-mapping: decoded Object input + +Trace speed (random): +trace-mapping: decoded originalPositionFor x 78,234 ops/sec ±1.48% (29 runs sampled) +trace-mapping: encoded originalPositionFor x 60,761 ops/sec ±1.35% (21 runs sampled) +source-map-js: encoded originalPositionFor x 51,448 ops/sec ±2.17% (89 runs sampled) +source-map-0.6.1: encoded originalPositionFor x 47,221 ops/sec ±1.99% (15 runs sampled) +source-map-0.8.0: encoded originalPositionFor x 84,002 ops/sec ±1.45% (27 runs sampled) +Chrome dev tools: encoded originalPositionFor x 106,457 ops/sec ±1.38% (37 runs sampled) +Fastest is Chrome dev tools: encoded originalPositionFor + +Trace speed (ascending): +trace-mapping: decoded originalPositionFor x 930,943 ops/sec ±0.25% (99 runs sampled) +trace-mapping: encoded originalPositionFor x 843,545 ops/sec ±0.34% (97 runs sampled) +source-map-js: encoded originalPositionFor x 114,510 ops/sec ±1.37% (36 runs sampled) +source-map-0.6.1: encoded originalPositionFor x 87,412 ops/sec ±0.72% (92 runs sampled) +source-map-0.8.0: encoded originalPositionFor x 197,709 ops/sec ±0.89% (59 runs sampled) +Chrome dev tools: encoded originalPositionFor x 688,983 ops/sec ±0.33% (98 runs sampled) +Fastest is trace-mapping: decoded originalPositionFor + + +*** + + +preact.js.map - 1992 segments + +Memory Usage: +trace-mapping decoded 33136 bytes +trace-mapping encoded 254240 bytes +source-map-js 837488 bytes +source-map-0.6.1 961928 bytes +source-map-0.8.0 54384 bytes +Chrome dev tools 709680 bytes +Smallest memory usage is trace-mapping decoded + +Init speed: +trace-mapping: decoded JSON input x 3,709 ops/sec ±0.13% (99 runs sampled) +trace-mapping: encoded JSON input x 6,447 ops/sec ±0.22% (101 runs sampled) +trace-mapping: decoded Object input x 83,062 ops/sec ±0.23% (100 runs sampled) +trace-mapping: encoded Object input x 14,980 ops/sec ±0.28% (100 runs sampled) +source-map-js: encoded Object input x 2,544 ops/sec ±0.16% (99 runs sampled) +source-map-0.6.1: encoded Object input x 1,221 ops/sec ±0.37% (97 runs sampled) +Chrome dev tools: encoded Object input x 4,241 ops/sec ±0.39% (93 runs sampled) +Fastest is trace-mapping: decoded Object input + +Trace speed (random): +trace-mapping: decoded originalPositionFor x 91,028 ops/sec ±0.14% (94 runs sampled) +trace-mapping: encoded originalPositionFor x 84,348 ops/sec ±0.26% (98 runs sampled) +source-map-js: encoded originalPositionFor x 26,998 ops/sec ±0.23% (98 runs sampled) +source-map-0.6.1: encoded originalPositionFor x 18,049 ops/sec ±0.26% (100 runs sampled) +source-map-0.8.0: encoded originalPositionFor x 41,916 ops/sec ±0.28% (98 runs sampled) +Chrome dev tools: encoded originalPositionFor x 88,616 ops/sec ±0.14% (98 runs sampled) +Fastest is trace-mapping: decoded originalPositionFor + +Trace speed (ascending): +trace-mapping: decoded originalPositionFor x 319,960 ops/sec ±0.16% (100 runs sampled) +trace-mapping: encoded originalPositionFor x 302,153 ops/sec ±0.18% (100 runs sampled) +source-map-js: encoded originalPositionFor x 35,574 ops/sec ±0.19% (100 runs sampled) +source-map-0.6.1: encoded originalPositionFor x 19,943 ops/sec ±0.12% (101 runs sampled) +source-map-0.8.0: encoded originalPositionFor x 54,648 ops/sec ±0.20% (99 runs sampled) +Chrome dev tools: encoded originalPositionFor x 278,319 ops/sec ±0.17% (102 runs sampled) +Fastest is trace-mapping: decoded originalPositionFor + + +*** + + +react.js.map - 5726 segments + +Memory Usage: +trace-mapping decoded 10872 bytes +trace-mapping encoded 681512 bytes +source-map-js 2563944 bytes +source-map-0.6.1 2150864 bytes +source-map-0.8.0 88680 bytes +Chrome dev tools 1149576 bytes +Smallest memory usage is trace-mapping decoded + +Init speed: +trace-mapping: decoded JSON input x 1,887 ops/sec ±0.28% (99 runs sampled) +trace-mapping: encoded JSON input x 4,749 ops/sec ±0.48% (97 runs sampled) +trace-mapping: decoded Object input x 74,236 ops/sec ±0.11% (99 runs sampled) +trace-mapping: encoded Object input x 5,752 ops/sec ±0.38% (100 runs sampled) +source-map-js: encoded Object input x 806 ops/sec ±0.19% (97 runs sampled) +source-map-0.6.1: encoded Object input x 418 ops/sec ±0.33% (94 runs sampled) +Chrome dev tools: encoded Object input x 1,524 ops/sec ±0.57% (92 runs sampled) +Fastest is trace-mapping: decoded Object input + +Trace speed (random): +trace-mapping: decoded originalPositionFor x 620,201 ops/sec ±0.33% (96 runs sampled) +trace-mapping: encoded originalPositionFor x 579,548 ops/sec ±0.35% (97 runs sampled) +source-map-js: encoded originalPositionFor x 230,983 ops/sec ±0.62% (54 runs sampled) +source-map-0.6.1: encoded originalPositionFor x 158,145 ops/sec ±0.80% (46 runs sampled) +source-map-0.8.0: encoded originalPositionFor x 343,801 ops/sec ±0.55% (96 runs sampled) +Chrome dev tools: encoded originalPositionFor x 659,649 ops/sec ±0.49% (98 runs sampled) +Fastest is Chrome dev tools: encoded originalPositionFor + +Trace speed (ascending): +trace-mapping: decoded originalPositionFor x 2,368,079 ops/sec ±0.32% (98 runs sampled) +trace-mapping: encoded originalPositionFor x 2,134,039 ops/sec ±2.72% (87 runs sampled) +source-map-js: encoded originalPositionFor x 290,120 ops/sec ±2.49% (82 runs sampled) +source-map-0.6.1: encoded originalPositionFor x 187,613 ops/sec ±0.86% (49 runs sampled) +source-map-0.8.0: encoded originalPositionFor x 479,569 ops/sec ±0.65% (96 runs sampled) +Chrome dev tools: encoded originalPositionFor x 2,048,414 ops/sec ±0.24% (98 runs sampled) +Fastest is trace-mapping: decoded originalPositionFor + + +*** + + +vscode.map - 2141001 segments + +Memory Usage: +trace-mapping decoded 5206584 bytes +trace-mapping encoded 208370336 bytes +source-map-js 278493008 bytes +source-map-0.6.1 391564048 bytes +source-map-0.8.0 257508787 bytes +Chrome dev tools 291053000 bytes +Smallest memory usage is trace-mapping decoded + +Init speed: +trace-mapping: decoded JSON input x 1.63 ops/sec ±33.88% (9 runs sampled) +trace-mapping: encoded JSON input x 3.29 ops/sec ±36.13% (13 runs sampled) +trace-mapping: decoded Object input x 103 ops/sec ±0.93% (77 runs sampled) +trace-mapping: encoded Object input x 5.42 ops/sec ±28.54% (19 runs sampled) +source-map-js: encoded Object input x 1.07 ops/sec ±13.84% (7 runs sampled) +source-map-0.6.1: encoded Object input x 0.60 ops/sec ±2.43% (6 runs sampled) +Chrome dev tools: encoded Object input x 2.61 ops/sec ±22.00% (11 runs sampled) +Fastest is trace-mapping: decoded Object input + +Trace speed (random): +trace-mapping: decoded originalPositionFor x 257,019 ops/sec ±0.97% (93 runs sampled) +trace-mapping: encoded originalPositionFor x 179,163 ops/sec ±0.83% (92 runs sampled) +source-map-js: encoded originalPositionFor x 73,337 ops/sec ±1.35% (87 runs sampled) +source-map-0.6.1: encoded originalPositionFor x 38,797 ops/sec ±1.66% (88 runs sampled) +source-map-0.8.0: encoded originalPositionFor x 107,758 ops/sec ±1.94% (45 runs sampled) +Chrome dev tools: encoded originalPositionFor x 188,550 ops/sec ±1.85% (79 runs sampled) +Fastest is trace-mapping: decoded originalPositionFor + +Trace speed (ascending): +trace-mapping: decoded originalPositionFor x 447,621 ops/sec ±3.64% (94 runs sampled) +trace-mapping: encoded originalPositionFor x 323,698 ops/sec ±5.20% (88 runs sampled) +source-map-js: encoded originalPositionFor x 78,387 ops/sec ±1.69% (89 runs sampled) +source-map-0.6.1: encoded originalPositionFor x 41,016 ops/sec ±3.01% (25 runs sampled) +source-map-0.8.0: encoded originalPositionFor x 124,204 ops/sec ±0.90% (92 runs sampled) +Chrome dev tools: encoded originalPositionFor x 230,087 ops/sec ±2.61% (93 runs sampled) +Fastest is trace-mapping: decoded originalPositionFor +``` + +[source-map]: https://www.npmjs.com/package/source-map diff --git a/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs b/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs new file mode 100644 index 0000000..73a95c7 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs @@ -0,0 +1,493 @@ +// src/trace-mapping.ts +import { encode, decode } from "@jridgewell/sourcemap-codec"; + +// src/resolve.ts +import resolveUri from "@jridgewell/resolve-uri"; + +// src/strip-filename.ts +function stripFilename(path) { + if (!path) return ""; + const index = path.lastIndexOf("/"); + return path.slice(0, index + 1); +} + +// src/resolve.ts +function resolver(mapUrl, sourceRoot) { + const from = stripFilename(mapUrl); + const prefix = sourceRoot ? sourceRoot + "/" : ""; + return (source) => resolveUri(prefix + (source || ""), from); +} + +// src/sourcemap-segment.ts +var COLUMN = 0; +var SOURCES_INDEX = 1; +var SOURCE_LINE = 2; +var SOURCE_COLUMN = 3; +var NAMES_INDEX = 4; +var REV_GENERATED_LINE = 1; +var REV_GENERATED_COLUMN = 2; + +// src/sort.ts +function maybeSort(mappings, owned) { + const unsortedIndex = nextUnsortedSegmentLine(mappings, 0); + if (unsortedIndex === mappings.length) return mappings; + if (!owned) mappings = mappings.slice(); + for (let i = unsortedIndex; i < mappings.length; i = nextUnsortedSegmentLine(mappings, i + 1)) { + mappings[i] = sortSegments(mappings[i], owned); + } + return mappings; +} +function nextUnsortedSegmentLine(mappings, start) { + for (let i = start; i < mappings.length; i++) { + if (!isSorted(mappings[i])) return i; + } + return mappings.length; +} +function isSorted(line) { + for (let j = 1; j < line.length; j++) { + if (line[j][COLUMN] < line[j - 1][COLUMN]) { + return false; + } + } + return true; +} +function sortSegments(line, owned) { + if (!owned) line = line.slice(); + return line.sort(sortComparator); +} +function sortComparator(a, b) { + return a[COLUMN] - b[COLUMN]; +} + +// src/by-source.ts +function buildBySources(decoded, memos) { + const sources = memos.map(() => []); + for (let i = 0; i < decoded.length; i++) { + const line = decoded[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + if (seg.length === 1) continue; + const sourceIndex2 = seg[SOURCES_INDEX]; + const sourceLine = seg[SOURCE_LINE]; + const sourceColumn = seg[SOURCE_COLUMN]; + const source = sources[sourceIndex2]; + const segs = source[sourceLine] || (source[sourceLine] = []); + segs.push([sourceColumn, i, seg[COLUMN]]); + } + } + for (let i = 0; i < sources.length; i++) { + const source = sources[i]; + for (let j = 0; j < source.length; j++) { + const line = source[j]; + if (line) line.sort(sortComparator); + } + } + return sources; +} + +// src/binary-search.ts +var found = false; +function binarySearch(haystack, needle, low, high) { + while (low <= high) { + const mid = low + (high - low >> 1); + const cmp = haystack[mid][COLUMN] - needle; + if (cmp === 0) { + found = true; + return mid; + } + if (cmp < 0) { + low = mid + 1; + } else { + high = mid - 1; + } + } + found = false; + return low - 1; +} +function upperBound(haystack, needle, index) { + for (let i = index + 1; i < haystack.length; index = i++) { + if (haystack[i][COLUMN] !== needle) break; + } + return index; +} +function lowerBound(haystack, needle, index) { + for (let i = index - 1; i >= 0; index = i--) { + if (haystack[i][COLUMN] !== needle) break; + } + return index; +} +function memoizedState() { + return { + lastKey: -1, + lastNeedle: -1, + lastIndex: -1 + }; +} +function memoizedBinarySearch(haystack, needle, state, key) { + const { lastKey, lastNeedle, lastIndex } = state; + let low = 0; + let high = haystack.length - 1; + if (key === lastKey) { + if (needle === lastNeedle) { + found = lastIndex !== -1 && haystack[lastIndex][COLUMN] === needle; + return lastIndex; + } + if (needle >= lastNeedle) { + low = lastIndex === -1 ? 0 : lastIndex; + } else { + high = lastIndex; + } + } + state.lastKey = key; + state.lastNeedle = needle; + return state.lastIndex = binarySearch(haystack, needle, low, high); +} + +// src/types.ts +function parse(map) { + return typeof map === "string" ? JSON.parse(map) : map; +} + +// src/flatten-map.ts +var FlattenMap = function(map, mapUrl) { + const parsed = parse(map); + if (!("sections" in parsed)) { + return new TraceMap(parsed, mapUrl); + } + const mappings = []; + const sources = []; + const sourcesContent = []; + const names = []; + const ignoreList = []; + recurse( + parsed, + mapUrl, + mappings, + sources, + sourcesContent, + names, + ignoreList, + 0, + 0, + Infinity, + Infinity + ); + const joined = { + version: 3, + file: parsed.file, + names, + sources, + sourcesContent, + mappings, + ignoreList + }; + return presortedDecodedMap(joined); +}; +function recurse(input, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset, columnOffset, stopLine, stopColumn) { + const { sections } = input; + for (let i = 0; i < sections.length; i++) { + const { map, offset } = sections[i]; + let sl = stopLine; + let sc = stopColumn; + if (i + 1 < sections.length) { + const nextOffset = sections[i + 1].offset; + sl = Math.min(stopLine, lineOffset + nextOffset.line); + if (sl === stopLine) { + sc = Math.min(stopColumn, columnOffset + nextOffset.column); + } else if (sl < stopLine) { + sc = columnOffset + nextOffset.column; + } + } + addSection( + map, + mapUrl, + mappings, + sources, + sourcesContent, + names, + ignoreList, + lineOffset + offset.line, + columnOffset + offset.column, + sl, + sc + ); + } +} +function addSection(input, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset, columnOffset, stopLine, stopColumn) { + const parsed = parse(input); + if ("sections" in parsed) return recurse(...arguments); + const map = new TraceMap(parsed, mapUrl); + const sourcesOffset = sources.length; + const namesOffset = names.length; + const decoded = decodedMappings(map); + const { resolvedSources, sourcesContent: contents, ignoreList: ignores } = map; + append(sources, resolvedSources); + append(names, map.names); + if (contents) append(sourcesContent, contents); + else for (let i = 0; i < resolvedSources.length; i++) sourcesContent.push(null); + if (ignores) for (let i = 0; i < ignores.length; i++) ignoreList.push(ignores[i] + sourcesOffset); + for (let i = 0; i < decoded.length; i++) { + const lineI = lineOffset + i; + if (lineI > stopLine) return; + const out = getLine(mappings, lineI); + const cOffset = i === 0 ? columnOffset : 0; + const line = decoded[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + const column = cOffset + seg[COLUMN]; + if (lineI === stopLine && column >= stopColumn) return; + if (seg.length === 1) { + out.push([column]); + continue; + } + const sourcesIndex = sourcesOffset + seg[SOURCES_INDEX]; + const sourceLine = seg[SOURCE_LINE]; + const sourceColumn = seg[SOURCE_COLUMN]; + out.push( + seg.length === 4 ? [column, sourcesIndex, sourceLine, sourceColumn] : [column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX]] + ); + } + } +} +function append(arr, other) { + for (let i = 0; i < other.length; i++) arr.push(other[i]); +} +function getLine(arr, index) { + for (let i = arr.length; i <= index; i++) arr[i] = []; + return arr[index]; +} + +// src/trace-mapping.ts +var LINE_GTR_ZERO = "`line` must be greater than 0 (lines start at line 1)"; +var COL_GTR_EQ_ZERO = "`column` must be greater than or equal to 0 (columns start at column 0)"; +var LEAST_UPPER_BOUND = -1; +var GREATEST_LOWER_BOUND = 1; +var TraceMap = class { + constructor(map, mapUrl) { + const isString = typeof map === "string"; + if (!isString && map._decodedMemo) return map; + const parsed = parse(map); + const { version, file, names, sourceRoot, sources, sourcesContent } = parsed; + this.version = version; + this.file = file; + this.names = names || []; + this.sourceRoot = sourceRoot; + this.sources = sources; + this.sourcesContent = sourcesContent; + this.ignoreList = parsed.ignoreList || parsed.x_google_ignoreList || void 0; + const resolve = resolver(mapUrl, sourceRoot); + this.resolvedSources = sources.map(resolve); + const { mappings } = parsed; + if (typeof mappings === "string") { + this._encoded = mappings; + this._decoded = void 0; + } else if (Array.isArray(mappings)) { + this._encoded = void 0; + this._decoded = maybeSort(mappings, isString); + } else if (parsed.sections) { + throw new Error(`TraceMap passed sectioned source map, please use FlattenMap export instead`); + } else { + throw new Error(`invalid source map: ${JSON.stringify(parsed)}`); + } + this._decodedMemo = memoizedState(); + this._bySources = void 0; + this._bySourceMemos = void 0; + } +}; +function cast(map) { + return map; +} +function encodedMappings(map) { + var _a, _b; + return (_b = (_a = cast(map))._encoded) != null ? _b : _a._encoded = encode(cast(map)._decoded); +} +function decodedMappings(map) { + var _a; + return (_a = cast(map))._decoded || (_a._decoded = decode(cast(map)._encoded)); +} +function traceSegment(map, line, column) { + const decoded = decodedMappings(map); + if (line >= decoded.length) return null; + const segments = decoded[line]; + const index = traceSegmentInternal( + segments, + cast(map)._decodedMemo, + line, + column, + GREATEST_LOWER_BOUND + ); + return index === -1 ? null : segments[index]; +} +function originalPositionFor(map, needle) { + let { line, column, bias } = needle; + line--; + if (line < 0) throw new Error(LINE_GTR_ZERO); + if (column < 0) throw new Error(COL_GTR_EQ_ZERO); + const decoded = decodedMappings(map); + if (line >= decoded.length) return OMapping(null, null, null, null); + const segments = decoded[line]; + const index = traceSegmentInternal( + segments, + cast(map)._decodedMemo, + line, + column, + bias || GREATEST_LOWER_BOUND + ); + if (index === -1) return OMapping(null, null, null, null); + const segment = segments[index]; + if (segment.length === 1) return OMapping(null, null, null, null); + const { names, resolvedSources } = map; + return OMapping( + resolvedSources[segment[SOURCES_INDEX]], + segment[SOURCE_LINE] + 1, + segment[SOURCE_COLUMN], + segment.length === 5 ? names[segment[NAMES_INDEX]] : null + ); +} +function generatedPositionFor(map, needle) { + const { source, line, column, bias } = needle; + return generatedPosition(map, source, line, column, bias || GREATEST_LOWER_BOUND, false); +} +function allGeneratedPositionsFor(map, needle) { + const { source, line, column, bias } = needle; + return generatedPosition(map, source, line, column, bias || LEAST_UPPER_BOUND, true); +} +function eachMapping(map, cb) { + const decoded = decodedMappings(map); + const { names, resolvedSources } = map; + for (let i = 0; i < decoded.length; i++) { + const line = decoded[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + const generatedLine = i + 1; + const generatedColumn = seg[0]; + let source = null; + let originalLine = null; + let originalColumn = null; + let name = null; + if (seg.length !== 1) { + source = resolvedSources[seg[1]]; + originalLine = seg[2] + 1; + originalColumn = seg[3]; + } + if (seg.length === 5) name = names[seg[4]]; + cb({ + generatedLine, + generatedColumn, + source, + originalLine, + originalColumn, + name + }); + } + } +} +function sourceIndex(map, source) { + const { sources, resolvedSources } = map; + let index = sources.indexOf(source); + if (index === -1) index = resolvedSources.indexOf(source); + return index; +} +function sourceContentFor(map, source) { + const { sourcesContent } = map; + if (sourcesContent == null) return null; + const index = sourceIndex(map, source); + return index === -1 ? null : sourcesContent[index]; +} +function isIgnored(map, source) { + const { ignoreList } = map; + if (ignoreList == null) return false; + const index = sourceIndex(map, source); + return index === -1 ? false : ignoreList.includes(index); +} +function presortedDecodedMap(map, mapUrl) { + const tracer = new TraceMap(clone(map, []), mapUrl); + cast(tracer)._decoded = map.mappings; + return tracer; +} +function decodedMap(map) { + return clone(map, decodedMappings(map)); +} +function encodedMap(map) { + return clone(map, encodedMappings(map)); +} +function clone(map, mappings) { + return { + version: map.version, + file: map.file, + names: map.names, + sourceRoot: map.sourceRoot, + sources: map.sources, + sourcesContent: map.sourcesContent, + mappings, + ignoreList: map.ignoreList || map.x_google_ignoreList + }; +} +function OMapping(source, line, column, name) { + return { source, line, column, name }; +} +function GMapping(line, column) { + return { line, column }; +} +function traceSegmentInternal(segments, memo, line, column, bias) { + let index = memoizedBinarySearch(segments, column, memo, line); + if (found) { + index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index); + } else if (bias === LEAST_UPPER_BOUND) index++; + if (index === -1 || index === segments.length) return -1; + return index; +} +function sliceGeneratedPositions(segments, memo, line, column, bias) { + let min = traceSegmentInternal(segments, memo, line, column, GREATEST_LOWER_BOUND); + if (!found && bias === LEAST_UPPER_BOUND) min++; + if (min === -1 || min === segments.length) return []; + const matchedColumn = found ? column : segments[min][COLUMN]; + if (!found) min = lowerBound(segments, matchedColumn, min); + const max = upperBound(segments, matchedColumn, min); + const result = []; + for (; min <= max; min++) { + const segment = segments[min]; + result.push(GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN])); + } + return result; +} +function generatedPosition(map, source, line, column, bias, all) { + var _a, _b; + line--; + if (line < 0) throw new Error(LINE_GTR_ZERO); + if (column < 0) throw new Error(COL_GTR_EQ_ZERO); + const { sources, resolvedSources } = map; + let sourceIndex2 = sources.indexOf(source); + if (sourceIndex2 === -1) sourceIndex2 = resolvedSources.indexOf(source); + if (sourceIndex2 === -1) return all ? [] : GMapping(null, null); + const bySourceMemos = (_a = cast(map))._bySourceMemos || (_a._bySourceMemos = sources.map(memoizedState)); + const generated = (_b = cast(map))._bySources || (_b._bySources = buildBySources(decodedMappings(map), bySourceMemos)); + const segments = generated[sourceIndex2][line]; + if (segments == null) return all ? [] : GMapping(null, null); + const memo = bySourceMemos[sourceIndex2]; + if (all) return sliceGeneratedPositions(segments, memo, line, column, bias); + const index = traceSegmentInternal(segments, memo, line, column, bias); + if (index === -1) return GMapping(null, null); + const segment = segments[index]; + return GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]); +} +export { + FlattenMap as AnyMap, + FlattenMap, + GREATEST_LOWER_BOUND, + LEAST_UPPER_BOUND, + TraceMap, + allGeneratedPositionsFor, + decodedMap, + decodedMappings, + eachMapping, + encodedMap, + encodedMappings, + generatedPositionFor, + isIgnored, + originalPositionFor, + presortedDecodedMap, + sourceContentFor, + traceSegment +}; +//# sourceMappingURL=trace-mapping.mjs.map diff --git a/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs.map b/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs.map new file mode 100644 index 0000000..a789581 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../src/trace-mapping.ts", "../src/resolve.ts", "../src/strip-filename.ts", "../src/sourcemap-segment.ts", "../src/sort.ts", "../src/by-source.ts", "../src/binary-search.ts", "../src/types.ts", "../src/flatten-map.ts"], + "mappings": "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", + "names": ["sourceIndex", "sourceIndex"] +} diff --git a/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js b/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js new file mode 100644 index 0000000..0387ae3 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js @@ -0,0 +1,559 @@ +(function (global, factory) { + if (typeof exports === 'object' && typeof module !== 'undefined') { + factory(module, require('@jridgewell/resolve-uri'), require('@jridgewell/sourcemap-codec')); + module.exports = def(module); + } else if (typeof define === 'function' && define.amd) { + define(['module', '@jridgewell/resolve-uri', '@jridgewell/sourcemap-codec'], function(mod) { + factory.apply(this, arguments); + mod.exports = def(mod); + }); + } else { + const mod = { exports: {} }; + factory(mod, global.resolveURI, global.sourcemapCodec); + global = typeof globalThis !== 'undefined' ? globalThis : global || self; + global.traceMapping = def(mod); + } + function def(m) { return 'default' in m.exports ? m.exports.default : m.exports; } +})(this, (function (module, require_resolveURI, require_sourcemapCodec) { +"use strict"; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// umd:@jridgewell/sourcemap-codec +var require_sourcemap_codec = __commonJS({ + "umd:@jridgewell/sourcemap-codec"(exports, module2) { + module2.exports = require_sourcemapCodec; + } +}); + +// umd:@jridgewell/resolve-uri +var require_resolve_uri = __commonJS({ + "umd:@jridgewell/resolve-uri"(exports, module2) { + module2.exports = require_resolveURI; + } +}); + +// src/trace-mapping.ts +var trace_mapping_exports = {}; +__export(trace_mapping_exports, { + AnyMap: () => FlattenMap, + FlattenMap: () => FlattenMap, + GREATEST_LOWER_BOUND: () => GREATEST_LOWER_BOUND, + LEAST_UPPER_BOUND: () => LEAST_UPPER_BOUND, + TraceMap: () => TraceMap, + allGeneratedPositionsFor: () => allGeneratedPositionsFor, + decodedMap: () => decodedMap, + decodedMappings: () => decodedMappings, + eachMapping: () => eachMapping, + encodedMap: () => encodedMap, + encodedMappings: () => encodedMappings, + generatedPositionFor: () => generatedPositionFor, + isIgnored: () => isIgnored, + originalPositionFor: () => originalPositionFor, + presortedDecodedMap: () => presortedDecodedMap, + sourceContentFor: () => sourceContentFor, + traceSegment: () => traceSegment +}); +module.exports = __toCommonJS(trace_mapping_exports); +var import_sourcemap_codec = __toESM(require_sourcemap_codec()); + +// src/resolve.ts +var import_resolve_uri = __toESM(require_resolve_uri()); + +// src/strip-filename.ts +function stripFilename(path) { + if (!path) return ""; + const index = path.lastIndexOf("/"); + return path.slice(0, index + 1); +} + +// src/resolve.ts +function resolver(mapUrl, sourceRoot) { + const from = stripFilename(mapUrl); + const prefix = sourceRoot ? sourceRoot + "/" : ""; + return (source) => (0, import_resolve_uri.default)(prefix + (source || ""), from); +} + +// src/sourcemap-segment.ts +var COLUMN = 0; +var SOURCES_INDEX = 1; +var SOURCE_LINE = 2; +var SOURCE_COLUMN = 3; +var NAMES_INDEX = 4; +var REV_GENERATED_LINE = 1; +var REV_GENERATED_COLUMN = 2; + +// src/sort.ts +function maybeSort(mappings, owned) { + const unsortedIndex = nextUnsortedSegmentLine(mappings, 0); + if (unsortedIndex === mappings.length) return mappings; + if (!owned) mappings = mappings.slice(); + for (let i = unsortedIndex; i < mappings.length; i = nextUnsortedSegmentLine(mappings, i + 1)) { + mappings[i] = sortSegments(mappings[i], owned); + } + return mappings; +} +function nextUnsortedSegmentLine(mappings, start) { + for (let i = start; i < mappings.length; i++) { + if (!isSorted(mappings[i])) return i; + } + return mappings.length; +} +function isSorted(line) { + for (let j = 1; j < line.length; j++) { + if (line[j][COLUMN] < line[j - 1][COLUMN]) { + return false; + } + } + return true; +} +function sortSegments(line, owned) { + if (!owned) line = line.slice(); + return line.sort(sortComparator); +} +function sortComparator(a, b) { + return a[COLUMN] - b[COLUMN]; +} + +// src/by-source.ts +function buildBySources(decoded, memos) { + const sources = memos.map(() => []); + for (let i = 0; i < decoded.length; i++) { + const line = decoded[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + if (seg.length === 1) continue; + const sourceIndex2 = seg[SOURCES_INDEX]; + const sourceLine = seg[SOURCE_LINE]; + const sourceColumn = seg[SOURCE_COLUMN]; + const source = sources[sourceIndex2]; + const segs = source[sourceLine] || (source[sourceLine] = []); + segs.push([sourceColumn, i, seg[COLUMN]]); + } + } + for (let i = 0; i < sources.length; i++) { + const source = sources[i]; + for (let j = 0; j < source.length; j++) { + const line = source[j]; + if (line) line.sort(sortComparator); + } + } + return sources; +} + +// src/binary-search.ts +var found = false; +function binarySearch(haystack, needle, low, high) { + while (low <= high) { + const mid = low + (high - low >> 1); + const cmp = haystack[mid][COLUMN] - needle; + if (cmp === 0) { + found = true; + return mid; + } + if (cmp < 0) { + low = mid + 1; + } else { + high = mid - 1; + } + } + found = false; + return low - 1; +} +function upperBound(haystack, needle, index) { + for (let i = index + 1; i < haystack.length; index = i++) { + if (haystack[i][COLUMN] !== needle) break; + } + return index; +} +function lowerBound(haystack, needle, index) { + for (let i = index - 1; i >= 0; index = i--) { + if (haystack[i][COLUMN] !== needle) break; + } + return index; +} +function memoizedState() { + return { + lastKey: -1, + lastNeedle: -1, + lastIndex: -1 + }; +} +function memoizedBinarySearch(haystack, needle, state, key) { + const { lastKey, lastNeedle, lastIndex } = state; + let low = 0; + let high = haystack.length - 1; + if (key === lastKey) { + if (needle === lastNeedle) { + found = lastIndex !== -1 && haystack[lastIndex][COLUMN] === needle; + return lastIndex; + } + if (needle >= lastNeedle) { + low = lastIndex === -1 ? 0 : lastIndex; + } else { + high = lastIndex; + } + } + state.lastKey = key; + state.lastNeedle = needle; + return state.lastIndex = binarySearch(haystack, needle, low, high); +} + +// src/types.ts +function parse(map) { + return typeof map === "string" ? JSON.parse(map) : map; +} + +// src/flatten-map.ts +var FlattenMap = function(map, mapUrl) { + const parsed = parse(map); + if (!("sections" in parsed)) { + return new TraceMap(parsed, mapUrl); + } + const mappings = []; + const sources = []; + const sourcesContent = []; + const names = []; + const ignoreList = []; + recurse( + parsed, + mapUrl, + mappings, + sources, + sourcesContent, + names, + ignoreList, + 0, + 0, + Infinity, + Infinity + ); + const joined = { + version: 3, + file: parsed.file, + names, + sources, + sourcesContent, + mappings, + ignoreList + }; + return presortedDecodedMap(joined); +}; +function recurse(input, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset, columnOffset, stopLine, stopColumn) { + const { sections } = input; + for (let i = 0; i < sections.length; i++) { + const { map, offset } = sections[i]; + let sl = stopLine; + let sc = stopColumn; + if (i + 1 < sections.length) { + const nextOffset = sections[i + 1].offset; + sl = Math.min(stopLine, lineOffset + nextOffset.line); + if (sl === stopLine) { + sc = Math.min(stopColumn, columnOffset + nextOffset.column); + } else if (sl < stopLine) { + sc = columnOffset + nextOffset.column; + } + } + addSection( + map, + mapUrl, + mappings, + sources, + sourcesContent, + names, + ignoreList, + lineOffset + offset.line, + columnOffset + offset.column, + sl, + sc + ); + } +} +function addSection(input, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset, columnOffset, stopLine, stopColumn) { + const parsed = parse(input); + if ("sections" in parsed) return recurse(...arguments); + const map = new TraceMap(parsed, mapUrl); + const sourcesOffset = sources.length; + const namesOffset = names.length; + const decoded = decodedMappings(map); + const { resolvedSources, sourcesContent: contents, ignoreList: ignores } = map; + append(sources, resolvedSources); + append(names, map.names); + if (contents) append(sourcesContent, contents); + else for (let i = 0; i < resolvedSources.length; i++) sourcesContent.push(null); + if (ignores) for (let i = 0; i < ignores.length; i++) ignoreList.push(ignores[i] + sourcesOffset); + for (let i = 0; i < decoded.length; i++) { + const lineI = lineOffset + i; + if (lineI > stopLine) return; + const out = getLine(mappings, lineI); + const cOffset = i === 0 ? columnOffset : 0; + const line = decoded[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + const column = cOffset + seg[COLUMN]; + if (lineI === stopLine && column >= stopColumn) return; + if (seg.length === 1) { + out.push([column]); + continue; + } + const sourcesIndex = sourcesOffset + seg[SOURCES_INDEX]; + const sourceLine = seg[SOURCE_LINE]; + const sourceColumn = seg[SOURCE_COLUMN]; + out.push( + seg.length === 4 ? [column, sourcesIndex, sourceLine, sourceColumn] : [column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX]] + ); + } + } +} +function append(arr, other) { + for (let i = 0; i < other.length; i++) arr.push(other[i]); +} +function getLine(arr, index) { + for (let i = arr.length; i <= index; i++) arr[i] = []; + return arr[index]; +} + +// src/trace-mapping.ts +var LINE_GTR_ZERO = "`line` must be greater than 0 (lines start at line 1)"; +var COL_GTR_EQ_ZERO = "`column` must be greater than or equal to 0 (columns start at column 0)"; +var LEAST_UPPER_BOUND = -1; +var GREATEST_LOWER_BOUND = 1; +var TraceMap = class { + constructor(map, mapUrl) { + const isString = typeof map === "string"; + if (!isString && map._decodedMemo) return map; + const parsed = parse(map); + const { version, file, names, sourceRoot, sources, sourcesContent } = parsed; + this.version = version; + this.file = file; + this.names = names || []; + this.sourceRoot = sourceRoot; + this.sources = sources; + this.sourcesContent = sourcesContent; + this.ignoreList = parsed.ignoreList || parsed.x_google_ignoreList || void 0; + const resolve = resolver(mapUrl, sourceRoot); + this.resolvedSources = sources.map(resolve); + const { mappings } = parsed; + if (typeof mappings === "string") { + this._encoded = mappings; + this._decoded = void 0; + } else if (Array.isArray(mappings)) { + this._encoded = void 0; + this._decoded = maybeSort(mappings, isString); + } else if (parsed.sections) { + throw new Error(`TraceMap passed sectioned source map, please use FlattenMap export instead`); + } else { + throw new Error(`invalid source map: ${JSON.stringify(parsed)}`); + } + this._decodedMemo = memoizedState(); + this._bySources = void 0; + this._bySourceMemos = void 0; + } +}; +function cast(map) { + return map; +} +function encodedMappings(map) { + var _a, _b; + return (_b = (_a = cast(map))._encoded) != null ? _b : _a._encoded = (0, import_sourcemap_codec.encode)(cast(map)._decoded); +} +function decodedMappings(map) { + var _a; + return (_a = cast(map))._decoded || (_a._decoded = (0, import_sourcemap_codec.decode)(cast(map)._encoded)); +} +function traceSegment(map, line, column) { + const decoded = decodedMappings(map); + if (line >= decoded.length) return null; + const segments = decoded[line]; + const index = traceSegmentInternal( + segments, + cast(map)._decodedMemo, + line, + column, + GREATEST_LOWER_BOUND + ); + return index === -1 ? null : segments[index]; +} +function originalPositionFor(map, needle) { + let { line, column, bias } = needle; + line--; + if (line < 0) throw new Error(LINE_GTR_ZERO); + if (column < 0) throw new Error(COL_GTR_EQ_ZERO); + const decoded = decodedMappings(map); + if (line >= decoded.length) return OMapping(null, null, null, null); + const segments = decoded[line]; + const index = traceSegmentInternal( + segments, + cast(map)._decodedMemo, + line, + column, + bias || GREATEST_LOWER_BOUND + ); + if (index === -1) return OMapping(null, null, null, null); + const segment = segments[index]; + if (segment.length === 1) return OMapping(null, null, null, null); + const { names, resolvedSources } = map; + return OMapping( + resolvedSources[segment[SOURCES_INDEX]], + segment[SOURCE_LINE] + 1, + segment[SOURCE_COLUMN], + segment.length === 5 ? names[segment[NAMES_INDEX]] : null + ); +} +function generatedPositionFor(map, needle) { + const { source, line, column, bias } = needle; + return generatedPosition(map, source, line, column, bias || GREATEST_LOWER_BOUND, false); +} +function allGeneratedPositionsFor(map, needle) { + const { source, line, column, bias } = needle; + return generatedPosition(map, source, line, column, bias || LEAST_UPPER_BOUND, true); +} +function eachMapping(map, cb) { + const decoded = decodedMappings(map); + const { names, resolvedSources } = map; + for (let i = 0; i < decoded.length; i++) { + const line = decoded[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + const generatedLine = i + 1; + const generatedColumn = seg[0]; + let source = null; + let originalLine = null; + let originalColumn = null; + let name = null; + if (seg.length !== 1) { + source = resolvedSources[seg[1]]; + originalLine = seg[2] + 1; + originalColumn = seg[3]; + } + if (seg.length === 5) name = names[seg[4]]; + cb({ + generatedLine, + generatedColumn, + source, + originalLine, + originalColumn, + name + }); + } + } +} +function sourceIndex(map, source) { + const { sources, resolvedSources } = map; + let index = sources.indexOf(source); + if (index === -1) index = resolvedSources.indexOf(source); + return index; +} +function sourceContentFor(map, source) { + const { sourcesContent } = map; + if (sourcesContent == null) return null; + const index = sourceIndex(map, source); + return index === -1 ? null : sourcesContent[index]; +} +function isIgnored(map, source) { + const { ignoreList } = map; + if (ignoreList == null) return false; + const index = sourceIndex(map, source); + return index === -1 ? false : ignoreList.includes(index); +} +function presortedDecodedMap(map, mapUrl) { + const tracer = new TraceMap(clone(map, []), mapUrl); + cast(tracer)._decoded = map.mappings; + return tracer; +} +function decodedMap(map) { + return clone(map, decodedMappings(map)); +} +function encodedMap(map) { + return clone(map, encodedMappings(map)); +} +function clone(map, mappings) { + return { + version: map.version, + file: map.file, + names: map.names, + sourceRoot: map.sourceRoot, + sources: map.sources, + sourcesContent: map.sourcesContent, + mappings, + ignoreList: map.ignoreList || map.x_google_ignoreList + }; +} +function OMapping(source, line, column, name) { + return { source, line, column, name }; +} +function GMapping(line, column) { + return { line, column }; +} +function traceSegmentInternal(segments, memo, line, column, bias) { + let index = memoizedBinarySearch(segments, column, memo, line); + if (found) { + index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index); + } else if (bias === LEAST_UPPER_BOUND) index++; + if (index === -1 || index === segments.length) return -1; + return index; +} +function sliceGeneratedPositions(segments, memo, line, column, bias) { + let min = traceSegmentInternal(segments, memo, line, column, GREATEST_LOWER_BOUND); + if (!found && bias === LEAST_UPPER_BOUND) min++; + if (min === -1 || min === segments.length) return []; + const matchedColumn = found ? column : segments[min][COLUMN]; + if (!found) min = lowerBound(segments, matchedColumn, min); + const max = upperBound(segments, matchedColumn, min); + const result = []; + for (; min <= max; min++) { + const segment = segments[min]; + result.push(GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN])); + } + return result; +} +function generatedPosition(map, source, line, column, bias, all) { + var _a, _b; + line--; + if (line < 0) throw new Error(LINE_GTR_ZERO); + if (column < 0) throw new Error(COL_GTR_EQ_ZERO); + const { sources, resolvedSources } = map; + let sourceIndex2 = sources.indexOf(source); + if (sourceIndex2 === -1) sourceIndex2 = resolvedSources.indexOf(source); + if (sourceIndex2 === -1) return all ? [] : GMapping(null, null); + const bySourceMemos = (_a = cast(map))._bySourceMemos || (_a._bySourceMemos = sources.map(memoizedState)); + const generated = (_b = cast(map))._bySources || (_b._bySources = buildBySources(decodedMappings(map), bySourceMemos)); + const segments = generated[sourceIndex2][line]; + if (segments == null) return all ? [] : GMapping(null, null); + const memo = bySourceMemos[sourceIndex2]; + if (all) return sliceGeneratedPositions(segments, memo, line, column, bias); + const index = traceSegmentInternal(segments, memo, line, column, bias); + if (index === -1) return GMapping(null, null); + const segment = segments[index]; + return GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]); +} +})); +//# sourceMappingURL=trace-mapping.umd.js.map diff --git a/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js.map b/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js.map new file mode 100644 index 0000000..68b0c77 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["umd:@jridgewell/sourcemap-codec", "umd:@jridgewell/resolve-uri", "../src/trace-mapping.ts", "../src/resolve.ts", "../src/strip-filename.ts", "../src/sourcemap-segment.ts", "../src/sort.ts", "../src/by-source.ts", "../src/binary-search.ts", "../src/types.ts", "../src/flatten-map.ts"], + "mappings": "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", + "names": ["module", "module", "resolveUri", "sourceIndex", "sourceIndex"] +} diff --git a/node_modules/@jridgewell/trace-mapping/package.json b/node_modules/@jridgewell/trace-mapping/package.json new file mode 100644 index 0000000..9d3a1c0 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/package.json @@ -0,0 +1,67 @@ +{ + "name": "@jridgewell/trace-mapping", + "version": "0.3.31", + "description": "Trace the original position through a source map", + "keywords": [ + "source", + "map" + ], + "main": "dist/trace-mapping.umd.js", + "module": "dist/trace-mapping.mjs", + "types": "types/trace-mapping.d.cts", + "files": [ + "dist", + "src", + "types" + ], + "exports": { + ".": [ + { + "import": { + "types": "./types/trace-mapping.d.mts", + "default": "./dist/trace-mapping.mjs" + }, + "default": { + "types": "./types/trace-mapping.d.cts", + "default": "./dist/trace-mapping.umd.js" + } + }, + "./dist/trace-mapping.umd.js" + ], + "./package.json": "./package.json" + }, + "scripts": { + "benchmark": "run-s build:code benchmark:*", + "benchmark:install": "cd benchmark && npm install", + "benchmark:only": "node --expose-gc benchmark/index.mjs", + "build": "run-s -n build:code build:types", + "build:code": "node ../../esbuild.mjs trace-mapping.ts", + "build:types": "run-s build:types:force build:types:emit build:types:mts", + "build:types:force": "rimraf tsconfig.build.tsbuildinfo", + "build:types:emit": "tsc --project tsconfig.build.json", + "build:types:mts": "node ../../mts-types.mjs", + "clean": "run-s -n clean:code clean:types", + "clean:code": "tsc --build --clean tsconfig.build.json", + "clean:types": "rimraf dist types", + "test": "run-s -n test:types test:only test:format", + "test:format": "prettier --check '{src,test}/**/*.ts'", + "test:only": "mocha", + "test:types": "eslint '{src,test}/**/*.ts'", + "lint": "run-s -n lint:types lint:format", + "lint:format": "npm run test:format -- --write", + "lint:types": "npm run test:types -- --fix", + "prepublishOnly": "npm run-s -n build test" + }, + "homepage": "https://github.com/jridgewell/sourcemaps/tree/main/packages/trace-mapping", + "repository": { + "type": "git", + "url": "git+https://github.com/jridgewell/sourcemaps.git", + "directory": "packages/trace-mapping" + }, + "author": "Justin Ridgewell ", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } +} diff --git a/node_modules/@jridgewell/trace-mapping/src/binary-search.ts b/node_modules/@jridgewell/trace-mapping/src/binary-search.ts new file mode 100644 index 0000000..c1144ad --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/src/binary-search.ts @@ -0,0 +1,115 @@ +import type { SourceMapSegment, ReverseSegment } from './sourcemap-segment'; +import { COLUMN } from './sourcemap-segment'; + +export type MemoState = { + lastKey: number; + lastNeedle: number; + lastIndex: number; +}; + +export let found = false; + +/** + * A binary search implementation that returns the index if a match is found. + * If no match is found, then the left-index (the index associated with the item that comes just + * before the desired index) is returned. To maintain proper sort order, a splice would happen at + * the next index: + * + * ```js + * const array = [1, 3]; + * const needle = 2; + * const index = binarySearch(array, needle, (item, needle) => item - needle); + * + * assert.equal(index, 0); + * array.splice(index + 1, 0, needle); + * assert.deepEqual(array, [1, 2, 3]); + * ``` + */ +export function binarySearch( + haystack: SourceMapSegment[] | ReverseSegment[], + needle: number, + low: number, + high: number, +): number { + while (low <= high) { + const mid = low + ((high - low) >> 1); + const cmp = haystack[mid][COLUMN] - needle; + + if (cmp === 0) { + found = true; + return mid; + } + + if (cmp < 0) { + low = mid + 1; + } else { + high = mid - 1; + } + } + + found = false; + return low - 1; +} + +export function upperBound( + haystack: SourceMapSegment[] | ReverseSegment[], + needle: number, + index: number, +): number { + for (let i = index + 1; i < haystack.length; index = i++) { + if (haystack[i][COLUMN] !== needle) break; + } + return index; +} + +export function lowerBound( + haystack: SourceMapSegment[] | ReverseSegment[], + needle: number, + index: number, +): number { + for (let i = index - 1; i >= 0; index = i--) { + if (haystack[i][COLUMN] !== needle) break; + } + return index; +} + +export function memoizedState(): MemoState { + return { + lastKey: -1, + lastNeedle: -1, + lastIndex: -1, + }; +} + +/** + * This overly complicated beast is just to record the last tested line/column and the resulting + * index, allowing us to skip a few tests if mappings are monotonically increasing. + */ +export function memoizedBinarySearch( + haystack: SourceMapSegment[] | ReverseSegment[], + needle: number, + state: MemoState, + key: number, +): number { + const { lastKey, lastNeedle, lastIndex } = state; + + let low = 0; + let high = haystack.length - 1; + if (key === lastKey) { + if (needle === lastNeedle) { + found = lastIndex !== -1 && haystack[lastIndex][COLUMN] === needle; + return lastIndex; + } + + if (needle >= lastNeedle) { + // lastIndex may be -1 if the previous needle was not found. + low = lastIndex === -1 ? 0 : lastIndex; + } else { + high = lastIndex; + } + } + state.lastKey = key; + state.lastNeedle = needle; + + return (state.lastIndex = binarySearch(haystack, needle, low, high)); +} diff --git a/node_modules/@jridgewell/trace-mapping/src/by-source.ts b/node_modules/@jridgewell/trace-mapping/src/by-source.ts new file mode 100644 index 0000000..1da6af0 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/src/by-source.ts @@ -0,0 +1,41 @@ +import { COLUMN, SOURCES_INDEX, SOURCE_LINE, SOURCE_COLUMN } from './sourcemap-segment'; +import { sortComparator } from './sort'; + +import type { ReverseSegment, SourceMapSegment } from './sourcemap-segment'; + +export type Source = ReverseSegment[][]; + +// Rebuilds the original source files, with mappings that are ordered by source line/column instead +// of generated line/column. +export default function buildBySources( + decoded: readonly SourceMapSegment[][], + memos: unknown[], +): Source[] { + const sources: Source[] = memos.map(() => []); + + for (let i = 0; i < decoded.length; i++) { + const line = decoded[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + if (seg.length === 1) continue; + + const sourceIndex = seg[SOURCES_INDEX]; + const sourceLine = seg[SOURCE_LINE]; + const sourceColumn = seg[SOURCE_COLUMN]; + + const source = sources[sourceIndex]; + const segs = (source[sourceLine] ||= []); + segs.push([sourceColumn, i, seg[COLUMN]]); + } + } + + for (let i = 0; i < sources.length; i++) { + const source = sources[i]; + for (let j = 0; j < source.length; j++) { + const line = source[j]; + if (line) line.sort(sortComparator); + } + } + + return sources; +} diff --git a/node_modules/@jridgewell/trace-mapping/src/flatten-map.ts b/node_modules/@jridgewell/trace-mapping/src/flatten-map.ts new file mode 100644 index 0000000..61ac40c --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/src/flatten-map.ts @@ -0,0 +1,192 @@ +import { TraceMap, presortedDecodedMap, decodedMappings } from './trace-mapping'; +import { + COLUMN, + SOURCES_INDEX, + SOURCE_LINE, + SOURCE_COLUMN, + NAMES_INDEX, +} from './sourcemap-segment'; +import { parse } from './types'; + +import type { + DecodedSourceMap, + DecodedSourceMapXInput, + EncodedSourceMapXInput, + SectionedSourceMapXInput, + SectionedSourceMapInput, + SectionXInput, + Ro, +} from './types'; +import type { SourceMapSegment } from './sourcemap-segment'; + +type FlattenMap = { + new (map: Ro, mapUrl?: string | null): TraceMap; + (map: Ro, mapUrl?: string | null): TraceMap; +}; + +export const FlattenMap: FlattenMap = function (map, mapUrl) { + const parsed = parse(map as SectionedSourceMapInput); + + if (!('sections' in parsed)) { + return new TraceMap(parsed as DecodedSourceMapXInput | EncodedSourceMapXInput, mapUrl); + } + + const mappings: SourceMapSegment[][] = []; + const sources: string[] = []; + const sourcesContent: (string | null)[] = []; + const names: string[] = []; + const ignoreList: number[] = []; + + recurse( + parsed, + mapUrl, + mappings, + sources, + sourcesContent, + names, + ignoreList, + 0, + 0, + Infinity, + Infinity, + ); + + const joined: DecodedSourceMap = { + version: 3, + file: parsed.file, + names, + sources, + sourcesContent, + mappings, + ignoreList, + }; + + return presortedDecodedMap(joined); +} as FlattenMap; + +function recurse( + input: SectionedSourceMapXInput, + mapUrl: string | null | undefined, + mappings: SourceMapSegment[][], + sources: string[], + sourcesContent: (string | null)[], + names: string[], + ignoreList: number[], + lineOffset: number, + columnOffset: number, + stopLine: number, + stopColumn: number, +) { + const { sections } = input; + for (let i = 0; i < sections.length; i++) { + const { map, offset } = sections[i]; + + let sl = stopLine; + let sc = stopColumn; + if (i + 1 < sections.length) { + const nextOffset = sections[i + 1].offset; + sl = Math.min(stopLine, lineOffset + nextOffset.line); + + if (sl === stopLine) { + sc = Math.min(stopColumn, columnOffset + nextOffset.column); + } else if (sl < stopLine) { + sc = columnOffset + nextOffset.column; + } + } + + addSection( + map, + mapUrl, + mappings, + sources, + sourcesContent, + names, + ignoreList, + lineOffset + offset.line, + columnOffset + offset.column, + sl, + sc, + ); + } +} + +function addSection( + input: SectionXInput['map'], + mapUrl: string | null | undefined, + mappings: SourceMapSegment[][], + sources: string[], + sourcesContent: (string | null)[], + names: string[], + ignoreList: number[], + lineOffset: number, + columnOffset: number, + stopLine: number, + stopColumn: number, +) { + const parsed = parse(input); + if ('sections' in parsed) return recurse(...(arguments as unknown as Parameters)); + + const map = new TraceMap(parsed, mapUrl); + const sourcesOffset = sources.length; + const namesOffset = names.length; + const decoded = decodedMappings(map); + const { resolvedSources, sourcesContent: contents, ignoreList: ignores } = map; + + append(sources, resolvedSources); + append(names, map.names); + + if (contents) append(sourcesContent, contents); + else for (let i = 0; i < resolvedSources.length; i++) sourcesContent.push(null); + + if (ignores) for (let i = 0; i < ignores.length; i++) ignoreList.push(ignores[i] + sourcesOffset); + + for (let i = 0; i < decoded.length; i++) { + const lineI = lineOffset + i; + + // We can only add so many lines before we step into the range that the next section's map + // controls. When we get to the last line, then we'll start checking the segments to see if + // they've crossed into the column range. But it may not have any columns that overstep, so we + // still need to check that we don't overstep lines, too. + if (lineI > stopLine) return; + + // The out line may already exist in mappings (if we're continuing the line started by a + // previous section). Or, we may have jumped ahead several lines to start this section. + const out = getLine(mappings, lineI); + // On the 0th loop, the section's column offset shifts us forward. On all other lines (since the + // map can be multiple lines), it doesn't. + const cOffset = i === 0 ? columnOffset : 0; + + const line = decoded[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + const column = cOffset + seg[COLUMN]; + + // If this segment steps into the column range that the next section's map controls, we need + // to stop early. + if (lineI === stopLine && column >= stopColumn) return; + + if (seg.length === 1) { + out.push([column]); + continue; + } + + const sourcesIndex = sourcesOffset + seg[SOURCES_INDEX]; + const sourceLine = seg[SOURCE_LINE]; + const sourceColumn = seg[SOURCE_COLUMN]; + out.push( + seg.length === 4 + ? [column, sourcesIndex, sourceLine, sourceColumn] + : [column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX]], + ); + } + } +} + +function append(arr: T[], other: T[]) { + for (let i = 0; i < other.length; i++) arr.push(other[i]); +} + +function getLine(arr: T[][], index: number): T[] { + for (let i = arr.length; i <= index; i++) arr[i] = []; + return arr[index]; +} diff --git a/node_modules/@jridgewell/trace-mapping/src/resolve.ts b/node_modules/@jridgewell/trace-mapping/src/resolve.ts new file mode 100644 index 0000000..30bfa3b --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/src/resolve.ts @@ -0,0 +1,16 @@ +import resolveUri from '@jridgewell/resolve-uri'; +import stripFilename from './strip-filename'; + +type Resolve = (source: string | null) => string; +export default function resolver( + mapUrl: string | null | undefined, + sourceRoot: string | undefined, +): Resolve { + const from = stripFilename(mapUrl); + // The sourceRoot is always treated as a directory, if it's not empty. + // https://github.com/mozilla/source-map/blob/8cb3ee57/lib/util.js#L327 + // https://github.com/chromium/chromium/blob/da4adbb3/third_party/blink/renderer/devtools/front_end/sdk/SourceMap.js#L400-L401 + const prefix = sourceRoot ? sourceRoot + '/' : ''; + + return (source) => resolveUri(prefix + (source || ''), from); +} diff --git a/node_modules/@jridgewell/trace-mapping/src/sort.ts b/node_modules/@jridgewell/trace-mapping/src/sort.ts new file mode 100644 index 0000000..5d016cb --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/src/sort.ts @@ -0,0 +1,45 @@ +import { COLUMN } from './sourcemap-segment'; + +import type { ReverseSegment, SourceMapSegment } from './sourcemap-segment'; + +export default function maybeSort( + mappings: SourceMapSegment[][], + owned: boolean, +): SourceMapSegment[][] { + const unsortedIndex = nextUnsortedSegmentLine(mappings, 0); + if (unsortedIndex === mappings.length) return mappings; + + // If we own the array (meaning we parsed it from JSON), then we're free to directly mutate it. If + // not, we do not want to modify the consumer's input array. + if (!owned) mappings = mappings.slice(); + + for (let i = unsortedIndex; i < mappings.length; i = nextUnsortedSegmentLine(mappings, i + 1)) { + mappings[i] = sortSegments(mappings[i], owned); + } + return mappings; +} + +function nextUnsortedSegmentLine(mappings: SourceMapSegment[][], start: number): number { + for (let i = start; i < mappings.length; i++) { + if (!isSorted(mappings[i])) return i; + } + return mappings.length; +} + +function isSorted(line: SourceMapSegment[]): boolean { + for (let j = 1; j < line.length; j++) { + if (line[j][COLUMN] < line[j - 1][COLUMN]) { + return false; + } + } + return true; +} + +function sortSegments(line: SourceMapSegment[], owned: boolean): SourceMapSegment[] { + if (!owned) line = line.slice(); + return line.sort(sortComparator); +} + +export function sortComparator(a: T, b: T): number { + return a[COLUMN] - b[COLUMN]; +} diff --git a/node_modules/@jridgewell/trace-mapping/src/sourcemap-segment.ts b/node_modules/@jridgewell/trace-mapping/src/sourcemap-segment.ts new file mode 100644 index 0000000..94f1b6a --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/src/sourcemap-segment.ts @@ -0,0 +1,23 @@ +type GeneratedColumn = number; +type SourcesIndex = number; +type SourceLine = number; +type SourceColumn = number; +type NamesIndex = number; + +type GeneratedLine = number; + +export type SourceMapSegment = + | [GeneratedColumn] + | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn] + | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex]; + +export type ReverseSegment = [SourceColumn, GeneratedLine, GeneratedColumn]; + +export const COLUMN = 0; +export const SOURCES_INDEX = 1; +export const SOURCE_LINE = 2; +export const SOURCE_COLUMN = 3; +export const NAMES_INDEX = 4; + +export const REV_GENERATED_LINE = 1; +export const REV_GENERATED_COLUMN = 2; diff --git a/node_modules/@jridgewell/trace-mapping/src/strip-filename.ts b/node_modules/@jridgewell/trace-mapping/src/strip-filename.ts new file mode 100644 index 0000000..2c88980 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/src/strip-filename.ts @@ -0,0 +1,8 @@ +/** + * Removes everything after the last "/", but leaves the slash. + */ +export default function stripFilename(path: string | undefined | null): string { + if (!path) return ''; + const index = path.lastIndexOf('/'); + return path.slice(0, index + 1); +} diff --git a/node_modules/@jridgewell/trace-mapping/src/trace-mapping.ts b/node_modules/@jridgewell/trace-mapping/src/trace-mapping.ts new file mode 100644 index 0000000..0b793d5 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/src/trace-mapping.ts @@ -0,0 +1,502 @@ +import { encode, decode } from '@jridgewell/sourcemap-codec'; + +import resolver from './resolve'; +import maybeSort from './sort'; +import buildBySources from './by-source'; +import { + memoizedState, + memoizedBinarySearch, + upperBound, + lowerBound, + found as bsFound, +} from './binary-search'; +import { + COLUMN, + SOURCES_INDEX, + SOURCE_LINE, + SOURCE_COLUMN, + NAMES_INDEX, + REV_GENERATED_LINE, + REV_GENERATED_COLUMN, +} from './sourcemap-segment'; +import { parse } from './types'; + +import type { SourceMapSegment, ReverseSegment } from './sourcemap-segment'; +import type { + SourceMapV3, + DecodedSourceMap, + EncodedSourceMap, + InvalidOriginalMapping, + OriginalMapping, + InvalidGeneratedMapping, + GeneratedMapping, + SourceMapInput, + Needle, + SourceNeedle, + SourceMap, + EachMapping, + Bias, + XInput, + SectionedSourceMap, + Ro, +} from './types'; +import type { Source } from './by-source'; +import type { MemoState } from './binary-search'; + +export type { SourceMapSegment } from './sourcemap-segment'; +export type { + SourceMap, + DecodedSourceMap, + EncodedSourceMap, + Section, + SectionedSourceMap, + SourceMapV3, + Bias, + EachMapping, + GeneratedMapping, + InvalidGeneratedMapping, + InvalidOriginalMapping, + Needle, + OriginalMapping, + OriginalMapping as Mapping, + SectionedSourceMapInput, + SourceMapInput, + SourceNeedle, + XInput, + EncodedSourceMapXInput, + DecodedSourceMapXInput, + SectionedSourceMapXInput, + SectionXInput, +} from './types'; + +interface PublicMap { + _encoded: TraceMap['_encoded']; + _decoded: TraceMap['_decoded']; + _decodedMemo: TraceMap['_decodedMemo']; + _bySources: TraceMap['_bySources']; + _bySourceMemos: TraceMap['_bySourceMemos']; +} + +const LINE_GTR_ZERO = '`line` must be greater than 0 (lines start at line 1)'; +const COL_GTR_EQ_ZERO = '`column` must be greater than or equal to 0 (columns start at column 0)'; + +export const LEAST_UPPER_BOUND = -1; +export const GREATEST_LOWER_BOUND = 1; + +export { FlattenMap, FlattenMap as AnyMap } from './flatten-map'; + +export class TraceMap implements SourceMap { + declare version: SourceMapV3['version']; + declare file: SourceMapV3['file']; + declare names: SourceMapV3['names']; + declare sourceRoot: SourceMapV3['sourceRoot']; + declare sources: SourceMapV3['sources']; + declare sourcesContent: SourceMapV3['sourcesContent']; + declare ignoreList: SourceMapV3['ignoreList']; + + declare resolvedSources: string[]; + declare private _encoded: string | undefined; + + declare private _decoded: SourceMapSegment[][] | undefined; + declare private _decodedMemo: MemoState; + + declare private _bySources: Source[] | undefined; + declare private _bySourceMemos: MemoState[] | undefined; + + constructor(map: Ro, mapUrl?: string | null) { + const isString = typeof map === 'string'; + if (!isString && (map as unknown as { _decodedMemo: any })._decodedMemo) return map as TraceMap; + + const parsed = parse(map as Exclude); + + const { version, file, names, sourceRoot, sources, sourcesContent } = parsed; + this.version = version; + this.file = file; + this.names = names || []; + this.sourceRoot = sourceRoot; + this.sources = sources; + this.sourcesContent = sourcesContent; + this.ignoreList = parsed.ignoreList || (parsed as XInput).x_google_ignoreList || undefined; + + const resolve = resolver(mapUrl, sourceRoot); + this.resolvedSources = sources.map(resolve); + + const { mappings } = parsed; + if (typeof mappings === 'string') { + this._encoded = mappings; + this._decoded = undefined; + } else if (Array.isArray(mappings)) { + this._encoded = undefined; + this._decoded = maybeSort(mappings, isString); + } else if ((parsed as unknown as SectionedSourceMap).sections) { + throw new Error(`TraceMap passed sectioned source map, please use FlattenMap export instead`); + } else { + throw new Error(`invalid source map: ${JSON.stringify(parsed)}`); + } + + this._decodedMemo = memoizedState(); + this._bySources = undefined; + this._bySourceMemos = undefined; + } +} + +/** + * Typescript doesn't allow friend access to private fields, so this just casts the map into a type + * with public access modifiers. + */ +function cast(map: unknown): PublicMap { + return map as any; +} + +/** + * Returns the encoded (VLQ string) form of the SourceMap's mappings field. + */ +export function encodedMappings(map: TraceMap): EncodedSourceMap['mappings'] { + return (cast(map)._encoded ??= encode(cast(map)._decoded!)); +} + +/** + * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field. + */ +export function decodedMappings(map: TraceMap): Readonly { + return (cast(map)._decoded ||= decode(cast(map)._encoded!)); +} + +/** + * A low-level API to find the segment associated with a generated line/column (think, from a + * stack trace). Line and column here are 0-based, unlike `originalPositionFor`. + */ +export function traceSegment( + map: TraceMap, + line: number, + column: number, +): Readonly | null { + const decoded = decodedMappings(map); + + // It's common for parent source maps to have pointers to lines that have no + // mapping (like a "//# sourceMappingURL=") at the end of the child file. + if (line >= decoded.length) return null; + + const segments = decoded[line]; + const index = traceSegmentInternal( + segments, + cast(map)._decodedMemo, + line, + column, + GREATEST_LOWER_BOUND, + ); + + return index === -1 ? null : segments[index]; +} + +/** + * A higher-level API to find the source/line/column associated with a generated line/column + * (think, from a stack trace). Line is 1-based, but column is 0-based, due to legacy behavior in + * `source-map` library. + */ +export function originalPositionFor( + map: TraceMap, + needle: Needle, +): OriginalMapping | InvalidOriginalMapping { + let { line, column, bias } = needle; + line--; + if (line < 0) throw new Error(LINE_GTR_ZERO); + if (column < 0) throw new Error(COL_GTR_EQ_ZERO); + + const decoded = decodedMappings(map); + + // It's common for parent source maps to have pointers to lines that have no + // mapping (like a "//# sourceMappingURL=") at the end of the child file. + if (line >= decoded.length) return OMapping(null, null, null, null); + + const segments = decoded[line]; + const index = traceSegmentInternal( + segments, + cast(map)._decodedMemo, + line, + column, + bias || GREATEST_LOWER_BOUND, + ); + + if (index === -1) return OMapping(null, null, null, null); + + const segment = segments[index]; + if (segment.length === 1) return OMapping(null, null, null, null); + + const { names, resolvedSources } = map; + return OMapping( + resolvedSources[segment[SOURCES_INDEX]], + segment[SOURCE_LINE] + 1, + segment[SOURCE_COLUMN], + segment.length === 5 ? names[segment[NAMES_INDEX]] : null, + ); +} + +/** + * Finds the generated line/column position of the provided source/line/column source position. + */ +export function generatedPositionFor( + map: TraceMap, + needle: SourceNeedle, +): GeneratedMapping | InvalidGeneratedMapping { + const { source, line, column, bias } = needle; + return generatedPosition(map, source, line, column, bias || GREATEST_LOWER_BOUND, false); +} + +/** + * Finds all generated line/column positions of the provided source/line/column source position. + */ +export function allGeneratedPositionsFor(map: TraceMap, needle: SourceNeedle): GeneratedMapping[] { + const { source, line, column, bias } = needle; + // SourceMapConsumer uses LEAST_UPPER_BOUND for some reason, so we follow suit. + return generatedPosition(map, source, line, column, bias || LEAST_UPPER_BOUND, true); +} + +/** + * Iterates each mapping in generated position order. + */ +export function eachMapping(map: TraceMap, cb: (mapping: EachMapping) => void): void { + const decoded = decodedMappings(map); + const { names, resolvedSources } = map; + + for (let i = 0; i < decoded.length; i++) { + const line = decoded[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + + const generatedLine = i + 1; + const generatedColumn = seg[0]; + let source = null; + let originalLine = null; + let originalColumn = null; + let name = null; + if (seg.length !== 1) { + source = resolvedSources[seg[1]]; + originalLine = seg[2] + 1; + originalColumn = seg[3]; + } + if (seg.length === 5) name = names[seg[4]]; + + cb({ + generatedLine, + generatedColumn, + source, + originalLine, + originalColumn, + name, + } as EachMapping); + } + } +} + +function sourceIndex(map: TraceMap, source: string): number { + const { sources, resolvedSources } = map; + let index = sources.indexOf(source); + if (index === -1) index = resolvedSources.indexOf(source); + return index; +} + +/** + * Retrieves the source content for a particular source, if its found. Returns null if not. + */ +export function sourceContentFor(map: TraceMap, source: string): string | null { + const { sourcesContent } = map; + if (sourcesContent == null) return null; + const index = sourceIndex(map, source); + return index === -1 ? null : sourcesContent[index]; +} + +/** + * Determines if the source is marked to ignore by the source map. + */ +export function isIgnored(map: TraceMap, source: string): boolean { + const { ignoreList } = map; + if (ignoreList == null) return false; + const index = sourceIndex(map, source); + return index === -1 ? false : ignoreList.includes(index); +} + +/** + * A helper that skips sorting of the input map's mappings array, which can be expensive for larger + * maps. + */ +export function presortedDecodedMap(map: DecodedSourceMap, mapUrl?: string): TraceMap { + const tracer = new TraceMap(clone(map, []), mapUrl); + cast(tracer)._decoded = map.mappings; + return tracer; +} + +/** + * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +export function decodedMap( + map: TraceMap, +): Omit & { mappings: readonly SourceMapSegment[][] } { + return clone(map, decodedMappings(map)); +} + +/** + * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +export function encodedMap(map: TraceMap): EncodedSourceMap { + return clone(map, encodedMappings(map)); +} + +function clone( + map: TraceMap | DecodedSourceMap, + mappings: T, +): T extends string ? EncodedSourceMap : DecodedSourceMap { + return { + version: map.version, + file: map.file, + names: map.names, + sourceRoot: map.sourceRoot, + sources: map.sources, + sourcesContent: map.sourcesContent, + mappings, + ignoreList: map.ignoreList || (map as XInput).x_google_ignoreList, + } as any; +} + +function OMapping(source: null, line: null, column: null, name: null): InvalidOriginalMapping; +function OMapping( + source: string, + line: number, + column: number, + name: string | null, +): OriginalMapping; +function OMapping( + source: string | null, + line: number | null, + column: number | null, + name: string | null, +): OriginalMapping | InvalidOriginalMapping { + return { source, line, column, name } as any; +} + +function GMapping(line: null, column: null): InvalidGeneratedMapping; +function GMapping(line: number, column: number): GeneratedMapping; +function GMapping( + line: number | null, + column: number | null, +): GeneratedMapping | InvalidGeneratedMapping { + return { line, column } as any; +} + +function traceSegmentInternal( + segments: SourceMapSegment[], + memo: MemoState, + line: number, + column: number, + bias: Bias, +): number; +function traceSegmentInternal( + segments: ReverseSegment[], + memo: MemoState, + line: number, + column: number, + bias: Bias, +): number; +function traceSegmentInternal( + segments: SourceMapSegment[] | ReverseSegment[], + memo: MemoState, + line: number, + column: number, + bias: Bias, +): number { + let index = memoizedBinarySearch(segments, column, memo, line); + if (bsFound) { + index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index); + } else if (bias === LEAST_UPPER_BOUND) index++; + + if (index === -1 || index === segments.length) return -1; + return index; +} + +function sliceGeneratedPositions( + segments: ReverseSegment[], + memo: MemoState, + line: number, + column: number, + bias: Bias, +): GeneratedMapping[] { + let min = traceSegmentInternal(segments, memo, line, column, GREATEST_LOWER_BOUND); + + // We ignored the bias when tracing the segment so that we're guarnateed to find the first (in + // insertion order) segment that matched. Even if we did respect the bias when tracing, we would + // still need to call `lowerBound()` to find the first segment, which is slower than just looking + // for the GREATEST_LOWER_BOUND to begin with. The only difference that matters for us is when the + // binary search didn't match, in which case GREATEST_LOWER_BOUND just needs to increment to + // match LEAST_UPPER_BOUND. + if (!bsFound && bias === LEAST_UPPER_BOUND) min++; + + if (min === -1 || min === segments.length) return []; + + // We may have found the segment that started at an earlier column. If this is the case, then we + // need to slice all generated segments that match _that_ column, because all such segments span + // to our desired column. + const matchedColumn = bsFound ? column : segments[min][COLUMN]; + + // The binary search is not guaranteed to find the lower bound when a match wasn't found. + if (!bsFound) min = lowerBound(segments, matchedColumn, min); + const max = upperBound(segments, matchedColumn, min); + + const result = []; + for (; min <= max; min++) { + const segment = segments[min]; + result.push(GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN])); + } + return result; +} + +function generatedPosition( + map: TraceMap, + source: string, + line: number, + column: number, + bias: Bias, + all: false, +): GeneratedMapping | InvalidGeneratedMapping; +function generatedPosition( + map: TraceMap, + source: string, + line: number, + column: number, + bias: Bias, + all: true, +): GeneratedMapping[]; +function generatedPosition( + map: TraceMap, + source: string, + line: number, + column: number, + bias: Bias, + all: boolean, +): GeneratedMapping | InvalidGeneratedMapping | GeneratedMapping[] { + line--; + if (line < 0) throw new Error(LINE_GTR_ZERO); + if (column < 0) throw new Error(COL_GTR_EQ_ZERO); + + const { sources, resolvedSources } = map; + let sourceIndex = sources.indexOf(source); + if (sourceIndex === -1) sourceIndex = resolvedSources.indexOf(source); + if (sourceIndex === -1) return all ? [] : GMapping(null, null); + + const bySourceMemos = (cast(map)._bySourceMemos ||= sources.map(memoizedState)); + const generated = (cast(map)._bySources ||= buildBySources(decodedMappings(map), bySourceMemos)); + + const segments = generated[sourceIndex][line]; + if (segments == null) return all ? [] : GMapping(null, null); + + const memo = bySourceMemos[sourceIndex]; + + if (all) return sliceGeneratedPositions(segments, memo, line, column, bias); + + const index = traceSegmentInternal(segments, memo, line, column, bias); + if (index === -1) return GMapping(null, null); + + const segment = segments[index]; + return GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]); +} diff --git a/node_modules/@jridgewell/trace-mapping/src/types.ts b/node_modules/@jridgewell/trace-mapping/src/types.ts new file mode 100644 index 0000000..730a61f --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/src/types.ts @@ -0,0 +1,114 @@ +import type { SourceMapSegment } from './sourcemap-segment'; +import type { GREATEST_LOWER_BOUND, LEAST_UPPER_BOUND, TraceMap } from './trace-mapping'; + +export interface SourceMapV3 { + file?: string | null; + names: string[]; + sourceRoot?: string; + sources: (string | null)[]; + sourcesContent?: (string | null)[]; + version: 3; + ignoreList?: number[]; +} + +export interface EncodedSourceMap extends SourceMapV3 { + mappings: string; +} + +export interface DecodedSourceMap extends SourceMapV3 { + mappings: SourceMapSegment[][]; +} + +export interface Section { + offset: { line: number; column: number }; + map: EncodedSourceMap | DecodedSourceMap | SectionedSourceMap; +} + +export interface SectionedSourceMap { + file?: string | null; + sections: Section[]; + version: 3; +} + +export type OriginalMapping = { + source: string | null; + line: number; + column: number; + name: string | null; +}; + +export type InvalidOriginalMapping = { + source: null; + line: null; + column: null; + name: null; +}; + +export type GeneratedMapping = { + line: number; + column: number; +}; +export type InvalidGeneratedMapping = { + line: null; + column: null; +}; + +export type Bias = typeof GREATEST_LOWER_BOUND | typeof LEAST_UPPER_BOUND; + +export type XInput = { x_google_ignoreList?: SourceMapV3['ignoreList'] }; +export type EncodedSourceMapXInput = EncodedSourceMap & XInput; +export type DecodedSourceMapXInput = DecodedSourceMap & XInput; +export type SectionedSourceMapXInput = Omit & { + sections: SectionXInput[]; +}; +export type SectionXInput = Omit & { + map: SectionedSourceMapInput; +}; + +export type SourceMapInput = string | EncodedSourceMapXInput | DecodedSourceMapXInput | TraceMap; +export type SectionedSourceMapInput = SourceMapInput | SectionedSourceMapXInput; + +export type Needle = { line: number; column: number; bias?: Bias }; +export type SourceNeedle = { source: string; line: number; column: number; bias?: Bias }; + +export type EachMapping = + | { + generatedLine: number; + generatedColumn: number; + source: null; + originalLine: null; + originalColumn: null; + name: null; + } + | { + generatedLine: number; + generatedColumn: number; + source: string | null; + originalLine: number; + originalColumn: number; + name: string | null; + }; + +export abstract class SourceMap { + declare version: SourceMapV3['version']; + declare file: SourceMapV3['file']; + declare names: SourceMapV3['names']; + declare sourceRoot: SourceMapV3['sourceRoot']; + declare sources: SourceMapV3['sources']; + declare sourcesContent: SourceMapV3['sourcesContent']; + declare resolvedSources: SourceMapV3['sources']; + declare ignoreList: SourceMapV3['ignoreList']; +} + +export type Ro = + T extends Array + ? V[] | Readonly | RoArray | Readonly> + : T extends object + ? T | Readonly | RoObject | Readonly> + : T; +type RoArray = Ro[]; +type RoObject = { [K in keyof T]: T[K] | Ro }; + +export function parse(map: T): Exclude { + return typeof map === 'string' ? JSON.parse(map) : (map as Exclude); +} diff --git a/node_modules/@jridgewell/trace-mapping/types/binary-search.d.cts b/node_modules/@jridgewell/trace-mapping/types/binary-search.d.cts new file mode 100644 index 0000000..b7bb85c --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/binary-search.d.cts @@ -0,0 +1,33 @@ +import type { SourceMapSegment, ReverseSegment } from './sourcemap-segment.cts'; +export type MemoState = { + lastKey: number; + lastNeedle: number; + lastIndex: number; +}; +export declare let found: boolean; +/** + * A binary search implementation that returns the index if a match is found. + * If no match is found, then the left-index (the index associated with the item that comes just + * before the desired index) is returned. To maintain proper sort order, a splice would happen at + * the next index: + * + * ```js + * const array = [1, 3]; + * const needle = 2; + * const index = binarySearch(array, needle, (item, needle) => item - needle); + * + * assert.equal(index, 0); + * array.splice(index + 1, 0, needle); + * assert.deepEqual(array, [1, 2, 3]); + * ``` + */ +export declare function binarySearch(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, low: number, high: number): number; +export declare function upperBound(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, index: number): number; +export declare function lowerBound(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, index: number): number; +export declare function memoizedState(): MemoState; +/** + * This overly complicated beast is just to record the last tested line/column and the resulting + * index, allowing us to skip a few tests if mappings are monotonically increasing. + */ +export declare function memoizedBinarySearch(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, state: MemoState, key: number): number; +//# sourceMappingURL=binary-search.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/binary-search.d.cts.map b/node_modules/@jridgewell/trace-mapping/types/binary-search.d.cts.map new file mode 100644 index 0000000..648e84c --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/binary-search.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"binary-search.d.ts","sourceRoot":"","sources":["../src/binary-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG5E,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,IAAI,KAAK,SAAQ,CAAC;AAEzB;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,EAC/C,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,MAAM,CAmBR;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,EAC/C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,MAAM,CAKR;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,EAC/C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,MAAM,CAKR;AAED,wBAAgB,aAAa,IAAI,SAAS,CAMzC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,EAC/C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,MAAM,GACV,MAAM,CAsBR"} \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/binary-search.d.mts b/node_modules/@jridgewell/trace-mapping/types/binary-search.d.mts new file mode 100644 index 0000000..19e1e6b --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/binary-search.d.mts @@ -0,0 +1,33 @@ +import type { SourceMapSegment, ReverseSegment } from './sourcemap-segment.mts'; +export type MemoState = { + lastKey: number; + lastNeedle: number; + lastIndex: number; +}; +export declare let found: boolean; +/** + * A binary search implementation that returns the index if a match is found. + * If no match is found, then the left-index (the index associated with the item that comes just + * before the desired index) is returned. To maintain proper sort order, a splice would happen at + * the next index: + * + * ```js + * const array = [1, 3]; + * const needle = 2; + * const index = binarySearch(array, needle, (item, needle) => item - needle); + * + * assert.equal(index, 0); + * array.splice(index + 1, 0, needle); + * assert.deepEqual(array, [1, 2, 3]); + * ``` + */ +export declare function binarySearch(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, low: number, high: number): number; +export declare function upperBound(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, index: number): number; +export declare function lowerBound(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, index: number): number; +export declare function memoizedState(): MemoState; +/** + * This overly complicated beast is just to record the last tested line/column and the resulting + * index, allowing us to skip a few tests if mappings are monotonically increasing. + */ +export declare function memoizedBinarySearch(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, state: MemoState, key: number): number; +//# sourceMappingURL=binary-search.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/binary-search.d.mts.map b/node_modules/@jridgewell/trace-mapping/types/binary-search.d.mts.map new file mode 100644 index 0000000..648e84c --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/binary-search.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"binary-search.d.ts","sourceRoot":"","sources":["../src/binary-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG5E,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,IAAI,KAAK,SAAQ,CAAC;AAEzB;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,EAC/C,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,MAAM,CAmBR;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,EAC/C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,MAAM,CAKR;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,EAC/C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,MAAM,CAKR;AAED,wBAAgB,aAAa,IAAI,SAAS,CAMzC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,EAC/C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,MAAM,GACV,MAAM,CAsBR"} \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/by-source.d.cts b/node_modules/@jridgewell/trace-mapping/types/by-source.d.cts new file mode 100644 index 0000000..da49693 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/by-source.d.cts @@ -0,0 +1,4 @@ +import type { ReverseSegment, SourceMapSegment } from './sourcemap-segment.cts'; +export type Source = ReverseSegment[][]; +export = function buildBySources(decoded: readonly SourceMapSegment[][], memos: unknown[]): Source[]; +//# sourceMappingURL=by-source.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/by-source.d.cts.map b/node_modules/@jridgewell/trace-mapping/types/by-source.d.cts.map new file mode 100644 index 0000000..32d2a7a --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/by-source.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"by-source.d.ts","sourceRoot":"","sources":["../src/by-source.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,MAAM,MAAM,MAAM,GAAG,cAAc,EAAE,EAAE,CAAC;AAIxC,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,OAAO,EAAE,SAAS,gBAAgB,EAAE,EAAE,EACtC,KAAK,EAAE,OAAO,EAAE,GACf,MAAM,EAAE,CA4BV"} \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/by-source.d.mts b/node_modules/@jridgewell/trace-mapping/types/by-source.d.mts new file mode 100644 index 0000000..f361049 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/by-source.d.mts @@ -0,0 +1,4 @@ +import type { ReverseSegment, SourceMapSegment } from './sourcemap-segment.mts'; +export type Source = ReverseSegment[][]; +export default function buildBySources(decoded: readonly SourceMapSegment[][], memos: unknown[]): Source[]; +//# sourceMappingURL=by-source.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/by-source.d.mts.map b/node_modules/@jridgewell/trace-mapping/types/by-source.d.mts.map new file mode 100644 index 0000000..32d2a7a --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/by-source.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"by-source.d.ts","sourceRoot":"","sources":["../src/by-source.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,MAAM,MAAM,MAAM,GAAG,cAAc,EAAE,EAAE,CAAC;AAIxC,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,OAAO,EAAE,SAAS,gBAAgB,EAAE,EAAE,EACtC,KAAK,EAAE,OAAO,EAAE,GACf,MAAM,EAAE,CA4BV"} \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/flatten-map.d.cts b/node_modules/@jridgewell/trace-mapping/types/flatten-map.d.cts new file mode 100644 index 0000000..433d849 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/flatten-map.d.cts @@ -0,0 +1,9 @@ +import { TraceMap } from './trace-mapping.cts'; +import type { SectionedSourceMapInput, Ro } from './types.cts'; +type FlattenMap = { + new (map: Ro, mapUrl?: string | null): TraceMap; + (map: Ro, mapUrl?: string | null): TraceMap; +}; +export declare const FlattenMap: FlattenMap; +export {}; +//# sourceMappingURL=flatten-map.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/flatten-map.d.cts.map b/node_modules/@jridgewell/trace-mapping/types/flatten-map.d.cts.map new file mode 100644 index 0000000..994b208 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/flatten-map.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"flatten-map.d.ts","sourceRoot":"","sources":["../src/flatten-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwC,MAAM,iBAAiB,CAAC;AAUjF,OAAO,KAAK,EAKV,uBAAuB,EAEvB,EAAE,EACH,MAAM,SAAS,CAAC;AAGjB,KAAK,UAAU,GAAG;IAChB,KAAK,GAAG,EAAE,EAAE,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC;IACzE,CAAC,GAAG,EAAE,EAAE,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC;CACtE,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAsCV,CAAC"} \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/flatten-map.d.mts b/node_modules/@jridgewell/trace-mapping/types/flatten-map.d.mts new file mode 100644 index 0000000..444a1be --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/flatten-map.d.mts @@ -0,0 +1,9 @@ +import { TraceMap } from './trace-mapping.mts'; +import type { SectionedSourceMapInput, Ro } from './types.mts'; +type FlattenMap = { + new (map: Ro, mapUrl?: string | null): TraceMap; + (map: Ro, mapUrl?: string | null): TraceMap; +}; +export declare const FlattenMap: FlattenMap; +export {}; +//# sourceMappingURL=flatten-map.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/flatten-map.d.mts.map b/node_modules/@jridgewell/trace-mapping/types/flatten-map.d.mts.map new file mode 100644 index 0000000..994b208 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/flatten-map.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"flatten-map.d.ts","sourceRoot":"","sources":["../src/flatten-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwC,MAAM,iBAAiB,CAAC;AAUjF,OAAO,KAAK,EAKV,uBAAuB,EAEvB,EAAE,EACH,MAAM,SAAS,CAAC;AAGjB,KAAK,UAAU,GAAG;IAChB,KAAK,GAAG,EAAE,EAAE,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC;IACzE,CAAC,GAAG,EAAE,EAAE,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC;CACtE,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAsCV,CAAC"} \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/resolve.d.cts b/node_modules/@jridgewell/trace-mapping/types/resolve.d.cts new file mode 100644 index 0000000..62aeedb --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/resolve.d.cts @@ -0,0 +1,4 @@ +type Resolve = (source: string | null) => string; +export = function resolver(mapUrl: string | null | undefined, sourceRoot: string | undefined): Resolve; +export {}; +//# sourceMappingURL=resolve.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/resolve.d.cts.map b/node_modules/@jridgewell/trace-mapping/types/resolve.d.cts.map new file mode 100644 index 0000000..9f155ac --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/resolve.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAGA,KAAK,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC;AACjD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAQT"} \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/resolve.d.mts b/node_modules/@jridgewell/trace-mapping/types/resolve.d.mts new file mode 100644 index 0000000..e2798a1 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/resolve.d.mts @@ -0,0 +1,4 @@ +type Resolve = (source: string | null) => string; +export default function resolver(mapUrl: string | null | undefined, sourceRoot: string | undefined): Resolve; +export {}; +//# sourceMappingURL=resolve.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/resolve.d.mts.map b/node_modules/@jridgewell/trace-mapping/types/resolve.d.mts.map new file mode 100644 index 0000000..9f155ac --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/resolve.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAGA,KAAK,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC;AACjD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAQT"} \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/sort.d.cts b/node_modules/@jridgewell/trace-mapping/types/sort.d.cts new file mode 100644 index 0000000..aa14c12 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/sort.d.cts @@ -0,0 +1,4 @@ +import type { ReverseSegment, SourceMapSegment } from './sourcemap-segment.cts'; +export = function maybeSort(mappings: SourceMapSegment[][], owned: boolean): SourceMapSegment[][]; +export declare function sortComparator(a: T, b: T): number; +//# sourceMappingURL=sort.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/sort.d.cts.map b/node_modules/@jridgewell/trace-mapping/types/sort.d.cts.map new file mode 100644 index 0000000..48b8e67 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/sort.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../src/sort.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,QAAQ,EAAE,gBAAgB,EAAE,EAAE,EAC9B,KAAK,EAAE,OAAO,GACb,gBAAgB,EAAE,EAAE,CAYtB;AAuBD,wBAAgB,cAAc,CAAC,CAAC,SAAS,gBAAgB,GAAG,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAE9F"} \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/sort.d.mts b/node_modules/@jridgewell/trace-mapping/types/sort.d.mts new file mode 100644 index 0000000..c5b94e6 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/sort.d.mts @@ -0,0 +1,4 @@ +import type { ReverseSegment, SourceMapSegment } from './sourcemap-segment.mts'; +export default function maybeSort(mappings: SourceMapSegment[][], owned: boolean): SourceMapSegment[][]; +export declare function sortComparator(a: T, b: T): number; +//# sourceMappingURL=sort.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/sort.d.mts.map b/node_modules/@jridgewell/trace-mapping/types/sort.d.mts.map new file mode 100644 index 0000000..48b8e67 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/sort.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../src/sort.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,QAAQ,EAAE,gBAAgB,EAAE,EAAE,EAC9B,KAAK,EAAE,OAAO,GACb,gBAAgB,EAAE,EAAE,CAYtB;AAuBD,wBAAgB,cAAc,CAAC,CAAC,SAAS,gBAAgB,GAAG,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAE9F"} \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.cts b/node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.cts new file mode 100644 index 0000000..8d3cabc --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.cts @@ -0,0 +1,17 @@ +type GeneratedColumn = number; +type SourcesIndex = number; +type SourceLine = number; +type SourceColumn = number; +type NamesIndex = number; +type GeneratedLine = number; +export type SourceMapSegment = [GeneratedColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex]; +export type ReverseSegment = [SourceColumn, GeneratedLine, GeneratedColumn]; +export declare const COLUMN = 0; +export declare const SOURCES_INDEX = 1; +export declare const SOURCE_LINE = 2; +export declare const SOURCE_COLUMN = 3; +export declare const NAMES_INDEX = 4; +export declare const REV_GENERATED_LINE = 1; +export declare const REV_GENERATED_COLUMN = 2; +export {}; +//# sourceMappingURL=sourcemap-segment.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.cts.map b/node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.cts.map new file mode 100644 index 0000000..0c94a46 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"sourcemap-segment.d.ts","sourceRoot":"","sources":["../src/sourcemap-segment.ts"],"names":[],"mappings":"AAAA,KAAK,eAAe,GAAG,MAAM,CAAC;AAC9B,KAAK,YAAY,GAAG,MAAM,CAAC;AAC3B,KAAK,UAAU,GAAG,MAAM,CAAC;AACzB,KAAK,YAAY,GAAG,MAAM,CAAC;AAC3B,KAAK,UAAU,GAAG,MAAM,CAAC;AAEzB,KAAK,aAAa,GAAG,MAAM,CAAC;AAE5B,MAAM,MAAM,gBAAgB,GACxB,CAAC,eAAe,CAAC,GACjB,CAAC,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,GACzD,CAAC,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAE1E,MAAM,MAAM,cAAc,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;AAE5E,eAAO,MAAM,MAAM,IAAI,CAAC;AACxB,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,oBAAoB,IAAI,CAAC"} \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.mts b/node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.mts new file mode 100644 index 0000000..8d3cabc --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.mts @@ -0,0 +1,17 @@ +type GeneratedColumn = number; +type SourcesIndex = number; +type SourceLine = number; +type SourceColumn = number; +type NamesIndex = number; +type GeneratedLine = number; +export type SourceMapSegment = [GeneratedColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex]; +export type ReverseSegment = [SourceColumn, GeneratedLine, GeneratedColumn]; +export declare const COLUMN = 0; +export declare const SOURCES_INDEX = 1; +export declare const SOURCE_LINE = 2; +export declare const SOURCE_COLUMN = 3; +export declare const NAMES_INDEX = 4; +export declare const REV_GENERATED_LINE = 1; +export declare const REV_GENERATED_COLUMN = 2; +export {}; +//# sourceMappingURL=sourcemap-segment.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.mts.map b/node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.mts.map new file mode 100644 index 0000000..0c94a46 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"sourcemap-segment.d.ts","sourceRoot":"","sources":["../src/sourcemap-segment.ts"],"names":[],"mappings":"AAAA,KAAK,eAAe,GAAG,MAAM,CAAC;AAC9B,KAAK,YAAY,GAAG,MAAM,CAAC;AAC3B,KAAK,UAAU,GAAG,MAAM,CAAC;AACzB,KAAK,YAAY,GAAG,MAAM,CAAC;AAC3B,KAAK,UAAU,GAAG,MAAM,CAAC;AAEzB,KAAK,aAAa,GAAG,MAAM,CAAC;AAE5B,MAAM,MAAM,gBAAgB,GACxB,CAAC,eAAe,CAAC,GACjB,CAAC,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,GACzD,CAAC,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAE1E,MAAM,MAAM,cAAc,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;AAE5E,eAAO,MAAM,MAAM,IAAI,CAAC;AACxB,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,oBAAoB,IAAI,CAAC"} \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/strip-filename.d.cts b/node_modules/@jridgewell/trace-mapping/types/strip-filename.d.cts new file mode 100644 index 0000000..8b3c0e9 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/strip-filename.d.cts @@ -0,0 +1,5 @@ +/** + * Removes everything after the last "/", but leaves the slash. + */ +export = function stripFilename(path: string | undefined | null): string; +//# sourceMappingURL=strip-filename.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/strip-filename.d.cts.map b/node_modules/@jridgewell/trace-mapping/types/strip-filename.d.cts.map new file mode 100644 index 0000000..17a25da --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/strip-filename.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"strip-filename.d.ts","sourceRoot":"","sources":["../src/strip-filename.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAI7E"} \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/strip-filename.d.mts b/node_modules/@jridgewell/trace-mapping/types/strip-filename.d.mts new file mode 100644 index 0000000..cbbaee0 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/strip-filename.d.mts @@ -0,0 +1,5 @@ +/** + * Removes everything after the last "/", but leaves the slash. + */ +export default function stripFilename(path: string | undefined | null): string; +//# sourceMappingURL=strip-filename.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/strip-filename.d.mts.map b/node_modules/@jridgewell/trace-mapping/types/strip-filename.d.mts.map new file mode 100644 index 0000000..17a25da --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/strip-filename.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"strip-filename.d.ts","sourceRoot":"","sources":["../src/strip-filename.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAI7E"} \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.cts b/node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.cts new file mode 100644 index 0000000..a40f305 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.cts @@ -0,0 +1,80 @@ +import type { SourceMapSegment } from './sourcemap-segment.cts'; +import type { SourceMapV3, DecodedSourceMap, EncodedSourceMap, InvalidOriginalMapping, OriginalMapping, InvalidGeneratedMapping, GeneratedMapping, SourceMapInput, Needle, SourceNeedle, SourceMap, EachMapping, Ro } from './types.cts'; +export type { SourceMapSegment } from './sourcemap-segment.cts'; +export type { SourceMap, DecodedSourceMap, EncodedSourceMap, Section, SectionedSourceMap, SourceMapV3, Bias, EachMapping, GeneratedMapping, InvalidGeneratedMapping, InvalidOriginalMapping, Needle, OriginalMapping, OriginalMapping as Mapping, SectionedSourceMapInput, SourceMapInput, SourceNeedle, XInput, EncodedSourceMapXInput, DecodedSourceMapXInput, SectionedSourceMapXInput, SectionXInput, } from './types.cts'; +export declare const LEAST_UPPER_BOUND = -1; +export declare const GREATEST_LOWER_BOUND = 1; +export { FlattenMap, FlattenMap as AnyMap } from './flatten-map.cts'; +export declare class TraceMap implements SourceMap { + version: SourceMapV3['version']; + file: SourceMapV3['file']; + names: SourceMapV3['names']; + sourceRoot: SourceMapV3['sourceRoot']; + sources: SourceMapV3['sources']; + sourcesContent: SourceMapV3['sourcesContent']; + ignoreList: SourceMapV3['ignoreList']; + resolvedSources: string[]; + private _encoded; + private _decoded; + private _decodedMemo; + private _bySources; + private _bySourceMemos; + constructor(map: Ro, mapUrl?: string | null); +} +/** + * Returns the encoded (VLQ string) form of the SourceMap's mappings field. + */ +export declare function encodedMappings(map: TraceMap): EncodedSourceMap['mappings']; +/** + * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field. + */ +export declare function decodedMappings(map: TraceMap): Readonly; +/** + * A low-level API to find the segment associated with a generated line/column (think, from a + * stack trace). Line and column here are 0-based, unlike `originalPositionFor`. + */ +export declare function traceSegment(map: TraceMap, line: number, column: number): Readonly | null; +/** + * A higher-level API to find the source/line/column associated with a generated line/column + * (think, from a stack trace). Line is 1-based, but column is 0-based, due to legacy behavior in + * `source-map` library. + */ +export declare function originalPositionFor(map: TraceMap, needle: Needle): OriginalMapping | InvalidOriginalMapping; +/** + * Finds the generated line/column position of the provided source/line/column source position. + */ +export declare function generatedPositionFor(map: TraceMap, needle: SourceNeedle): GeneratedMapping | InvalidGeneratedMapping; +/** + * Finds all generated line/column positions of the provided source/line/column source position. + */ +export declare function allGeneratedPositionsFor(map: TraceMap, needle: SourceNeedle): GeneratedMapping[]; +/** + * Iterates each mapping in generated position order. + */ +export declare function eachMapping(map: TraceMap, cb: (mapping: EachMapping) => void): void; +/** + * Retrieves the source content for a particular source, if its found. Returns null if not. + */ +export declare function sourceContentFor(map: TraceMap, source: string): string | null; +/** + * Determines if the source is marked to ignore by the source map. + */ +export declare function isIgnored(map: TraceMap, source: string): boolean; +/** + * A helper that skips sorting of the input map's mappings array, which can be expensive for larger + * maps. + */ +export declare function presortedDecodedMap(map: DecodedSourceMap, mapUrl?: string): TraceMap; +/** + * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +export declare function decodedMap(map: TraceMap): Omit & { + mappings: readonly SourceMapSegment[][]; +}; +/** + * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +export declare function encodedMap(map: TraceMap): EncodedSourceMap; +//# sourceMappingURL=trace-mapping.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.cts.map b/node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.cts.map new file mode 100644 index 0000000..b5a874c --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"trace-mapping.d.ts","sourceRoot":"","sources":["../src/trace-mapping.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,MAAM,EACN,YAAY,EACZ,SAAS,EACT,WAAW,EAIX,EAAE,EACH,MAAM,SAAS,CAAC;AAIjB,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,IAAI,EACJ,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,MAAM,EACN,eAAe,EACf,eAAe,IAAI,OAAO,EAC1B,uBAAuB,EACvB,cAAc,EACd,YAAY,EACZ,MAAM,EACN,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,aAAa,GACd,MAAM,SAAS,CAAC;AAajB,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM,eAAe,CAAC;AAEjE,qBAAa,QAAS,YAAW,SAAS;IAChC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1B,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACtC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,cAAc,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC9C,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IAEtC,eAAe,EAAE,MAAM,EAAE,CAAC;IAClC,QAAgB,QAAQ,CAAqB;IAE7C,QAAgB,QAAQ,CAAmC;IAC3D,QAAgB,YAAY,CAAY;IAExC,QAAgB,UAAU,CAAuB;IACjD,QAAgB,cAAc,CAA0B;gBAE5C,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;CAmC5D;AAUD;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAE3E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAErF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAiBnC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,MAAM,GACb,eAAe,GAAG,sBAAsB,CAiC1C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,YAAY,GACnB,gBAAgB,GAAG,uBAAuB,CAG5C;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,GAAG,gBAAgB,EAAE,CAIhG;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI,CAgCnF;AASD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK7E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAKhE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAIpF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,QAAQ,GACZ,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EAAE,CAAA;CAAE,CAElF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,gBAAgB,CAE1D"} \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.mts b/node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.mts new file mode 100644 index 0000000..bc2ff0f --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.mts @@ -0,0 +1,80 @@ +import type { SourceMapSegment } from './sourcemap-segment.mts'; +import type { SourceMapV3, DecodedSourceMap, EncodedSourceMap, InvalidOriginalMapping, OriginalMapping, InvalidGeneratedMapping, GeneratedMapping, SourceMapInput, Needle, SourceNeedle, SourceMap, EachMapping, Ro } from './types.mts'; +export type { SourceMapSegment } from './sourcemap-segment.mts'; +export type { SourceMap, DecodedSourceMap, EncodedSourceMap, Section, SectionedSourceMap, SourceMapV3, Bias, EachMapping, GeneratedMapping, InvalidGeneratedMapping, InvalidOriginalMapping, Needle, OriginalMapping, OriginalMapping as Mapping, SectionedSourceMapInput, SourceMapInput, SourceNeedle, XInput, EncodedSourceMapXInput, DecodedSourceMapXInput, SectionedSourceMapXInput, SectionXInput, } from './types.mts'; +export declare const LEAST_UPPER_BOUND = -1; +export declare const GREATEST_LOWER_BOUND = 1; +export { FlattenMap, FlattenMap as AnyMap } from './flatten-map.mts'; +export declare class TraceMap implements SourceMap { + version: SourceMapV3['version']; + file: SourceMapV3['file']; + names: SourceMapV3['names']; + sourceRoot: SourceMapV3['sourceRoot']; + sources: SourceMapV3['sources']; + sourcesContent: SourceMapV3['sourcesContent']; + ignoreList: SourceMapV3['ignoreList']; + resolvedSources: string[]; + private _encoded; + private _decoded; + private _decodedMemo; + private _bySources; + private _bySourceMemos; + constructor(map: Ro, mapUrl?: string | null); +} +/** + * Returns the encoded (VLQ string) form of the SourceMap's mappings field. + */ +export declare function encodedMappings(map: TraceMap): EncodedSourceMap['mappings']; +/** + * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field. + */ +export declare function decodedMappings(map: TraceMap): Readonly; +/** + * A low-level API to find the segment associated with a generated line/column (think, from a + * stack trace). Line and column here are 0-based, unlike `originalPositionFor`. + */ +export declare function traceSegment(map: TraceMap, line: number, column: number): Readonly | null; +/** + * A higher-level API to find the source/line/column associated with a generated line/column + * (think, from a stack trace). Line is 1-based, but column is 0-based, due to legacy behavior in + * `source-map` library. + */ +export declare function originalPositionFor(map: TraceMap, needle: Needle): OriginalMapping | InvalidOriginalMapping; +/** + * Finds the generated line/column position of the provided source/line/column source position. + */ +export declare function generatedPositionFor(map: TraceMap, needle: SourceNeedle): GeneratedMapping | InvalidGeneratedMapping; +/** + * Finds all generated line/column positions of the provided source/line/column source position. + */ +export declare function allGeneratedPositionsFor(map: TraceMap, needle: SourceNeedle): GeneratedMapping[]; +/** + * Iterates each mapping in generated position order. + */ +export declare function eachMapping(map: TraceMap, cb: (mapping: EachMapping) => void): void; +/** + * Retrieves the source content for a particular source, if its found. Returns null if not. + */ +export declare function sourceContentFor(map: TraceMap, source: string): string | null; +/** + * Determines if the source is marked to ignore by the source map. + */ +export declare function isIgnored(map: TraceMap, source: string): boolean; +/** + * A helper that skips sorting of the input map's mappings array, which can be expensive for larger + * maps. + */ +export declare function presortedDecodedMap(map: DecodedSourceMap, mapUrl?: string): TraceMap; +/** + * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +export declare function decodedMap(map: TraceMap): Omit & { + mappings: readonly SourceMapSegment[][]; +}; +/** + * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +export declare function encodedMap(map: TraceMap): EncodedSourceMap; +//# sourceMappingURL=trace-mapping.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.mts.map b/node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.mts.map new file mode 100644 index 0000000..b5a874c --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"trace-mapping.d.ts","sourceRoot":"","sources":["../src/trace-mapping.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/types.d.cts b/node_modules/@jridgewell/trace-mapping/types/types.d.cts new file mode 100644 index 0000000..729c2c3 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/types.d.cts @@ -0,0 +1,107 @@ +import type { SourceMapSegment } from './sourcemap-segment.cts'; +import type { GREATEST_LOWER_BOUND, LEAST_UPPER_BOUND, TraceMap } from './trace-mapping.cts'; +export interface SourceMapV3 { + file?: string | null; + names: string[]; + sourceRoot?: string; + sources: (string | null)[]; + sourcesContent?: (string | null)[]; + version: 3; + ignoreList?: number[]; +} +export interface EncodedSourceMap extends SourceMapV3 { + mappings: string; +} +export interface DecodedSourceMap extends SourceMapV3 { + mappings: SourceMapSegment[][]; +} +export interface Section { + offset: { + line: number; + column: number; + }; + map: EncodedSourceMap | DecodedSourceMap | SectionedSourceMap; +} +export interface SectionedSourceMap { + file?: string | null; + sections: Section[]; + version: 3; +} +export type OriginalMapping = { + source: string | null; + line: number; + column: number; + name: string | null; +}; +export type InvalidOriginalMapping = { + source: null; + line: null; + column: null; + name: null; +}; +export type GeneratedMapping = { + line: number; + column: number; +}; +export type InvalidGeneratedMapping = { + line: null; + column: null; +}; +export type Bias = typeof GREATEST_LOWER_BOUND | typeof LEAST_UPPER_BOUND; +export type XInput = { + x_google_ignoreList?: SourceMapV3['ignoreList']; +}; +export type EncodedSourceMapXInput = EncodedSourceMap & XInput; +export type DecodedSourceMapXInput = DecodedSourceMap & XInput; +export type SectionedSourceMapXInput = Omit & { + sections: SectionXInput[]; +}; +export type SectionXInput = Omit & { + map: SectionedSourceMapInput; +}; +export type SourceMapInput = string | EncodedSourceMapXInput | DecodedSourceMapXInput | TraceMap; +export type SectionedSourceMapInput = SourceMapInput | SectionedSourceMapXInput; +export type Needle = { + line: number; + column: number; + bias?: Bias; +}; +export type SourceNeedle = { + source: string; + line: number; + column: number; + bias?: Bias; +}; +export type EachMapping = { + generatedLine: number; + generatedColumn: number; + source: null; + originalLine: null; + originalColumn: null; + name: null; +} | { + generatedLine: number; + generatedColumn: number; + source: string | null; + originalLine: number; + originalColumn: number; + name: string | null; +}; +export declare abstract class SourceMap { + version: SourceMapV3['version']; + file: SourceMapV3['file']; + names: SourceMapV3['names']; + sourceRoot: SourceMapV3['sourceRoot']; + sources: SourceMapV3['sources']; + sourcesContent: SourceMapV3['sourcesContent']; + resolvedSources: SourceMapV3['sources']; + ignoreList: SourceMapV3['ignoreList']; +} +export type Ro = T extends Array ? V[] | Readonly | RoArray | Readonly> : T extends object ? T | Readonly | RoObject | Readonly> : T; +type RoArray = Ro[]; +type RoObject = { + [K in keyof T]: T[K] | Ro; +}; +export declare function parse(map: T): Exclude; +export {}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/types.d.cts.map b/node_modules/@jridgewell/trace-mapping/types/types.d.cts.map new file mode 100644 index 0000000..9224783 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/types.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/types.d.mts b/node_modules/@jridgewell/trace-mapping/types/types.d.mts new file mode 100644 index 0000000..a26d186 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/types.d.mts @@ -0,0 +1,107 @@ +import type { SourceMapSegment } from './sourcemap-segment.mts'; +import type { GREATEST_LOWER_BOUND, LEAST_UPPER_BOUND, TraceMap } from './trace-mapping.mts'; +export interface SourceMapV3 { + file?: string | null; + names: string[]; + sourceRoot?: string; + sources: (string | null)[]; + sourcesContent?: (string | null)[]; + version: 3; + ignoreList?: number[]; +} +export interface EncodedSourceMap extends SourceMapV3 { + mappings: string; +} +export interface DecodedSourceMap extends SourceMapV3 { + mappings: SourceMapSegment[][]; +} +export interface Section { + offset: { + line: number; + column: number; + }; + map: EncodedSourceMap | DecodedSourceMap | SectionedSourceMap; +} +export interface SectionedSourceMap { + file?: string | null; + sections: Section[]; + version: 3; +} +export type OriginalMapping = { + source: string | null; + line: number; + column: number; + name: string | null; +}; +export type InvalidOriginalMapping = { + source: null; + line: null; + column: null; + name: null; +}; +export type GeneratedMapping = { + line: number; + column: number; +}; +export type InvalidGeneratedMapping = { + line: null; + column: null; +}; +export type Bias = typeof GREATEST_LOWER_BOUND | typeof LEAST_UPPER_BOUND; +export type XInput = { + x_google_ignoreList?: SourceMapV3['ignoreList']; +}; +export type EncodedSourceMapXInput = EncodedSourceMap & XInput; +export type DecodedSourceMapXInput = DecodedSourceMap & XInput; +export type SectionedSourceMapXInput = Omit & { + sections: SectionXInput[]; +}; +export type SectionXInput = Omit & { + map: SectionedSourceMapInput; +}; +export type SourceMapInput = string | EncodedSourceMapXInput | DecodedSourceMapXInput | TraceMap; +export type SectionedSourceMapInput = SourceMapInput | SectionedSourceMapXInput; +export type Needle = { + line: number; + column: number; + bias?: Bias; +}; +export type SourceNeedle = { + source: string; + line: number; + column: number; + bias?: Bias; +}; +export type EachMapping = { + generatedLine: number; + generatedColumn: number; + source: null; + originalLine: null; + originalColumn: null; + name: null; +} | { + generatedLine: number; + generatedColumn: number; + source: string | null; + originalLine: number; + originalColumn: number; + name: string | null; +}; +export declare abstract class SourceMap { + version: SourceMapV3['version']; + file: SourceMapV3['file']; + names: SourceMapV3['names']; + sourceRoot: SourceMapV3['sourceRoot']; + sources: SourceMapV3['sources']; + sourcesContent: SourceMapV3['sourcesContent']; + resolvedSources: SourceMapV3['sources']; + ignoreList: SourceMapV3['ignoreList']; +} +export type Ro = T extends Array ? V[] | Readonly | RoArray | Readonly> : T extends object ? T | Readonly | RoObject | Readonly> : T; +type RoArray = Ro[]; +type RoObject = { + [K in keyof T]: T[K] | Ro; +}; +export declare function parse(map: T): Exclude; +export {}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/trace-mapping/types/types.d.mts.map b/node_modules/@jridgewell/trace-mapping/types/types.d.mts.map new file mode 100644 index 0000000..9224783 --- /dev/null +++ b/node_modules/@jridgewell/trace-mapping/types/types.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@parcel/watcher-win32-x64/LICENSE b/node_modules/@parcel/watcher-win32-x64/LICENSE new file mode 100644 index 0000000..7fb9bc9 --- /dev/null +++ b/node_modules/@parcel/watcher-win32-x64/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017-present Devon Govett + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@parcel/watcher-win32-x64/README.md b/node_modules/@parcel/watcher-win32-x64/README.md new file mode 100644 index 0000000..7620831 --- /dev/null +++ b/node_modules/@parcel/watcher-win32-x64/README.md @@ -0,0 +1 @@ +This is the win32-x64 build of @parcel/watcher. See https://github.com/parcel-bundler/watcher for details. \ No newline at end of file diff --git a/node_modules/@parcel/watcher-win32-x64/package.json b/node_modules/@parcel/watcher-win32-x64/package.json new file mode 100644 index 0000000..dbbc6d1 --- /dev/null +++ b/node_modules/@parcel/watcher-win32-x64/package.json @@ -0,0 +1,30 @@ +{ + "name": "@parcel/watcher-win32-x64", + "version": "2.5.1", + "main": "watcher.node", + "repository": { + "type": "git", + "url": "https://github.com/parcel-bundler/watcher.git" + }, + "description": "A native C++ Node module for querying and subscribing to filesystem events. Used by Parcel 2.", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "files": [ + "watcher.node" + ], + "engines": { + "node": ">= 10.0.0" + }, + "os": [ + "win32" + ], + "cpu": [ + "x64" + ] +} diff --git a/node_modules/@parcel/watcher-win32-x64/watcher.node b/node_modules/@parcel/watcher-win32-x64/watcher.node new file mode 100644 index 0000000000000000000000000000000000000000..32648898bb257760e5cd5c84d493060ee0cda5f6 GIT binary patch literal 518144 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≠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 s?A5G{j>ae#%ZodR^M`(SElkZR|fCAAWZE { + console.log(events); +}); + +// later on... +await subscription.unsubscribe(); + +// Get events since some saved snapshot in the past +let snapshotPath = path.join(process.cwd(), 'snapshot.txt'); +let events = await watcher.getEventsSince(process.cwd(), snapshotPath); + +// Save a snapshot for later +await watcher.writeSnapshot(process.cwd(), snapshotPath); +``` + +## Watching + +`@parcel/watcher` supports subscribing to realtime notifications of changes in a directory. It works recursively, so changes in sub-directories will also be emitted. + +Events are throttled and coalesced for performance during large changes like `git checkout` or `npm install`, and a single notification will be emitted with all of the events at the end. + +Only one notification will be emitted per file. For example, if a file was both created and updated since the last event, you'll get only a `create` event. If a file is both created and deleted, you will not be notifed of that file. Renames cause two events: a `delete` for the old name, and a `create` for the new name. + +```javascript +let subscription = await watcher.subscribe(process.cwd(), (err, events) => { + console.log(events); +}); +``` + +Events have two properties: + +- `type` - the event type: `create`, `update`, or `delete`. +- `path` - the absolute path to the file or directory. + +To unsubscribe from change notifications, call the `unsubscribe` method on the returned subscription object. + +```javascript +await subscription.unsubscribe(); +``` + +`@parcel/watcher` has the following watcher backends, listed in priority order: + +- [FSEvents](https://developer.apple.com/documentation/coreservices/file_system_events) on macOS +- [Watchman](https://facebook.github.io/watchman/) if installed +- [inotify](http://man7.org/linux/man-pages/man7/inotify.7.html) on Linux +- [ReadDirectoryChangesW](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365465%28v%3Dvs.85%29.aspx) on Windows +- [kqueue](https://man.freebsd.org/cgi/man.cgi?kqueue) on FreeBSD, or as an alternative to FSEvents on macOS + +You can specify the exact backend you wish to use by passing the `backend` option. If that backend is not available on the current platform, the default backend will be used instead. See below for the list of backend names that can be passed to the options. + +## Querying + +`@parcel/watcher` also supports querying for historical changes made in a directory, even when your program is not running. This makes it easy to invalidate a cache and re-build only the files that have changed, for example. It can be **significantly** faster than traversing the entire filesystem to determine what files changed, depending on the platform. + +In order to query for historical changes, you first need a previous snapshot to compare to. This can be saved to a file with the `writeSnapshot` function, e.g. just before your program exits. + +```javascript +await watcher.writeSnapshot(dirPath, snapshotPath); +``` + +When your program starts up, you can query for changes that have occurred since that snapshot using the `getEventsSince` function. + +```javascript +let events = await watcher.getEventsSince(dirPath, snapshotPath); +``` + +The events returned are exactly the same as the events that would be passed to the `subscribe` callback (see above). + +`@parcel/watcher` has the following watcher backends, listed in priority order: + +- [FSEvents](https://developer.apple.com/documentation/coreservices/file_system_events) on macOS +- [Watchman](https://facebook.github.io/watchman/) if installed +- [fts](http://man7.org/linux/man-pages/man3/fts.3.html) (brute force) on Linux and FreeBSD +- [FindFirstFile](https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-findfirstfilea) (brute force) on Windows + +The FSEvents (macOS) and Watchman backends are significantly more performant than the brute force backends used by default on Linux and Windows, for example returning results in miliseconds instead of seconds for large directory trees. This is because a background daemon monitoring filesystem changes on those platforms allows us to query cached data rather than traversing the filesystem manually (brute force). + +macOS has good performance with FSEvents by default. For the best performance on other platforms, install [Watchman](https://facebook.github.io/watchman/) and it will be used by `@parcel/watcher` automatically. + +You can specify the exact backend you wish to use by passing the `backend` option. If that backend is not available on the current platform, the default backend will be used instead. See below for the list of backend names that can be passed to the options. + +## Options + +All of the APIs in `@parcel/watcher` support the following options, which are passed as an object as the last function argument. + +- `ignore` - an array of paths or glob patterns to ignore. uses [`is-glob`](https://github.com/micromatch/is-glob) to distinguish paths from globs. glob patterns are parsed with [`micromatch`](https://github.com/micromatch/micromatch) (see [features](https://github.com/micromatch/micromatch#matching-features)). + - paths can be relative or absolute and can either be files or directories. No events will be emitted about these files or directories or their children. + - glob patterns match on relative paths from the root that is watched. No events will be emitted for matching paths. +- `backend` - the name of an explicitly chosen backend to use. Allowed options are `"fs-events"`, `"watchman"`, `"inotify"`, `"kqueue"`, `"windows"`, or `"brute-force"` (only for querying). If the specified backend is not available on the current platform, the default backend will be used instead. + +## WASM + +The `@parcel/watcher-wasm` package can be used in place of `@parcel/watcher` on unsupported platforms. It relies on the Node `fs` module, so in non-Node environments such as browsers, an `fs` polyfill will be needed. + +**Note**: the WASM implementation is significantly less efficient than the native implementations because it must crawl the file system to watch each directory individually. Use the native `@parcel/watcher` package wherever possible. + +```js +import {subscribe} from '@parcel/watcher-wasm'; + +// Use the module as documented above. +subscribe(/* ... */); +``` + +## Who is using this? + +- [Parcel 2](https://parceljs.org/) +- [VSCode](https://code.visualstudio.com/updates/v1_62#_file-watching-changes) +- [Tailwind CSS Intellisense](https://github.com/tailwindlabs/tailwindcss-intellisense) +- [Gatsby Cloud](https://twitter.com/chatsidhartha/status/1435647412828196867) +- [Nx](https://nx.dev) +- [Nuxt](https://nuxt.com) + +## License + +MIT diff --git a/node_modules/@parcel/watcher/binding.gyp b/node_modules/@parcel/watcher/binding.gyp new file mode 100644 index 0000000..9b8f6ff --- /dev/null +++ b/node_modules/@parcel/watcher/binding.gyp @@ -0,0 +1,93 @@ +{ + "targets": [ + { + "target_name": "watcher", + "defines": [ "NAPI_DISABLE_CPP_EXCEPTIONS" ], + "sources": [ "src/binding.cc", "src/Watcher.cc", "src/Backend.cc", "src/DirTree.cc", "src/Glob.cc", "src/Debounce.cc" ], + "include_dirs" : [" unknown; + export interface AsyncSubscription { + unsubscribe(): Promise; + } + export interface Event { + path: FilePath; + type: EventType; + } + export function getEventsSince( + dir: FilePath, + snapshot: FilePath, + opts?: Options + ): Promise; + export function subscribe( + dir: FilePath, + fn: SubscribeCallback, + opts?: Options + ): Promise; + export function unsubscribe( + dir: FilePath, + fn: SubscribeCallback, + opts?: Options + ): Promise; + export function writeSnapshot( + dir: FilePath, + snapshot: FilePath, + opts?: Options + ): Promise; +} + +export = ParcelWatcher; \ No newline at end of file diff --git a/node_modules/@parcel/watcher/index.js b/node_modules/@parcel/watcher/index.js new file mode 100644 index 0000000..8afb2b1 --- /dev/null +++ b/node_modules/@parcel/watcher/index.js @@ -0,0 +1,41 @@ +const {createWrapper} = require('./wrapper'); + +let name = `@parcel/watcher-${process.platform}-${process.arch}`; +if (process.platform === 'linux') { + const { MUSL, family } = require('detect-libc'); + if (family === MUSL) { + name += '-musl'; + } else { + name += '-glibc'; + } +} + +let binding; +try { + binding = require(name); +} catch (err) { + handleError(err); + try { + binding = require('./build/Release/watcher.node'); + } catch (err) { + handleError(err); + try { + binding = require('./build/Debug/watcher.node'); + } catch (err) { + handleError(err); + throw new Error(`No prebuild or local build of @parcel/watcher found. Tried ${name}. Please ensure it is installed (don't use --no-optional when installing with npm). Otherwise it is possible we don't support your platform yet. If this is the case, please report an issue to https://github.com/parcel-bundler/watcher.`); + } + } +} + +function handleError(err) { + if (err?.code !== 'MODULE_NOT_FOUND') { + throw err; + } +} + +const wrapper = createWrapper(binding); +exports.writeSnapshot = wrapper.writeSnapshot; +exports.getEventsSince = wrapper.getEventsSince; +exports.subscribe = wrapper.subscribe; +exports.unsubscribe = wrapper.unsubscribe; diff --git a/node_modules/@parcel/watcher/index.js.flow b/node_modules/@parcel/watcher/index.js.flow new file mode 100644 index 0000000..d75da93 --- /dev/null +++ b/node_modules/@parcel/watcher/index.js.flow @@ -0,0 +1,48 @@ +// @flow +declare type FilePath = string; +declare type GlobPattern = string; + +export type BackendType = + | 'fs-events' + | 'watchman' + | 'inotify' + | 'windows' + | 'brute-force'; +export type EventType = 'create' | 'update' | 'delete'; +export interface Options { + ignore?: Array, + backend?: BackendType +} +export type SubscribeCallback = ( + err: ?Error, + events: Array +) => mixed; +export interface AsyncSubscription { + unsubscribe(): Promise +} +export interface Event { + path: FilePath, + type: EventType +} +declare module.exports: { + getEventsSince( + dir: FilePath, + snapshot: FilePath, + opts?: Options + ): Promise>, + subscribe( + dir: FilePath, + fn: SubscribeCallback, + opts?: Options + ): Promise, + unsubscribe( + dir: FilePath, + fn: SubscribeCallback, + opts?: Options + ): Promise, + writeSnapshot( + dir: FilePath, + snapshot: FilePath, + opts?: Options + ): Promise +} \ No newline at end of file diff --git a/node_modules/@parcel/watcher/package.json b/node_modules/@parcel/watcher/package.json new file mode 100644 index 0000000..dc41500 --- /dev/null +++ b/node_modules/@parcel/watcher/package.json @@ -0,0 +1,88 @@ +{ + "name": "@parcel/watcher", + "version": "2.5.1", + "main": "index.js", + "types": "index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/parcel-bundler/watcher.git" + }, + "description": "A native C++ Node module for querying and subscribing to filesystem events. Used by Parcel 2.", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "files": [ + "index.js", + "index.js.flow", + "index.d.ts", + "wrapper.js", + "package.json", + "README.md", + "LICENSE", + "src", + "scripts/build-from-source.js", + "binding.gyp" + ], + "scripts": { + "prebuild": "prebuildify --napi --strip --tag-libc", + "format": "prettier --write \"./**/*.{js,json,md}\"", + "build": "node-gyp rebuild", + "install": "node scripts/build-from-source.js", + "test": "mocha" + }, + "engines": { + "node": ">= 10.0.0" + }, + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "lint-staged": { + "*.{js,json,md}": [ + "prettier --write", + "git add" + ] + }, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "devDependencies": { + "esbuild": "^0.19.8", + "fs-extra": "^10.0.0", + "husky": "^7.0.2", + "lint-staged": "^11.1.2", + "mocha": "^9.1.1", + "napi-wasm": "^1.1.0", + "prebuildify": "^6.0.1", + "prettier": "^2.3.2" + }, + "binary": { + "napi_versions": [ + 3 + ] + }, + "optionalDependencies": { + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1" + } +} diff --git a/node_modules/@parcel/watcher/scripts/build-from-source.js b/node_modules/@parcel/watcher/scripts/build-from-source.js new file mode 100644 index 0000000..4602008 --- /dev/null +++ b/node_modules/@parcel/watcher/scripts/build-from-source.js @@ -0,0 +1,13 @@ +#!/usr/bin/env node + +const {spawn} = require('child_process'); + +if (process.env.npm_config_build_from_source === 'true') { + build(); +} + +function build() { + spawn('node-gyp', ['rebuild'], { stdio: 'inherit', shell: true }).on('exit', function (code) { + process.exit(code); + }); +} diff --git a/node_modules/@parcel/watcher/src/Backend.cc b/node_modules/@parcel/watcher/src/Backend.cc new file mode 100644 index 0000000..fcf5544 --- /dev/null +++ b/node_modules/@parcel/watcher/src/Backend.cc @@ -0,0 +1,182 @@ +#ifdef FS_EVENTS +#include "macos/FSEventsBackend.hh" +#endif +#ifdef WATCHMAN +#include "watchman/WatchmanBackend.hh" +#endif +#ifdef WINDOWS +#include "windows/WindowsBackend.hh" +#endif +#ifdef INOTIFY +#include "linux/InotifyBackend.hh" +#endif +#ifdef KQUEUE +#include "kqueue/KqueueBackend.hh" +#endif +#ifdef __wasm32__ +#include "wasm/WasmBackend.hh" +#endif +#include "shared/BruteForceBackend.hh" + +#include "Backend.hh" +#include + +static std::unordered_map> sharedBackends; + +std::shared_ptr getBackend(std::string backend) { + // Use FSEvents on macOS by default. + // Use watchman by default if available on other platforms. + // Fall back to brute force. + #ifdef FS_EVENTS + if (backend == "fs-events" || backend == "default") { + return std::make_shared(); + } + #endif + #ifdef WATCHMAN + if ((backend == "watchman" || backend == "default") && WatchmanBackend::checkAvailable()) { + return std::make_shared(); + } + #endif + #ifdef WINDOWS + if (backend == "windows" || backend == "default") { + return std::make_shared(); + } + #endif + #ifdef INOTIFY + if (backend == "inotify" || backend == "default") { + return std::make_shared(); + } + #endif + #ifdef KQUEUE + if (backend == "kqueue" || backend == "default") { + return std::make_shared(); + } + #endif + #ifdef __wasm32__ + if (backend == "wasm" || backend == "default") { + return std::make_shared(); + } + #endif + if (backend == "brute-force" || backend == "default") { + return std::make_shared(); + } + + return nullptr; +} + +std::shared_ptr Backend::getShared(std::string backend) { + auto found = sharedBackends.find(backend); + if (found != sharedBackends.end()) { + return found->second; + } + + auto result = getBackend(backend); + if (!result) { + return getShared("default"); + } + + result->run(); + sharedBackends.emplace(backend, result); + return result; +} + +void removeShared(Backend *backend) { + for (auto it = sharedBackends.begin(); it != sharedBackends.end(); it++) { + if (it->second.get() == backend) { + sharedBackends.erase(it); + break; + } + } + + // Free up memory. + if (sharedBackends.size() == 0) { + sharedBackends.rehash(0); + } +} + +void Backend::run() { + #ifndef __wasm32__ + mThread = std::thread([this] () { + try { + start(); + } catch (std::exception &err) { + handleError(err); + } + }); + + if (mThread.joinable()) { + mStartedSignal.wait(); + } + #else + try { + start(); + } catch (std::exception &err) { + handleError(err); + } + #endif +} + +void Backend::notifyStarted() { + mStartedSignal.notify(); +} + +void Backend::start() { + notifyStarted(); +} + +Backend::~Backend() { + #ifndef __wasm32__ + // Wait for thread to stop + if (mThread.joinable()) { + // If the backend is being destroyed from the thread itself, detach, otherwise join. + if (mThread.get_id() == std::this_thread::get_id()) { + mThread.detach(); + } else { + mThread.join(); + } + } + #endif +} + +void Backend::watch(WatcherRef watcher) { + std::unique_lock lock(mMutex); + auto res = mSubscriptions.find(watcher); + if (res == mSubscriptions.end()) { + try { + this->subscribe(watcher); + mSubscriptions.insert(watcher); + } catch (std::exception &err) { + unref(); + throw; + } + } +} + +void Backend::unwatch(WatcherRef watcher) { + std::unique_lock lock(mMutex); + size_t deleted = mSubscriptions.erase(watcher); + if (deleted > 0) { + this->unsubscribe(watcher); + unref(); + } +} + +void Backend::unref() { + if (mSubscriptions.size() == 0) { + removeShared(this); + } +} + +void Backend::handleWatcherError(WatcherError &err) { + unwatch(err.mWatcher); + err.mWatcher->notifyError(err); +} + +void Backend::handleError(std::exception &err) { + std::unique_lock lock(mMutex); + for (auto it = mSubscriptions.begin(); it != mSubscriptions.end(); it++) { + (*it)->notifyError(err); + } + + removeShared(this); +} diff --git a/node_modules/@parcel/watcher/src/Backend.hh b/node_modules/@parcel/watcher/src/Backend.hh new file mode 100644 index 0000000..d673bd1 --- /dev/null +++ b/node_modules/@parcel/watcher/src/Backend.hh @@ -0,0 +1,37 @@ +#ifndef BACKEND_H +#define BACKEND_H + +#include "Event.hh" +#include "Watcher.hh" +#include "Signal.hh" +#include + +class Backend { +public: + virtual ~Backend(); + void run(); + void notifyStarted(); + + virtual void start(); + virtual void writeSnapshot(WatcherRef watcher, std::string *snapshotPath) = 0; + virtual void getEventsSince(WatcherRef watcher, std::string *snapshotPath) = 0; + virtual void subscribe(WatcherRef watcher) = 0; + virtual void unsubscribe(WatcherRef watcher) = 0; + + static std::shared_ptr getShared(std::string backend); + + void watch(WatcherRef watcher); + void unwatch(WatcherRef watcher); + void unref(); + void handleWatcherError(WatcherError &err); + + std::mutex mMutex; + std::thread mThread; +private: + std::unordered_set mSubscriptions; + Signal mStartedSignal; + + void handleError(std::exception &err); +}; + +#endif diff --git a/node_modules/@parcel/watcher/src/Debounce.cc b/node_modules/@parcel/watcher/src/Debounce.cc new file mode 100644 index 0000000..be07e78 --- /dev/null +++ b/node_modules/@parcel/watcher/src/Debounce.cc @@ -0,0 +1,113 @@ +#include "Debounce.hh" + +#ifdef __wasm32__ +extern "C" void on_timeout(void *ctx) { + Debounce *debounce = (Debounce *)ctx; + debounce->notify(); +} +#endif + +std::shared_ptr Debounce::getShared() { + static std::weak_ptr sharedInstance; + std::shared_ptr shared = sharedInstance.lock(); + if (!shared) { + shared = std::make_shared(); + sharedInstance = shared; + } + + return shared; +} + +Debounce::Debounce() { + mRunning = true; + #ifndef __wasm32__ + mThread = std::thread([this] () { + loop(); + }); + #endif +} + +Debounce::~Debounce() { + mRunning = false; + #ifndef __wasm32__ + mWaitSignal.notify(); + mThread.join(); + #endif +} + +void Debounce::add(void *key, std::function cb) { + std::unique_lock lock(mMutex); + mCallbacks.emplace(key, cb); +} + +void Debounce::remove(void *key) { + std::unique_lock lock(mMutex); + mCallbacks.erase(key); +} + +void Debounce::trigger() { + std::unique_lock lock(mMutex); + #ifdef __wasm32__ + notifyIfReady(); + #else + mWaitSignal.notify(); + #endif +} + +#ifndef __wasm32__ +void Debounce::loop() { + while (mRunning) { + mWaitSignal.wait(); + if (!mRunning) { + break; + } + + notifyIfReady(); + } +} +#endif + +void Debounce::notifyIfReady() { + if (!mRunning) { + return; + } + + // If we haven't seen an event in more than the maximum wait time, notify callbacks immediately + // to ensure that we don't wait forever. Otherwise, wait for the minimum wait time and batch + // subsequent fast changes. This also means the first file change in a batch is notified immediately, + // separately from the rest of the batch. This seems like an acceptable tradeoff if the common case + // is that only a single file was updated at a time. + auto time = std::chrono::steady_clock::now(); + if ((time - mLastTime) > std::chrono::milliseconds(MAX_WAIT_TIME)) { + mLastTime = time; + notify(); + } else { + wait(); + } +} + +void Debounce::wait() { + #ifdef __wasm32__ + clear_timeout(mTimeout); + mTimeout = set_timeout(MIN_WAIT_TIME, this); + #else + auto status = mWaitSignal.waitFor(std::chrono::milliseconds(MIN_WAIT_TIME)); + if (mRunning && (status == std::cv_status::timeout)) { + notify(); + } + #endif +} + +void Debounce::notify() { + std::unique_lock lock(mMutex); + + mLastTime = std::chrono::steady_clock::now(); + for (auto it = mCallbacks.begin(); it != mCallbacks.end(); it++) { + auto cb = it->second; + cb(); + } + + #ifndef __wasm32__ + mWaitSignal.reset(); + #endif +} diff --git a/node_modules/@parcel/watcher/src/Debounce.hh b/node_modules/@parcel/watcher/src/Debounce.hh new file mode 100644 index 0000000..a17fdef --- /dev/null +++ b/node_modules/@parcel/watcher/src/Debounce.hh @@ -0,0 +1,49 @@ +#ifndef DEBOUNCE_H +#define DEBOUNCE_H + +#include +#include +#include +#include "Signal.hh" + +#define MIN_WAIT_TIME 50 +#define MAX_WAIT_TIME 500 + +#ifdef __wasm32__ +extern "C" { + int set_timeout(int ms, void *ctx); + void clear_timeout(int timeout); + void on_timeout(void *ctx); +}; +#endif + +class Debounce { +public: + static std::shared_ptr getShared(); + + Debounce(); + ~Debounce(); + + void add(void *key, std::function cb); + void remove(void *key); + void trigger(); + void notify(); + +private: + bool mRunning; + std::mutex mMutex; + #ifdef __wasm32__ + int mTimeout; + #else + Signal mWaitSignal; + std::thread mThread; + #endif + std::unordered_map> mCallbacks; + std::chrono::time_point mLastTime; + + void loop(); + void notifyIfReady(); + void wait(); +}; + +#endif diff --git a/node_modules/@parcel/watcher/src/DirTree.cc b/node_modules/@parcel/watcher/src/DirTree.cc new file mode 100644 index 0000000..ac17c15 --- /dev/null +++ b/node_modules/@parcel/watcher/src/DirTree.cc @@ -0,0 +1,152 @@ +#include "DirTree.hh" +#include + +static std::mutex mDirCacheMutex; +static std::unordered_map> dirTreeCache; + +struct DirTreeDeleter { + void operator()(DirTree *tree) { + std::lock_guard lock(mDirCacheMutex); + dirTreeCache.erase(tree->root); + delete tree; + + // Free up memory. + if (dirTreeCache.size() == 0) { + dirTreeCache.rehash(0); + } + } +}; + +std::shared_ptr DirTree::getCached(std::string root) { + std::lock_guard lock(mDirCacheMutex); + + auto found = dirTreeCache.find(root); + std::shared_ptr tree; + + // Use cached tree, or create an empty one. + if (found != dirTreeCache.end()) { + tree = found->second.lock(); + } else { + tree = std::shared_ptr(new DirTree(root), DirTreeDeleter()); + dirTreeCache.emplace(root, tree); + } + + return tree; +} + +DirTree::DirTree(std::string root, FILE *f) : root(root), isComplete(true) { + size_t size; + if (fscanf(f, "%zu", &size)) { + for (size_t i = 0; i < size; i++) { + DirEntry entry(f); + entries.emplace(entry.path, entry); + } + } +} + +// Internal find method that has no lock +DirEntry *DirTree::_find(std::string path) { + auto found = entries.find(path); + if (found == entries.end()) { + return NULL; + } + + return &found->second; +} + +DirEntry *DirTree::add(std::string path, uint64_t mtime, bool isDir) { + std::lock_guard lock(mMutex); + + DirEntry entry(path, mtime, isDir); + auto it = entries.emplace(entry.path, entry); + return &it.first->second; +} + +DirEntry *DirTree::find(std::string path) { + std::lock_guard lock(mMutex); + return _find(path); +} + +DirEntry *DirTree::update(std::string path, uint64_t mtime) { + std::lock_guard lock(mMutex); + + DirEntry *found = _find(path); + if (found) { + found->mtime = mtime; + } + + return found; +} + +void DirTree::remove(std::string path) { + std::lock_guard lock(mMutex); + + DirEntry *found = _find(path); + + // Remove all sub-entries if this is a directory + if (found && found->isDir) { + std::string pathStart = path + DIR_SEP; + for (auto it = entries.begin(); it != entries.end();) { + if (it->first.rfind(pathStart, 0) == 0) { + it = entries.erase(it); + } else { + it++; + } + } + } + + entries.erase(path); +} + +void DirTree::write(FILE *f) { + std::lock_guard lock(mMutex); + + fprintf(f, "%zu\n", entries.size()); + for (auto it = entries.begin(); it != entries.end(); it++) { + it->second.write(f); + } +} + +void DirTree::getChanges(DirTree *snapshot, EventList &events) { + std::lock_guard lock(mMutex); + std::lock_guard snapshotLock(snapshot->mMutex); + + for (auto it = entries.begin(); it != entries.end(); it++) { + auto found = snapshot->entries.find(it->first); + if (found == snapshot->entries.end()) { + events.create(it->second.path); + } else if (found->second.mtime != it->second.mtime && !found->second.isDir && !it->second.isDir) { + events.update(it->second.path); + } + } + + for (auto it = snapshot->entries.begin(); it != snapshot->entries.end(); it++) { + size_t count = entries.count(it->first); + if (count == 0) { + events.remove(it->second.path); + } + } +} + +DirEntry::DirEntry(std::string p, uint64_t t, bool d) { + path = p; + mtime = t; + isDir = d; + state = NULL; +} + +DirEntry::DirEntry(FILE *f) { + size_t size; + if (fscanf(f, "%zu", &size)) { + path.resize(size); + if (fread(&path[0], sizeof(char), size, f)) { + int d = 0; + fscanf(f, "%" PRIu64 " %d\n", &mtime, &d); + isDir = d == 1; + } + } +} + +void DirEntry::write(FILE *f) const { + fprintf(f, "%zu%s%" PRIu64 " %d\n", path.size(), path.c_str(), mtime, isDir); +} diff --git a/node_modules/@parcel/watcher/src/DirTree.hh b/node_modules/@parcel/watcher/src/DirTree.hh new file mode 100644 index 0000000..328f469 --- /dev/null +++ b/node_modules/@parcel/watcher/src/DirTree.hh @@ -0,0 +1,50 @@ +#ifndef DIR_TREE_H +#define DIR_TREE_H + +#include +#include +#include +#include "Event.hh" + +#ifdef _WIN32 +#define DIR_SEP "\\" +#else +#define DIR_SEP "/" +#endif + +struct DirEntry { + std::string path; + uint64_t mtime; + bool isDir; + mutable void *state; + + DirEntry(std::string p, uint64_t t, bool d); + DirEntry(FILE *f); + void write(FILE *f) const; + bool operator==(const DirEntry &other) const { + return path == other.path; + } +}; + +class DirTree { +public: + static std::shared_ptr getCached(std::string root); + DirTree(std::string root) : root(root), isComplete(false) {} + DirTree(std::string root, FILE *f); + DirEntry *add(std::string path, uint64_t mtime, bool isDir); + DirEntry *find(std::string path); + DirEntry *update(std::string path, uint64_t mtime); + void remove(std::string path); + void write(FILE *f); + void getChanges(DirTree *snapshot, EventList &events); + + std::mutex mMutex; + std::string root; + bool isComplete; + std::unordered_map entries; + +private: + DirEntry *_find(std::string path); +}; + +#endif diff --git a/node_modules/@parcel/watcher/src/Event.hh b/node_modules/@parcel/watcher/src/Event.hh new file mode 100644 index 0000000..8d09712 --- /dev/null +++ b/node_modules/@parcel/watcher/src/Event.hh @@ -0,0 +1,109 @@ +#ifndef EVENT_H +#define EVENT_H + +#include +#include +#include "wasm/include.h" +#include +#include +#include +#include + +using namespace Napi; + +struct Event { + std::string path; + bool isCreated; + bool isDeleted; + Event(std::string path) : path(path), isCreated(false), isDeleted(false) {} + + Value toJS(const Env& env) { + EscapableHandleScope scope(env); + Object res = Object::New(env); + std::string type = isCreated ? "create" : isDeleted ? "delete" : "update"; + res.Set(String::New(env, "path"), String::New(env, path.c_str())); + res.Set(String::New(env, "type"), String::New(env, type.c_str())); + return scope.Escape(res); + } +}; + +class EventList { +public: + void create(std::string path) { + std::lock_guard l(mMutex); + Event *event = internalUpdate(path); + if (event->isDeleted) { + // Assume update event when rapidly removed and created + // https://github.com/parcel-bundler/watcher/issues/72 + event->isDeleted = false; + } else { + event->isCreated = true; + } + } + + Event *update(std::string path) { + std::lock_guard l(mMutex); + return internalUpdate(path); + } + + void remove(std::string path) { + std::lock_guard l(mMutex); + Event *event = internalUpdate(path); + event->isDeleted = true; + } + + size_t size() { + std::lock_guard l(mMutex); + return mEvents.size(); + } + + std::vector getEvents() { + std::lock_guard l(mMutex); + std::vector eventsCloneVector; + for(auto it = mEvents.begin(); it != mEvents.end(); ++it) { + if (!(it->second.isCreated && it->second.isDeleted)) { + eventsCloneVector.push_back(it->second); + } + } + return eventsCloneVector; + } + + void clear() { + std::lock_guard l(mMutex); + mEvents.clear(); + mError.reset(); + } + + void error(std::string err) { + std::lock_guard l(mMutex); + if (!mError.has_value()) { + mError.emplace(err); + } + } + + bool hasError() { + std::lock_guard l(mMutex); + return mError.has_value(); + } + + std::string getError() { + std::lock_guard l(mMutex); + return mError.value_or(""); + } + +private: + mutable std::mutex mMutex; + std::map mEvents; + std::optional mError; + Event *internalUpdate(std::string path) { + auto found = mEvents.find(path); + if (found == mEvents.end()) { + auto it = mEvents.emplace(path, Event(path)); + return &it.first->second; + } + + return &found->second; + } +}; + +#endif diff --git a/node_modules/@parcel/watcher/src/Glob.cc b/node_modules/@parcel/watcher/src/Glob.cc new file mode 100644 index 0000000..a4a1722 --- /dev/null +++ b/node_modules/@parcel/watcher/src/Glob.cc @@ -0,0 +1,22 @@ +#include "Glob.hh" + +#ifdef __wasm32__ +extern "C" bool wasm_regex_match(const char *s, const char *regex); +#endif + +Glob::Glob(std::string raw) { + mRaw = raw; + mHash = std::hash()(raw); + #ifndef __wasm32__ + mRegex = std::regex(raw); + #endif +} + +bool Glob::isIgnored(std::string relative_path) const { + // Use native JS regex engine for wasm to reduce binary size. + #ifdef __wasm32__ + return wasm_regex_match(relative_path.c_str(), mRaw.c_str()); + #else + return std::regex_match(relative_path, mRegex); + #endif +} diff --git a/node_modules/@parcel/watcher/src/Glob.hh b/node_modules/@parcel/watcher/src/Glob.hh new file mode 100644 index 0000000..6e049e6 --- /dev/null +++ b/node_modules/@parcel/watcher/src/Glob.hh @@ -0,0 +1,34 @@ +#ifndef GLOB_H +#define GLOB_H + +#include +#include + +struct Glob { + std::size_t mHash; + std::string mRaw; + #ifndef __wasm32__ + std::regex mRegex; + #endif + + Glob(std::string raw); + + bool operator==(const Glob &other) const { + return mHash == other.mHash; + } + + bool isIgnored(std::string relative_path) const; +}; + +namespace std +{ + template <> + struct hash + { + size_t operator()(const Glob& g) const { + return g.mHash; + } + }; +} + +#endif diff --git a/node_modules/@parcel/watcher/src/PromiseRunner.hh b/node_modules/@parcel/watcher/src/PromiseRunner.hh new file mode 100644 index 0000000..4ca3bb6 --- /dev/null +++ b/node_modules/@parcel/watcher/src/PromiseRunner.hh @@ -0,0 +1,101 @@ +#ifndef PROMISE_RUNNER_H +#define PROMISE_RUNNER_H + +#include +#include "wasm/include.h" +#include + +using namespace Napi; + +class PromiseRunner { +public: + const Env env; + Promise::Deferred deferred; + + PromiseRunner(Env env) : env(env), deferred(Promise::Deferred::New(env)) { + napi_status status = napi_create_async_work(env, nullptr, env.Undefined(), + onExecute, onWorkComplete, this, &work); + if (status != napi_ok) { + work = nullptr; + const napi_extended_error_info *error_info = 0; + napi_get_last_error_info(env, &error_info); + if (error_info->error_message) { + Error::New(env, error_info->error_message).ThrowAsJavaScriptException(); + } else { + Error::New(env).ThrowAsJavaScriptException(); + } + } + } + + virtual ~PromiseRunner() {} + + Value queue() { + if (work) { + napi_status status = napi_queue_async_work(env, work); + if (status != napi_ok) { + onError(Error::New(env)); + } + } + + return deferred.Promise(); + } + +private: + napi_async_work work; + std::string error; + + static void onExecute(napi_env env, void *this_pointer) { + PromiseRunner* self = (PromiseRunner*) this_pointer; + try { + self->execute(); + } catch (std::exception &err) { + self->error = err.what(); + } + } + + static void onWorkComplete(napi_env env, napi_status status, void *this_pointer) { + PromiseRunner* self = (PromiseRunner*) this_pointer; + if (status != napi_cancelled) { + HandleScope scope(self->env); + if (status == napi_ok) { + status = napi_delete_async_work(self->env, self->work); + if (status == napi_ok) { + if (self->error.size() == 0) { + self->onOK(); + } else { + self->onError(Error::New(self->env, self->error)); + } + delete self; + return; + } + } + } + + // fallthrough for error handling + const napi_extended_error_info *error_info = 0; + napi_get_last_error_info(env, &error_info); + if (error_info->error_message){ + self->onError(Error::New(env, error_info->error_message)); + } else { + self->onError(Error::New(env)); + } + delete self; + } + + virtual void execute() {} + virtual Value getResult() { + return env.Null(); + } + + void onOK() { + HandleScope scope(env); + Value result = getResult(); + deferred.Resolve(result); + } + + void onError(const Error &e) { + deferred.Reject(e.Value()); + } +}; + +#endif diff --git a/node_modules/@parcel/watcher/src/Signal.hh b/node_modules/@parcel/watcher/src/Signal.hh new file mode 100644 index 0000000..e577319 --- /dev/null +++ b/node_modules/@parcel/watcher/src/Signal.hh @@ -0,0 +1,46 @@ +#ifndef SIGNAL_H +#define SIGNAL_H + +#include +#include + +class Signal { +public: + Signal() : mFlag(false), mWaiting(false) {} + void wait() { + std::unique_lock lock(mMutex); + while (!mFlag) { + mWaiting = true; + mCond.wait(lock); + } + } + + std::cv_status waitFor(std::chrono::milliseconds ms) { + std::unique_lock lock(mMutex); + return mCond.wait_for(lock, ms); + } + + void notify() { + std::unique_lock lock(mMutex); + mFlag = true; + mCond.notify_all(); + } + + void reset() { + std::unique_lock lock(mMutex); + mFlag = false; + mWaiting = false; + } + + bool isWaiting() { + return mWaiting; + } + +private: + bool mFlag; + bool mWaiting; + std::mutex mMutex; + std::condition_variable mCond; +}; + +#endif diff --git a/node_modules/@parcel/watcher/src/Watcher.cc b/node_modules/@parcel/watcher/src/Watcher.cc new file mode 100644 index 0000000..e9d7676 --- /dev/null +++ b/node_modules/@parcel/watcher/src/Watcher.cc @@ -0,0 +1,237 @@ +#include "Watcher.hh" +#include + +using namespace Napi; + +struct WatcherHash { + std::size_t operator() (WatcherRef const &k) const { + return std::hash()(k->mDir); + } +}; + +struct WatcherCompare { + size_t operator() (WatcherRef const &a, WatcherRef const &b) const { + return *a == *b; + } +}; + +static std::unordered_set sharedWatchers; + +WatcherRef Watcher::getShared(std::string dir, std::unordered_set ignorePaths, std::unordered_set ignoreGlobs) { + WatcherRef watcher = std::make_shared(dir, ignorePaths, ignoreGlobs); + auto found = sharedWatchers.find(watcher); + if (found != sharedWatchers.end()) { + return *found; + } + + sharedWatchers.insert(watcher); + return watcher; +} + +void removeShared(Watcher *watcher) { + for (auto it = sharedWatchers.begin(); it != sharedWatchers.end(); it++) { + if (it->get() == watcher) { + sharedWatchers.erase(it); + break; + } + } + + // Free up memory. + if (sharedWatchers.size() == 0) { + sharedWatchers.rehash(0); + } +} + +Watcher::Watcher(std::string dir, std::unordered_set ignorePaths, std::unordered_set ignoreGlobs) + : mDir(dir), + mIgnorePaths(ignorePaths), + mIgnoreGlobs(ignoreGlobs) { + mDebounce = Debounce::getShared(); + mDebounce->add(this, [this] () { + triggerCallbacks(); + }); + } + +Watcher::~Watcher() { + mDebounce->remove(this); +} + +void Watcher::wait() { + std::unique_lock lk(mMutex); + mCond.wait(lk); +} + +void Watcher::notify() { + std::unique_lock lk(mMutex); + mCond.notify_all(); + + if (mCallbacks.size() > 0 && mEvents.size() > 0) { + // We must release our lock before calling into the debouncer + // to avoid a deadlock: the debouncer thread itself will require + // our lock from its thread when calling into `triggerCallbacks` + // while holding its own debouncer lock. + lk.unlock(); + mDebounce->trigger(); + } +} + +struct CallbackData { + std::string error; + std::vector events; + CallbackData(std::string error, std::vector events) : error(error), events(events) {} +}; + +Value callbackEventsToJS(const Env &env, std::vector &events) { + EscapableHandleScope scope(env); + Array arr = Array::New(env, events.size()); + size_t currentEventIndex = 0; + for (auto eventIterator = events.begin(); eventIterator != events.end(); eventIterator++) { + arr.Set(currentEventIndex++, eventIterator->toJS(env)); + } + return scope.Escape(arr); +} + +void callJSFunction(Napi::Env env, Function jsCallback, CallbackData *data) { + HandleScope scope(env); + auto err = data->error.size() > 0 ? Error::New(env, data->error).Value() : env.Null(); + auto events = callbackEventsToJS(env, data->events); + jsCallback.Call({err, events}); + delete data; + + // Throw errors from the callback as fatal exceptions + // If we don't handle these node segfaults... + if (env.IsExceptionPending()) { + Napi::Error err = env.GetAndClearPendingException(); + napi_fatal_exception(env, err.Value()); + } +} + +void Watcher::notifyError(std::exception &err) { + std::unique_lock lk(mMutex); + for (auto it = mCallbacks.begin(); it != mCallbacks.end(); it++) { + CallbackData *data = new CallbackData(err.what(), {}); + it->tsfn.BlockingCall(data, callJSFunction); + } + + clearCallbacks(); +} + +// This function is called from the debounce thread. +void Watcher::triggerCallbacks() { + std::unique_lock lk(mMutex); + if (mCallbacks.size() > 0 && (mEvents.size() > 0 || mEvents.hasError())) { + auto error = mEvents.getError(); + auto events = mEvents.getEvents(); + mEvents.clear(); + + for (auto it = mCallbacks.begin(); it != mCallbacks.end(); it++) { + it->tsfn.BlockingCall(new CallbackData(error, events), callJSFunction); + } + } +} + +// This should be called from the JavaScript thread. +bool Watcher::watch(Function callback) { + std::unique_lock lk(mMutex); + + auto it = findCallback(callback); + if (it != mCallbacks.end()) { + return false; + } + + auto tsfn = ThreadSafeFunction::New( + callback.Env(), + callback, + "Watcher callback", + 0, // Unlimited queue + 1 // Initial thread count + ); + + mCallbacks.push_back(Callback { + tsfn, + Napi::Persistent(callback), + std::this_thread::get_id() + }); + + return true; +} + +// This should be called from the JavaScript thread. +std::vector::iterator Watcher::findCallback(Function callback) { + for (auto it = mCallbacks.begin(); it != mCallbacks.end(); it++) { + // Only consider callbacks created by the same thread, or V8 will panic. + if (it->threadId == std::this_thread::get_id() && it->ref.Value() == callback) { + return it; + } + } + + return mCallbacks.end(); +} + +// This should be called from the JavaScript thread. +bool Watcher::unwatch(Function callback) { + std::unique_lock lk(mMutex); + + bool removed = false; + auto it = findCallback(callback); + if (it != mCallbacks.end()) { + it->tsfn.Release(); + it->ref.Unref(); + mCallbacks.erase(it); + removed = true; + } + + if (removed && mCallbacks.size() == 0) { + unref(); + return true; + } + + return false; +} + +void Watcher::unref() { + if (mCallbacks.size() == 0) { + removeShared(this); + } +} + +void Watcher::destroy() { + std::unique_lock lk(mMutex); + clearCallbacks(); +} + +// Private because it doesn't lock. +void Watcher::clearCallbacks() { + for (auto it = mCallbacks.begin(); it != mCallbacks.end(); it++) { + it->tsfn.Release(); + it->ref.Unref(); + } + + mCallbacks.clear(); + unref(); +} + +bool Watcher::isIgnored(std::string path) { + for (auto it = mIgnorePaths.begin(); it != mIgnorePaths.end(); it++) { + auto dir = *it + DIR_SEP; + if (*it == path || path.compare(0, dir.size(), dir) == 0) { + return true; + } + } + + auto basePath = mDir + DIR_SEP; + + if (path.rfind(basePath, 0) != 0) { + return false; + } + + auto relativePath = path.substr(basePath.size()); + + for (auto it = mIgnoreGlobs.begin(); it != mIgnoreGlobs.end(); it++) { + if (it->isIgnored(relativePath)) { + return true; + } + } + + return false; +} diff --git a/node_modules/@parcel/watcher/src/Watcher.hh b/node_modules/@parcel/watcher/src/Watcher.hh new file mode 100644 index 0000000..f89e9f5 --- /dev/null +++ b/node_modules/@parcel/watcher/src/Watcher.hh @@ -0,0 +1,73 @@ +#ifndef WATCHER_H +#define WATCHER_H + +#include +#include +#include +#include +#include "Glob.hh" +#include "Event.hh" +#include "Debounce.hh" +#include "DirTree.hh" +#include "Signal.hh" + +using namespace Napi; + +struct Watcher; +using WatcherRef = std::shared_ptr; + +struct Callback { + Napi::ThreadSafeFunction tsfn; + Napi::FunctionReference ref; + std::thread::id threadId; +}; + +class WatcherState { +public: + virtual ~WatcherState() = default; +}; + +struct Watcher { + std::string mDir; + std::unordered_set mIgnorePaths; + std::unordered_set mIgnoreGlobs; + EventList mEvents; + std::shared_ptr state; + + Watcher(std::string dir, std::unordered_set ignorePaths, std::unordered_set ignoreGlobs); + ~Watcher(); + + bool operator==(const Watcher &other) const { + return mDir == other.mDir && mIgnorePaths == other.mIgnorePaths && mIgnoreGlobs == other.mIgnoreGlobs; + } + + void wait(); + void notify(); + void notifyError(std::exception &err); + bool watch(Function callback); + bool unwatch(Function callback); + void unref(); + bool isIgnored(std::string path); + void destroy(); + + static WatcherRef getShared(std::string dir, std::unordered_set ignorePaths, std::unordered_set ignoreGlobs); + +private: + std::mutex mMutex; + std::condition_variable mCond; + std::vector mCallbacks; + std::shared_ptr mDebounce; + + std::vector::iterator findCallback(Function callback); + void clearCallbacks(); + void triggerCallbacks(); +}; + +class WatcherError : public std::runtime_error { +public: + WatcherRef mWatcher; + WatcherError(std::string msg, WatcherRef watcher) : std::runtime_error(msg), mWatcher(watcher) {} + WatcherError(const char *msg, WatcherRef watcher) : std::runtime_error(msg), mWatcher(watcher) {} +}; + +#endif diff --git a/node_modules/@parcel/watcher/src/binding.cc b/node_modules/@parcel/watcher/src/binding.cc new file mode 100644 index 0000000..e1506bc --- /dev/null +++ b/node_modules/@parcel/watcher/src/binding.cc @@ -0,0 +1,268 @@ +#include +#include +#include "wasm/include.h" +#include +#include "Glob.hh" +#include "Event.hh" +#include "Backend.hh" +#include "Watcher.hh" +#include "PromiseRunner.hh" + +using namespace Napi; + +std::unordered_set getIgnorePaths(Env env, Value opts) { + std::unordered_set result; + + if (opts.IsObject()) { + Value v = opts.As().Get(String::New(env, "ignorePaths")); + if (v.IsArray()) { + Array items = v.As(); + for (size_t i = 0; i < items.Length(); i++) { + Value item = items.Get(Number::New(env, i)); + if (item.IsString()) { + result.insert(std::string(item.As().Utf8Value().c_str())); + } + } + } + } + + return result; +} + +std::unordered_set getIgnoreGlobs(Env env, Value opts) { + std::unordered_set result; + + if (opts.IsObject()) { + Value v = opts.As().Get(String::New(env, "ignoreGlobs")); + if (v.IsArray()) { + Array items = v.As(); + for (size_t i = 0; i < items.Length(); i++) { + Value item = items.Get(Number::New(env, i)); + if (item.IsString()) { + auto key = item.As().Utf8Value(); + try { + result.emplace(key); + } catch (const std::regex_error& e) { + Error::New(env, e.what()).ThrowAsJavaScriptException(); + } + } + } + } + } + + return result; +} + +std::shared_ptr getBackend(Env env, Value opts) { + Value b = opts.As().Get(String::New(env, "backend")); + std::string backendName; + if (b.IsString()) { + backendName = std::string(b.As().Utf8Value().c_str()); + } + + return Backend::getShared(backendName); +} + +class WriteSnapshotRunner : public PromiseRunner { +public: + WriteSnapshotRunner(Env env, Value dir, Value snap, Value opts) + : PromiseRunner(env), + snapshotPath(std::string(snap.As().Utf8Value().c_str())) { + watcher = Watcher::getShared( + std::string(dir.As().Utf8Value().c_str()), + getIgnorePaths(env, opts), + getIgnoreGlobs(env, opts) + ); + + backend = getBackend(env, opts); + } + + ~WriteSnapshotRunner() { + watcher->unref(); + backend->unref(); + } +private: + std::shared_ptr backend; + WatcherRef watcher; + std::string snapshotPath; + + void execute() override { + backend->writeSnapshot(watcher, &snapshotPath); + } +}; + +class GetEventsSinceRunner : public PromiseRunner { +public: + GetEventsSinceRunner(Env env, Value dir, Value snap, Value opts) + : PromiseRunner(env), + snapshotPath(std::string(snap.As().Utf8Value().c_str())) { + watcher = std::make_shared( + std::string(dir.As().Utf8Value().c_str()), + getIgnorePaths(env, opts), + getIgnoreGlobs(env, opts) + ); + + backend = getBackend(env, opts); + } + + ~GetEventsSinceRunner() { + watcher->unref(); + backend->unref(); + } +private: + std::shared_ptr backend; + WatcherRef watcher; + std::string snapshotPath; + + void execute() override { + backend->getEventsSince(watcher, &snapshotPath); + if (watcher->mEvents.hasError()) { + throw std::runtime_error(watcher->mEvents.getError()); + } + } + + Value getResult() override { + std::vector events = watcher->mEvents.getEvents(); + Array eventsArray = Array::New(env, events.size()); + size_t i = 0; + for (auto it = events.begin(); it != events.end(); it++) { + eventsArray.Set(i++, it->toJS(env)); + } + return eventsArray; + } +}; + +template +Value queueSnapshotWork(const CallbackInfo& info) { + Env env = info.Env(); + if (info.Length() < 1 || !info[0].IsString()) { + TypeError::New(env, "Expected a string").ThrowAsJavaScriptException(); + return env.Null(); + } + + if (info.Length() < 2 || !info[1].IsString()) { + TypeError::New(env, "Expected a string").ThrowAsJavaScriptException(); + return env.Null(); + } + + if (info.Length() >= 3 && !info[2].IsObject()) { + TypeError::New(env, "Expected an object").ThrowAsJavaScriptException(); + return env.Null(); + } + + Runner *runner = new Runner(info.Env(), info[0], info[1], info[2]); + return runner->queue(); +} + +Value writeSnapshot(const CallbackInfo& info) { + return queueSnapshotWork(info); +} + +Value getEventsSince(const CallbackInfo& info) { + return queueSnapshotWork(info); +} + +class SubscribeRunner : public PromiseRunner { +public: + SubscribeRunner(Env env, Value dir, Value fn, Value opts) : PromiseRunner(env) { + watcher = Watcher::getShared( + std::string(dir.As().Utf8Value().c_str()), + getIgnorePaths(env, opts), + getIgnoreGlobs(env, opts) + ); + + backend = getBackend(env, opts); + watcher->watch(fn.As()); + } + +private: + WatcherRef watcher; + std::shared_ptr backend; + FunctionReference callback; + + void execute() override { + try { + backend->watch(watcher); + } catch (std::exception &err) { + watcher->destroy(); + throw; + } + } +}; + +class UnsubscribeRunner : public PromiseRunner { +public: + UnsubscribeRunner(Env env, Value dir, Value fn, Value opts) : PromiseRunner(env) { + watcher = Watcher::getShared( + std::string(dir.As().Utf8Value().c_str()), + getIgnorePaths(env, opts), + getIgnoreGlobs(env, opts) + ); + + backend = getBackend(env, opts); + shouldUnwatch = watcher->unwatch(fn.As()); + } + +private: + WatcherRef watcher; + std::shared_ptr backend; + bool shouldUnwatch; + + void execute() override { + if (shouldUnwatch) { + backend->unwatch(watcher); + } + } +}; + +template +Value queueSubscriptionWork(const CallbackInfo& info) { + Env env = info.Env(); + if (info.Length() < 1 || !info[0].IsString()) { + TypeError::New(env, "Expected a string").ThrowAsJavaScriptException(); + return env.Null(); + } + + if (info.Length() < 2 || !info[1].IsFunction()) { + TypeError::New(env, "Expected a function").ThrowAsJavaScriptException(); + return env.Null(); + } + + if (info.Length() >= 3 && !info[2].IsObject()) { + TypeError::New(env, "Expected an object").ThrowAsJavaScriptException(); + return env.Null(); + } + + Runner *runner = new Runner(info.Env(), info[0], info[1], info[2]); + return runner->queue(); +} + +Value subscribe(const CallbackInfo& info) { + return queueSubscriptionWork(info); +} + +Value unsubscribe(const CallbackInfo& info) { + return queueSubscriptionWork(info); +} + +Object Init(Env env, Object exports) { + exports.Set( + String::New(env, "writeSnapshot"), + Function::New(env, writeSnapshot) + ); + exports.Set( + String::New(env, "getEventsSince"), + Function::New(env, getEventsSince) + ); + exports.Set( + String::New(env, "subscribe"), + Function::New(env, subscribe) + ); + exports.Set( + String::New(env, "unsubscribe"), + Function::New(env, unsubscribe) + ); + return exports; +} + +NODE_API_MODULE(watcher, Init) diff --git a/node_modules/@parcel/watcher/src/kqueue/KqueueBackend.cc b/node_modules/@parcel/watcher/src/kqueue/KqueueBackend.cc new file mode 100644 index 0000000..2991c32 --- /dev/null +++ b/node_modules/@parcel/watcher/src/kqueue/KqueueBackend.cc @@ -0,0 +1,306 @@ +#include +#include +#include +#include +#include +#include +#include +#include "KqueueBackend.hh" + +#if __APPLE__ +#define st_mtim st_mtimespec +#endif + +#if !defined(O_EVTONLY) +#define O_EVTONLY O_RDONLY +#endif + +#define CONVERT_TIME(ts) ((uint64_t)ts.tv_sec * 1000000000 + ts.tv_nsec) + +void KqueueBackend::start() { + if ((mKqueue = kqueue()) < 0) { + throw std::runtime_error(std::string("Unable to open kqueue: ") + strerror(errno)); + } + + // Create a pipe that we will write to when we want to end the thread. + int err = pipe(mPipe); + if (err == -1) { + throw std::runtime_error(std::string("Unable to open pipe: ") + strerror(errno)); + } + + // Subscribe kqueue to this pipe. + struct kevent ev; + EV_SET( + &ev, + mPipe[0], + EVFILT_READ, + EV_ADD | EV_CLEAR, + 0, + 0, + 0 + ); + + if (kevent(mKqueue, &ev, 1, NULL, 0, 0)) { + close(mPipe[0]); + close(mPipe[1]); + throw std::runtime_error(std::string("Unable to watch pipe: ") + strerror(errno)); + } + + notifyStarted(); + + struct kevent events[128]; + + while (true) { + int event_count = kevent(mKqueue, NULL, 0, events, 128, 0); + if (event_count < 0 || events[0].flags == EV_ERROR) { + throw std::runtime_error(std::string("kevent error: ") + strerror(errno)); + } + + // Track all of the watchers that are touched so we can notify them at the end of the events. + std::unordered_set watchers; + + for (int i = 0; i < event_count; i++) { + int flags = events[i].fflags; + int fd = events[i].ident; + if (fd == mPipe[0]) { + // pipe was written to. break out of the loop. + goto done; + } + + auto it = mFdToEntry.find(fd); + if (it == mFdToEntry.end()) { + // If fd wasn't in our map, we may have already stopped watching it. Ignore the event. + continue; + } + + DirEntry *entry = it->second; + + if (flags & NOTE_WRITE && entry && entry->isDir) { + // If a write occurred on a directory, we have to diff the contents of that + // directory to determine what file was added/deleted. + compareDir(fd, entry->path, watchers); + } else { + std::vector subs = findSubscriptions(entry->path); + for (auto it = subs.begin(); it != subs.end(); it++) { + KqueueSubscription *sub = *it; + watchers.insert(sub->watcher); + if (flags & (NOTE_DELETE | NOTE_RENAME | NOTE_REVOKE)) { + sub->watcher->mEvents.remove(sub->path); + sub->tree->remove(sub->path); + mFdToEntry.erase((int)(size_t)entry->state); + mSubscriptions.erase(sub->path); + } else if (flags & (NOTE_WRITE | NOTE_ATTRIB | NOTE_EXTEND)) { + struct stat st; + lstat(sub->path.c_str(), &st); + if (entry->mtime != CONVERT_TIME(st.st_mtim)) { + entry->mtime = CONVERT_TIME(st.st_mtim); + sub->watcher->mEvents.update(sub->path); + } + } + } + } + } + + for (auto it = watchers.begin(); it != watchers.end(); it++) { + (*it)->notify(); + } + } + +done: + close(mPipe[0]); + close(mPipe[1]); + mEndedSignal.notify(); +} + +KqueueBackend::~KqueueBackend() { + write(mPipe[1], "X", 1); + mEndedSignal.wait(); +} + +void KqueueBackend::subscribe(WatcherRef watcher) { + // Build a full directory tree recursively, and watch each directory. + std::shared_ptr tree = getTree(watcher); + + for (auto it = tree->entries.begin(); it != tree->entries.end(); it++) { + bool success = watchDir(watcher, it->second.path, tree); + if (!success) { + throw WatcherError(std::string("error watching " + watcher->mDir + ": " + strerror(errno)), watcher); + } + } +} + +bool KqueueBackend::watchDir(WatcherRef watcher, std::string path, std::shared_ptr tree) { + if (watcher->isIgnored(path)) { + return false; + } + + DirEntry *entry = tree->find(path); + if (!entry) { + return false; + } + + KqueueSubscription sub = { + .watcher = watcher, + .path = path, + .tree = tree + }; + + if (!entry->state) { + int fd = open(path.c_str(), O_EVTONLY); + if (fd <= 0) { + return false; + } + + struct kevent event; + EV_SET( + &event, + fd, + EVFILT_VNODE, + EV_ADD | EV_CLEAR | EV_ENABLE, + NOTE_DELETE | NOTE_WRITE | NOTE_EXTEND | NOTE_ATTRIB | NOTE_RENAME | NOTE_REVOKE, + 0, + 0 + ); + + if (kevent(mKqueue, &event, 1, NULL, 0, 0)) { + close(fd); + return false; + } + + entry->state = (void *)(size_t)fd; + mFdToEntry.emplace(fd, entry); + } + + sub.fd = (int)(size_t)entry->state; + mSubscriptions.emplace(path, sub); + return true; +} + +std::vector KqueueBackend::findSubscriptions(std::string &path) { + // Find the subscriptions affected by this path. + // Copy pointers to them into a vector so that modifying mSubscriptions doesn't invalidate the iterator. + auto range = mSubscriptions.equal_range(path); + std::vector subs; + for (auto it = range.first; it != range.second; it++) { + subs.push_back(&it->second); + } + + return subs; +} + +bool KqueueBackend::compareDir(int fd, std::string &path, std::unordered_set &watchers) { + // macOS doesn't support fdclosedir, so we have to duplicate the file descriptor + // to ensure the closedir doesn't also stop watching. + #if __APPLE__ + fd = dup(fd); + #endif + + DIR *dir = fdopendir(fd); + if (dir == NULL) { + return false; + } + + // fdopendir doesn't rewind to the beginning. + rewinddir(dir); + + std::vector subs = findSubscriptions(path); + std::string dirStart = path + DIR_SEP; + + std::unordered_set> trees; + for (auto it = subs.begin(); it != subs.end(); it++) { + trees.emplace((*it)->tree); + } + + std::unordered_set entries; + struct dirent *entry; + while ((entry = readdir(dir))) { + if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) { + continue; + } + + std::string fullpath = dirStart + entry->d_name; + entries.emplace(fullpath); + + for (auto it = trees.begin(); it != trees.end(); it++) { + std::shared_ptr tree = *it; + if (!tree->find(fullpath)) { + struct stat st; + fstatat(fd, entry->d_name, &st, AT_SYMLINK_NOFOLLOW); + tree->add(fullpath, CONVERT_TIME(st.st_mtim), S_ISDIR(st.st_mode)); + + // Notify all watchers with the same tree. + for (auto i = subs.begin(); i != subs.end(); i++) { + KqueueSubscription *sub = *i; + if (sub->tree == tree) { + if (sub->watcher->isIgnored(fullpath)) { + continue; + } + + sub->watcher->mEvents.create(fullpath); + watchers.emplace(sub->watcher); + + bool success = watchDir(sub->watcher, fullpath, sub->tree); + if (!success) { + sub->tree->remove(fullpath); + return false; + } + } + } + } + } + } + + for (auto it = trees.begin(); it != trees.end(); it++) { + std::shared_ptr tree = *it; + for (auto entry = tree->entries.begin(); entry != tree->entries.end();) { + + if ( + entry->first.rfind(dirStart, 0) == 0 && + entry->first.find(DIR_SEP, dirStart.length()) == std::string::npos && + entries.count(entry->first) == 0 + ) { + // Notify all watchers with the same tree. + for (auto i = subs.begin(); i != subs.end(); i++) { + if ((*i)->tree == tree) { + KqueueSubscription *sub = *i; + if (!sub->watcher->isIgnored(entry->first)) { + sub->watcher->mEvents.remove(entry->first); + watchers.emplace(sub->watcher); + } + } + } + + mFdToEntry.erase((int)(size_t)entry->second.state); + mSubscriptions.erase(entry->first); + entry = tree->entries.erase(entry); + } else { + entry++; + } + } + } + + #if __APPLE__ + closedir(dir); + #else + fdclosedir(dir); + #endif + + return true; +} + +void KqueueBackend::unsubscribe(WatcherRef watcher) { + // Find any subscriptions pointing to this watcher, and remove them. + for (auto it = mSubscriptions.begin(); it != mSubscriptions.end();) { + if (it->second.watcher.get() == watcher.get()) { + if (mSubscriptions.count(it->first) == 1) { + // Closing the file descriptor automatically unwatches it in the kqueue. + close(it->second.fd); + mFdToEntry.erase(it->second.fd); + } + + it = mSubscriptions.erase(it); + } else { + it++; + } + } +} diff --git a/node_modules/@parcel/watcher/src/kqueue/KqueueBackend.hh b/node_modules/@parcel/watcher/src/kqueue/KqueueBackend.hh new file mode 100644 index 0000000..3c6a9cd --- /dev/null +++ b/node_modules/@parcel/watcher/src/kqueue/KqueueBackend.hh @@ -0,0 +1,35 @@ +#ifndef KQUEUE_H +#define KQUEUE_H + +#include +#include +#include "../shared/BruteForceBackend.hh" +#include "../DirTree.hh" +#include "../Signal.hh" + +struct KqueueSubscription { + WatcherRef watcher; + std::string path; + std::shared_ptr tree; + int fd; +}; + +class KqueueBackend : public BruteForceBackend { +public: + void start() override; + ~KqueueBackend(); + void subscribe(WatcherRef watcher) override; + void unsubscribe(WatcherRef watcher) override; +private: + int mKqueue; + int mPipe[2]; + std::unordered_multimap mSubscriptions; + std::unordered_map mFdToEntry; + Signal mEndedSignal; + + bool watchDir(WatcherRef watcher, std::string path, std::shared_ptr tree); + bool compareDir(int fd, std::string &dir, std::unordered_set &watchers); + std::vector findSubscriptions(std::string &path); +}; + +#endif diff --git a/node_modules/@parcel/watcher/src/linux/InotifyBackend.cc b/node_modules/@parcel/watcher/src/linux/InotifyBackend.cc new file mode 100644 index 0000000..ec92691 --- /dev/null +++ b/node_modules/@parcel/watcher/src/linux/InotifyBackend.cc @@ -0,0 +1,232 @@ +#include +#include +#include +#include +#include +#include "InotifyBackend.hh" + +#define INOTIFY_MASK \ + IN_ATTRIB | IN_CREATE | IN_DELETE | \ + IN_DELETE_SELF | IN_MODIFY | IN_MOVE_SELF | IN_MOVED_FROM | \ + IN_MOVED_TO | IN_DONT_FOLLOW | IN_ONLYDIR | IN_EXCL_UNLINK +#define BUFFER_SIZE 8192 +#define CONVERT_TIME(ts) ((uint64_t)ts.tv_sec * 1000000000 + ts.tv_nsec) + +void InotifyBackend::start() { + // Create a pipe that we will write to when we want to end the thread. + int err = pipe2(mPipe, O_CLOEXEC | O_NONBLOCK); + if (err == -1) { + throw std::runtime_error(std::string("Unable to open pipe: ") + strerror(errno)); + } + + // Init inotify file descriptor. + mInotify = inotify_init1(IN_NONBLOCK | IN_CLOEXEC); + if (mInotify == -1) { + throw std::runtime_error(std::string("Unable to initialize inotify: ") + strerror(errno)); + } + + pollfd pollfds[2]; + pollfds[0].fd = mPipe[0]; + pollfds[0].events = POLLIN; + pollfds[0].revents = 0; + pollfds[1].fd = mInotify; + pollfds[1].events = POLLIN; + pollfds[1].revents = 0; + + notifyStarted(); + + // Loop until we get an event from the pipe. + while (true) { + int result = poll(pollfds, 2, 500); + if (result < 0) { + throw std::runtime_error(std::string("Unable to poll: ") + strerror(errno)); + } + + if (pollfds[0].revents) { + break; + } + + if (pollfds[1].revents) { + handleEvents(); + } + } + + close(mPipe[0]); + close(mPipe[1]); + close(mInotify); + + mEndedSignal.notify(); +} + +InotifyBackend::~InotifyBackend() { + write(mPipe[1], "X", 1); + mEndedSignal.wait(); +} + +// This function is called by Backend::watch which takes a lock on mMutex +void InotifyBackend::subscribe(WatcherRef watcher) { + // Build a full directory tree recursively, and watch each directory. + std::shared_ptr tree = getTree(watcher); + + for (auto it = tree->entries.begin(); it != tree->entries.end(); it++) { + if (it->second.isDir) { + bool success = watchDir(watcher, it->second.path, tree); + if (!success) { + throw WatcherError(std::string("inotify_add_watch on '") + it->second.path + std::string("' failed: ") + strerror(errno), watcher); + } + } + } +} + +bool InotifyBackend::watchDir(WatcherRef watcher, std::string path, std::shared_ptr tree) { + int wd = inotify_add_watch(mInotify, path.c_str(), INOTIFY_MASK); + if (wd == -1) { + return false; + } + + std::shared_ptr sub = std::make_shared(); + sub->tree = tree; + sub->path = path; + sub->watcher = watcher; + mSubscriptions.emplace(wd, sub); + + return true; +} + +void InotifyBackend::handleEvents() { + char buf[BUFFER_SIZE] __attribute__ ((aligned(__alignof__(struct inotify_event))));; + struct inotify_event *event; + + // Track all of the watchers that are touched so we can notify them at the end of the events. + std::unordered_set watchers; + + while (true) { + int n = read(mInotify, &buf, BUFFER_SIZE); + if (n < 0) { + if (errno == EAGAIN || errno == EWOULDBLOCK) { + break; + } + + throw std::runtime_error(std::string("Error reading from inotify: ") + strerror(errno)); + } + + if (n == 0) { + break; + } + + for (char *ptr = buf; ptr < buf + n; ptr += sizeof(*event) + event->len) { + event = (struct inotify_event *)ptr; + + if ((event->mask & IN_Q_OVERFLOW) == IN_Q_OVERFLOW) { + // overflow + continue; + } + + handleEvent(event, watchers); + } + } + + for (auto it = watchers.begin(); it != watchers.end(); it++) { + (*it)->notify(); + } +} + +void InotifyBackend::handleEvent(struct inotify_event *event, std::unordered_set &watchers) { + std::unique_lock lock(mMutex); + + // Find the subscriptions for this watch descriptor + auto range = mSubscriptions.equal_range(event->wd); + std::unordered_set> set; + for (auto it = range.first; it != range.second; it++) { + set.insert(it->second); + } + + for (auto it = set.begin(); it != set.end(); it++) { + if (handleSubscription(event, *it)) { + watchers.insert((*it)->watcher); + } + } +} + +bool InotifyBackend::handleSubscription(struct inotify_event *event, std::shared_ptr sub) { + // Build full path and check if its in our ignore list. + std::shared_ptr watcher = sub->watcher; + std::string path = std::string(sub->path); + bool isDir = event->mask & IN_ISDIR; + + if (event->len > 0) { + path += "/" + std::string(event->name); + } + + if (watcher->isIgnored(path)) { + return false; + } + + // If this is a create, check if it's a directory and start watching if it is. + // In any case, keep the directory tree up to date. + if (event->mask & (IN_CREATE | IN_MOVED_TO)) { + watcher->mEvents.create(path); + + struct stat st; + // Use lstat to avoid resolving symbolic links that we cannot watch anyway + // https://github.com/parcel-bundler/watcher/issues/76 + lstat(path.c_str(), &st); + DirEntry *entry = sub->tree->add(path, CONVERT_TIME(st.st_mtim), S_ISDIR(st.st_mode)); + + if (entry->isDir) { + bool success = watchDir(watcher, path, sub->tree); + if (!success) { + sub->tree->remove(path); + return false; + } + } + } else if (event->mask & (IN_MODIFY | IN_ATTRIB)) { + watcher->mEvents.update(path); + + struct stat st; + stat(path.c_str(), &st); + sub->tree->update(path, CONVERT_TIME(st.st_mtim)); + } else if (event->mask & (IN_DELETE | IN_DELETE_SELF | IN_MOVED_FROM | IN_MOVE_SELF)) { + bool isSelfEvent = (event->mask & (IN_DELETE_SELF | IN_MOVE_SELF)); + // Ignore delete/move self events unless this is the recursive watch root + if (isSelfEvent && path != watcher->mDir) { + return false; + } + + // If the entry being deleted/moved is a directory, remove it from the list of subscriptions + // XXX: self events don't have the IN_ISDIR mask + if (isSelfEvent || isDir) { + for (auto it = mSubscriptions.begin(); it != mSubscriptions.end();) { + if (it->second->path == path) { + it = mSubscriptions.erase(it); + } else { + ++it; + } + } + } + + watcher->mEvents.remove(path); + sub->tree->remove(path); + } + + return true; +} + +// This function is called by Backend::unwatch which takes a lock on mMutex +void InotifyBackend::unsubscribe(WatcherRef watcher) { + // Find any subscriptions pointing to this watcher, and remove them. + for (auto it = mSubscriptions.begin(); it != mSubscriptions.end();) { + if (it->second->watcher.get() == watcher.get()) { + if (mSubscriptions.count(it->first) == 1) { + int err = inotify_rm_watch(mInotify, it->first); + if (err == -1) { + throw WatcherError(std::string("Unable to remove watcher: ") + strerror(errno), watcher); + } + } + + it = mSubscriptions.erase(it); + } else { + it++; + } + } +} diff --git a/node_modules/@parcel/watcher/src/linux/InotifyBackend.hh b/node_modules/@parcel/watcher/src/linux/InotifyBackend.hh new file mode 100644 index 0000000..f34cd1f --- /dev/null +++ b/node_modules/@parcel/watcher/src/linux/InotifyBackend.hh @@ -0,0 +1,34 @@ +#ifndef INOTIFY_H +#define INOTIFY_H + +#include +#include +#include "../shared/BruteForceBackend.hh" +#include "../DirTree.hh" +#include "../Signal.hh" + +struct InotifySubscription { + std::shared_ptr tree; + std::string path; + WatcherRef watcher; +}; + +class InotifyBackend : public BruteForceBackend { +public: + void start() override; + ~InotifyBackend(); + void subscribe(WatcherRef watcher) override; + void unsubscribe(WatcherRef watcher) override; +private: + int mPipe[2]; + int mInotify; + std::unordered_multimap> mSubscriptions; + Signal mEndedSignal; + + bool watchDir(WatcherRef watcher, std::string path, std::shared_ptr tree); + void handleEvents(); + void handleEvent(struct inotify_event *event, std::unordered_set &watchers); + bool handleSubscription(struct inotify_event *event, std::shared_ptr sub); +}; + +#endif diff --git a/node_modules/@parcel/watcher/src/macos/FSEventsBackend.cc b/node_modules/@parcel/watcher/src/macos/FSEventsBackend.cc new file mode 100644 index 0000000..cfda962 --- /dev/null +++ b/node_modules/@parcel/watcher/src/macos/FSEventsBackend.cc @@ -0,0 +1,338 @@ +#include +#include +#include +#include +#include +#include "../Event.hh" +#include "../Backend.hh" +#include "./FSEventsBackend.hh" +#include "../Watcher.hh" + +#define CONVERT_TIME(ts) ((uint64_t)ts.tv_sec * 1000000000 + ts.tv_nsec) +#define IGNORED_FLAGS (kFSEventStreamEventFlagItemIsHardlink | kFSEventStreamEventFlagItemIsLastHardlink | kFSEventStreamEventFlagItemIsSymlink | kFSEventStreamEventFlagItemIsDir | kFSEventStreamEventFlagItemIsFile) + +void stopStream(FSEventStreamRef stream, CFRunLoopRef runLoop) { + FSEventStreamStop(stream); + FSEventStreamUnscheduleFromRunLoop(stream, runLoop, kCFRunLoopDefaultMode); + FSEventStreamInvalidate(stream); + FSEventStreamRelease(stream); +} + +// macOS has a case insensitive file system by default. In order to detect +// file renames that only affect case, we need to get the canonical path +// and compare it with the input path to determine if a file was created or deleted. +bool pathExists(char *path) { + int fd = open(path, O_RDONLY | O_SYMLINK); + if (fd == -1) { + return false; + } + + char buf[PATH_MAX]; + if (fcntl(fd, F_GETPATH, buf) == -1) { + close(fd); + return false; + } + + bool res = strncmp(path, buf, PATH_MAX) == 0; + close(fd); + return res; +} + +class State: public WatcherState { +public: + FSEventStreamRef stream; + std::shared_ptr tree; + uint64_t since; +}; + +void FSEventsCallback( + ConstFSEventStreamRef streamRef, + void *clientCallBackInfo, + size_t numEvents, + void *eventPaths, + const FSEventStreamEventFlags eventFlags[], + const FSEventStreamEventId eventIds[] +) { + char **paths = (char **)eventPaths; + std::shared_ptr& watcher = *static_cast *>(clientCallBackInfo); + + EventList& list = watcher->mEvents; + if (watcher->state == nullptr) { + return; + } + + auto stateGuard = watcher->state; + auto* state = static_cast(stateGuard.get()); + uint64_t since = state->since; + bool deletedRoot = false; + + for (size_t i = 0; i < numEvents; ++i) { + bool isCreated = (eventFlags[i] & kFSEventStreamEventFlagItemCreated) == kFSEventStreamEventFlagItemCreated; + bool isRemoved = (eventFlags[i] & kFSEventStreamEventFlagItemRemoved) == kFSEventStreamEventFlagItemRemoved; + bool isModified = (eventFlags[i] & kFSEventStreamEventFlagItemModified) == kFSEventStreamEventFlagItemModified || + (eventFlags[i] & kFSEventStreamEventFlagItemInodeMetaMod) == kFSEventStreamEventFlagItemInodeMetaMod || + (eventFlags[i] & kFSEventStreamEventFlagItemFinderInfoMod) == kFSEventStreamEventFlagItemFinderInfoMod || + (eventFlags[i] & kFSEventStreamEventFlagItemChangeOwner) == kFSEventStreamEventFlagItemChangeOwner || + (eventFlags[i] & kFSEventStreamEventFlagItemXattrMod) == kFSEventStreamEventFlagItemXattrMod; + bool isRenamed = (eventFlags[i] & kFSEventStreamEventFlagItemRenamed) == kFSEventStreamEventFlagItemRenamed; + bool isDone = (eventFlags[i] & kFSEventStreamEventFlagHistoryDone) == kFSEventStreamEventFlagHistoryDone; + bool isDir = (eventFlags[i] & kFSEventStreamEventFlagItemIsDir) == kFSEventStreamEventFlagItemIsDir; + + + if (eventFlags[i] & kFSEventStreamEventFlagMustScanSubDirs) { + if (eventFlags[i] & kFSEventStreamEventFlagUserDropped) { + list.error("Events were dropped by the FSEvents client. File system must be re-scanned."); + } else if (eventFlags[i] & kFSEventStreamEventFlagKernelDropped) { + list.error("Events were dropped by the kernel. File system must be re-scanned."); + } else { + list.error("Too many events. File system must be re-scanned."); + } + } + + if (isDone) { + watcher->notify(); + break; + } + + auto ignoredFlags = IGNORED_FLAGS; + if (__builtin_available(macOS 10.13, *)) { + ignoredFlags |= kFSEventStreamEventFlagItemCloned; + } + + // If we don't care about any of the flags that are set, ignore this event. + if ((eventFlags[i] & ~ignoredFlags) == 0) { + continue; + } + + // FSEvents exclusion paths only apply to files, not directories. + if (watcher->isIgnored(paths[i])) { + continue; + } + + // Handle unambiguous events first + if (isCreated && !(isRemoved || isModified || isRenamed)) { + state->tree->add(paths[i], 0, isDir); + list.create(paths[i]); + } else if (isRemoved && !(isCreated || isModified || isRenamed)) { + state->tree->remove(paths[i]); + list.remove(paths[i]); + if (paths[i] == watcher->mDir) { + deletedRoot = true; + } + } else if (isModified && !(isCreated || isRemoved || isRenamed)) { + struct stat file; + if (stat(paths[i], &file)) { + continue; + } + + // Ignore if mtime is the same as the last event. + // This prevents duplicate events from being emitted. + // If tv_nsec is zero, the file system probably only has second-level + // granularity so allow the even through in that case. + uint64_t mtime = CONVERT_TIME(file.st_mtimespec); + DirEntry *entry = state->tree->find(paths[i]); + if (entry && mtime == entry->mtime && file.st_mtimespec.tv_nsec != 0) { + continue; + } + + if (entry) { + // Update mtime. + entry->mtime = mtime; + } else { + // Add to tree if this path has not been discovered yet. + state->tree->add(paths[i], mtime, S_ISDIR(file.st_mode)); + } + + list.update(paths[i]); + } else { + // If multiple flags were set, then we need to call `stat` to determine if the file really exists. + // This helps disambiguate creates, updates, and deletes. + struct stat file; + if (stat(paths[i], &file) || !pathExists(paths[i])) { + // File does not exist, so we have to assume it was removed. This is not exact since the + // flags set by fsevents get coalesced together (e.g. created & deleted), so there is no way to + // know whether the create and delete both happened since our snapshot (in which case + // we'd rather ignore this event completely). This will result in some extra delete events + // being emitted for files we don't know about, but that is the best we can do. + state->tree->remove(paths[i]); + list.remove(paths[i]); + if (paths[i] == watcher->mDir) { + deletedRoot = true; + } + continue; + } + + // If the file was modified, and existed before, then this is an update, otherwise a create. + uint64_t ctime = CONVERT_TIME(file.st_birthtimespec); + uint64_t mtime = CONVERT_TIME(file.st_mtimespec); + DirEntry *entry = !since ? state->tree->find(paths[i]) : NULL; + if (entry && entry->mtime == mtime && file.st_mtimespec.tv_nsec != 0) { + continue; + } + + // Some mounted file systems report a creation time of 0/unix epoch which we special case. + if (isModified && (entry || (ctime <= since && ctime != 0))) { + state->tree->update(paths[i], mtime); + list.update(paths[i]); + } else { + state->tree->add(paths[i], mtime, S_ISDIR(file.st_mode)); + list.create(paths[i]); + } + } + } + + if (!since) { + watcher->notify(); + } + + // Stop watching if the root directory was deleted. + if (deletedRoot) { + stopStream((FSEventStreamRef)streamRef, CFRunLoopGetCurrent()); + watcher->state = nullptr; + } +} + +void checkWatcher(WatcherRef watcher) { + struct stat file; + if (stat(watcher->mDir.c_str(), &file)) { + throw WatcherError(strerror(errno), watcher); + } + + if (!S_ISDIR(file.st_mode)) { + throw WatcherError(strerror(ENOTDIR), watcher); + } +} + +void FSEventsBackend::startStream(WatcherRef watcher, FSEventStreamEventId id) { + checkWatcher(watcher); + + CFAbsoluteTime latency = 0.001; + CFStringRef fileWatchPath = CFStringCreateWithCString( + NULL, + watcher->mDir.c_str(), + kCFStringEncodingUTF8 + ); + + CFArrayRef pathsToWatch = CFArrayCreate( + NULL, + (const void **)&fileWatchPath, + 1, + NULL + ); + + // Make a watcher reference we can pass into the callback. This ensures bumped ref-count. + std::shared_ptr* callbackWatcher = new std::shared_ptr (watcher); + FSEventStreamContext callbackInfo {0, static_cast (callbackWatcher), nullptr, nullptr, nullptr}; + FSEventStreamRef stream = FSEventStreamCreate( + NULL, + &FSEventsCallback, + &callbackInfo, + pathsToWatch, + id, + latency, + kFSEventStreamCreateFlagFileEvents + ); + + CFMutableArrayRef exclusions = CFArrayCreateMutable(NULL, watcher->mIgnorePaths.size(), NULL); + for (auto it = watcher->mIgnorePaths.begin(); it != watcher->mIgnorePaths.end(); it++) { + CFStringRef path = CFStringCreateWithCString( + NULL, + it->c_str(), + kCFStringEncodingUTF8 + ); + + CFArrayAppendValue(exclusions, (const void *)path); + } + + FSEventStreamSetExclusionPaths(stream, exclusions); + + FSEventStreamScheduleWithRunLoop(stream, mRunLoop, kCFRunLoopDefaultMode); + bool started = FSEventStreamStart(stream); + + CFRelease(pathsToWatch); + CFRelease(fileWatchPath); + + if (!started) { + FSEventStreamRelease(stream); + throw WatcherError("Error starting FSEvents stream", watcher); + } + + auto stateGuard = watcher->state; + State* s = static_cast(stateGuard.get()); + s->tree = std::make_shared(watcher->mDir); + s->stream = stream; +} + +void FSEventsBackend::start() { + mRunLoop = CFRunLoopGetCurrent(); + CFRetain(mRunLoop); + + // Unlock once run loop has started. + CFRunLoopPerformBlock(mRunLoop, kCFRunLoopDefaultMode, ^ { + notifyStarted(); + }); + + CFRunLoopWakeUp(mRunLoop); + CFRunLoopRun(); +} + +FSEventsBackend::~FSEventsBackend() { + std::unique_lock lock(mMutex); + CFRunLoopStop(mRunLoop); + CFRelease(mRunLoop); +} + +void FSEventsBackend::writeSnapshot(WatcherRef watcher, std::string *snapshotPath) { + std::unique_lock lock(mMutex); + checkWatcher(watcher); + + FSEventStreamEventId id = FSEventsGetCurrentEventId(); + std::ofstream ofs(*snapshotPath); + ofs << id; + ofs << "\n"; + + struct timespec now; + clock_gettime(CLOCK_REALTIME, &now); + ofs << CONVERT_TIME(now); +} + +void FSEventsBackend::getEventsSince(WatcherRef watcher, std::string *snapshotPath) { + std::unique_lock lock(mMutex); + std::ifstream ifs(*snapshotPath); + if (ifs.fail()) { + return; + } + + FSEventStreamEventId id; + uint64_t since; + ifs >> id; + ifs >> since; + + auto s = std::make_shared(); + s->since = since; + watcher->state = s; + + startStream(watcher, id); + watcher->wait(); + stopStream(s->stream, mRunLoop); + + watcher->state = nullptr; +} + +// This function is called by Backend::watch which takes a lock on mMutex +void FSEventsBackend::subscribe(WatcherRef watcher) { + auto s = std::make_shared(); + s->since = 0; + watcher->state = s; + startStream(watcher, kFSEventStreamEventIdSinceNow); +} + +// This function is called by Backend::unwatch which takes a lock on mMutex +void FSEventsBackend::unsubscribe(WatcherRef watcher) { + auto stateGuard = watcher->state; + State* s = static_cast(stateGuard.get()); + if (s != nullptr) { + stopStream(s->stream, mRunLoop); + watcher->state = nullptr; + } +} diff --git a/node_modules/@parcel/watcher/src/macos/FSEventsBackend.hh b/node_modules/@parcel/watcher/src/macos/FSEventsBackend.hh new file mode 100644 index 0000000..57ded66 --- /dev/null +++ b/node_modules/@parcel/watcher/src/macos/FSEventsBackend.hh @@ -0,0 +1,20 @@ +#ifndef FS_EVENTS_H +#define FS_EVENTS_H + +#include +#include "../Backend.hh" + +class FSEventsBackend : public Backend { +public: + void start() override; + ~FSEventsBackend(); + void writeSnapshot(WatcherRef watcher, std::string *snapshotPath) override; + void getEventsSince(WatcherRef watcher, std::string *snapshotPath) override; + void subscribe(WatcherRef watcher) override; + void unsubscribe(WatcherRef watcher) override; +private: + void startStream(WatcherRef watcher, FSEventStreamEventId id); + CFRunLoopRef mRunLoop; +}; + +#endif diff --git a/node_modules/@parcel/watcher/src/shared/BruteForceBackend.cc b/node_modules/@parcel/watcher/src/shared/BruteForceBackend.cc new file mode 100644 index 0000000..0e9b84f --- /dev/null +++ b/node_modules/@parcel/watcher/src/shared/BruteForceBackend.cc @@ -0,0 +1,41 @@ +#include +#include "../DirTree.hh" +#include "../Event.hh" +#include "./BruteForceBackend.hh" + +std::shared_ptr BruteForceBackend::getTree(WatcherRef watcher, bool shouldRead) { + auto tree = DirTree::getCached(watcher->mDir); + + // If the tree is not complete, read it if needed. + if (!tree->isComplete && shouldRead) { + readTree(watcher, tree); + tree->isComplete = true; + } + + return tree; +} + +void BruteForceBackend::writeSnapshot(WatcherRef watcher, std::string *snapshotPath) { + std::unique_lock lock(mMutex); + auto tree = getTree(watcher); + FILE *f = fopen(snapshotPath->c_str(), "w"); + if (!f) { + throw std::runtime_error(std::string("Unable to open snapshot file: ") + strerror(errno)); + } + + tree->write(f); + fclose(f); +} + +void BruteForceBackend::getEventsSince(WatcherRef watcher, std::string *snapshotPath) { + std::unique_lock lock(mMutex); + FILE *f = fopen(snapshotPath->c_str(), "r"); + if (!f) { + throw std::runtime_error(std::string("Unable to open snapshot file: ") + strerror(errno)); + } + + DirTree snapshot{watcher->mDir, f}; + auto now = getTree(watcher); + now->getChanges(&snapshot, watcher->mEvents); + fclose(f); +} diff --git a/node_modules/@parcel/watcher/src/shared/BruteForceBackend.hh b/node_modules/@parcel/watcher/src/shared/BruteForceBackend.hh new file mode 100644 index 0000000..de7a73d --- /dev/null +++ b/node_modules/@parcel/watcher/src/shared/BruteForceBackend.hh @@ -0,0 +1,25 @@ +#ifndef BRUTE_FORCE_H +#define BRUTE_FORCE_H + +#include "../Backend.hh" +#include "../DirTree.hh" +#include "../Watcher.hh" + +class BruteForceBackend : public Backend { +public: + void writeSnapshot(WatcherRef watcher, std::string *snapshotPath) override; + void getEventsSince(WatcherRef watcher, std::string *snapshotPath) override; + void subscribe(WatcherRef watcher) override { + throw "Brute force backend doesn't support subscriptions."; + } + + void unsubscribe(WatcherRef watcher) override { + throw "Brute force backend doesn't support subscriptions."; + } + + std::shared_ptr getTree(WatcherRef watcher, bool shouldRead = true); +private: + void readTree(WatcherRef watcher, std::shared_ptr tree); +}; + +#endif diff --git a/node_modules/@parcel/watcher/src/unix/fts.cc b/node_modules/@parcel/watcher/src/unix/fts.cc new file mode 100644 index 0000000..d50c3e4 --- /dev/null +++ b/node_modules/@parcel/watcher/src/unix/fts.cc @@ -0,0 +1,50 @@ +#include + +// weird error on linux +#ifdef __THROW +#undef __THROW +#endif +#define __THROW + +#include +#include +#include "../DirTree.hh" +#include "../shared/BruteForceBackend.hh" + +#define CONVERT_TIME(ts) ((uint64_t)ts.tv_sec * 1000000000 + ts.tv_nsec) +#if __APPLE__ +#define st_mtim st_mtimespec +#endif + +void BruteForceBackend::readTree(WatcherRef watcher, std::shared_ptr tree) { + char *paths[2] {(char *)watcher->mDir.c_str(), NULL}; + FTS *fts = fts_open(paths, FTS_NOCHDIR | FTS_PHYSICAL, NULL); + if (!fts) { + throw WatcherError(strerror(errno), watcher); + } + + FTSENT *node; + bool isRoot = true; + + while ((node = fts_read(fts)) != NULL) { + if (node->fts_errno) { + fts_close(fts); + throw WatcherError(strerror(node->fts_errno), watcher); + } + + if (isRoot && !(node->fts_info & FTS_D)) { + fts_close(fts); + throw WatcherError(strerror(ENOTDIR), watcher); + } + + if (watcher->isIgnored(std::string(node->fts_path))) { + fts_set(fts, node, FTS_SKIP); + continue; + } + + tree->add(node->fts_path, CONVERT_TIME(node->fts_statp->st_mtim), (node->fts_info & FTS_D) == FTS_D); + isRoot = false; + } + + fts_close(fts); +} diff --git a/node_modules/@parcel/watcher/src/unix/legacy.cc b/node_modules/@parcel/watcher/src/unix/legacy.cc new file mode 100644 index 0000000..60490c6 --- /dev/null +++ b/node_modules/@parcel/watcher/src/unix/legacy.cc @@ -0,0 +1,77 @@ +#include + +// weird error on linux +#ifdef __THROW +#undef __THROW +#endif +#define __THROW + +#ifdef _LIBC +# include +#else +# include +#endif +#include +#include +#include + +#include "../DirTree.hh" +#include "../shared/BruteForceBackend.hh" + +#define CONVERT_TIME(ts) ((uint64_t)ts.tv_sec * 1000000000 + ts.tv_nsec) +#if __APPLE__ +#define st_mtim st_mtimespec +#endif +#define ISDOT(a) (a[0] == '.' && (!a[1] || (a[1] == '.' && !a[2]))) + +void iterateDir(WatcherRef watcher, const std::shared_ptr tree, const char *relative, int parent_fd, const std::string &dirname) { + int open_flags = (O_RDONLY | O_CLOEXEC | O_DIRECTORY | O_NOCTTY | O_NONBLOCK | O_NOFOLLOW); + int new_fd = openat(parent_fd, relative, open_flags); + if (new_fd == -1) { + if (errno == EACCES) { + return; // ignore insufficient permissions + } + + throw WatcherError(strerror(errno), watcher); + } + + struct stat rootAttributes; + fstatat(new_fd, ".", &rootAttributes, AT_SYMLINK_NOFOLLOW); + tree->add(dirname, CONVERT_TIME(rootAttributes.st_mtim), true); + + if (DIR *dir = fdopendir(new_fd)) { + while (struct dirent *ent = (errno = 0, readdir(dir))) { + if (ISDOT(ent->d_name)) continue; + + std::string fullPath = dirname + "/" + ent->d_name; + + if (!watcher->isIgnored(fullPath)) { + struct stat attrib; + fstatat(new_fd, ent->d_name, &attrib, AT_SYMLINK_NOFOLLOW); + bool isDir = ent->d_type == DT_DIR; + + if (isDir) { + iterateDir(watcher, tree, ent->d_name, new_fd, fullPath); + } else { + tree->add(fullPath, CONVERT_TIME(attrib.st_mtim), isDir); + } + } + } + + closedir(dir); + } else { + close(new_fd); + } + + if (errno) { + throw WatcherError(strerror(errno), watcher); + } +} + +void BruteForceBackend::readTree(WatcherRef watcher, std::shared_ptr tree) { + int fd = open(watcher->mDir.c_str(), O_RDONLY); + if (fd) { + iterateDir(watcher, tree, ".", fd, watcher->mDir); + close(fd); + } +} diff --git a/node_modules/@parcel/watcher/src/wasm/WasmBackend.cc b/node_modules/@parcel/watcher/src/wasm/WasmBackend.cc new file mode 100644 index 0000000..9514109 --- /dev/null +++ b/node_modules/@parcel/watcher/src/wasm/WasmBackend.cc @@ -0,0 +1,132 @@ +#include +#include "WasmBackend.hh" + +#define CONVERT_TIME(ts) ((uint64_t)ts.tv_sec * 1000000000 + ts.tv_nsec) + +void WasmBackend::start() { + notifyStarted(); +} + +void WasmBackend::subscribe(WatcherRef watcher) { + // Build a full directory tree recursively, and watch each directory. + std::shared_ptr tree = getTree(watcher); + + for (auto it = tree->entries.begin(); it != tree->entries.end(); it++) { + if (it->second.isDir) { + watchDir(watcher, it->second.path, tree); + } + } +} + +void WasmBackend::watchDir(WatcherRef watcher, std::string path, std::shared_ptr tree) { + int wd = wasm_backend_add_watch(path.c_str(), (void *)this); + std::shared_ptr sub = std::make_shared(); + sub->tree = tree; + sub->path = path; + sub->watcher = watcher; + mSubscriptions.emplace(wd, sub); +} + +extern "C" void wasm_backend_event_handler(void *backend, int wd, int type, char *filename) { + WasmBackend *b = (WasmBackend *)(backend); + b->handleEvent(wd, type, filename); +} + +void WasmBackend::handleEvent(int wd, int type, char *filename) { + // Find the subscriptions for this watch descriptor + auto range = mSubscriptions.equal_range(wd); + std::unordered_set> set; + for (auto it = range.first; it != range.second; it++) { + set.insert(it->second); + } + + for (auto it = set.begin(); it != set.end(); it++) { + if (handleSubscription(type, filename, *it)) { + (*it)->watcher->notify(); + } + } +} + +bool WasmBackend::handleSubscription(int type, char *filename, std::shared_ptr sub) { + // Build full path and check if its in our ignore list. + WatcherRef watcher = sub->watcher; + std::string path = std::string(sub->path); + + if (filename[0] != '\0') { + path += "/" + std::string(filename); + } + + if (watcher->isIgnored(path)) { + return false; + } + + if (type == 1) { + struct stat st; + stat(path.c_str(), &st); + sub->tree->update(path, CONVERT_TIME(st.st_mtim)); + watcher->mEvents.update(path); + } else if (type == 2) { + // Determine if this is a create or delete depending on if the file exists or not. + struct stat st; + if (lstat(path.c_str(), &st)) { + // If the entry being deleted/moved is a directory, remove it from the list of subscriptions + DirEntry *entry = sub->tree->find(path); + if (!entry) { + return false; + } + + if (entry->isDir) { + std::string pathStart = path + DIR_SEP; + for (auto it = mSubscriptions.begin(); it != mSubscriptions.end();) { + if (it->second->path == path || it->second->path.rfind(pathStart, 0) == 0) { + wasm_backend_remove_watch(it->first); + it = mSubscriptions.erase(it); + } else { + ++it; + } + } + + // Remove all sub-entries + for (auto it = sub->tree->entries.begin(); it != sub->tree->entries.end();) { + if (it->first.rfind(pathStart, 0) == 0) { + watcher->mEvents.remove(it->first); + it = sub->tree->entries.erase(it); + } else { + it++; + } + } + } + + watcher->mEvents.remove(path); + sub->tree->remove(path); + } else if (sub->tree->find(path)) { + sub->tree->update(path, CONVERT_TIME(st.st_mtim)); + watcher->mEvents.update(path); + } else { + watcher->mEvents.create(path); + + // If this is a create, check if it's a directory and start watching if it is. + DirEntry *entry = sub->tree->add(path, CONVERT_TIME(st.st_mtim), S_ISDIR(st.st_mode)); + if (entry->isDir) { + watchDir(watcher, path, sub->tree); + } + } + } + + return true; +} + +void WasmBackend::unsubscribe(WatcherRef watcher) { + // Find any subscriptions pointing to this watcher, and remove them. + for (auto it = mSubscriptions.begin(); it != mSubscriptions.end();) { + if (it->second->watcher.get() == watcher.get()) { + if (mSubscriptions.count(it->first) == 1) { + wasm_backend_remove_watch(it->first); + } + + it = mSubscriptions.erase(it); + } else { + it++; + } + } +} diff --git a/node_modules/@parcel/watcher/src/wasm/WasmBackend.hh b/node_modules/@parcel/watcher/src/wasm/WasmBackend.hh new file mode 100644 index 0000000..9facac8 --- /dev/null +++ b/node_modules/@parcel/watcher/src/wasm/WasmBackend.hh @@ -0,0 +1,34 @@ +#ifndef WASM_H +#define WASM_H + +#include +#include "../shared/BruteForceBackend.hh" +#include "../DirTree.hh" + +extern "C" { + int wasm_backend_add_watch(const char *filename, void *backend); + void wasm_backend_remove_watch(int wd); + void wasm_backend_event_handler(void *backend, int wd, int type, char *filename); +}; + +struct WasmSubscription { + std::shared_ptr tree; + std::string path; + WatcherRef watcher; +}; + +class WasmBackend : public BruteForceBackend { +public: + void start() override; + void subscribe(WatcherRef watcher) override; + void unsubscribe(WatcherRef watcher) override; + void handleEvent(int wd, int type, char *filename); +private: + int mWasm; + std::unordered_multimap> mSubscriptions; + + void watchDir(WatcherRef watcher, std::string path, std::shared_ptr tree); + bool handleSubscription(int type, char *filename, std::shared_ptr sub); +}; + +#endif diff --git a/node_modules/@parcel/watcher/src/wasm/include.h b/node_modules/@parcel/watcher/src/wasm/include.h new file mode 100644 index 0000000..60e4d65 --- /dev/null +++ b/node_modules/@parcel/watcher/src/wasm/include.h @@ -0,0 +1,74 @@ +/* +Copyright Node.js contributors. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. +*/ + +// Node does not include the headers for these functions when compiling for WASM, so add them here. +#ifdef __wasm32__ +extern "C" { +NAPI_EXTERN napi_status NAPI_CDECL +napi_create_threadsafe_function(napi_env env, + napi_value func, + napi_value async_resource, + napi_value async_resource_name, + size_t max_queue_size, + size_t initial_thread_count, + void* thread_finalize_data, + napi_finalize thread_finalize_cb, + void* context, + napi_threadsafe_function_call_js call_js_cb, + napi_threadsafe_function* result); + +NAPI_EXTERN napi_status NAPI_CDECL napi_get_threadsafe_function_context( + napi_threadsafe_function func, void** result); + +NAPI_EXTERN napi_status NAPI_CDECL +napi_call_threadsafe_function(napi_threadsafe_function func, + void* data, + napi_threadsafe_function_call_mode is_blocking); + +NAPI_EXTERN napi_status NAPI_CDECL +napi_acquire_threadsafe_function(napi_threadsafe_function func); + +NAPI_EXTERN napi_status NAPI_CDECL napi_release_threadsafe_function( + napi_threadsafe_function func, napi_threadsafe_function_release_mode mode); + +NAPI_EXTERN napi_status NAPI_CDECL +napi_unref_threadsafe_function(napi_env env, napi_threadsafe_function func); + +NAPI_EXTERN napi_status NAPI_CDECL +napi_ref_threadsafe_function(napi_env env, napi_threadsafe_function func); + +NAPI_EXTERN napi_status NAPI_CDECL +napi_create_async_work(napi_env env, + napi_value async_resource, + napi_value async_resource_name, + napi_async_execute_callback execute, + napi_async_complete_callback complete, + void* data, + napi_async_work* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_delete_async_work(napi_env env, + napi_async_work work); +NAPI_EXTERN napi_status NAPI_CDECL napi_queue_async_work(napi_env env, + napi_async_work work); +NAPI_EXTERN napi_status NAPI_CDECL napi_cancel_async_work(napi_env env, + napi_async_work work); +} +#endif diff --git a/node_modules/@parcel/watcher/src/watchman/BSER.cc b/node_modules/@parcel/watcher/src/watchman/BSER.cc new file mode 100644 index 0000000..1fbcd45 --- /dev/null +++ b/node_modules/@parcel/watcher/src/watchman/BSER.cc @@ -0,0 +1,302 @@ +#include +#include "./BSER.hh" + +BSERType decodeType(std::istream &iss) { + int8_t type; + iss.read(reinterpret_cast(&type), sizeof(type)); + return (BSERType) type; +} + +void expectType(std::istream &iss, BSERType expected) { + BSERType got = decodeType(iss); + if (got != expected) { + throw std::runtime_error("Unexpected BSER type"); + } +} + +void encodeType(std::ostream &oss, BSERType type) { + int8_t t = (int8_t)type; + oss.write(reinterpret_cast(&t), sizeof(t)); +} + +template +class Value : public BSERValue { +public: + T value; + Value(T val) { + value = val; + } + + Value() {} +}; + +class BSERInteger : public Value { +public: + BSERInteger(int64_t value) : Value(value) {} + BSERInteger(std::istream &iss) { + int8_t int8; + int16_t int16; + int32_t int32; + int64_t int64; + + BSERType type = decodeType(iss); + + switch (type) { + case BSER_INT8: + iss.read(reinterpret_cast(&int8), sizeof(int8)); + value = int8; + break; + case BSER_INT16: + iss.read(reinterpret_cast(&int16), sizeof(int16)); + value = int16; + break; + case BSER_INT32: + iss.read(reinterpret_cast(&int32), sizeof(int32)); + value = int32; + break; + case BSER_INT64: + iss.read(reinterpret_cast(&int64), sizeof(int64)); + value = int64; + break; + default: + throw std::runtime_error("Invalid BSER int type"); + } + } + + int64_t intValue() override { + return value; + } + + void encode(std::ostream &oss) override { + if (value <= INT8_MAX) { + encodeType(oss, BSER_INT8); + int8_t v = (int8_t)value; + oss.write(reinterpret_cast(&v), sizeof(v)); + } else if (value <= INT16_MAX) { + encodeType(oss, BSER_INT16); + int16_t v = (int16_t)value; + oss.write(reinterpret_cast(&v), sizeof(v)); + } else if (value <= INT32_MAX) { + encodeType(oss, BSER_INT32); + int32_t v = (int32_t)value; + oss.write(reinterpret_cast(&v), sizeof(v)); + } else { + encodeType(oss, BSER_INT64); + oss.write(reinterpret_cast(&value), sizeof(value)); + } + } +}; + +class BSERArray : public Value { +public: + BSERArray() : Value() {} + BSERArray(BSER::Array value) : Value(value) {} + BSERArray(std::istream &iss) { + expectType(iss, BSER_ARRAY); + int64_t len = BSERInteger(iss).intValue(); + for (int64_t i = 0; i < len; i++) { + value.push_back(BSER(iss)); + } + } + + BSER::Array arrayValue() override { + return value; + } + + void encode(std::ostream &oss) override { + encodeType(oss, BSER_ARRAY); + BSERInteger(value.size()).encode(oss); + for (auto it = value.begin(); it != value.end(); it++) { + it->encode(oss); + } + } +}; + +class BSERString : public Value { +public: + BSERString(std::string value) : Value(value) {} + BSERString(std::istream &iss) { + expectType(iss, BSER_STRING); + int64_t len = BSERInteger(iss).intValue(); + value.resize(len); + iss.read(&value[0], len); + } + + std::string stringValue() override { + return value; + } + + void encode(std::ostream &oss) override { + encodeType(oss, BSER_STRING); + BSERInteger(value.size()).encode(oss); + oss << value; + } +}; + +class BSERObject : public Value { +public: + BSERObject() : Value() {} + BSERObject(BSER::Object value) : Value(value) {} + BSERObject(std::istream &iss) { + expectType(iss, BSER_OBJECT); + int64_t len = BSERInteger(iss).intValue(); + for (int64_t i = 0; i < len; i++) { + auto key = BSERString(iss).stringValue(); + auto val = BSER(iss); + value.emplace(key, val); + } + } + + BSER::Object objectValue() override { + return value; + } + + void encode(std::ostream &oss) override { + encodeType(oss, BSER_OBJECT); + BSERInteger(value.size()).encode(oss); + for (auto it = value.begin(); it != value.end(); it++) { + BSERString(it->first).encode(oss); + it->second.encode(oss); + } + } +}; + +class BSERDouble : public Value { +public: + BSERDouble(double value) : Value(value) {} + BSERDouble(std::istream &iss) { + expectType(iss, BSER_REAL); + iss.read(reinterpret_cast(&value), sizeof(value)); + } + + double doubleValue() override { + return value; + } + + void encode(std::ostream &oss) override { + encodeType(oss, BSER_REAL); + oss.write(reinterpret_cast(&value), sizeof(value)); + } +}; + +class BSERBoolean : public Value { +public: + BSERBoolean(bool value) : Value(value) {} + bool boolValue() override { return value; } + void encode(std::ostream &oss) override { + int8_t t = value == true ? BSER_BOOL_TRUE : BSER_BOOL_FALSE; + oss.write(reinterpret_cast(&t), sizeof(t)); + } +}; + +class BSERNull : public Value { +public: + BSERNull() : Value(false) {} + void encode(std::ostream &oss) override { + encodeType(oss, BSER_NULL); + } +}; + +std::shared_ptr decodeTemplate(std::istream &iss) { + expectType(iss, BSER_TEMPLATE); + auto keys = BSERArray(iss).arrayValue(); + auto len = BSERInteger(iss).intValue(); + std::shared_ptr arr = std::make_shared(); + for (int64_t i = 0; i < len; i++) { + BSER::Object obj; + for (auto it = keys.begin(); it != keys.end(); it++) { + if (iss.peek() == 0x0c) { + iss.ignore(1); + continue; + } + + auto val = BSER(iss); + obj.emplace(it->stringValue(), val); + } + arr->value.push_back(obj); + } + return arr; +} + +BSER::BSER(std::istream &iss) { + BSERType type = decodeType(iss); + iss.unget(); + + switch (type) { + case BSER_ARRAY: + m_ptr = std::make_shared(iss); + break; + case BSER_OBJECT: + m_ptr = std::make_shared(iss); + break; + case BSER_STRING: + m_ptr = std::make_shared(iss); + break; + case BSER_INT8: + case BSER_INT16: + case BSER_INT32: + case BSER_INT64: + m_ptr = std::make_shared(iss); + break; + case BSER_REAL: + m_ptr = std::make_shared(iss); + break; + case BSER_BOOL_TRUE: + iss.ignore(1); + m_ptr = std::make_shared(true); + break; + case BSER_BOOL_FALSE: + iss.ignore(1); + m_ptr = std::make_shared(false); + break; + case BSER_NULL: + iss.ignore(1); + m_ptr = std::make_shared(); + break; + case BSER_TEMPLATE: + m_ptr = decodeTemplate(iss); + break; + default: + throw std::runtime_error("unknown BSER type"); + } +} + +BSER::BSER() : m_ptr(std::make_shared()) {} +BSER::BSER(BSER::Array value) : m_ptr(std::make_shared(value)) {} +BSER::BSER(BSER::Object value) : m_ptr(std::make_shared(value)) {} +BSER::BSER(const char *value) : m_ptr(std::make_shared(value)) {} +BSER::BSER(std::string value) : m_ptr(std::make_shared(value)) {} +BSER::BSER(int64_t value) : m_ptr(std::make_shared(value)) {} +BSER::BSER(double value) : m_ptr(std::make_shared(value)) {} +BSER::BSER(bool value) : m_ptr(std::make_shared(value)) {} + +BSER::Array BSER::arrayValue() { return m_ptr->arrayValue(); } +BSER::Object BSER::objectValue() { return m_ptr->objectValue(); } +std::string BSER::stringValue() { return m_ptr->stringValue(); } +int64_t BSER::intValue() { return m_ptr->intValue(); } +double BSER::doubleValue() { return m_ptr->doubleValue(); } +bool BSER::boolValue() { return m_ptr->boolValue(); } +void BSER::encode(std::ostream &oss) { + m_ptr->encode(oss); +} + +int64_t BSER::decodeLength(std::istream &iss) { + char pdu[2]; + if (!iss.read(pdu, 2) || pdu[0] != 0 || pdu[1] != 1) { + throw std::runtime_error("Invalid BSER"); + } + + return BSERInteger(iss).intValue(); +} + +std::string BSER::encode() { + std::ostringstream oss(std::ios_base::binary); + encode(oss); + + std::ostringstream res(std::ios_base::binary); + res.write("\x00\x01", 2); + + BSERInteger(oss.str().size()).encode(res); + res << oss.str(); + return res.str(); +} diff --git a/node_modules/@parcel/watcher/src/watchman/BSER.hh b/node_modules/@parcel/watcher/src/watchman/BSER.hh new file mode 100644 index 0000000..6bd2025 --- /dev/null +++ b/node_modules/@parcel/watcher/src/watchman/BSER.hh @@ -0,0 +1,69 @@ +#ifndef BSER_H +#define BSER_H + +#include +#include +#include +#include +#include + +enum BSERType { + BSER_ARRAY = 0x00, + BSER_OBJECT = 0x01, + BSER_STRING = 0x02, + BSER_INT8 = 0x03, + BSER_INT16 = 0x04, + BSER_INT32 = 0x05, + BSER_INT64 = 0x06, + BSER_REAL = 0x07, + BSER_BOOL_TRUE = 0x08, + BSER_BOOL_FALSE = 0x09, + BSER_NULL = 0x0a, + BSER_TEMPLATE = 0x0b +}; + +class BSERValue; + +class BSER { +public: + typedef std::vector Array; + typedef std::unordered_map Object; + + BSER(); + BSER(BSER::Array value); + BSER(BSER::Object value); + BSER(std::string value); + BSER(const char *value); + BSER(int64_t value); + BSER(double value); + BSER(bool value); + BSER(std::istream &iss); + + BSER::Array arrayValue(); + BSER::Object objectValue(); + std::string stringValue(); + int64_t intValue(); + double doubleValue(); + bool boolValue(); + void encode(std::ostream &oss); + + static int64_t decodeLength(std::istream &iss); + std::string encode(); +private: + std::shared_ptr m_ptr; +}; + +class BSERValue { +protected: + friend class BSER; + virtual BSER::Array arrayValue() { return BSER::Array(); } + virtual BSER::Object objectValue() { return BSER::Object(); } + virtual std::string stringValue() { return std::string(); } + virtual int64_t intValue() { return 0; } + virtual double doubleValue() { return 0; } + virtual bool boolValue() { return false; } + virtual void encode(std::ostream &oss) {} + virtual ~BSERValue() {} +}; + +#endif diff --git a/node_modules/@parcel/watcher/src/watchman/IPC.hh b/node_modules/@parcel/watcher/src/watchman/IPC.hh new file mode 100644 index 0000000..6e852c8 --- /dev/null +++ b/node_modules/@parcel/watcher/src/watchman/IPC.hh @@ -0,0 +1,175 @@ +#ifndef IPC_H +#define IPC_H + +#include +#include + +#ifdef _WIN32 +#include +#include +#else +#include +#include +#include +#endif + +class IPC { +public: + IPC(std::string path) { + mStopped = false; + #ifdef _WIN32 + while (true) { + mPipe = CreateFile( + path.data(), // pipe name + GENERIC_READ | GENERIC_WRITE, // read and write access + 0, // no sharing + NULL, // default security attributes + OPEN_EXISTING, // opens existing pipe + FILE_FLAG_OVERLAPPED, // attributes + NULL // no template file + ); + + if (mPipe != INVALID_HANDLE_VALUE) { + break; + } + + if (GetLastError() != ERROR_PIPE_BUSY) { + throw std::runtime_error("Could not open pipe"); + } + + // Wait for pipe to become available if it is busy + if (!WaitNamedPipe(path.data(), 30000)) { + throw std::runtime_error("Error waiting for pipe"); + } + } + + mReader = CreateEvent(NULL, true, false, NULL); + mWriter = CreateEvent(NULL, true, false, NULL); + #else + struct sockaddr_un addr; + memset(&addr, 0, sizeof(addr)); + addr.sun_family = AF_UNIX; + strncpy(addr.sun_path, path.c_str(), sizeof(addr.sun_path) - 1); + + mSock = socket(AF_UNIX, SOCK_STREAM, 0); + if (connect(mSock, (struct sockaddr *) &addr, sizeof(struct sockaddr_un))) { + throw std::runtime_error("Error connecting to socket"); + } + #endif + } + + ~IPC() { + mStopped = true; + #ifdef _WIN32 + CancelIo(mPipe); + CloseHandle(mPipe); + CloseHandle(mReader); + CloseHandle(mWriter); + #else + shutdown(mSock, SHUT_RDWR); + #endif + } + + void write(std::string buf) { + #ifdef _WIN32 + OVERLAPPED overlapped; + overlapped.hEvent = mWriter; + bool success = WriteFile( + mPipe, // pipe handle + buf.data(), // message + buf.size(), // message length + NULL, // bytes written + &overlapped // overlapped + ); + + if (mStopped) { + return; + } + + if (!success) { + if (GetLastError() != ERROR_IO_PENDING) { + throw std::runtime_error("Write error"); + } + } + + DWORD written; + success = GetOverlappedResult(mPipe, &overlapped, &written, true); + if (!success) { + throw std::runtime_error("GetOverlappedResult failed"); + } + + if (written != buf.size()) { + throw std::runtime_error("Wrong number of bytes written"); + } + #else + int r = 0; + for (unsigned int i = 0; i != buf.size(); i += r) { + r = ::write(mSock, &buf[i], buf.size() - i); + if (r == -1) { + if (errno == EAGAIN) { + r = 0; + } else if (mStopped) { + return; + } else { + throw std::runtime_error("Write error"); + } + } + } + #endif + } + + int read(char *buf, size_t len) { + #ifdef _WIN32 + OVERLAPPED overlapped; + overlapped.hEvent = mReader; + bool success = ReadFile( + mPipe, // pipe handle + buf, // buffer to receive reply + len, // size of buffer + NULL, // number of bytes read + &overlapped // overlapped + ); + + if (!success && !mStopped) { + if (GetLastError() != ERROR_IO_PENDING) { + throw std::runtime_error("Read error"); + } + } + + DWORD read = 0; + success = GetOverlappedResult(mPipe, &overlapped, &read, true); + if (!success && !mStopped) { + throw std::runtime_error("GetOverlappedResult failed"); + } + + return read; + #else + int r = ::read(mSock, buf, len); + if (r == 0 && !mStopped) { + throw std::runtime_error("Socket ended unexpectedly"); + } + + if (r < 0) { + if (mStopped) { + return 0; + } + + throw std::runtime_error(strerror(errno)); + } + + return r; + #endif + } + +private: + bool mStopped; + #ifdef _WIN32 + HANDLE mPipe; + HANDLE mReader; + HANDLE mWriter; + #else + int mSock; + #endif +}; + +#endif diff --git a/node_modules/@parcel/watcher/src/watchman/WatchmanBackend.cc b/node_modules/@parcel/watcher/src/watchman/WatchmanBackend.cc new file mode 100644 index 0000000..82a23f5 --- /dev/null +++ b/node_modules/@parcel/watcher/src/watchman/WatchmanBackend.cc @@ -0,0 +1,338 @@ +#include +#include +#include +#include +#include "../DirTree.hh" +#include "../Event.hh" +#include "./BSER.hh" +#include "./WatchmanBackend.hh" + +#ifdef _WIN32 +#include "../windows/win_utils.hh" +#define S_ISDIR(mode) ((mode & _S_IFDIR) == _S_IFDIR) +#define popen _popen +#define pclose _pclose +#else +#include +#define normalizePath(dir) dir +#endif + +template +BSER readBSER(T &&do_read) { + std::stringstream oss; + char buffer[256]; + int r; + int64_t len = -1; + do { + // Start by reading a minimal amount of data in order to decode the length. + // After that, attempt to read the remaining length, up to the buffer size. + r = do_read(buffer, len == -1 ? 20 : (len < 256 ? len : 256)); + oss << std::string(buffer, r); + + if (len == -1) { + uint64_t l = BSER::decodeLength(oss); + len = l + oss.tellg(); + } + + len -= r; + } while (len > 0); + + return BSER(oss); +} + +std::string getSockPath() { + auto var = getenv("WATCHMAN_SOCK"); + if (var && *var) { + return std::string(var); + } + + FILE *fp = popen("watchman --output-encoding=bser get-sockname", "r"); + if (fp == NULL || errno == ECHILD) { + throw std::runtime_error("Failed to execute watchman"); + } + + BSER b = readBSER([fp] (char *buf, size_t len) { + return fread(buf, sizeof(char), len, fp); + }); + + pclose(fp); + + auto objValue = b.objectValue(); + auto foundSockname = objValue.find("sockname"); + if (foundSockname == objValue.end()) { + throw std::runtime_error("sockname not found"); + } + return foundSockname->second.stringValue(); +} + +std::unique_ptr watchmanConnect() { + std::string path = getSockPath(); + return std::unique_ptr(new IPC(path)); +} + +BSER watchmanRead(IPC *ipc) { + return readBSER([ipc] (char *buf, size_t len) { + return ipc->read(buf, len); + }); +} + +BSER::Object WatchmanBackend::watchmanRequest(BSER b) { + std::string cmd = b.encode(); + mIPC->write(cmd); + mRequestSignal.notify(); + + mResponseSignal.wait(); + mResponseSignal.reset(); + + if (!mError.empty()) { + std::runtime_error err = std::runtime_error(mError); + mError = std::string(); + throw err; + } + + return mResponse; +} + +void WatchmanBackend::watchmanWatch(std::string dir) { + std::vector cmd; + cmd.push_back("watch"); + cmd.push_back(normalizePath(dir)); + watchmanRequest(cmd); +} + +bool WatchmanBackend::checkAvailable() { + try { + watchmanConnect(); + return true; + } catch (std::exception &err) { + return false; + } +} + +void handleFiles(WatcherRef watcher, BSER::Object obj) { + auto found = obj.find("files"); + if (found == obj.end()) { + throw WatcherError("Error reading changes from watchman", watcher); + } + + auto files = found->second.arrayValue(); + for (auto it = files.begin(); it != files.end(); it++) { + auto file = it->objectValue(); + auto name = file.find("name")->second.stringValue(); + #ifdef _WIN32 + std::replace(name.begin(), name.end(), '/', '\\'); + #endif + auto mode = file.find("mode")->second.intValue(); + auto isNew = file.find("new")->second.boolValue(); + auto exists = file.find("exists")->second.boolValue(); + auto path = watcher->mDir + DIR_SEP + name; + if (watcher->isIgnored(path)) { + continue; + } + + if (isNew && exists) { + watcher->mEvents.create(path); + } else if (exists && !S_ISDIR(mode)) { + watcher->mEvents.update(path); + } else if (!isNew && !exists) { + watcher->mEvents.remove(path); + } + } +} + +void WatchmanBackend::handleSubscription(BSER::Object obj) { + std::unique_lock lock(mMutex); + auto subscription = obj.find("subscription")->second.stringValue(); + auto it = mSubscriptions.find(subscription); + if (it == mSubscriptions.end()) { + return; + } + + auto watcher = it->second; + try { + handleFiles(watcher, obj); + watcher->notify(); + } catch (WatcherError &err) { + handleWatcherError(err); + } +} + +void WatchmanBackend::start() { + mIPC = watchmanConnect(); + notifyStarted(); + + while (true) { + // If there are no subscriptions we are reading, wait for a request. + if (mSubscriptions.size() == 0) { + mRequestSignal.wait(); + mRequestSignal.reset(); + } + + // Break out of loop if we are stopped. + if (mStopped) { + break; + } + + // Attempt to read from the socket. + // If there is an error and we are stopped, break. + BSER b; + try { + b = watchmanRead(&*mIPC); + } catch (std::exception &err) { + if (mStopped) { + break; + } else if (mResponseSignal.isWaiting()) { + mError = err.what(); + mResponseSignal.notify(); + } else { + // Throwing causes the backend to be destroyed, but we never reach the code below to notify the signal + mEndedSignal.notify(); + throw; + } + } + + auto obj = b.objectValue(); + auto error = obj.find("error"); + if (error != obj.end()) { + mError = error->second.stringValue(); + mResponseSignal.notify(); + continue; + } + + // If this message is for a subscription, handle it, otherwise notify the request. + auto subscription = obj.find("subscription"); + if (subscription != obj.end()) { + handleSubscription(obj); + } else { + mResponse = obj; + mResponseSignal.notify(); + } + } + + mEndedSignal.notify(); +} + +WatchmanBackend::~WatchmanBackend() { + // Mark the watcher as stopped, close the socket, and trigger the lock. + // This will cause the read loop to be broken and the thread to exit. + mStopped = true; + mIPC.reset(); + mRequestSignal.notify(); + + // If not ended yet, wait. + mEndedSignal.wait(); +} + +std::string WatchmanBackend::clock(WatcherRef watcher) { + BSER::Array cmd; + cmd.push_back("clock"); + cmd.push_back(normalizePath(watcher->mDir)); + + BSER::Object obj = watchmanRequest(cmd); + auto found = obj.find("clock"); + if (found == obj.end()) { + throw WatcherError("Error reading clock from watchman", watcher); + } + + return found->second.stringValue(); +} + +void WatchmanBackend::writeSnapshot(WatcherRef watcher, std::string *snapshotPath) { + std::unique_lock lock(mMutex); + watchmanWatch(watcher->mDir); + + std::ofstream ofs(*snapshotPath); + ofs << clock(watcher); +} + +void WatchmanBackend::getEventsSince(WatcherRef watcher, std::string *snapshotPath) { + std::unique_lock lock(mMutex); + std::ifstream ifs(*snapshotPath); + if (ifs.fail()) { + return; + } + + watchmanWatch(watcher->mDir); + + std::string clock; + ifs >> clock; + + BSER::Array cmd; + cmd.push_back("since"); + cmd.push_back(normalizePath(watcher->mDir)); + cmd.push_back(clock); + + BSER::Object obj = watchmanRequest(cmd); + handleFiles(watcher, obj); +} + +std::string getId(WatcherRef watcher) { + std::ostringstream id; + id << "parcel-"; + id << static_cast(watcher.get()); + return id.str(); +} + +// This function is called by Backend::watch which takes a lock on mMutex +void WatchmanBackend::subscribe(WatcherRef watcher) { + watchmanWatch(watcher->mDir); + + std::string id = getId(watcher); + BSER::Array cmd; + cmd.push_back("subscribe"); + cmd.push_back(normalizePath(watcher->mDir)); + cmd.push_back(id); + + BSER::Array fields; + fields.push_back("name"); + fields.push_back("mode"); + fields.push_back("exists"); + fields.push_back("new"); + + BSER::Object opts; + opts.emplace("fields", fields); + opts.emplace("since", clock(watcher)); + + if (watcher->mIgnorePaths.size() > 0) { + BSER::Array ignore; + BSER::Array anyOf; + anyOf.push_back("anyof"); + + for (auto it = watcher->mIgnorePaths.begin(); it != watcher->mIgnorePaths.end(); it++) { + std::string pathStart = watcher->mDir + DIR_SEP; + if (it->rfind(pathStart, 0) == 0) { + auto relative = it->substr(pathStart.size()); + BSER::Array dirname; + dirname.push_back("dirname"); + dirname.push_back(relative); + anyOf.push_back(dirname); + } + } + + ignore.push_back("not"); + ignore.push_back(anyOf); + + opts.emplace("expression", ignore); + } + + cmd.push_back(opts); + watchmanRequest(cmd); + + mSubscriptions.emplace(id, watcher); + mRequestSignal.notify(); +} + +// This function is called by Backend::unwatch which takes a lock on mMutex +void WatchmanBackend::unsubscribe(WatcherRef watcher) { + std::string id = getId(watcher); + auto erased = mSubscriptions.erase(id); + + if (erased) { + BSER::Array cmd; + cmd.push_back("unsubscribe"); + cmd.push_back(normalizePath(watcher->mDir)); + cmd.push_back(id); + + watchmanRequest(cmd); + } +} diff --git a/node_modules/@parcel/watcher/src/watchman/WatchmanBackend.hh b/node_modules/@parcel/watcher/src/watchman/WatchmanBackend.hh new file mode 100644 index 0000000..699cded --- /dev/null +++ b/node_modules/@parcel/watcher/src/watchman/WatchmanBackend.hh @@ -0,0 +1,35 @@ +#ifndef WATCHMAN_H +#define WATCHMAN_H + +#include "../Backend.hh" +#include "./BSER.hh" +#include "../Signal.hh" +#include "./IPC.hh" + +class WatchmanBackend : public Backend { +public: + static bool checkAvailable(); + void start() override; + WatchmanBackend() : mStopped(false) {}; + ~WatchmanBackend(); + void writeSnapshot(WatcherRef watcher, std::string *snapshotPath) override; + void getEventsSince(WatcherRef watcher, std::string *snapshotPath) override; + void subscribe(WatcherRef watcher) override; + void unsubscribe(WatcherRef watcher) override; +private: + std::unique_ptr mIPC; + Signal mRequestSignal; + Signal mResponseSignal; + BSER::Object mResponse; + std::string mError; + std::unordered_map mSubscriptions; + bool mStopped; + Signal mEndedSignal; + + std::string clock(WatcherRef watcher); + void watchmanWatch(std::string dir); + BSER::Object watchmanRequest(BSER cmd); + void handleSubscription(BSER::Object obj); +}; + +#endif diff --git a/node_modules/@parcel/watcher/src/windows/WindowsBackend.cc b/node_modules/@parcel/watcher/src/windows/WindowsBackend.cc new file mode 100644 index 0000000..eabce1e --- /dev/null +++ b/node_modules/@parcel/watcher/src/windows/WindowsBackend.cc @@ -0,0 +1,282 @@ +#include +#include +#include "../DirTree.hh" +#include "../shared/BruteForceBackend.hh" +#include "./WindowsBackend.hh" +#include "./win_utils.hh" + +#define DEFAULT_BUF_SIZE 1024 * 1024 +#define NETWORK_BUF_SIZE 64 * 1024 +#define CONVERT_TIME(ft) ULARGE_INTEGER{ft.dwLowDateTime, ft.dwHighDateTime}.QuadPart + +void BruteForceBackend::readTree(WatcherRef watcher, std::shared_ptr tree) { + std::stack directories; + + directories.push(watcher->mDir); + + while (!directories.empty()) { + HANDLE hFind = INVALID_HANDLE_VALUE; + + std::string path = directories.top(); + std::string spec = path + "\\*"; + directories.pop(); + + WIN32_FIND_DATA ffd; + hFind = FindFirstFile(spec.c_str(), &ffd); + + if (hFind == INVALID_HANDLE_VALUE) { + if (path == watcher->mDir) { + FindClose(hFind); + throw WatcherError("Error opening directory", watcher); + } + + tree->remove(path); + continue; + } + + do { + if (strcmp(ffd.cFileName, ".") != 0 && strcmp(ffd.cFileName, "..") != 0) { + std::string fullPath = path + "\\" + ffd.cFileName; + if (watcher->isIgnored(fullPath)) { + continue; + } + + tree->add(fullPath, CONVERT_TIME(ffd.ftLastWriteTime), ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY); + if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { + directories.push(fullPath); + } + } + } while (FindNextFile(hFind, &ffd) != 0); + + FindClose(hFind); + } +} + +void WindowsBackend::start() { + mRunning = true; + notifyStarted(); + + while (mRunning) { + SleepEx(INFINITE, true); + } +} + +WindowsBackend::~WindowsBackend() { + // Mark as stopped, and queue a noop function in the thread to break the loop + mRunning = false; + QueueUserAPC([](__in ULONG_PTR) {}, mThread.native_handle(), (ULONG_PTR)this); +} + +class Subscription: public WatcherState { +public: + Subscription(WindowsBackend *backend, WatcherRef watcher, std::shared_ptr tree) { + mRunning = true; + mBackend = backend; + mWatcher = watcher; + mTree = tree; + ZeroMemory(&mOverlapped, sizeof(OVERLAPPED)); + mOverlapped.hEvent = this; + mReadBuffer.resize(DEFAULT_BUF_SIZE); + mWriteBuffer.resize(DEFAULT_BUF_SIZE); + + mDirectoryHandle = CreateFileW( + utf8ToUtf16(watcher->mDir).data(), + FILE_LIST_DIRECTORY, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + NULL, + OPEN_EXISTING, + FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OVERLAPPED, + NULL + ); + + if (mDirectoryHandle == INVALID_HANDLE_VALUE) { + throw WatcherError("Invalid handle", mWatcher); + } + + // Ensure that the path is a directory + BY_HANDLE_FILE_INFORMATION info; + bool success = GetFileInformationByHandle( + mDirectoryHandle, + &info + ); + + if (!success) { + throw WatcherError("Could not get file information", mWatcher); + } + + if (!(info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { + throw WatcherError("Not a directory", mWatcher); + } + } + + virtual ~Subscription() { + stop(); + } + + void run() { + try { + poll(); + } catch (WatcherError &err) { + mBackend->handleWatcherError(err); + } + } + + void stop() { + if (mRunning) { + mRunning = false; + CancelIo(mDirectoryHandle); + CloseHandle(mDirectoryHandle); + } + } + + void poll() { + if (!mRunning) { + return; + } + + // Asynchronously wait for changes. + int success = ReadDirectoryChangesW( + mDirectoryHandle, + mWriteBuffer.data(), + static_cast(mWriteBuffer.size()), + TRUE, // recursive + FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_DIR_NAME | FILE_NOTIFY_CHANGE_ATTRIBUTES + | FILE_NOTIFY_CHANGE_SIZE | FILE_NOTIFY_CHANGE_LAST_WRITE, + NULL, + &mOverlapped, + [](DWORD errorCode, DWORD numBytes, LPOVERLAPPED overlapped) { + auto subscription = reinterpret_cast(overlapped->hEvent); + try { + subscription->processEvents(errorCode); + } catch (WatcherError &err) { + subscription->mBackend->handleWatcherError(err); + } + } + ); + + if (!success) { + throw WatcherError("Failed to read changes", mWatcher); + } + } + + void processEvents(DWORD errorCode) { + if (!mRunning) { + return; + } + + switch (errorCode) { + case ERROR_OPERATION_ABORTED: + return; + case ERROR_INVALID_PARAMETER: + // resize buffers to network size (64kb), and try again + mReadBuffer.resize(NETWORK_BUF_SIZE); + mWriteBuffer.resize(NETWORK_BUF_SIZE); + poll(); + return; + case ERROR_NOTIFY_ENUM_DIR: + throw WatcherError("Buffer overflow. Some events may have been lost.", mWatcher); + case ERROR_ACCESS_DENIED: { + // This can happen if the watched directory is deleted. Check if that is the case, + // and if so emit a delete event. Otherwise, fall through to default error case. + DWORD attrs = GetFileAttributesW(utf8ToUtf16(mWatcher->mDir).data()); + bool isDir = attrs != INVALID_FILE_ATTRIBUTES && (attrs & FILE_ATTRIBUTE_DIRECTORY); + if (!isDir) { + mWatcher->mEvents.remove(mWatcher->mDir); + mTree->remove(mWatcher->mDir); + mWatcher->notify(); + stop(); + return; + } + } + default: + if (errorCode != ERROR_SUCCESS) { + throw WatcherError("Unknown error", mWatcher); + } + } + + // Swap read and write buffers, and poll again + std::swap(mWriteBuffer, mReadBuffer); + poll(); + + // Read change events + BYTE *base = mReadBuffer.data(); + while (true) { + PFILE_NOTIFY_INFORMATION info = (PFILE_NOTIFY_INFORMATION)base; + processEvent(info); + + if (info->NextEntryOffset == 0) { + break; + } + + base += info->NextEntryOffset; + } + + mWatcher->notify(); + } + + void processEvent(PFILE_NOTIFY_INFORMATION info) { + std::string path = mWatcher->mDir + "\\" + utf16ToUtf8(info->FileName, info->FileNameLength / sizeof(WCHAR)); + if (mWatcher->isIgnored(path)) { + return; + } + + switch (info->Action) { + case FILE_ACTION_ADDED: + case FILE_ACTION_RENAMED_NEW_NAME: { + WIN32_FILE_ATTRIBUTE_DATA data; + if (GetFileAttributesExW(utf8ToUtf16(path).data(), GetFileExInfoStandard, &data)) { + mWatcher->mEvents.create(path); + mTree->add(path, CONVERT_TIME(data.ftLastWriteTime), data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY); + } + break; + } + case FILE_ACTION_MODIFIED: { + WIN32_FILE_ATTRIBUTE_DATA data; + if (GetFileAttributesExW(utf8ToUtf16(path).data(), GetFileExInfoStandard, &data)) { + mTree->update(path, CONVERT_TIME(data.ftLastWriteTime)); + if (!(data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { + mWatcher->mEvents.update(path); + } + } + break; + } + case FILE_ACTION_REMOVED: + case FILE_ACTION_RENAMED_OLD_NAME: + mWatcher->mEvents.remove(path); + mTree->remove(path); + break; + } + } + +private: + WindowsBackend *mBackend; + std::shared_ptr mWatcher; + std::shared_ptr mTree; + bool mRunning; + HANDLE mDirectoryHandle; + std::vector mReadBuffer; + std::vector mWriteBuffer; + OVERLAPPED mOverlapped; +}; + +// This function is called by Backend::watch which takes a lock on mMutex +void WindowsBackend::subscribe(WatcherRef watcher) { + // Create a subscription for this watcher + auto sub = std::make_shared(this, watcher, getTree(watcher, false)); + watcher->state = sub; + + // Queue polling for this subscription in the correct thread. + bool success = QueueUserAPC([](__in ULONG_PTR ptr) { + Subscription *sub = (Subscription *)ptr; + sub->run(); + }, mThread.native_handle(), (ULONG_PTR)sub.get()); + + if (!success) { + throw std::runtime_error("Unable to queue APC"); + } +} + +// This function is called by Backend::unwatch which takes a lock on mMutex +void WindowsBackend::unsubscribe(WatcherRef watcher) { + watcher->state = nullptr; +} diff --git a/node_modules/@parcel/watcher/src/windows/WindowsBackend.hh b/node_modules/@parcel/watcher/src/windows/WindowsBackend.hh new file mode 100644 index 0000000..d679782 --- /dev/null +++ b/node_modules/@parcel/watcher/src/windows/WindowsBackend.hh @@ -0,0 +1,18 @@ +#ifndef WINDOWS_H +#define WINDOWS_H + +#include +#include +#include "../shared/BruteForceBackend.hh" + +class WindowsBackend : public BruteForceBackend { +public: + void start() override; + ~WindowsBackend(); + void subscribe(WatcherRef watcher) override; + void unsubscribe(WatcherRef watcher) override; +private: + bool mRunning; +}; + +#endif diff --git a/node_modules/@parcel/watcher/src/windows/win_utils.cc b/node_modules/@parcel/watcher/src/windows/win_utils.cc new file mode 100644 index 0000000..986690f --- /dev/null +++ b/node_modules/@parcel/watcher/src/windows/win_utils.cc @@ -0,0 +1,44 @@ +#include "./win_utils.hh" + +std::wstring utf8ToUtf16(std::string input) { + unsigned int len = MultiByteToWideChar(CP_UTF8, 0, input.c_str(), -1, NULL, 0); + WCHAR *output = new WCHAR[len]; + MultiByteToWideChar(CP_UTF8, 0, input.c_str(), -1, output, len); + std::wstring res(output); + delete output; + return res; +} + +std::string utf16ToUtf8(const WCHAR *input, size_t length) { + unsigned int len = WideCharToMultiByte(CP_UTF8, 0, input, length, NULL, 0, NULL, NULL); + char *output = new char[len + 1]; + WideCharToMultiByte(CP_UTF8, 0, input, length, output, len, NULL, NULL); + output[len] = '\0'; + std::string res(output); + delete output; + return res; +} + +std::string normalizePath(std::string path) { + // Prevent truncation to MAX_PATH characters by adding the \\?\ prefix + std::wstring p = utf8ToUtf16("\\\\?\\" + path); + + // Get the required length for the output + unsigned int len = GetLongPathNameW(p.data(), NULL, 0); + if (!len) { + return path; + } + + // Allocate output array and get long path + WCHAR *output = new WCHAR[len]; + len = GetLongPathNameW(p.data(), output, len); + if (!len) { + delete output; + return path; + } + + // Convert back to utf8 + std::string res = utf16ToUtf8(output + 4, len - 4); + delete output; + return res; +} diff --git a/node_modules/@parcel/watcher/src/windows/win_utils.hh b/node_modules/@parcel/watcher/src/windows/win_utils.hh new file mode 100644 index 0000000..2313493 --- /dev/null +++ b/node_modules/@parcel/watcher/src/windows/win_utils.hh @@ -0,0 +1,11 @@ +#ifndef WIN_UTILS_H +#define WIN_UTILS_H + +#include +#include + +std::wstring utf8ToUtf16(std::string input); +std::string utf16ToUtf8(const WCHAR *input, size_t length); +std::string normalizePath(std::string path); + +#endif diff --git a/node_modules/@parcel/watcher/wrapper.js b/node_modules/@parcel/watcher/wrapper.js new file mode 100644 index 0000000..496d56b --- /dev/null +++ b/node_modules/@parcel/watcher/wrapper.js @@ -0,0 +1,77 @@ +const path = require('path'); +const micromatch = require('micromatch'); +const isGlob = require('is-glob'); + +function normalizeOptions(dir, opts = {}) { + const { ignore, ...rest } = opts; + + if (Array.isArray(ignore)) { + opts = { ...rest }; + + for (const value of ignore) { + if (isGlob(value)) { + if (!opts.ignoreGlobs) { + opts.ignoreGlobs = []; + } + + const regex = micromatch.makeRe(value, { + // We set `dot: true` to workaround an issue with the + // regular expression on Linux where the resulting + // negative lookahead `(?!(\\/|^)` was never matching + // in some cases. See also https://bit.ly/3UZlQDm + dot: true, + // C++ does not support lookbehind regex patterns, they + // were only added later to JavaScript engines + // (https://bit.ly/3V7S6UL) + lookbehinds: false + }); + opts.ignoreGlobs.push(regex.source); + } else { + if (!opts.ignorePaths) { + opts.ignorePaths = []; + } + + opts.ignorePaths.push(path.resolve(dir, value)); + } + } + } + + return opts; +} + +exports.createWrapper = (binding) => { + return { + writeSnapshot(dir, snapshot, opts) { + return binding.writeSnapshot( + path.resolve(dir), + path.resolve(snapshot), + normalizeOptions(dir, opts), + ); + }, + getEventsSince(dir, snapshot, opts) { + return binding.getEventsSince( + path.resolve(dir), + path.resolve(snapshot), + normalizeOptions(dir, opts), + ); + }, + async subscribe(dir, fn, opts) { + dir = path.resolve(dir); + opts = normalizeOptions(dir, opts); + await binding.subscribe(dir, fn, opts); + + return { + unsubscribe() { + return binding.unsubscribe(dir, fn, opts); + }, + }; + }, + unsubscribe(dir, fn, opts) { + return binding.unsubscribe( + path.resolve(dir), + fn, + normalizeOptions(dir, opts), + ); + } + }; +}; diff --git a/node_modules/@tailwindcss/cli/LICENSE b/node_modules/@tailwindcss/cli/LICENSE new file mode 100644 index 0000000..d6a8229 --- /dev/null +++ b/node_modules/@tailwindcss/cli/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Tailwind Labs, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@tailwindcss/cli/README.md b/node_modules/@tailwindcss/cli/README.md new file mode 100644 index 0000000..7d21bd8 --- /dev/null +++ b/node_modules/@tailwindcss/cli/README.md @@ -0,0 +1,36 @@ +

+ + + + + Tailwind CSS + + +

+ +

+ A utility-first CSS framework for rapidly building custom user interfaces. +

+ +

+ Build Status + Total Downloads + Latest Release + License +

+ +--- + +## Documentation + +For full documentation, visit [tailwindcss.com](https://tailwindcss.com). + +## Community + +For help, discussion about best practices, or feature ideas: + +[Discuss Tailwind CSS on GitHub](https://github.com/tailwindcss/tailwindcss/discussions) + +## Contributing + +If you're interested in contributing to Tailwind CSS, please read our [contributing docs](https://github.com/tailwindcss/tailwindcss/blob/next/.github/CONTRIBUTING.md) **before submitting a pull request**. diff --git a/node_modules/@tailwindcss/cli/dist/index.mjs b/node_modules/@tailwindcss/cli/dist/index.mjs new file mode 100644 index 0000000..fb8a33b --- /dev/null +++ b/node_modules/@tailwindcss/cli/dist/index.mjs @@ -0,0 +1,9 @@ +#!/usr/bin/env node +var se=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),le=e=>{throw TypeError(e)};var q=(e,t,n)=>{if(t!=null){typeof t!="object"&&typeof t!="function"&&le("Object expected");var i,o;n&&(i=t[se("asyncDispose")]),i===void 0&&(i=t[se("dispose")],n&&(o=i)),typeof i!="function"&&le("Object not disposable"),o&&(i=function(){try{o.call(this)}catch(r){return Promise.reject(r)}}),e.push([n,i,t])}else n&&e.push([n]);return t},K=(e,t,n)=>{var i=typeof SuppressedError=="function"?SuppressedError:function(u,s,l,p){return p=Error(l),p.name="SuppressedError",p.error=u,p.suppressed=s,p},o=u=>t=n?new i(u,t,"An error was suppressed during disposal"):(n=!0,u),r=u=>{for(;u=e.pop();)try{var s=u[1]&&u[1].call(u[2]);if(u[0])return Promise.resolve(s).then(r,l=>(o(l),r()))}catch(l){o(l)}if(n)throw t};return r()};import Ae from"mri";function ue(e,t=process.argv.slice(2)){for(let[o,r]of t.entries())r==="-"&&(t[o]="__IO_DEFAULT_VALUE__");let n=Ae(t);for(let o in n)n[o]==="__IO_DEFAULT_VALUE__"&&(n[o]="-");let i={_:n._};for(let[o,{type:r,alias:u,default:s=r==="boolean"?!1:null}]of Object.entries(e)){if(i[o]=s,u){let l=u.slice(1);n[l]!==void 0&&(i[o]=ae(n[l],r))}{let l=o.slice(2);n[l]!==void 0&&(i[o]=ae(n[l],r))}}return i}function ae(e,t){switch(t){case"string":return z(e);case"boolean":return O(e);case"number":return R(e);case"boolean | string":return O(e)??z(e);case"number | string":return R(e)??z(e);case"boolean | number":return O(e)??R(e);case"boolean | number | string":return O(e)??R(e)??z(e);default:throw new Error(`Unhandled type: ${t}`)}}function O(e){if(e===!0||e===!1)return e;if(e==="true")return!0;if(e==="false")return!1}function R(e){if(typeof e=="number")return e;{let t=Number(e);if(!Number.isNaN(t))return t}}function z(e){return`${e}`}import We from"@parcel/watcher";import{compile as Ee,env as Ue,Instrumentation as me,optimize as Pe,toSourceMap as he}from"@tailwindcss/node";import{clearRequireCache as Le}from"@tailwindcss/node/require-cache";import{Scanner as je}from"@tailwindcss/oxide";import{existsSync as Ie}from"fs";import X from"fs/promises";import C from"path";var k=class{#e=new Set([]);queueMacrotask(t){let n=setTimeout(t,0);return this.add(()=>{clearTimeout(n)})}add(t){return this.#e.add(t),()=>{this.#e.delete(t),t()}}async dispose(){for(let t of this.#e)await t();this.#e.clear()}};import Re from"fs";import de from"path";import{stripVTControlCharacters as ze}from"util";import w from"picocolors";import pe from"enhanced-resolve";import Me from"fs";import{createRequire as Be}from"module";var Oe=Be(import.meta.url).resolve;function ce(e){if(typeof globalThis.__tw_resolve=="function"){let t=globalThis.__tw_resolve(e);if(t)return t}return Oe(e)}var Xe=pe.ResolverFactory.createResolver({fileSystem:new pe.CachedInputFileSystem(Me,4e3),useSyncFileSystemCalls:!0,extensions:[".css"],mainFields:["style"],conditionNames:["style"]});function fe(e){let t=typeof e=="number"?BigInt(e):e;return t<1000n?`${t}ns`:(t/=1000n,t<1000n?`${t}\xB5s`:(t/=1000n,t<1000n?`${t}ms`:(t/=1000n,t<60n?`${t}s`:(t/=60n,t<60n?`${t}m`:(t/=60n,t<24n?`${t}h`:(t/=24n,`${t}d`))))))}var D={indent:2};function N(){return`${w.italic(w.bold(w.blue("\u2248")))} tailwindcss ${w.blue(`v${De()}`)}`}function F(e){return`${w.dim(w.blue("`"))}${w.blue(e)}${w.dim(w.blue("`"))}`}function W(e,t=process.cwd(),{preferAbsoluteIfShorter:n=!0}={}){let i=de.relative(t,e);return i.startsWith("..")||(i=`.${de.sep}${i}`),n&&i.length>e.length?e:i}function G(e,t){let n=e.split(" "),i=[],o="",r=0;for(let u of n){let s=ze(u).length;r+s+1>t&&(i.push(o),o="",r=0),o+=(r?" ":"")+u,r+=s+(r?1:0)}return r&&i.push(o),i}function E(e){let t=fe(e);return e<=50*1e6?w.green(t):e<=300*1e6?w.blue(t):e<=1e3*1e6?w.yellow(t):w.red(t)}function A(e,t=0){return`${" ".repeat(t+D.indent)}${e}`}function x(e=""){process.stderr.write(`${e} +`)}function h(e=""){process.stdout.write(`${e} +`)}function De(){if(typeof globalThis.__tw_version=="string")return globalThis.__tw_version;let{version:e}=JSON.parse(Re.readFileSync(ce("tailwindcss/package.json"),"utf-8"));return e}import J from"fs/promises";import Ne from"path";function Q(){return new Promise((e,t)=>{let n="";process.stdin.on("data",i=>{n+=i}),process.stdin.on("end",()=>e(n)),process.stdin.on("error",i=>t(i))})}async function Y(e,t){try{if(await J.readFile(e,"utf8")===t)return}catch{}await J.mkdir(Ne.dirname(e),{recursive:!0}),await J.writeFile(e,t,"utf8")}var ye=String.raw,a=Ue.DEBUG;function U(){return{"--input":{type:"string",description:"Input file",alias:"-i"},"--output":{type:"string",description:"Output file",alias:"-o",default:"-"},"--watch":{type:"boolean | string",description:"Watch for changes and rebuild as needed, and use `always` to keep watching when stdin is closed",alias:"-w",values:["always"]},"--minify":{type:"boolean",description:"Optimize and minify the output",alias:"-m"},"--optimize":{type:"boolean",description:"Optimize the output without minifying"},"--cwd":{type:"string",description:"The current working directory",default:"."},"--map":{type:"boolean | string",description:"Generate a source map",default:!1}}}async function H(e){try{return await e()}catch(t){t instanceof Error&&x(t.toString()),process.exit(1)}}async function ge(e){var ne=[];try{x(N());x();let t=q(ne,new me);a&&t.start("[@tailwindcss/cli] (initial build)");let n=C.resolve(e["--cwd"]);e["--output"]&&e["--output"]!=="-"&&(e["--output"]=C.resolve(n,e["--output"]));e["--input"]&&e["--input"]!=="-"&&(e["--input"]=C.resolve(n,e["--input"]),Ie(e["--input"])||(x(`Specified input file ${F(W(e["--input"]))} does not exist.`),process.exit(1)));e["--input"]===e["--output"]&&e["--input"]!=="-"&&(x(`Specified input file ${F(W(e["--input"]))} and output file ${F(W(e["--output"]))} are identical.`),process.exit(1));e["--map"]==="-"&&(x("Use --map without a value to inline the source map"),process.exit(1));e["--map"]&&e["--map"]!==!0&&(e["--map"]=C.resolve(n,e["--map"]));let i=process.hrtime.bigint();let o=e["--input"]?e["--input"]==="-"?await Q():await X.readFile(e["--input"],"utf-8"):ye` + @import 'tailwindcss'; + `;let r={css:"",optimizedCss:""};async function u(g,b,f,S){let $=g;if(f["--minify"]||f["--optimize"])if(g!==r.css){a&&S.start("Optimize CSS");let T=Pe(g,{file:f["--input"]??"input.css",minify:f["--minify"]??!1,map:b?.raw??void 0});a&&S.end("Optimize CSS"),r.css=g,r.optimizedCss=T.code,T.map&&(b=he(T.map)),$=T.code}else $=r.optimizedCss;b&&(f["--map"]===!0?($+=` +`,$+=b.inline):typeof f["--map"]=="string"&&(a&&S.start("Write source map"),await Y(f["--map"],b.raw),a&&S.end("Write source map"))),a&&S.start("Write output"),f["--output"]&&f["--output"]!=="-"?await Y(f["--output"],$):h($),a&&S.end("Write output")}let s=e["--input"]&&e["--input"]!=="-"?C.resolve(e["--input"]):null;let l=s?C.dirname(s):process.cwd();let p=s?[s]:[];async function m(g,b){a&&b.start("Setup compiler");let f=await Ee(g,{from:e["--output"]?s??"stdin.css":void 0,base:l,onDependency(T){p.push(T)}}),S=(f.root==="none"?[]:f.root===null?[{base:n,pattern:"**/*",negated:!1}]:[{...f.root,negated:!1}]).concat(f.sources),$=new je({sources:S});return a&&b.end("Setup compiler"),[f,$]}let[d,y]=await H(()=>m(o,t));if(e["--watch"]){let g=[];g.push(await we(be(y),async function b(f){try{var S=[];try{if(f.length===1&&f[0]===e["--output"])return;let c=q(S,new me);a&&c.start("[@tailwindcss/cli] (watcher)");let ie=process.hrtime.bigint();let re=[];let L="incremental";let oe=p;for(let _ of f){if(oe.includes(_)){L="full";break}re.push({file:_,extension:C.extname(_).slice(1)})}let j="";let I=null;if(L==="full"){let _=e["--input"]?e["--input"]==="-"?await Q():await X.readFile(e["--input"],"utf-8"):ye` + @import 'tailwindcss'; + `;Le(oe),p=s?[s]:[],[d,y]=await m(_,c),a&&c.start("Scan for candidates");let V=y.scan();a&&c.end("Scan for candidates"),a&&c.start("Setup new watchers");let Fe=await we(be(y),b);a&&c.end("Setup new watchers"),a&&c.start("Cleanup old watchers"),await Promise.all(g.splice(0).map(ke=>ke())),a&&c.end("Cleanup old watchers"),g.push(Fe),a&&c.start("Build CSS"),j=d.build(V),a&&c.end("Build CSS"),e["--map"]&&(a&&c.start("Build Source Map"),I=d.buildSourceMap(),a&&c.end("Build Source Map"))}else if(L==="incremental"){a&&c.start("Scan for candidates");let _=y.scanFiles(re);if(a&&c.end("Scan for candidates"),_.length<=0){let V=process.hrtime.bigint();x(`Done in ${E(V-ie)}`);return}a&&c.start("Build CSS"),j=d.build(_),a&&c.end("Build CSS"),e["--map"]&&(a&&c.start("Build Source Map"),I=d.buildSourceMap(),a&&c.end("Build Source Map"))}await u(j,I,e,c);let Ce=process.hrtime.bigint();x(`Done in ${E(Ce-ie)}`)}catch($){var T=$,ve=!0}finally{K(S,T,ve)}}catch(c){c instanceof Error&&x(c.toString())}})),e["--watch"]!=="always"&&process.stdin.on("end",()=>{Promise.all(g.map(b=>b())).then(()=>process.exit(0),()=>process.exit(1))}),process.stdin.resume()}a&&t.start("Scan for candidates");let P=y.scan();a&&t.end("Scan for candidates");a&&t.start("Build CSS");let M=await H(()=>d.build(P));a&&t.end("Build CSS");let B=null;e["--map"]&&(a&&t.start("Build Source Map"),B=await H(()=>he(d.buildSourceMap())),a&&t.end("Build Source Map"));await u(M,B,e,t);let xe=process.hrtime.bigint();x(`Done in ${E(xe-i)}`)}catch($e){var Te=$e,_e=!0}finally{K(ne,Te,_e)}}async function we(e,t){e=e.sort((s,l)=>s.length-l.length);let n=[];for(let s=0;s!n.includes(s));let i=new k,o=new Set,r=new k;async function u(){await r.dispose(),r.queueMacrotask(()=>{t(Array.from(o)),o.clear()})}for(let s of e){let{unsubscribe:l}=await We.subscribe(s,async(p,m)=>{if(p){console.error(p);return}await Promise.all(m.map(async d=>{if(d.type==="delete")return;let y=null;try{y=await X.lstat(d.path)}catch{}!y?.isFile()&&!y?.isSymbolicLink()||o.add(d.path)})),await u()});i.add(l)}return async()=>{await i.dispose(),await r.dispose()}}function be(e){return[...new Set(e.normalizedSources.flatMap(t=>t.base))]}import v from"picocolors";function Z({invalid:e,usage:t,options:n}){let i=process.stdout.columns;if(h(N()),e&&(h(),h(`${v.dim("Invalid command:")} ${e}`)),t&&t.length>0){h(),h(v.dim("Usage:"));for(let[o,r]of t.entries()){let u=r.slice(0,r.indexOf("[")),s=r.slice(r.indexOf("["));s=s.replace(/\[.*?\]/g,m=>v.dim(m));let p=G(s,i-D.indent-u.length-1);p.length>1&&o!==0&&h(),h(A(`${u}${p.shift()}`));for(let m of p)h(A(m,u.length))}}if(n){let o=0;for(let{alias:l}of Object.values(n))l&&(o=Math.max(o,l.length));let r=[],u=0;for(let[l,{alias:p,values:m}]of Object.entries(n)){m?.length&&(l+=`[=${m.join(", ")}]`);let d=[p&&`${p.padStart(o)}`,p?l:" ".repeat(o+2)+l].filter(Boolean).join(", ");r.push(d),u=Math.max(u,d.length)}h(),h(v.dim("Options:"));let s=8;for(let{description:l,default:p=null}of Object.values(n)){let m=r.shift(),d=s+(u-m.length),y=2,P=i-m.length-d-y-D.indent,M=G(p!==null?`${l} ${v.dim(`[default:\u202F${F(`${p}`)}]`)}`:l,P);h(A(`${v.blue(m)} ${v.dim(v.gray("\xB7")).repeat(d)} ${M.shift()}`));for(let B of M)h(A(`${" ".repeat(m.length+d+y)}${B}`))}}}var ee={"--help":{type:"boolean",description:"Display usage information",alias:"-h"}},te=ue({...U(),...ee}),Se=te._[0];Se&&(Z({invalid:Se,usage:["tailwindcss [options]"],options:{...U(),...ee}}),process.exit(1));(process.stdout.isTTY&&process.argv[2]===void 0||te["--help"])&&(Z({usage:["tailwindcss [--input input.css] [--output output.css] [--watch] [options\u2026]"],options:{...U(),...ee}}),process.exit(0));ge(te); diff --git a/node_modules/@tailwindcss/cli/package.json b/node_modules/@tailwindcss/cli/package.json new file mode 100644 index 0000000..fc4cdc7 --- /dev/null +++ b/node_modules/@tailwindcss/cli/package.json @@ -0,0 +1,40 @@ +{ + "name": "@tailwindcss/cli", + "version": "4.1.17", + "description": "A utility-first CSS framework for rapidly building custom user interfaces.", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/tailwindlabs/tailwindcss.git", + "directory": "packages/@tailwindcss-cli" + }, + "bugs": "https://github.com/tailwindlabs/tailwindcss/issues", + "homepage": "https://tailwindcss.com", + "bin": { + "tailwindcss": "./dist/index.mjs" + }, + "exports": { + "./package.json": "./package.json" + }, + "files": [ + "dist" + ], + "publishConfig": { + "provenance": true, + "access": "public" + }, + "dependencies": { + "@parcel/watcher": "^2.5.1", + "enhanced-resolve": "^5.18.3", + "mri": "^1.2.0", + "picocolors": "^1.1.1", + "@tailwindcss/node": "4.1.17", + "@tailwindcss/oxide": "4.1.17", + "tailwindcss": "4.1.17" + }, + "scripts": { + "lint": "tsc --noEmit", + "build": "tsup-node", + "dev": "pnpm run build -- --watch" + } +} \ No newline at end of file diff --git a/node_modules/@tailwindcss/node/LICENSE b/node_modules/@tailwindcss/node/LICENSE new file mode 100644 index 0000000..d6a8229 --- /dev/null +++ b/node_modules/@tailwindcss/node/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Tailwind Labs, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@tailwindcss/node/README.md b/node_modules/@tailwindcss/node/README.md new file mode 100644 index 0000000..7d21bd8 --- /dev/null +++ b/node_modules/@tailwindcss/node/README.md @@ -0,0 +1,36 @@ +

+ + + + + Tailwind CSS + + +

+ +

+ A utility-first CSS framework for rapidly building custom user interfaces. +

+ +

+ Build Status + Total Downloads + Latest Release + License +

+ +--- + +## Documentation + +For full documentation, visit [tailwindcss.com](https://tailwindcss.com). + +## Community + +For help, discussion about best practices, or feature ideas: + +[Discuss Tailwind CSS on GitHub](https://github.com/tailwindcss/tailwindcss/discussions) + +## Contributing + +If you're interested in contributing to Tailwind CSS, please read our [contributing docs](https://github.com/tailwindcss/tailwindcss/blob/next/.github/CONTRIBUTING.md) **before submitting a pull request**. diff --git a/node_modules/@tailwindcss/node/dist/esm-cache.loader.d.mts b/node_modules/@tailwindcss/node/dist/esm-cache.loader.d.mts new file mode 100644 index 0000000..55f2bad --- /dev/null +++ b/node_modules/@tailwindcss/node/dist/esm-cache.loader.d.mts @@ -0,0 +1,5 @@ +import { ResolveHook } from 'node:module'; + +declare let resolve: ResolveHook; + +export { resolve }; diff --git a/node_modules/@tailwindcss/node/dist/esm-cache.loader.mjs b/node_modules/@tailwindcss/node/dist/esm-cache.loader.mjs new file mode 100644 index 0000000..f9ae108 --- /dev/null +++ b/node_modules/@tailwindcss/node/dist/esm-cache.loader.mjs @@ -0,0 +1 @@ +import{isBuiltin as i}from"module";var o=async(a,e,u)=>{let r=await u(a,e);if(r.url===import.meta.url||i(r.url)||!e.parentURL)return r;let t=new URL(e.parentURL).searchParams.get("id");if(t===null)return r;let l=new URL(r.url);return l.searchParams.set("id",t),{...r,url:`${l}`}};export{o as resolve}; diff --git a/node_modules/@tailwindcss/node/dist/index.d.mts b/node_modules/@tailwindcss/node/dist/index.d.mts new file mode 100644 index 0000000..ac3401d --- /dev/null +++ b/node_modules/@tailwindcss/node/dist/index.d.mts @@ -0,0 +1,253 @@ +import { Candidate, Variant } from './candidate'; +import { compileAstNodes } from './compile'; +import { ClassEntry, VariantEntry, CanonicalizeOptions } from './intellisense'; +import { Theme } from './theme'; +import { Utilities } from './utilities'; +import { Variants } from './variants'; +import * as tailwindcss from 'tailwindcss'; +import { Polyfills, Features } from 'tailwindcss'; +export { Features, Polyfills } from 'tailwindcss'; + +declare const DEBUG: boolean; + +declare const env_DEBUG: typeof DEBUG; +declare namespace env { + export { env_DEBUG as DEBUG }; +} + +declare const enum CompileAstFlags { + None = 0, + RespectImportant = 1 +} +type DesignSystem = { + theme: Theme; + utilities: Utilities; + variants: Variants; + invalidCandidates: Set; + important: boolean; + getClassOrder(classes: string[]): [string, bigint | null][]; + getClassList(): ClassEntry[]; + getVariants(): VariantEntry[]; + parseCandidate(candidate: string): Readonly[]; + parseVariant(variant: string): Readonly | null; + compileAstNodes(candidate: Candidate, flags?: CompileAstFlags): ReturnType; + printCandidate(candidate: Candidate): string; + printVariant(variant: Variant): string; + getVariantOrder(): Map; + resolveThemeValue(path: string, forceInline?: boolean): string | undefined; + trackUsedVariables(raw: string): void; + canonicalizeCandidates(candidates: string[], options?: CanonicalizeOptions): string[]; + candidatesToCss(classes: string[]): (string | null)[]; + storage: Record; +}; + +/** + * The source code for one or more nodes in the AST + * + * This generally corresponds to a stylesheet + */ +interface Source { + /** + * The path to the file that contains the referenced source code + * + * If this references the *output* source code, this is `null`. + */ + file: string | null; + /** + * The referenced source code + */ + code: string; +} +/** + * The file and offsets within it that this node covers + * + * This can represent either: + * - A location in the original CSS which caused this node to be created + * - A location in the output CSS where this node resides + */ +type SourceLocation = [source: Source, start: number, end: number]; + +/** + * Line offset tables are the key to generating our source maps. They allow us + * to store indexes with our AST nodes and later convert them into positions as + * when given the source that the indexes refer to. + */ +/** + * A position in source code + * + * https://tc39.es/ecma426/#sec-position-record-type + */ +interface Position { + /** The line number, one-based */ + line: number; + /** The column/character number, one-based */ + column: number; +} + +interface OriginalPosition extends Position { + source: DecodedSource; +} +/** + * A "decoded" sourcemap + * + * @see https://tc39.es/ecma426/#decoded-source-map-record + */ +interface DecodedSourceMap { + file: string | null; + sources: DecodedSource[]; + mappings: DecodedMapping[]; +} +/** + * A "decoded" source + * + * @see https://tc39.es/ecma426/#decoded-source-record + */ +interface DecodedSource { + url: string | null; + content: string | null; + ignore: boolean; +} +/** + * A "decoded" mapping + * + * @see https://tc39.es/ecma426/#decoded-mapping-record + */ +interface DecodedMapping { + originalPosition: OriginalPosition | null; + generatedPosition: Position; + name: string | null; +} + +type StyleRule = { + kind: 'rule'; + selector: string; + nodes: AstNode[]; + src?: SourceLocation; + dst?: SourceLocation; +}; +type AtRule = { + kind: 'at-rule'; + name: string; + params: string; + nodes: AstNode[]; + src?: SourceLocation; + dst?: SourceLocation; +}; +type Declaration = { + kind: 'declaration'; + property: string; + value: string | undefined; + important: boolean; + src?: SourceLocation; + dst?: SourceLocation; +}; +type Comment = { + kind: 'comment'; + value: string; + src?: SourceLocation; + dst?: SourceLocation; +}; +type Context = { + kind: 'context'; + context: Record; + nodes: AstNode[]; + src?: undefined; + dst?: undefined; +}; +type AtRoot = { + kind: 'at-root'; + nodes: AstNode[]; + src?: undefined; + dst?: undefined; +}; +type AstNode = StyleRule | AtRule | Declaration | Comment | Context | AtRoot; + +type Resolver = (id: string, base: string) => Promise; +interface CompileOptions { + base: string; + from?: string; + onDependency: (path: string) => void; + shouldRewriteUrls?: boolean; + polyfills?: Polyfills; + customCssResolver?: Resolver; + customJsResolver?: Resolver; +} +declare function compileAst(ast: AstNode[], options: CompileOptions): Promise<{ + sources: { + base: string; + pattern: string; + negated: boolean; + }[]; + root: "none" | { + base: string; + pattern: string; + } | null; + features: Features; + build(candidates: string[]): AstNode[]; +}>; +declare function compile(css: string, options: CompileOptions): Promise<{ + sources: { + base: string; + pattern: string; + negated: boolean; + }[]; + root: "none" | { + base: string; + pattern: string; + } | null; + features: Features; + build(candidates: string[]): string; + buildSourceMap(): tailwindcss.DecodedSourceMap; +}>; +declare function __unstable__loadDesignSystem(css: string, { base }: { + base: string; +}): Promise; +declare function loadModule(id: string, base: string, onDependency: (path: string) => void, customJsResolver?: Resolver): Promise<{ + path: string; + base: string; + module: any; +}>; + +declare class Instrumentation implements Disposable { + #private; + private defaultFlush; + constructor(defaultFlush?: (message: string) => undefined); + hit(label: string): void; + start(label: string): void; + end(label: string): void; + reset(): void; + report(flush?: (message: string) => undefined): void; + [Symbol.dispose](): void; +} + +declare function normalizePath(originalPath: string): string; + +interface OptimizeOptions { + /** + * The file being transformed + */ + file?: string; + /** + * Enabled minified output + */ + minify?: boolean; + /** + * The output source map before optimization + * + * If omitted a resulting source map will not be available + */ + map?: string; +} +interface TransformResult { + code: string; + map: string | undefined; +} +declare function optimize(input: string, { file, minify, map }?: OptimizeOptions): TransformResult; + +interface SourceMap { + readonly raw: string; + readonly inline: string; +} +declare function toSourceMap(map: DecodedSourceMap | string): SourceMap; + +export { type CompileOptions, type DecodedSource, type DecodedSourceMap, Instrumentation, type OptimizeOptions, type Resolver, type SourceMap, type TransformResult, __unstable__loadDesignSystem, compile, compileAst, env, loadModule, normalizePath, optimize, toSourceMap }; diff --git a/node_modules/@tailwindcss/node/dist/index.d.ts b/node_modules/@tailwindcss/node/dist/index.d.ts new file mode 100644 index 0000000..ac3401d --- /dev/null +++ b/node_modules/@tailwindcss/node/dist/index.d.ts @@ -0,0 +1,253 @@ +import { Candidate, Variant } from './candidate'; +import { compileAstNodes } from './compile'; +import { ClassEntry, VariantEntry, CanonicalizeOptions } from './intellisense'; +import { Theme } from './theme'; +import { Utilities } from './utilities'; +import { Variants } from './variants'; +import * as tailwindcss from 'tailwindcss'; +import { Polyfills, Features } from 'tailwindcss'; +export { Features, Polyfills } from 'tailwindcss'; + +declare const DEBUG: boolean; + +declare const env_DEBUG: typeof DEBUG; +declare namespace env { + export { env_DEBUG as DEBUG }; +} + +declare const enum CompileAstFlags { + None = 0, + RespectImportant = 1 +} +type DesignSystem = { + theme: Theme; + utilities: Utilities; + variants: Variants; + invalidCandidates: Set; + important: boolean; + getClassOrder(classes: string[]): [string, bigint | null][]; + getClassList(): ClassEntry[]; + getVariants(): VariantEntry[]; + parseCandidate(candidate: string): Readonly[]; + parseVariant(variant: string): Readonly | null; + compileAstNodes(candidate: Candidate, flags?: CompileAstFlags): ReturnType; + printCandidate(candidate: Candidate): string; + printVariant(variant: Variant): string; + getVariantOrder(): Map; + resolveThemeValue(path: string, forceInline?: boolean): string | undefined; + trackUsedVariables(raw: string): void; + canonicalizeCandidates(candidates: string[], options?: CanonicalizeOptions): string[]; + candidatesToCss(classes: string[]): (string | null)[]; + storage: Record; +}; + +/** + * The source code for one or more nodes in the AST + * + * This generally corresponds to a stylesheet + */ +interface Source { + /** + * The path to the file that contains the referenced source code + * + * If this references the *output* source code, this is `null`. + */ + file: string | null; + /** + * The referenced source code + */ + code: string; +} +/** + * The file and offsets within it that this node covers + * + * This can represent either: + * - A location in the original CSS which caused this node to be created + * - A location in the output CSS where this node resides + */ +type SourceLocation = [source: Source, start: number, end: number]; + +/** + * Line offset tables are the key to generating our source maps. They allow us + * to store indexes with our AST nodes and later convert them into positions as + * when given the source that the indexes refer to. + */ +/** + * A position in source code + * + * https://tc39.es/ecma426/#sec-position-record-type + */ +interface Position { + /** The line number, one-based */ + line: number; + /** The column/character number, one-based */ + column: number; +} + +interface OriginalPosition extends Position { + source: DecodedSource; +} +/** + * A "decoded" sourcemap + * + * @see https://tc39.es/ecma426/#decoded-source-map-record + */ +interface DecodedSourceMap { + file: string | null; + sources: DecodedSource[]; + mappings: DecodedMapping[]; +} +/** + * A "decoded" source + * + * @see https://tc39.es/ecma426/#decoded-source-record + */ +interface DecodedSource { + url: string | null; + content: string | null; + ignore: boolean; +} +/** + * A "decoded" mapping + * + * @see https://tc39.es/ecma426/#decoded-mapping-record + */ +interface DecodedMapping { + originalPosition: OriginalPosition | null; + generatedPosition: Position; + name: string | null; +} + +type StyleRule = { + kind: 'rule'; + selector: string; + nodes: AstNode[]; + src?: SourceLocation; + dst?: SourceLocation; +}; +type AtRule = { + kind: 'at-rule'; + name: string; + params: string; + nodes: AstNode[]; + src?: SourceLocation; + dst?: SourceLocation; +}; +type Declaration = { + kind: 'declaration'; + property: string; + value: string | undefined; + important: boolean; + src?: SourceLocation; + dst?: SourceLocation; +}; +type Comment = { + kind: 'comment'; + value: string; + src?: SourceLocation; + dst?: SourceLocation; +}; +type Context = { + kind: 'context'; + context: Record; + nodes: AstNode[]; + src?: undefined; + dst?: undefined; +}; +type AtRoot = { + kind: 'at-root'; + nodes: AstNode[]; + src?: undefined; + dst?: undefined; +}; +type AstNode = StyleRule | AtRule | Declaration | Comment | Context | AtRoot; + +type Resolver = (id: string, base: string) => Promise; +interface CompileOptions { + base: string; + from?: string; + onDependency: (path: string) => void; + shouldRewriteUrls?: boolean; + polyfills?: Polyfills; + customCssResolver?: Resolver; + customJsResolver?: Resolver; +} +declare function compileAst(ast: AstNode[], options: CompileOptions): Promise<{ + sources: { + base: string; + pattern: string; + negated: boolean; + }[]; + root: "none" | { + base: string; + pattern: string; + } | null; + features: Features; + build(candidates: string[]): AstNode[]; +}>; +declare function compile(css: string, options: CompileOptions): Promise<{ + sources: { + base: string; + pattern: string; + negated: boolean; + }[]; + root: "none" | { + base: string; + pattern: string; + } | null; + features: Features; + build(candidates: string[]): string; + buildSourceMap(): tailwindcss.DecodedSourceMap; +}>; +declare function __unstable__loadDesignSystem(css: string, { base }: { + base: string; +}): Promise; +declare function loadModule(id: string, base: string, onDependency: (path: string) => void, customJsResolver?: Resolver): Promise<{ + path: string; + base: string; + module: any; +}>; + +declare class Instrumentation implements Disposable { + #private; + private defaultFlush; + constructor(defaultFlush?: (message: string) => undefined); + hit(label: string): void; + start(label: string): void; + end(label: string): void; + reset(): void; + report(flush?: (message: string) => undefined): void; + [Symbol.dispose](): void; +} + +declare function normalizePath(originalPath: string): string; + +interface OptimizeOptions { + /** + * The file being transformed + */ + file?: string; + /** + * Enabled minified output + */ + minify?: boolean; + /** + * The output source map before optimization + * + * If omitted a resulting source map will not be available + */ + map?: string; +} +interface TransformResult { + code: string; + map: string | undefined; +} +declare function optimize(input: string, { file, minify, map }?: OptimizeOptions): TransformResult; + +interface SourceMap { + readonly raw: string; + readonly inline: string; +} +declare function toSourceMap(map: DecodedSourceMap | string): SourceMap; + +export { type CompileOptions, type DecodedSource, type DecodedSourceMap, Instrumentation, type OptimizeOptions, type Resolver, type SourceMap, type TransformResult, __unstable__loadDesignSystem, compile, compileAst, env, loadModule, normalizePath, optimize, toSourceMap }; diff --git a/node_modules/@tailwindcss/node/dist/index.js b/node_modules/@tailwindcss/node/dist/index.js new file mode 100644 index 0000000..9419d70 --- /dev/null +++ b/node_modules/@tailwindcss/node/dist/index.js @@ -0,0 +1,18 @@ +"use strict";var Pt=Object.create;var ie=Object.defineProperty;var _t=Object.getOwnPropertyDescriptor;var It=Object.getOwnPropertyNames;var Dt=Object.getPrototypeOf,Ut=Object.prototype.hasOwnProperty;var De=(e,r)=>{for(var t in r)ie(e,t,{get:r[t],enumerable:!0})},Ue=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of It(r))!Ut.call(e,o)&&o!==t&&ie(e,o,{get:()=>r[o],enumerable:!(i=_t(r,o))||i.enumerable});return e};var T=(e,r,t)=>(t=e!=null?Pt(Dt(e)):{},Ue(r||!e||!e.__esModule?ie(t,"default",{value:e,enumerable:!0}):t,e)),Lt=e=>Ue(ie({},"__esModule",{value:!0}),e);var ui={};De(ui,{Features:()=>R.Features,Instrumentation:()=>Ie,Polyfills:()=>R.Polyfills,__unstable__loadDesignSystem:()=>Xr,compile:()=>Jr,compileAst:()=>Qr,env:()=>ne,loadModule:()=>Pe,normalizePath:()=>de,optimize:()=>oi,toSourceMap:()=>si});module.exports=Lt(ui);var Rt=T(require("module")),Ot=require("url");var ne={};De(ne,{DEBUG:()=>he});var he=Kt(process.env.DEBUG);function Kt(e){if(typeof e=="boolean")return e;if(e===void 0)return!1;if(e==="true"||e==="1")return!0;if(e==="false"||e==="0")return!1;if(e==="*")return!0;let r=e.split(",").map(t=>t.split(":")[0]);return r.includes("-tailwindcss")?!1:!!r.includes("tailwindcss")}var F=T(require("enhanced-resolve")),At=require("jiti"),me=T(require("fs")),Oe=T(require("fs/promises")),Y=T(require("path")),Ve=require("url"),R=require("tailwindcss");var oe=T(require("fs/promises")),W=T(require("path")),zt=[/import[\s\S]*?['"](.{3,}?)['"]/gi,/import[\s\S]*from[\s\S]*?['"](.{3,}?)['"]/gi,/export[\s\S]*from[\s\S]*?['"](.{3,}?)['"]/gi,/require\(['"`](.+)['"`]\)/gi],Mt=[".js",".cjs",".mjs"],Ft=["",".js",".cjs",".mjs",".ts",".cts",".mts",".jsx",".tsx"],jt=["",".ts",".cts",".mts",".tsx",".js",".cjs",".mjs",".jsx"];async function Wt(e,r){for(let t of r){let i=`${e}${t}`;if((await oe.default.stat(i).catch(()=>null))?.isFile())return i}for(let t of r){let i=`${e}/index${t}`;if(await oe.default.access(i).then(()=>!0,()=>!1))return i}return null}async function Le(e,r,t,i){let o=Mt.includes(i)?Ft:jt,a=await Wt(W.default.resolve(t,r),o);if(a===null||e.has(a))return;e.add(a),t=W.default.dirname(a),i=W.default.extname(a);let n=await oe.default.readFile(a,"utf-8"),s=[];for(let l of zt)for(let u of n.matchAll(l))u[1].startsWith(".")&&s.push(Le(e,u[1],t,i));await Promise.all(s)}async function Ke(e){let r=new Set;return await Le(r,e,W.default.dirname(e),W.default.extname(e)),Array.from(r)}var Ee=T(require("path"));function B(e){return{kind:"word",value:e}}function Bt(e,r){return{kind:"function",value:e,nodes:r}}function Yt(e){return{kind:"separator",value:e}}function S(e){let r="";for(let t of e)switch(t.kind){case"word":case"separator":{r+=t.value;break}case"function":r+=t.value+"("+S(t.nodes)+")"}return r}var ze=92,Gt=41,Me=58,Fe=44,qt=34,je=61,We=62,Be=60,Ye=10,Ht=40,Zt=39,Qt=47,Ge=32,qe=9;function A(e){e=e.replaceAll(`\r +`,` +`);let r=[],t=[],i=null,o="",a;for(let n=0;n0){let u=B(o);i?i.nodes.push(u):r.push(u),o=""}let l=B(e[n]);i?i.nodes.push(l):r.push(l);break}case Me:case Fe:case je:case We:case Be:case Ye:case Ge:case qe:{if(o.length>0){let c=B(o);i?i.nodes.push(c):r.push(c),o=""}let l=n,u=n+1;for(;u0){let u=B(o);l?.nodes.push(u),o=""}t.length>0?i=t[t.length-1]:i=null;break}default:o+=String.fromCharCode(s)}}return o.length>0&&r.push(B(o)),r}var g=class extends Map{constructor(t){super();this.factory=t}get(t){let i=super.get(t);return i===void 0&&(i=this.factory(t,this),this.set(t,i)),i}};var vi=new Uint8Array(256);var ae=new Uint8Array(256);function y(e,r){let t=0,i=[],o=0,a=e.length,n=r.charCodeAt(0);for(let s=0;s0&&l===ae[t-1]&&t--;break}}return i.push(e.slice(o)),i}var ve=(n=>(n[n.Continue=0]="Continue",n[n.Skip=1]="Skip",n[n.Stop=2]="Stop",n[n.Replace=3]="Replace",n[n.ReplaceSkip=4]="ReplaceSkip",n[n.ReplaceStop=5]="ReplaceStop",n))(ve||{}),w={Continue:{kind:0},Skip:{kind:1},Stop:{kind:2},Replace:e=>({kind:3,nodes:Array.isArray(e)?e:[e]}),ReplaceSkip:e=>({kind:4,nodes:Array.isArray(e)?e:[e]}),ReplaceStop:e=>({kind:5,nodes:Array.isArray(e)?e:[e]})};function v(e,r){typeof r=="function"?He(e,r):He(e,r.enter,r.exit)}function He(e,r=()=>w.Continue,t=()=>w.Continue){let i=[[e,0,null]],o={parent:null,depth:0,path(){let a=[];for(let n=1;n0;){let a=i.length-1,n=i[a],s=n[0],l=n[1],u=n[2];if(l>=s.length){i.pop();continue}if(o.parent=u,o.depth=a,l>=0){let m=s[l],d=r(m,o)??w.Continue;switch(d.kind){case 0:{m.nodes&&m.nodes.length>0&&i.push([m.nodes,0,m]),n[1]=~l;continue}case 2:return;case 1:{n[1]=~l;continue}case 3:{s.splice(l,1,...d.nodes);continue}case 5:{s.splice(l,1,...d.nodes);return}case 4:{s.splice(l,1,...d.nodes),n[1]+=d.nodes.length;continue}default:throw new Error(`Invalid \`WalkAction.${ve[d.kind]??`Unknown(${d.kind})`}\` in enter.`)}}let p=~l,c=s[p],f=t(c,o)??w.Continue;switch(f.kind){case 0:n[1]=p+1;continue;case 2:return;case 3:{s.splice(p,1,...f.nodes),n[1]=p+f.nodes.length;continue}case 5:{s.splice(p,1,...f.nodes);return}case 4:{s.splice(p,1,...f.nodes),n[1]=p+f.nodes.length;continue}default:throw new Error(`Invalid \`WalkAction.${ve[f.kind]??`Unknown(${f.kind})`}\` in exit.`)}}}var Ei=new g(e=>{let r=A(e),t=new Set;return v(r,(i,o)=>{let a=o.parent===null?r:o.parent.nodes??[];if(i.kind==="word"&&(i.value==="+"||i.value==="-"||i.value==="*"||i.value==="/")){let n=a.indexOf(i)??-1;if(n===-1)return;let s=a[n-1];if(s?.kind!=="separator"||s.value!==" ")return;let l=a[n+1];if(l?.kind!=="separator"||l.value!==" ")return;t.add(s),t.add(l)}else i.kind==="separator"&&i.value.length>0&&i.value.trim()===""?(a[0]===i||a[a.length-1]===i)&&t.add(i):i.kind==="separator"&&i.value.trim()===","&&(i.value=",")}),t.size>0&&v(r,i=>{if(t.has(i))return t.delete(i),w.ReplaceSkip([])}),we(r),S(r)});var Ni=new g(e=>{let r=A(e);return r.length===3&&r[0].kind==="word"&&r[0].value==="&"&&r[1].kind==="separator"&&r[1].value===":"&&r[2].kind==="function"&&r[2].value==="is"?S(r[2].nodes):e});function we(e){for(let r of e)switch(r.kind){case"function":{if(r.value==="url"||r.value.endsWith("_url")){r.value=G(r.value);break}if(r.value==="var"||r.value.endsWith("_var")||r.value==="theme"||r.value.endsWith("_theme")){r.value=G(r.value);for(let t=0;t{let r=A(e);return r.length===1&&r[0].kind==="function"&&r[0].value==="var"});function Jt(e){throw new Error(`Unexpected value: ${e}`)}function G(e){return e.replaceAll("_",String.raw`\_`).replaceAll(" ","_")}var Xt=process.env.FEATURES_ENV!=="stable";var P=/[+-]?\d*\.?\d+(?:[eE][+-]?\d+)?/,zi=new RegExp(`^${P.source}$`);var Mi=new RegExp(`^${P.source}%$`);var Fi=new RegExp(`^${P.source}s*/s*${P.source}$`);var er=["cm","mm","Q","in","pc","pt","px","em","ex","ch","rem","lh","rlh","vw","vh","vmin","vmax","vb","vi","svw","svh","lvw","lvh","dvw","dvh","cqw","cqh","cqi","cqb","cqmin","cqmax"],ji=new RegExp(`^${P.source}(${er.join("|")})$`);var tr=["deg","rad","grad","turn"],Wi=new RegExp(`^${P.source}(${tr.join("|")})$`);var Bi=new RegExp(`^${P.source} +${P.source} +${P.source}$`);function C(e){let r=Number(e);return Number.isInteger(r)&&r>=0&&String(r)===String(e)}function q(e,r){if(r===null)return e;let t=Number(r);return Number.isNaN(t)||(r=`${t*100}%`),r==="100%"?e:`color-mix(in oklab, ${e} ${r}, transparent)`}var nr={"--alpha":or,"--spacing":ar,"--theme":lr,theme:sr};function or(e,r,t,...i){let[o,a]=y(t,"/").map(n=>n.trim());if(!o||!a)throw new Error(`The --alpha(\u2026) function requires a color and an alpha value, e.g.: \`--alpha(${o||"var(--my-color)"} / ${a||"50%"})\``);if(i.length>0)throw new Error(`The --alpha(\u2026) function only accepts one argument, e.g.: \`--alpha(${o||"var(--my-color)"} / ${a||"50%"})\``);return q(o,a)}function ar(e,r,t,...i){if(!t)throw new Error("The --spacing(\u2026) function requires an argument, but received none.");if(i.length>0)throw new Error(`The --spacing(\u2026) function only accepts a single argument, but received ${i.length+1}.`);let o=e.theme.resolve(null,["--spacing"]);if(!o)throw new Error("The --spacing(\u2026) function requires that the `--spacing` theme variable exists, but it was not found.");return`calc(${o} * ${t})`}function lr(e,r,t,...i){if(!t.startsWith("--"))throw new Error("The --theme(\u2026) function can only be used with CSS variables from your theme.");let o=!1;t.endsWith(" inline")&&(o=!0,t=t.slice(0,-7)),r.kind==="at-rule"&&(o=!0);let a=e.resolveThemeValue(t,o);if(!a){if(i.length>0)return i.join(", ");throw new Error(`Could not resolve value for theme function: \`theme(${t})\`. Consider checking if the variable name is correct or provide a fallback value to silence this error.`)}if(i.length===0)return a;let n=i.join(", ");if(n==="initial")return a;if(a==="initial")return n;if(a.startsWith("var(")||a.startsWith("theme(")||a.startsWith("--theme(")){let s=A(a);return fr(s,n),S(s)}return a}function sr(e,r,t,...i){t=ur(t);let o=e.resolveThemeValue(t);if(!o&&i.length>0)return i.join(", ");if(!o)throw new Error(`Could not resolve value for theme function: \`theme(${t})\`. Consider checking if the path is correct or provide a fallback value to silence this error.`);return o}var dn=new RegExp(Object.keys(nr).map(e=>`${e}\\(`).join("|"));function ur(e){if(e[0]!=="'"&&e[0]!=='"')return e;let r="",t=e[0];for(let i=1;i{if(t.kind==="function"&&!(t.value!=="var"&&t.value!=="theme"&&t.value!=="--theme"))if(t.nodes.length===1)t.nodes.push({kind:"word",value:`, ${r}`});else{let i=t.nodes[t.nodes.length-1];i.kind==="word"&&i.value==="initial"&&(i.value=r)}})}var pr=/^(?[-+]?(?:\d*\.)?\d+)(?[a-z]+|%)?$/i,Xe=new g(e=>{let r=pr.exec(e);if(!r)return null;let t=r.groups?.value;if(t===void 0)return null;let i=Number(t);if(Number.isNaN(i))return null;let o=r.groups?.unit;return o===void 0?[i,null]:[i,o]});function et(e,r="top",t="right",i="bottom",o="left"){return tt(`${e}-${r}`,`${e}-${t}`,`${e}-${i}`,`${e}-${o}`)}function tt(e="top",r="right",t="bottom",i="left"){return{1:[[e,0],[r,0],[t,0],[i,0]],2:[[e,0],[r,1],[t,0],[i,1]],3:[[e,0],[r,1],[t,2],[i,1]],4:[[e,0],[r,1],[t,2],[i,3]]}}function K(e,r){return{1:[[e,0],[r,0]],2:[[e,0],[r,1]]}}var On={inset:tt(),margin:et("margin"),padding:et("padding"),gap:K("row-gap","column-gap")},Pn={"inset-block":K("top","bottom"),"inset-inline":K("left","right"),"margin-block":K("margin-top","margin-bottom"),"margin-inline":K("margin-left","margin-right"),"padding-block":K("padding-top","padding-bottom"),"padding-inline":K("padding-left","padding-right")};var so=Symbol();var uo=Symbol();var fo=Symbol();var co=Symbol();var po=Symbol();var mo=Symbol();var go=Symbol();var ho=Symbol();var vo=Symbol();var wo=Symbol();var yo=Symbol();var ko=Symbol();var bo=Symbol();var Q=92,se=47,ue=42,at=34,lt=39,Cr=58,fe=59,E=10,ce=13,J=32,X=9,st=123,be=125,Ce=40,ut=41,Sr=91,$r=93,ft=45,xe=64,Tr=33;function te(e,r){let t=r?.from?{file:r.from,code:e}:null;e[0]==="\uFEFF"&&(e=" "+e.slice(1));let i=[],o=[],a=[],n=null,s=null,l="",u="",p=0,c;for(let f=0;f0&&e[k]===d[d.length-1]&&(d=d.slice(0,-1));let U=Ae(l,h);if(!U)throw new Error("Invalid custom property, expected a value");t&&(U.src=[t,x,f],U.dst=[t,x,f]),n?n.nodes.push(U):i.push(U),l=""}else if(m===fe&&l.charCodeAt(0)===xe)s=ee(l),t&&(s.src=[t,p,f],s.dst=[t,p,f]),n?n.nodes.push(s):i.push(s),l="",s=null;else if(m===fe&&u[u.length-1]!==")"){let d=Ae(l);if(!d){if(l.length===0)continue;throw new Error(`Invalid declaration: \`${l.trim()}\``)}t&&(d.src=[t,p,f],d.dst=[t,p,f]),n?n.nodes.push(d):i.push(d),l=""}else if(m===st&&u[u.length-1]!==")")u+="}",s=_(l.trim()),t&&(s.src=[t,p,f],s.dst=[t,p,f]),n&&n.nodes.push(s),a.push(n),n=s,l="",s=null;else if(m===be&&u[u.length-1]!==")"){if(u==="")throw new Error("Missing opening {");if(u=u.slice(0,-1),l.length>0)if(l.charCodeAt(0)===xe)s=ee(l),t&&(s.src=[t,p,f],s.dst=[t,p,f]),n?n.nodes.push(s):i.push(s),l="",s=null;else{let x=l.indexOf(":");if(n){let h=Ae(l,x);if(!h)throw new Error(`Invalid declaration: \`${l.trim()}\``);t&&(h.src=[t,p,f],h.dst=[t,p,f]),n.nodes.push(h)}}let d=a.pop()??null;d===null&&n&&i.push(n),n=d,l="",s=null}else if(m===Ce)u+=")",l+="(";else if(m===ut){if(u[u.length-1]!==")")throw new Error("Missing opening (");u=u.slice(0,-1),l+=")"}else{if(l.length===0&&(m===J||m===E||m===X))continue;l===""&&(p=f),l+=String.fromCharCode(m)}}}if(l.charCodeAt(0)===xe){let f=ee(l);t&&(f.src=[t,p,e.length],f.dst=[t,p,e.length]),i.push(f)}if(u.length>0&&n){if(n.kind==="rule")throw new Error(`Missing closing } at ${n.selector}`);if(n.kind==="at-rule")throw new Error(`Missing closing } at ${n.name} ${n.params}`)}return o.length>0?o.concat(i):i}function ee(e,r=[]){let t=e,i="";for(let o=5;o{if(C(e.value))return e.value}),b=M(e=>{if(C(e.value))return`${e.value}%`}),I=M(e=>{if(C(e.value))return`${e.value}px`}),dt=M(e=>{if(C(e.value))return`${e.value}ms`}),pe=M(e=>{if(C(e.value))return`${e.value}deg`}),Or=M(e=>{if(e.fraction===null)return;let[r,t]=y(e.fraction,"/");if(!(!C(r)||!C(t)))return e.fraction}),mt=M(e=>{if(C(Number(e.value)))return`repeat(${e.value}, minmax(0, 1fr))`}),Pr={accentColor:({theme:e})=>e("colors"),animation:{none:"none",spin:"spin 1s linear infinite",ping:"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite",pulse:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",bounce:"bounce 1s infinite"},aria:{busy:'busy="true"',checked:'checked="true"',disabled:'disabled="true"',expanded:'expanded="true"',hidden:'hidden="true"',pressed:'pressed="true"',readonly:'readonly="true"',required:'required="true"',selected:'selected="true"'},aspectRatio:{auto:"auto",square:"1 / 1",video:"16 / 9",...Or},backdropBlur:({theme:e})=>e("blur"),backdropBrightness:({theme:e})=>({...e("brightness"),...b}),backdropContrast:({theme:e})=>({...e("contrast"),...b}),backdropGrayscale:({theme:e})=>({...e("grayscale"),...b}),backdropHueRotate:({theme:e})=>({...e("hueRotate"),...pe}),backdropInvert:({theme:e})=>({...e("invert"),...b}),backdropOpacity:({theme:e})=>({...e("opacity"),...b}),backdropSaturate:({theme:e})=>({...e("saturate"),...b}),backdropSepia:({theme:e})=>({...e("sepia"),...b}),backgroundColor:({theme:e})=>e("colors"),backgroundImage:{none:"none","gradient-to-t":"linear-gradient(to top, var(--tw-gradient-stops))","gradient-to-tr":"linear-gradient(to top right, var(--tw-gradient-stops))","gradient-to-r":"linear-gradient(to right, var(--tw-gradient-stops))","gradient-to-br":"linear-gradient(to bottom right, var(--tw-gradient-stops))","gradient-to-b":"linear-gradient(to bottom, var(--tw-gradient-stops))","gradient-to-bl":"linear-gradient(to bottom left, var(--tw-gradient-stops))","gradient-to-l":"linear-gradient(to left, var(--tw-gradient-stops))","gradient-to-tl":"linear-gradient(to top left, var(--tw-gradient-stops))"},backgroundOpacity:({theme:e})=>e("opacity"),backgroundPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},backgroundSize:{auto:"auto",cover:"cover",contain:"contain"},blur:{0:"0",none:"",sm:"4px",DEFAULT:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},borderColor:({theme:e})=>({DEFAULT:"currentcolor",...e("colors")}),borderOpacity:({theme:e})=>e("opacity"),borderRadius:{none:"0px",sm:"0.125rem",DEFAULT:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},borderSpacing:({theme:e})=>e("spacing"),borderWidth:{DEFAULT:"1px",0:"0px",2:"2px",4:"4px",8:"8px",...I},boxShadow:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",DEFAULT:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",none:"none"},boxShadowColor:({theme:e})=>e("colors"),brightness:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",200:"2",...b},caretColor:({theme:e})=>e("colors"),colors:()=>({...Te}),columns:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12","3xs":"16rem","2xs":"18rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",...N},container:{},content:{none:"none"},contrast:{0:"0",50:".5",75:".75",100:"1",125:"1.25",150:"1.5",200:"2",...b},cursor:{auto:"auto",default:"default",pointer:"pointer",wait:"wait",text:"text",move:"move",help:"help","not-allowed":"not-allowed",none:"none","context-menu":"context-menu",progress:"progress",cell:"cell",crosshair:"crosshair","vertical-text":"vertical-text",alias:"alias",copy:"copy","no-drop":"no-drop",grab:"grab",grabbing:"grabbing","all-scroll":"all-scroll","col-resize":"col-resize","row-resize":"row-resize","n-resize":"n-resize","e-resize":"e-resize","s-resize":"s-resize","w-resize":"w-resize","ne-resize":"ne-resize","nw-resize":"nw-resize","se-resize":"se-resize","sw-resize":"sw-resize","ew-resize":"ew-resize","ns-resize":"ns-resize","nesw-resize":"nesw-resize","nwse-resize":"nwse-resize","zoom-in":"zoom-in","zoom-out":"zoom-out"},divideColor:({theme:e})=>e("borderColor"),divideOpacity:({theme:e})=>e("borderOpacity"),divideWidth:({theme:e})=>({...e("borderWidth"),...I}),dropShadow:{sm:"0 1px 1px rgb(0 0 0 / 0.05)",DEFAULT:["0 1px 2px rgb(0 0 0 / 0.1)","0 1px 1px rgb(0 0 0 / 0.06)"],md:["0 4px 3px rgb(0 0 0 / 0.07)","0 2px 2px rgb(0 0 0 / 0.06)"],lg:["0 10px 8px rgb(0 0 0 / 0.04)","0 4px 3px rgb(0 0 0 / 0.1)"],xl:["0 20px 13px rgb(0 0 0 / 0.03)","0 8px 5px rgb(0 0 0 / 0.08)"],"2xl":"0 25px 25px rgb(0 0 0 / 0.15)",none:"0 0 #0000"},fill:({theme:e})=>e("colors"),flex:{1:"1 1 0%",auto:"1 1 auto",initial:"0 1 auto",none:"none"},flexBasis:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",...e("spacing")}),flexGrow:{0:"0",DEFAULT:"1",...N},flexShrink:{0:"0",DEFAULT:"1",...N},fontFamily:{sans:["ui-sans-serif","system-ui","sans-serif",'"Apple Color Emoji"','"Segoe UI Emoji"','"Segoe UI Symbol"','"Noto Color Emoji"'],serif:["ui-serif","Georgia","Cambria",'"Times New Roman"',"Times","serif"],mono:["ui-monospace","SFMono-Regular","Menlo","Monaco","Consolas",'"Liberation Mono"','"Courier New"',"monospace"]},fontSize:{xs:["0.75rem",{lineHeight:"1rem"}],sm:["0.875rem",{lineHeight:"1.25rem"}],base:["1rem",{lineHeight:"1.5rem"}],lg:["1.125rem",{lineHeight:"1.75rem"}],xl:["1.25rem",{lineHeight:"1.75rem"}],"2xl":["1.5rem",{lineHeight:"2rem"}],"3xl":["1.875rem",{lineHeight:"2.25rem"}],"4xl":["2.25rem",{lineHeight:"2.5rem"}],"5xl":["3rem",{lineHeight:"1"}],"6xl":["3.75rem",{lineHeight:"1"}],"7xl":["4.5rem",{lineHeight:"1"}],"8xl":["6rem",{lineHeight:"1"}],"9xl":["8rem",{lineHeight:"1"}]},fontWeight:{thin:"100",extralight:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},gap:({theme:e})=>e("spacing"),gradientColorStops:({theme:e})=>e("colors"),gradientColorStopPositions:{"0%":"0%","5%":"5%","10%":"10%","15%":"15%","20%":"20%","25%":"25%","30%":"30%","35%":"35%","40%":"40%","45%":"45%","50%":"50%","55%":"55%","60%":"60%","65%":"65%","70%":"70%","75%":"75%","80%":"80%","85%":"85%","90%":"90%","95%":"95%","100%":"100%",...b},grayscale:{0:"0",DEFAULT:"100%",...b},gridAutoColumns:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridAutoRows:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridColumn:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridColumnEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...N},gridColumnStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...N},gridRow:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridRowEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...N},gridRowStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...N},gridTemplateColumns:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))",...mt},gridTemplateRows:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))",...mt},height:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),hueRotate:{0:"0deg",15:"15deg",30:"30deg",60:"60deg",90:"90deg",180:"180deg",...pe},inset:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%",...e("spacing")}),invert:{0:"0",DEFAULT:"100%",...b},keyframes:{spin:{to:{transform:"rotate(360deg)"}},ping:{"75%, 100%":{transform:"scale(2)",opacity:"0"}},pulse:{"50%":{opacity:".5"}},bounce:{"0%, 100%":{transform:"translateY(-25%)",animationTimingFunction:"cubic-bezier(0.8,0,1,1)"},"50%":{transform:"none",animationTimingFunction:"cubic-bezier(0,0,0.2,1)"}}},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeight:{none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},listStyleType:{none:"none",disc:"disc",decimal:"decimal"},listStyleImage:{none:"none"},margin:({theme:e})=>({auto:"auto",...e("spacing")}),lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",...N},maxHeight:({theme:e})=>({none:"none",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),maxWidth:({theme:e})=>({none:"none",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",prose:"65ch",...e("spacing")}),minHeight:({theme:e})=>({full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),minWidth:({theme:e})=>({full:"100%",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),objectPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},opacity:{0:"0",5:"0.05",10:"0.1",15:"0.15",20:"0.2",25:"0.25",30:"0.3",35:"0.35",40:"0.4",45:"0.45",50:"0.5",55:"0.55",60:"0.6",65:"0.65",70:"0.7",75:"0.75",80:"0.8",85:"0.85",90:"0.9",95:"0.95",100:"1",...b},order:{first:"-9999",last:"9999",none:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",...N},outlineColor:({theme:e})=>e("colors"),outlineOffset:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...I},outlineWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...I},padding:({theme:e})=>e("spacing"),placeholderColor:({theme:e})=>e("colors"),placeholderOpacity:({theme:e})=>e("opacity"),ringColor:({theme:e})=>({DEFAULT:"currentcolor",...e("colors")}),ringOffsetColor:({theme:e})=>e("colors"),ringOffsetWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...I},ringOpacity:({theme:e})=>({DEFAULT:"0.5",...e("opacity")}),ringWidth:{DEFAULT:"3px",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...I},rotate:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",45:"45deg",90:"90deg",180:"180deg",...pe},saturate:{0:"0",50:".5",100:"1",150:"1.5",200:"2",...b},scale:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",...b},screens:{sm:"40rem",md:"48rem",lg:"64rem",xl:"80rem","2xl":"96rem"},scrollMargin:({theme:e})=>e("spacing"),scrollPadding:({theme:e})=>e("spacing"),sepia:{0:"0",DEFAULT:"100%",...b},skew:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",...pe},space:({theme:e})=>e("spacing"),spacing:{px:"1px",0:"0px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},stroke:({theme:e})=>({none:"none",...e("colors")}),strokeWidth:{0:"0",1:"1",2:"2",...N},supports:{},data:{},textColor:({theme:e})=>e("colors"),textDecorationColor:({theme:e})=>e("colors"),textDecorationThickness:{auto:"auto","from-font":"from-font",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...I},textIndent:({theme:e})=>e("spacing"),textOpacity:({theme:e})=>e("opacity"),textUnderlineOffset:{auto:"auto",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...I},transformOrigin:{center:"center",top:"top","top-right":"top right",right:"right","bottom-right":"bottom right",bottom:"bottom","bottom-left":"bottom left",left:"left","top-left":"top left"},transitionDelay:{0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms",...dt},transitionDuration:{DEFAULT:"150ms",0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms",...dt},transitionProperty:{none:"none",all:"all",DEFAULT:"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",colors:"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke",opacity:"opacity",shadow:"box-shadow",transform:"transform"},transitionTimingFunction:{DEFAULT:"cubic-bezier(0.4, 0, 0.2, 1)",linear:"linear",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)","in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},translate:({theme:e})=>({"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%",...e("spacing")}),size:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),width:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",screen:"100vw",svw:"100svw",lvw:"100lvw",dvw:"100dvw",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),willChange:{auto:"auto",scroll:"scroll-position",contents:"contents",transform:"transform"},zIndex:{auto:"auto",0:"0",10:"10",20:"20",30:"30",40:"40",50:"50",...N}};var Ir=64;function L(e,r=[]){return{kind:"rule",selector:e,nodes:r}}function $(e,r="",t=[]){return{kind:"at-rule",name:e,params:r,nodes:t}}function _(e,r=[]){return e.charCodeAt(0)===Ir?ee(e,r):L(e,r)}function V(e,r,t=!1){return{kind:"declaration",property:e,value:r,important:t}}function $e(e){return{kind:"comment",value:e}}function z(e,r){let t=0,i={file:null,code:""};function o(n,s=0){let l="",u=" ".repeat(s);if(n.kind==="declaration"){if(l+=`${u}${n.property}: ${n.value}${n.important?" !important":""}; +`,r){t+=u.length;let p=t;t+=n.property.length,t+=2,t+=n.value?.length??0,n.important&&(t+=11);let c=t;t+=2,n.dst=[i,p,c]}}else if(n.kind==="rule"){if(l+=`${u}${n.selector} { +`,r){t+=u.length;let p=t;t+=n.selector.length,t+=1;let c=t;n.dst=[i,p,c],t+=2}for(let p of n.nodes)l+=o(p,s+1);l+=`${u}} +`,r&&(t+=u.length,t+=2)}else if(n.kind==="at-rule"){if(n.nodes.length===0){let p=`${u}${n.name} ${n.params}; +`;if(r){t+=u.length;let c=t;t+=n.name.length,t+=1,t+=n.params.length;let f=t;t+=2,n.dst=[i,c,f]}return p}if(l+=`${u}${n.name}${n.params?` ${n.params} `:" "}{ +`,r){t+=u.length;let p=t;t+=n.name.length,n.params&&(t+=1,t+=n.params.length),t+=1;let c=t;n.dst=[i,p,c],t+=2}for(let p of n.nodes)l+=o(p,s+1);l+=`${u}} +`,r&&(t+=u.length,t+=2)}else if(n.kind==="comment"){if(l+=`${u}/*${n.value}*/ +`,r){t+=u.length;let p=t;t+=2+n.value.length+2;let c=t;n.dst=[i,p,c],t+=1}}else if(n.kind==="context"||n.kind==="at-root")return"";return l}let a="";for(let n of e)a+=o(n,0);return i.code=a,a}function Dr(e,r){if(typeof e!="string")throw new TypeError("expected path to be a string");if(e==="\\"||e==="/")return"/";var t=e.length;if(t<=1)return e;var i="";if(t>4&&e[3]==="\\"){var o=e[2];(o==="?"||o===".")&&e.slice(0,2)==="\\\\"&&(e=e.slice(2),i="//")}var a=e.split(/[/\\]+/);return r!==!1&&a[a.length-1]===""&&a.pop(),i+a.join("/")}function de(e){let r=Dr(e);return e.startsWith("\\\\")&&r.startsWith("/")&&!r.startsWith("//")?`/${r}`:r}var Ne=/(?[\w-]+\([^)]*\)|"[^"]*"|'[^']*'|[^,]\S*[^,])\s*(?:\s(?\w[^,]+))?(?:,|$)/g,Fr=/(?Lr.test(e),Br=e=>Kr.test(e);async function ht({css:e,base:r,root:t}){if(!e.includes("url(")&&!e.includes("image-set("))return e;let i=te(e),o=[];function a(n){if(n[0]==="/")return n;let s=Ee.posix.join(de(r),n),l=Ee.posix.relative(de(t),s);return l.startsWith(".")||(l="./"+l),l}return v(i,n=>{if(n.kind!=="declaration"||!n.value)return;let s=Ne.test(n.value),l=gt.test(n.value);if(s||l){let u=l?Yr:vt;o.push(u(n.value,a).then(p=>{n.value=p}))}}),o.length&&await Promise.all(o),z(i)}function vt(e,r){return yt(e,Ne,async t=>{let[i,o]=t;return await wt(o.trim(),i,r)})}async function Yr(e,r){return await yt(e,gt,async t=>{let[,i]=t;return await qr(i,async({url:a})=>Ne.test(a)?await vt(a,r):Ur.test(a)?a:await wt(a,a,r))})}async function wt(e,r,t,i="url"){let o="",a=e[0];if((a==='"'||a==="'")&&(o=a,e=e.slice(1,-1)),Gr(e))return r;let n=await t(e);return o===""&&n!==encodeURI(n)&&(o='"'),o==="'"&&n.includes("'")&&(o='"'),o==='"'&&n.includes('"')&&(n=n.replace(Fr,'\\"')),`${i}(${o}${n}${o})`}function Gr(e,r){return Br(e)||Wr(e)||!e[0].match(/[\.a-zA-Z0-9_]/)||zr.test(e)}function qr(e,r){return Promise.all(Hr(e).map(async({url:t,descriptor:i})=>({url:await r({url:t,descriptor:i}),descriptor:i}))).then(Zr)}function Hr(e){let r=e.trim().replace(jr," ").replace(/\r?\n/,"").replace(/,\s+/,", ").replaceAll(/\s+/g," ").matchAll(Mr);return Array.from(r,({groups:t})=>({url:t?.url?.trim()??"",descriptor:t?.descriptor?.trim()??""})).filter(({url:t})=>!!t)}function Zr(e){return e.map(({url:r,descriptor:t})=>r+(t?` ${t}`:"")).join(", ")}async function yt(e,r,t){let i,o=e,a="";for(;i=r.exec(o);)a+=o.slice(0,i.index),a+=await t(i),o=o.slice(i.index+i[0].length);return a+=o,a}var ni={};function Ct({base:e,from:r,polyfills:t,onDependency:i,shouldRewriteUrls:o,customCssResolver:a,customJsResolver:n}){return{base:e,polyfills:t,from:r,async loadModule(s,l){return Pe(s,l,i,n)},async loadStylesheet(s,l){let u=await $t(s,l,i,a);return o&&(u.content=await ht({css:u.content,root:e,base:u.base})),u}}}async function St(e,r){if(e.root&&e.root!=="none"){let t=/[*{]/,i=[];for(let a of e.root.pattern.split("/")){if(t.test(a))break;i.push(a)}if(!await Oe.default.stat(Y.default.resolve(r,i.join("/"))).then(a=>a.isDirectory()).catch(()=>!1))throw new Error(`The \`source(${e.root.pattern})\` does not exist`)}}async function Qr(e,r){let t=await(0,R.compileAst)(e,Ct(r));return await St(t,r.base),t}async function Jr(e,r){let t=await(0,R.compile)(e,Ct(r));return await St(t,r.base),t}async function Xr(e,{base:r}){return(0,R.__unstable__loadDesignSystem)(e,{base:r,async loadModule(t,i){return Pe(t,i,()=>{})},async loadStylesheet(t,i){return $t(t,i,()=>{})}})}async function Pe(e,r,t,i){if(e[0]!=="."){let s=await xt(e,r,i);if(!s)throw new Error(`Could not resolve '${e}' from '${r}'`);let l=await bt((0,Ve.pathToFileURL)(s).href);return{path:s,base:Y.default.dirname(s),module:l.default??l}}let o=await xt(e,r,i);if(!o)throw new Error(`Could not resolve '${e}' from '${r}'`);let[a,n]=await Promise.all([bt((0,Ve.pathToFileURL)(o).href+"?id="+Date.now()),Ke(o)]);for(let s of n)t(s);return{path:o,base:Y.default.dirname(o),module:a.default??a}}async function $t(e,r,t,i){let o=await ti(e,r,i);if(!o)throw new Error(`Could not resolve '${e}' from '${r}'`);if(t(o),typeof globalThis.__tw_readFile=="function"){let n=await globalThis.__tw_readFile(o,"utf-8");if(n)return{path:o,base:Y.default.dirname(o),content:n}}let a=await Oe.default.readFile(o,"utf-8");return{path:o,base:Y.default.dirname(o),content:a}}var kt=null;async function bt(e){if(typeof globalThis.__tw_load=="function"){let r=await globalThis.__tw_load(e);if(r)return r}try{return await import(e)}catch{return kt??=(0,At.createJiti)(ni.url,{moduleCache:!1,fsCache:!1}),await kt.import(e)}}var _e=["node_modules",...process.env.NODE_PATH?[process.env.NODE_PATH]:[]],ei=F.default.ResolverFactory.createResolver({fileSystem:new F.default.CachedInputFileSystem(me.default,4e3),useSyncFileSystemCalls:!0,extensions:[".css"],mainFields:["style"],conditionNames:["style"],modules:_e});async function ti(e,r,t){if(typeof globalThis.__tw_resolve=="function"){let i=globalThis.__tw_resolve(e,r);if(i)return Promise.resolve(i)}if(t){let i=await t(e,r);if(i)return i}return Re(ei,e,r)}var ri=F.default.ResolverFactory.createResolver({fileSystem:new F.default.CachedInputFileSystem(me.default,4e3),useSyncFileSystemCalls:!0,extensions:[".js",".json",".node",".ts"],conditionNames:["node","import"],modules:_e}),ii=F.default.ResolverFactory.createResolver({fileSystem:new F.default.CachedInputFileSystem(me.default,4e3),useSyncFileSystemCalls:!0,extensions:[".js",".json",".node",".ts"],conditionNames:["node","require"],modules:_e});async function xt(e,r,t){if(typeof globalThis.__tw_resolve=="function"){let i=globalThis.__tw_resolve(e,r);if(i)return Promise.resolve(i)}if(t){let i=await t(e,r);if(i)return i}return Re(ri,e,r).catch(()=>Re(ii,e,r))}function Re(e,r,t){return new Promise((i,o)=>e.resolve({},t,r,{},(a,n)=>{if(a)return o(a);i(n)}))}Symbol.dispose??=Symbol("Symbol.dispose");Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");var Ie=class{constructor(r=t=>void process.stderr.write(`${t} +`)){this.defaultFlush=r}#r=new g(()=>({value:0}));#t=new g(()=>({value:0n}));#e=[];hit(r){this.#r.get(r).value++}start(r){let t=this.#e.map(o=>o.label).join("//"),i=`${t}${t.length===0?"":"//"}${r}`;this.#r.get(i).value++,this.#t.get(i),this.#e.push({id:i,label:r,namespace:t,value:process.hrtime.bigint()})}end(r){let t=process.hrtime.bigint();if(this.#e[this.#e.length-1].label!==r)throw new Error(`Mismatched timer label: \`${r}\`, expected \`${this.#e[this.#e.length-1].label}\``);let i=this.#e.pop(),o=t-i.value;this.#t.get(i.id).value+=o}reset(){this.#r.clear(),this.#t.clear(),this.#e.splice(0)}report(r=this.defaultFlush){let t=[],i=!1;for(let n=this.#e.length-1;n>=0;n--)this.end(this.#e[n].label);for(let[n,{value:s}]of this.#r.entries()){if(this.#t.has(n))continue;t.length===0&&(i=!0,t.push("Hits:"));let l=n.split("//").length;t.push(`${" ".repeat(l)}${n} ${ge(Tt(`\xD7 ${s}`))}`)}this.#t.size>0&&i&&t.push(` +Timers:`);let o=-1/0,a=new Map;for(let[n,{value:s}]of this.#t){let l=`${(Number(s)/1e6).toFixed(2)}ms`;a.set(n,l),o=Math.max(o,l.length)}for(let n of this.#t.keys()){let s=n.split("//").length;t.push(`${ge(`[${a.get(n).padStart(o," ")}]`)}${" ".repeat(s-1)}${s===1?" ":ge(" \u21B3 ")}${n.split("//").pop()} ${this.#r.get(n).value===1?"":ge(Tt(`\xD7 ${this.#r.get(n).value}`))}`.trimEnd())}r(` +${t.join(` +`)} +`),this.reset()}[Symbol.dispose](){he&&this.report()}};function ge(e){return`\x1B[2m${e}\x1B[22m`}function Tt(e){return`\x1B[34m${e}\x1B[39m`}var Et=T(require("@jridgewell/remapping")),D=require("lightningcss"),Nt=T(require("magic-string"));function oi(e,{file:r="input.css",minify:t=!1,map:i}={}){function o(l,u){return(0,D.transform)({filename:r,code:l,minify:t,sourceMap:typeof u<"u",inputSourceMap:u,drafts:{customMedia:!0},nonStandard:{deepSelectorCombinator:!0},include:D.Features.Nesting|D.Features.MediaQueries,exclude:D.Features.LogicalProperties|D.Features.DirSelector|D.Features.LightDark,targets:{safari:16<<16|1024,ios_saf:16<<16|1024,firefox:8388608,chrome:7274496},errorRecovery:!0})}let a=o(Buffer.from(e),i);if(i=a.map?.toString(),a.warnings=a.warnings.filter(l=>!/'(deep|slotted|global)' is not recognized as a valid pseudo-/.test(l.message)),a.warnings.length>0){let l=e.split(` +`),u=[`Found ${a.warnings.length} ${a.warnings.length===1?"warning":"warnings"} while optimizing generated CSS:`];for(let[p,c]of a.warnings.entries()){u.push(""),a.warnings.length>1&&u.push(`Issue #${p+1}:`);let f=2,m=Math.max(0,c.loc.line-f-1),d=Math.min(l.length,c.loc.line+f),x=l.slice(m,d).map((h,U)=>m+U+1===c.loc.line?`${re("\u2502")} ${h}`:re(`\u2502 ${h}`));x.splice(c.loc.line-m,0,`${re("\u2506")}${" ".repeat(c.loc.column-1)} ${ai(`${re("^--")} ${c.message}`)}`,`${re("\u2506")}`),u.push(...x)}u.push(""),console.warn(u.join(` +`))}a=o(a.code,i),i=a.map?.toString();let n=a.code.toString(),s=new Nt.default(n);if(s.replaceAll("@media not (","@media not all and ("),i!==void 0&&s.hasChanged()){let l=s.generateMap({source:"original",hires:"boundary"}).toString();i=(0,Et.default)([l,i],()=>null).toString()}return n=s.toString(),{code:n,map:i}}function re(e){return`\x1B[2m${e}\x1B[22m`}function ai(e){return`\x1B[33m${e}\x1B[39m`}var Vt=require("source-map-js");function li(e){let r=new Vt.SourceMapGenerator,t=1,i=new g(o=>({url:o?.url??``,content:o?.content??""}));for(let o of e.mappings){let a=i.get(o.originalPosition?.source??null);r.addMapping({generated:o.generatedPosition,original:o.originalPosition,source:a.url,name:o.name}),r.setSourceContent(a.url,a.content)}return r.toString()}function si(e){let r=typeof e=="string"?e:li(e);return{raw:r,get inline(){let t="";return t+="/*# sourceMappingURL=data:application/json;base64,",t+=Buffer.from(r,"utf-8").toString("base64"),t+=` */ +`,t}}}process.versions.bun||Rt.register?.((0,Ot.pathToFileURL)(require.resolve("@tailwindcss/node/esm-cache-loader")));0&&(module.exports={Features,Instrumentation,Polyfills,__unstable__loadDesignSystem,compile,compileAst,env,loadModule,normalizePath,optimize,toSourceMap}); diff --git a/node_modules/@tailwindcss/node/dist/index.mjs b/node_modules/@tailwindcss/node/dist/index.mjs new file mode 100644 index 0000000..e9bbcfc --- /dev/null +++ b/node_modules/@tailwindcss/node/dist/index.mjs @@ -0,0 +1,18 @@ +var At=Object.defineProperty;var Ct=(e,r)=>{for(var t in r)At(e,t,{get:r[t],enumerable:!0})};import*as ue from"module";import{pathToFileURL as Qr}from"url";var ce={};Ct(ce,{DEBUG:()=>fe});var fe=St(process.env.DEBUG);function St(e){if(typeof e=="boolean")return e;if(e===void 0)return!1;if(e==="true"||e==="1")return!0;if(e==="false"||e==="0")return!1;if(e==="*")return!0;let r=e.split(",").map(t=>t.split(":")[0]);return r.includes("-tailwindcss")?!1:!!r.includes("tailwindcss")}import M from"enhanced-resolve";import{createJiti as Ur}from"jiti";import Ee from"fs";import ht from"fs/promises";import J from"path";import{pathToFileURL as pt}from"url";import{__unstable__loadDesignSystem as Lr,compile as Kr,compileAst as zr,Features as Xs,Polyfills as eu}from"tailwindcss";import pe from"fs/promises";import F from"path";var $t=[/import[\s\S]*?['"](.{3,}?)['"]/gi,/import[\s\S]*from[\s\S]*?['"](.{3,}?)['"]/gi,/export[\s\S]*from[\s\S]*?['"](.{3,}?)['"]/gi,/require\(['"`](.+)['"`]\)/gi],Tt=[".js",".cjs",".mjs"],Et=["",".js",".cjs",".mjs",".ts",".cts",".mts",".jsx",".tsx"],Nt=["",".ts",".cts",".mts",".tsx",".js",".cjs",".mjs",".jsx"];async function Vt(e,r){for(let t of r){let i=`${e}${t}`;if((await pe.stat(i).catch(()=>null))?.isFile())return i}for(let t of r){let i=`${e}/index${t}`;if(await pe.access(i).then(()=>!0,()=>!1))return i}return null}async function Ve(e,r,t,i){let o=Tt.includes(i)?Et:Nt,a=await Vt(F.resolve(t,r),o);if(a===null||e.has(a))return;e.add(a),t=F.dirname(a),i=F.extname(a);let n=await pe.readFile(a,"utf-8"),s=[];for(let l of $t)for(let u of n.matchAll(l))u[1].startsWith(".")&&s.push(Ve(e,u[1],t,i));await Promise.all(s)}async function Re(e){let r=new Set;return await Ve(r,e,F.dirname(e),F.extname(e)),Array.from(r)}import*as Se from"path";function z(e){return{kind:"word",value:e}}function Rt(e,r){return{kind:"function",value:e,nodes:r}}function Ot(e){return{kind:"separator",value:e}}function S(e){let r="";for(let t of e)switch(t.kind){case"word":case"separator":{r+=t.value;break}case"function":r+=t.value+"("+S(t.nodes)+")"}return r}var Oe=92,Pt=41,Pe=58,_e=44,_t=34,Ie=61,De=62,Ue=60,Le=10,It=40,Dt=39,Ut=47,Ke=32,ze=9;function A(e){e=e.replaceAll(`\r +`,` +`);let r=[],t=[],i=null,o="",a;for(let n=0;n0){let u=z(o);i?i.nodes.push(u):r.push(u),o=""}let l=z(e[n]);i?i.nodes.push(l):r.push(l);break}case Pe:case _e:case Ie:case De:case Ue:case Le:case Ke:case ze:{if(o.length>0){let c=z(o);i?i.nodes.push(c):r.push(c),o=""}let l=n,u=n+1;for(;u0){let u=z(o);l?.nodes.push(u),o=""}t.length>0?i=t[t.length-1]:i=null;break}default:o+=String.fromCharCode(s)}}return o.length>0&&r.push(z(o)),r}var g=class extends Map{constructor(t){super();this.factory=t}get(t){let i=super.get(t);return i===void 0&&(i=this.factory(t,this),this.set(t,i)),i}};var li=new Uint8Array(256);var te=new Uint8Array(256);function y(e,r){let t=0,i=[],o=0,a=e.length,n=r.charCodeAt(0);for(let s=0;s0&&l===te[t-1]&&t--;break}}return i.push(e.slice(o)),i}var de=(n=>(n[n.Continue=0]="Continue",n[n.Skip=1]="Skip",n[n.Stop=2]="Stop",n[n.Replace=3]="Replace",n[n.ReplaceSkip=4]="ReplaceSkip",n[n.ReplaceStop=5]="ReplaceStop",n))(de||{}),w={Continue:{kind:0},Skip:{kind:1},Stop:{kind:2},Replace:e=>({kind:3,nodes:Array.isArray(e)?e:[e]}),ReplaceSkip:e=>({kind:4,nodes:Array.isArray(e)?e:[e]}),ReplaceStop:e=>({kind:5,nodes:Array.isArray(e)?e:[e]})};function v(e,r){typeof r=="function"?Me(e,r):Me(e,r.enter,r.exit)}function Me(e,r=()=>w.Continue,t=()=>w.Continue){let i=[[e,0,null]],o={parent:null,depth:0,path(){let a=[];for(let n=1;n0;){let a=i.length-1,n=i[a],s=n[0],l=n[1],u=n[2];if(l>=s.length){i.pop();continue}if(o.parent=u,o.depth=a,l>=0){let m=s[l],d=r(m,o)??w.Continue;switch(d.kind){case 0:{m.nodes&&m.nodes.length>0&&i.push([m.nodes,0,m]),n[1]=~l;continue}case 2:return;case 1:{n[1]=~l;continue}case 3:{s.splice(l,1,...d.nodes);continue}case 5:{s.splice(l,1,...d.nodes);return}case 4:{s.splice(l,1,...d.nodes),n[1]+=d.nodes.length;continue}default:throw new Error(`Invalid \`WalkAction.${de[d.kind]??`Unknown(${d.kind})`}\` in enter.`)}}let p=~l,c=s[p],f=t(c,o)??w.Continue;switch(f.kind){case 0:n[1]=p+1;continue;case 2:return;case 3:{s.splice(p,1,...f.nodes),n[1]=p+f.nodes.length;continue}case 5:{s.splice(p,1,...f.nodes);return}case 4:{s.splice(p,1,...f.nodes),n[1]=p+f.nodes.length;continue}default:throw new Error(`Invalid \`WalkAction.${de[f.kind]??`Unknown(${f.kind})`}\` in exit.`)}}}var wi=new g(e=>{let r=A(e),t=new Set;return v(r,(i,o)=>{let a=o.parent===null?r:o.parent.nodes??[];if(i.kind==="word"&&(i.value==="+"||i.value==="-"||i.value==="*"||i.value==="/")){let n=a.indexOf(i)??-1;if(n===-1)return;let s=a[n-1];if(s?.kind!=="separator"||s.value!==" ")return;let l=a[n+1];if(l?.kind!=="separator"||l.value!==" ")return;t.add(s),t.add(l)}else i.kind==="separator"&&i.value.length>0&&i.value.trim()===""?(a[0]===i||a[a.length-1]===i)&&t.add(i):i.kind==="separator"&&i.value.trim()===","&&(i.value=",")}),t.size>0&&v(r,i=>{if(t.has(i))return t.delete(i),w.ReplaceSkip([])}),me(r),S(r)});var yi=new g(e=>{let r=A(e);return r.length===3&&r[0].kind==="word"&&r[0].value==="&"&&r[1].kind==="separator"&&r[1].value===":"&&r[2].kind==="function"&&r[2].value==="is"?S(r[2].nodes):e});function me(e){for(let r of e)switch(r.kind){case"function":{if(r.value==="url"||r.value.endsWith("_url")){r.value=j(r.value);break}if(r.value==="var"||r.value.endsWith("_var")||r.value==="theme"||r.value.endsWith("_theme")){r.value=j(r.value);for(let t=0;t{let r=A(e);return r.length===1&&r[0].kind==="function"&&r[0].value==="var"});function Lt(e){throw new Error(`Unexpected value: ${e}`)}function j(e){return e.replaceAll("_",String.raw`\_`).replaceAll(" ","_")}var Kt=process.env.FEATURES_ENV!=="stable";var R=/[+-]?\d*\.?\d+(?:[eE][+-]?\d+)?/,Vi=new RegExp(`^${R.source}$`);var Ri=new RegExp(`^${R.source}%$`);var Oi=new RegExp(`^${R.source}s*/s*${R.source}$`);var zt=["cm","mm","Q","in","pc","pt","px","em","ex","ch","rem","lh","rlh","vw","vh","vmin","vmax","vb","vi","svw","svh","lvw","lvh","dvw","dvh","cqw","cqh","cqi","cqb","cqmin","cqmax"],Pi=new RegExp(`^${R.source}(${zt.join("|")})$`);var Mt=["deg","rad","grad","turn"],_i=new RegExp(`^${R.source}(${Mt.join("|")})$`);var Ii=new RegExp(`^${R.source} +${R.source} +${R.source}$`);function C(e){let r=Number(e);return Number.isInteger(r)&&r>=0&&String(r)===String(e)}function W(e,r){if(r===null)return e;let t=Number(r);return Number.isNaN(t)||(r=`${t*100}%`),r==="100%"?e:`color-mix(in oklab, ${e} ${r}, transparent)`}var Wt={"--alpha":Bt,"--spacing":Yt,"--theme":Gt,theme:qt};function Bt(e,r,t,...i){let[o,a]=y(t,"/").map(n=>n.trim());if(!o||!a)throw new Error(`The --alpha(\u2026) function requires a color and an alpha value, e.g.: \`--alpha(${o||"var(--my-color)"} / ${a||"50%"})\``);if(i.length>0)throw new Error(`The --alpha(\u2026) function only accepts one argument, e.g.: \`--alpha(${o||"var(--my-color)"} / ${a||"50%"})\``);return W(o,a)}function Yt(e,r,t,...i){if(!t)throw new Error("The --spacing(\u2026) function requires an argument, but received none.");if(i.length>0)throw new Error(`The --spacing(\u2026) function only accepts a single argument, but received ${i.length+1}.`);let o=e.theme.resolve(null,["--spacing"]);if(!o)throw new Error("The --spacing(\u2026) function requires that the `--spacing` theme variable exists, but it was not found.");return`calc(${o} * ${t})`}function Gt(e,r,t,...i){if(!t.startsWith("--"))throw new Error("The --theme(\u2026) function can only be used with CSS variables from your theme.");let o=!1;t.endsWith(" inline")&&(o=!0,t=t.slice(0,-7)),r.kind==="at-rule"&&(o=!0);let a=e.resolveThemeValue(t,o);if(!a){if(i.length>0)return i.join(", ");throw new Error(`Could not resolve value for theme function: \`theme(${t})\`. Consider checking if the variable name is correct or provide a fallback value to silence this error.`)}if(i.length===0)return a;let n=i.join(", ");if(n==="initial")return a;if(a==="initial")return n;if(a.startsWith("var(")||a.startsWith("theme(")||a.startsWith("--theme(")){let s=A(a);return Zt(s,n),S(s)}return a}function qt(e,r,t,...i){t=Ht(t);let o=e.resolveThemeValue(t);if(!o&&i.length>0)return i.join(", ");if(!o)throw new Error(`Could not resolve value for theme function: \`theme(${t})\`. Consider checking if the path is correct or provide a fallback value to silence this error.`);return o}var rn=new RegExp(Object.keys(Wt).map(e=>`${e}\\(`).join("|"));function Ht(e){if(e[0]!=="'"&&e[0]!=='"')return e;let r="",t=e[0];for(let i=1;i{if(t.kind==="function"&&!(t.value!=="var"&&t.value!=="theme"&&t.value!=="--theme"))if(t.nodes.length===1)t.nodes.push({kind:"word",value:`, ${r}`});else{let i=t.nodes[t.nodes.length-1];i.kind==="word"&&i.value==="initial"&&(i.value=r)}})}var Jt=/^(?[-+]?(?:\d*\.)?\d+)(?[a-z]+|%)?$/i,Be=new g(e=>{let r=Jt.exec(e);if(!r)return null;let t=r.groups?.value;if(t===void 0)return null;let i=Number(t);if(Number.isNaN(i))return null;let o=r.groups?.unit;return o===void 0?[i,null]:[i,o]});function Ye(e,r="top",t="right",i="bottom",o="left"){return Ge(`${e}-${r}`,`${e}-${t}`,`${e}-${i}`,`${e}-${o}`)}function Ge(e="top",r="right",t="bottom",i="left"){return{1:[[e,0],[r,0],[t,0],[i,0]],2:[[e,0],[r,1],[t,0],[i,1]],3:[[e,0],[r,1],[t,2],[i,1]],4:[[e,0],[r,1],[t,2],[i,3]]}}function D(e,r){return{1:[[e,0],[r,0]],2:[[e,0],[r,1]]}}var xn={inset:Ge(),margin:Ye("margin"),padding:Ye("padding"),gap:D("row-gap","column-gap")},An={"inset-block":D("top","bottom"),"inset-inline":D("left","right"),"margin-block":D("margin-top","margin-bottom"),"margin-inline":D("margin-left","margin-right"),"padding-block":D("padding-top","padding-bottom"),"padding-inline":D("padding-left","padding-right")};var Jn=Symbol();var Xn=Symbol();var eo=Symbol();var to=Symbol();var ro=Symbol();var io=Symbol();var no=Symbol();var oo=Symbol();var ao=Symbol();var lo=Symbol();var so=Symbol();var uo=Symbol();var fo=Symbol();var G=92,ie=47,ne=42,Je=34,Xe=39,fr=58,oe=59,T=10,ae=13,q=32,H=9,et=123,ve=125,ke=40,tt=41,cr=91,pr=93,rt=45,we=64,dr=33;function Q(e,r){let t=r?.from?{file:r.from,code:e}:null;e[0]==="\uFEFF"&&(e=" "+e.slice(1));let i=[],o=[],a=[],n=null,s=null,l="",u="",p=0,c;for(let f=0;f0&&e[k]===d[d.length-1]&&(d=d.slice(0,-1));let _=ye(l,h);if(!_)throw new Error("Invalid custom property, expected a value");t&&(_.src=[t,x,f],_.dst=[t,x,f]),n?n.nodes.push(_):i.push(_),l=""}else if(m===oe&&l.charCodeAt(0)===we)s=Z(l),t&&(s.src=[t,p,f],s.dst=[t,p,f]),n?n.nodes.push(s):i.push(s),l="",s=null;else if(m===oe&&u[u.length-1]!==")"){let d=ye(l);if(!d){if(l.length===0)continue;throw new Error(`Invalid declaration: \`${l.trim()}\``)}t&&(d.src=[t,p,f],d.dst=[t,p,f]),n?n.nodes.push(d):i.push(d),l=""}else if(m===et&&u[u.length-1]!==")")u+="}",s=O(l.trim()),t&&(s.src=[t,p,f],s.dst=[t,p,f]),n&&n.nodes.push(s),a.push(n),n=s,l="",s=null;else if(m===ve&&u[u.length-1]!==")"){if(u==="")throw new Error("Missing opening {");if(u=u.slice(0,-1),l.length>0)if(l.charCodeAt(0)===we)s=Z(l),t&&(s.src=[t,p,f],s.dst=[t,p,f]),n?n.nodes.push(s):i.push(s),l="",s=null;else{let x=l.indexOf(":");if(n){let h=ye(l,x);if(!h)throw new Error(`Invalid declaration: \`${l.trim()}\``);t&&(h.src=[t,p,f],h.dst=[t,p,f]),n.nodes.push(h)}}let d=a.pop()??null;d===null&&n&&i.push(n),n=d,l="",s=null}else if(m===ke)u+=")",l+="(";else if(m===tt){if(u[u.length-1]!==")")throw new Error("Missing opening (");u=u.slice(0,-1),l+=")"}else{if(l.length===0&&(m===q||m===T||m===H))continue;l===""&&(p=f),l+=String.fromCharCode(m)}}}if(l.charCodeAt(0)===we){let f=Z(l);t&&(f.src=[t,p,e.length],f.dst=[t,p,e.length]),i.push(f)}if(u.length>0&&n){if(n.kind==="rule")throw new Error(`Missing closing } at ${n.selector}`);if(n.kind==="at-rule")throw new Error(`Missing closing } at ${n.name} ${n.params}`)}return o.length>0?o.concat(i):i}function Z(e,r=[]){let t=e,i="";for(let o=5;o{if(C(e.value))return e.value}),b=L(e=>{if(C(e.value))return`${e.value}%`}),P=L(e=>{if(C(e.value))return`${e.value}px`}),ot=L(e=>{if(C(e.value))return`${e.value}ms`}),le=L(e=>{if(C(e.value))return`${e.value}deg`}),wr=L(e=>{if(e.fraction===null)return;let[r,t]=y(e.fraction,"/");if(!(!C(r)||!C(t)))return e.fraction}),at=L(e=>{if(C(Number(e.value)))return`repeat(${e.value}, minmax(0, 1fr))`}),yr={accentColor:({theme:e})=>e("colors"),animation:{none:"none",spin:"spin 1s linear infinite",ping:"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite",pulse:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",bounce:"bounce 1s infinite"},aria:{busy:'busy="true"',checked:'checked="true"',disabled:'disabled="true"',expanded:'expanded="true"',hidden:'hidden="true"',pressed:'pressed="true"',readonly:'readonly="true"',required:'required="true"',selected:'selected="true"'},aspectRatio:{auto:"auto",square:"1 / 1",video:"16 / 9",...wr},backdropBlur:({theme:e})=>e("blur"),backdropBrightness:({theme:e})=>({...e("brightness"),...b}),backdropContrast:({theme:e})=>({...e("contrast"),...b}),backdropGrayscale:({theme:e})=>({...e("grayscale"),...b}),backdropHueRotate:({theme:e})=>({...e("hueRotate"),...le}),backdropInvert:({theme:e})=>({...e("invert"),...b}),backdropOpacity:({theme:e})=>({...e("opacity"),...b}),backdropSaturate:({theme:e})=>({...e("saturate"),...b}),backdropSepia:({theme:e})=>({...e("sepia"),...b}),backgroundColor:({theme:e})=>e("colors"),backgroundImage:{none:"none","gradient-to-t":"linear-gradient(to top, var(--tw-gradient-stops))","gradient-to-tr":"linear-gradient(to top right, var(--tw-gradient-stops))","gradient-to-r":"linear-gradient(to right, var(--tw-gradient-stops))","gradient-to-br":"linear-gradient(to bottom right, var(--tw-gradient-stops))","gradient-to-b":"linear-gradient(to bottom, var(--tw-gradient-stops))","gradient-to-bl":"linear-gradient(to bottom left, var(--tw-gradient-stops))","gradient-to-l":"linear-gradient(to left, var(--tw-gradient-stops))","gradient-to-tl":"linear-gradient(to top left, var(--tw-gradient-stops))"},backgroundOpacity:({theme:e})=>e("opacity"),backgroundPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},backgroundSize:{auto:"auto",cover:"cover",contain:"contain"},blur:{0:"0",none:"",sm:"4px",DEFAULT:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},borderColor:({theme:e})=>({DEFAULT:"currentcolor",...e("colors")}),borderOpacity:({theme:e})=>e("opacity"),borderRadius:{none:"0px",sm:"0.125rem",DEFAULT:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},borderSpacing:({theme:e})=>e("spacing"),borderWidth:{DEFAULT:"1px",0:"0px",2:"2px",4:"4px",8:"8px",...P},boxShadow:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",DEFAULT:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",none:"none"},boxShadowColor:({theme:e})=>e("colors"),brightness:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",200:"2",...b},caretColor:({theme:e})=>e("colors"),colors:()=>({...Ae}),columns:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12","3xs":"16rem","2xs":"18rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",...E},container:{},content:{none:"none"},contrast:{0:"0",50:".5",75:".75",100:"1",125:"1.25",150:"1.5",200:"2",...b},cursor:{auto:"auto",default:"default",pointer:"pointer",wait:"wait",text:"text",move:"move",help:"help","not-allowed":"not-allowed",none:"none","context-menu":"context-menu",progress:"progress",cell:"cell",crosshair:"crosshair","vertical-text":"vertical-text",alias:"alias",copy:"copy","no-drop":"no-drop",grab:"grab",grabbing:"grabbing","all-scroll":"all-scroll","col-resize":"col-resize","row-resize":"row-resize","n-resize":"n-resize","e-resize":"e-resize","s-resize":"s-resize","w-resize":"w-resize","ne-resize":"ne-resize","nw-resize":"nw-resize","se-resize":"se-resize","sw-resize":"sw-resize","ew-resize":"ew-resize","ns-resize":"ns-resize","nesw-resize":"nesw-resize","nwse-resize":"nwse-resize","zoom-in":"zoom-in","zoom-out":"zoom-out"},divideColor:({theme:e})=>e("borderColor"),divideOpacity:({theme:e})=>e("borderOpacity"),divideWidth:({theme:e})=>({...e("borderWidth"),...P}),dropShadow:{sm:"0 1px 1px rgb(0 0 0 / 0.05)",DEFAULT:["0 1px 2px rgb(0 0 0 / 0.1)","0 1px 1px rgb(0 0 0 / 0.06)"],md:["0 4px 3px rgb(0 0 0 / 0.07)","0 2px 2px rgb(0 0 0 / 0.06)"],lg:["0 10px 8px rgb(0 0 0 / 0.04)","0 4px 3px rgb(0 0 0 / 0.1)"],xl:["0 20px 13px rgb(0 0 0 / 0.03)","0 8px 5px rgb(0 0 0 / 0.08)"],"2xl":"0 25px 25px rgb(0 0 0 / 0.15)",none:"0 0 #0000"},fill:({theme:e})=>e("colors"),flex:{1:"1 1 0%",auto:"1 1 auto",initial:"0 1 auto",none:"none"},flexBasis:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",...e("spacing")}),flexGrow:{0:"0",DEFAULT:"1",...E},flexShrink:{0:"0",DEFAULT:"1",...E},fontFamily:{sans:["ui-sans-serif","system-ui","sans-serif",'"Apple Color Emoji"','"Segoe UI Emoji"','"Segoe UI Symbol"','"Noto Color Emoji"'],serif:["ui-serif","Georgia","Cambria",'"Times New Roman"',"Times","serif"],mono:["ui-monospace","SFMono-Regular","Menlo","Monaco","Consolas",'"Liberation Mono"','"Courier New"',"monospace"]},fontSize:{xs:["0.75rem",{lineHeight:"1rem"}],sm:["0.875rem",{lineHeight:"1.25rem"}],base:["1rem",{lineHeight:"1.5rem"}],lg:["1.125rem",{lineHeight:"1.75rem"}],xl:["1.25rem",{lineHeight:"1.75rem"}],"2xl":["1.5rem",{lineHeight:"2rem"}],"3xl":["1.875rem",{lineHeight:"2.25rem"}],"4xl":["2.25rem",{lineHeight:"2.5rem"}],"5xl":["3rem",{lineHeight:"1"}],"6xl":["3.75rem",{lineHeight:"1"}],"7xl":["4.5rem",{lineHeight:"1"}],"8xl":["6rem",{lineHeight:"1"}],"9xl":["8rem",{lineHeight:"1"}]},fontWeight:{thin:"100",extralight:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},gap:({theme:e})=>e("spacing"),gradientColorStops:({theme:e})=>e("colors"),gradientColorStopPositions:{"0%":"0%","5%":"5%","10%":"10%","15%":"15%","20%":"20%","25%":"25%","30%":"30%","35%":"35%","40%":"40%","45%":"45%","50%":"50%","55%":"55%","60%":"60%","65%":"65%","70%":"70%","75%":"75%","80%":"80%","85%":"85%","90%":"90%","95%":"95%","100%":"100%",...b},grayscale:{0:"0",DEFAULT:"100%",...b},gridAutoColumns:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridAutoRows:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridColumn:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridColumnEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...E},gridColumnStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...E},gridRow:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridRowEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...E},gridRowStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...E},gridTemplateColumns:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))",...at},gridTemplateRows:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))",...at},height:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),hueRotate:{0:"0deg",15:"15deg",30:"30deg",60:"60deg",90:"90deg",180:"180deg",...le},inset:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%",...e("spacing")}),invert:{0:"0",DEFAULT:"100%",...b},keyframes:{spin:{to:{transform:"rotate(360deg)"}},ping:{"75%, 100%":{transform:"scale(2)",opacity:"0"}},pulse:{"50%":{opacity:".5"}},bounce:{"0%, 100%":{transform:"translateY(-25%)",animationTimingFunction:"cubic-bezier(0.8,0,1,1)"},"50%":{transform:"none",animationTimingFunction:"cubic-bezier(0,0,0.2,1)"}}},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeight:{none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},listStyleType:{none:"none",disc:"disc",decimal:"decimal"},listStyleImage:{none:"none"},margin:({theme:e})=>({auto:"auto",...e("spacing")}),lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",...E},maxHeight:({theme:e})=>({none:"none",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),maxWidth:({theme:e})=>({none:"none",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",prose:"65ch",...e("spacing")}),minHeight:({theme:e})=>({full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),minWidth:({theme:e})=>({full:"100%",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),objectPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},opacity:{0:"0",5:"0.05",10:"0.1",15:"0.15",20:"0.2",25:"0.25",30:"0.3",35:"0.35",40:"0.4",45:"0.45",50:"0.5",55:"0.55",60:"0.6",65:"0.65",70:"0.7",75:"0.75",80:"0.8",85:"0.85",90:"0.9",95:"0.95",100:"1",...b},order:{first:"-9999",last:"9999",none:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",...E},outlineColor:({theme:e})=>e("colors"),outlineOffset:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...P},outlineWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...P},padding:({theme:e})=>e("spacing"),placeholderColor:({theme:e})=>e("colors"),placeholderOpacity:({theme:e})=>e("opacity"),ringColor:({theme:e})=>({DEFAULT:"currentcolor",...e("colors")}),ringOffsetColor:({theme:e})=>e("colors"),ringOffsetWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...P},ringOpacity:({theme:e})=>({DEFAULT:"0.5",...e("opacity")}),ringWidth:{DEFAULT:"3px",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...P},rotate:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",45:"45deg",90:"90deg",180:"180deg",...le},saturate:{0:"0",50:".5",100:"1",150:"1.5",200:"2",...b},scale:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",...b},screens:{sm:"40rem",md:"48rem",lg:"64rem",xl:"80rem","2xl":"96rem"},scrollMargin:({theme:e})=>e("spacing"),scrollPadding:({theme:e})=>e("spacing"),sepia:{0:"0",DEFAULT:"100%",...b},skew:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",...le},space:({theme:e})=>e("spacing"),spacing:{px:"1px",0:"0px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},stroke:({theme:e})=>({none:"none",...e("colors")}),strokeWidth:{0:"0",1:"1",2:"2",...E},supports:{},data:{},textColor:({theme:e})=>e("colors"),textDecorationColor:({theme:e})=>e("colors"),textDecorationThickness:{auto:"auto","from-font":"from-font",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...P},textIndent:({theme:e})=>e("spacing"),textOpacity:({theme:e})=>e("opacity"),textUnderlineOffset:{auto:"auto",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",...P},transformOrigin:{center:"center",top:"top","top-right":"top right",right:"right","bottom-right":"bottom right",bottom:"bottom","bottom-left":"bottom left",left:"left","top-left":"top left"},transitionDelay:{0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms",...ot},transitionDuration:{DEFAULT:"150ms",0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms",...ot},transitionProperty:{none:"none",all:"all",DEFAULT:"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",colors:"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke",opacity:"opacity",shadow:"box-shadow",transform:"transform"},transitionTimingFunction:{DEFAULT:"cubic-bezier(0.4, 0, 0.2, 1)",linear:"linear",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)","in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},translate:({theme:e})=>({"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%",...e("spacing")}),size:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),width:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",screen:"100vw",svw:"100svw",lvw:"100lvw",dvw:"100dvw",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),willChange:{auto:"auto",scroll:"scroll-position",contents:"contents",transform:"transform"},zIndex:{auto:"auto",0:"0",10:"10",20:"20",30:"30",40:"40",50:"50",...E}};var br=64;function I(e,r=[]){return{kind:"rule",selector:e,nodes:r}}function $(e,r="",t=[]){return{kind:"at-rule",name:e,params:r,nodes:t}}function O(e,r=[]){return e.charCodeAt(0)===br?Z(e,r):I(e,r)}function N(e,r,t=!1){return{kind:"declaration",property:e,value:r,important:t}}function xe(e){return{kind:"comment",value:e}}function U(e,r){let t=0,i={file:null,code:""};function o(n,s=0){let l="",u=" ".repeat(s);if(n.kind==="declaration"){if(l+=`${u}${n.property}: ${n.value}${n.important?" !important":""}; +`,r){t+=u.length;let p=t;t+=n.property.length,t+=2,t+=n.value?.length??0,n.important&&(t+=11);let c=t;t+=2,n.dst=[i,p,c]}}else if(n.kind==="rule"){if(l+=`${u}${n.selector} { +`,r){t+=u.length;let p=t;t+=n.selector.length,t+=1;let c=t;n.dst=[i,p,c],t+=2}for(let p of n.nodes)l+=o(p,s+1);l+=`${u}} +`,r&&(t+=u.length,t+=2)}else if(n.kind==="at-rule"){if(n.nodes.length===0){let p=`${u}${n.name} ${n.params}; +`;if(r){t+=u.length;let c=t;t+=n.name.length,t+=1,t+=n.params.length;let f=t;t+=2,n.dst=[i,c,f]}return p}if(l+=`${u}${n.name}${n.params?` ${n.params} `:" "}{ +`,r){t+=u.length;let p=t;t+=n.name.length,n.params&&(t+=1,t+=n.params.length),t+=1;let c=t;n.dst=[i,p,c],t+=2}for(let p of n.nodes)l+=o(p,s+1);l+=`${u}} +`,r&&(t+=u.length,t+=2)}else if(n.kind==="comment"){if(l+=`${u}/*${n.value}*/ +`,r){t+=u.length;let p=t;t+=2+n.value.length+2;let c=t;n.dst=[i,p,c],t+=1}}else if(n.kind==="context"||n.kind==="at-root")return"";return l}let a="";for(let n of e)a+=o(n,0);return i.code=a,a}function xr(e,r){if(typeof e!="string")throw new TypeError("expected path to be a string");if(e==="\\"||e==="/")return"/";var t=e.length;if(t<=1)return e;var i="";if(t>4&&e[3]==="\\"){var o=e[2];(o==="?"||o===".")&&e.slice(0,2)==="\\\\"&&(e=e.slice(2),i="//")}var a=e.split(/[/\\]+/);return r!==!1&&a[a.length-1]===""&&a.pop(),i+a.join("/")}function Ce(e){let r=xr(e);return e.startsWith("\\\\")&&r.startsWith("/")&&!r.startsWith("//")?`/${r}`:r}var $e=/(?[\w-]+\([^)]*\)|"[^"]*"|'[^']*'|[^,]\S*[^,])\s*(?:\s(?\w[^,]+))?(?:,|$)/g,Er=/(?Cr.test(e),Rr=e=>Sr.test(e);async function st({css:e,base:r,root:t}){if(!e.includes("url(")&&!e.includes("image-set("))return e;let i=Q(e),o=[];function a(n){if(n[0]==="/")return n;let s=Se.posix.join(Ce(r),n),l=Se.posix.relative(Ce(t),s);return l.startsWith(".")||(l="./"+l),l}return v(i,n=>{if(n.kind!=="declaration"||!n.value)return;let s=$e.test(n.value),l=lt.test(n.value);if(s||l){let u=l?Or:ut;o.push(u(n.value,a).then(p=>{n.value=p}))}}),o.length&&await Promise.all(o),U(i)}function ut(e,r){return ct(e,$e,async t=>{let[i,o]=t;return await ft(o.trim(),i,r)})}async function Or(e,r){return await ct(e,lt,async t=>{let[,i]=t;return await _r(i,async({url:a})=>$e.test(a)?await ut(a,r):Ar.test(a)?a:await ft(a,a,r))})}async function ft(e,r,t,i="url"){let o="",a=e[0];if((a==='"'||a==="'")&&(o=a,e=e.slice(1,-1)),Pr(e))return r;let n=await t(e);return o===""&&n!==encodeURI(n)&&(o='"'),o==="'"&&n.includes("'")&&(o='"'),o==='"'&&n.includes('"')&&(n=n.replace(Er,'\\"')),`${i}(${o}${n}${o})`}function Pr(e,r){return Rr(e)||Vr(e)||!e[0].match(/[\.a-zA-Z0-9_]/)||$r.test(e)}function _r(e,r){return Promise.all(Ir(e).map(async({url:t,descriptor:i})=>({url:await r({url:t,descriptor:i}),descriptor:i}))).then(Dr)}function Ir(e){let r=e.trim().replace(Nr," ").replace(/\r?\n/,"").replace(/,\s+/,", ").replaceAll(/\s+/g," ").matchAll(Tr);return Array.from(r,({groups:t})=>({url:t?.url?.trim()??"",descriptor:t?.descriptor?.trim()??""})).filter(({url:t})=>!!t)}function Dr(e){return e.map(({url:r,descriptor:t})=>r+(t?` ${t}`:"")).join(", ")}async function ct(e,r,t){let i,o=e,a="";for(;i=r.exec(o);)a+=o.slice(0,i.index),a+=await t(i),o=o.slice(i.index+i[0].length);return a+=o,a}function vt({base:e,from:r,polyfills:t,onDependency:i,shouldRewriteUrls:o,customCssResolver:a,customJsResolver:n}){return{base:e,polyfills:t,from:r,async loadModule(s,l){return yt(s,l,i,n)},async loadStylesheet(s,l){let u=await kt(s,l,i,a);return o&&(u.content=await st({css:u.content,root:e,base:u.base})),u}}}async function wt(e,r){if(e.root&&e.root!=="none"){let t=/[*{]/,i=[];for(let a of e.root.pattern.split("/")){if(t.test(a))break;i.push(a)}if(!await ht.stat(J.resolve(r,i.join("/"))).then(a=>a.isDirectory()).catch(()=>!1))throw new Error(`The \`source(${e.root.pattern})\` does not exist`)}}async function iu(e,r){let t=await zr(e,vt(r));return await wt(t,r.base),t}async function nu(e,r){let t=await Kr(e,vt(r));return await wt(t,r.base),t}async function ou(e,{base:r}){return Lr(e,{base:r,async loadModule(t,i){return yt(t,i,()=>{})},async loadStylesheet(t,i){return kt(t,i,()=>{})}})}async function yt(e,r,t,i){if(e[0]!=="."){let s=await gt(e,r,i);if(!s)throw new Error(`Could not resolve '${e}' from '${r}'`);let l=await mt(pt(s).href);return{path:s,base:J.dirname(s),module:l.default??l}}let o=await gt(e,r,i);if(!o)throw new Error(`Could not resolve '${e}' from '${r}'`);let[a,n]=await Promise.all([mt(pt(o).href+"?id="+Date.now()),Re(o)]);for(let s of n)t(s);return{path:o,base:J.dirname(o),module:a.default??a}}async function kt(e,r,t,i){let o=await Fr(e,r,i);if(!o)throw new Error(`Could not resolve '${e}' from '${r}'`);if(t(o),typeof globalThis.__tw_readFile=="function"){let n=await globalThis.__tw_readFile(o,"utf-8");if(n)return{path:o,base:J.dirname(o),content:n}}let a=await ht.readFile(o,"utf-8");return{path:o,base:J.dirname(o),content:a}}var dt=null;async function mt(e){if(typeof globalThis.__tw_load=="function"){let r=await globalThis.__tw_load(e);if(r)return r}try{return await import(e)}catch{return dt??=Ur(import.meta.url,{moduleCache:!1,fsCache:!1}),await dt.import(e)}}var Ne=["node_modules",...process.env.NODE_PATH?[process.env.NODE_PATH]:[]],Mr=M.ResolverFactory.createResolver({fileSystem:new M.CachedInputFileSystem(Ee,4e3),useSyncFileSystemCalls:!0,extensions:[".css"],mainFields:["style"],conditionNames:["style"],modules:Ne});async function Fr(e,r,t){if(typeof globalThis.__tw_resolve=="function"){let i=globalThis.__tw_resolve(e,r);if(i)return Promise.resolve(i)}if(t){let i=await t(e,r);if(i)return i}return Te(Mr,e,r)}var jr=M.ResolverFactory.createResolver({fileSystem:new M.CachedInputFileSystem(Ee,4e3),useSyncFileSystemCalls:!0,extensions:[".js",".json",".node",".ts"],conditionNames:["node","import"],modules:Ne}),Wr=M.ResolverFactory.createResolver({fileSystem:new M.CachedInputFileSystem(Ee,4e3),useSyncFileSystemCalls:!0,extensions:[".js",".json",".node",".ts"],conditionNames:["node","require"],modules:Ne});async function gt(e,r,t){if(typeof globalThis.__tw_resolve=="function"){let i=globalThis.__tw_resolve(e,r);if(i)return Promise.resolve(i)}if(t){let i=await t(e,r);if(i)return i}return Te(jr,e,r).catch(()=>Te(Wr,e,r))}function Te(e,r,t){return new Promise((i,o)=>e.resolve({},t,r,{},(a,n)=>{if(a)return o(a);i(n)}))}Symbol.dispose??=Symbol("Symbol.dispose");Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");var bt=class{constructor(r=t=>void process.stderr.write(`${t} +`)){this.defaultFlush=r}#r=new g(()=>({value:0}));#t=new g(()=>({value:0n}));#e=[];hit(r){this.#r.get(r).value++}start(r){let t=this.#e.map(o=>o.label).join("//"),i=`${t}${t.length===0?"":"//"}${r}`;this.#r.get(i).value++,this.#t.get(i),this.#e.push({id:i,label:r,namespace:t,value:process.hrtime.bigint()})}end(r){let t=process.hrtime.bigint();if(this.#e[this.#e.length-1].label!==r)throw new Error(`Mismatched timer label: \`${r}\`, expected \`${this.#e[this.#e.length-1].label}\``);let i=this.#e.pop(),o=t-i.value;this.#t.get(i.id).value+=o}reset(){this.#r.clear(),this.#t.clear(),this.#e.splice(0)}report(r=this.defaultFlush){let t=[],i=!1;for(let n=this.#e.length-1;n>=0;n--)this.end(this.#e[n].label);for(let[n,{value:s}]of this.#r.entries()){if(this.#t.has(n))continue;t.length===0&&(i=!0,t.push("Hits:"));let l=n.split("//").length;t.push(`${" ".repeat(l)}${n} ${se(xt(`\xD7 ${s}`))}`)}this.#t.size>0&&i&&t.push(` +Timers:`);let o=-1/0,a=new Map;for(let[n,{value:s}]of this.#t){let l=`${(Number(s)/1e6).toFixed(2)}ms`;a.set(n,l),o=Math.max(o,l.length)}for(let n of this.#t.keys()){let s=n.split("//").length;t.push(`${se(`[${a.get(n).padStart(o," ")}]`)}${" ".repeat(s-1)}${s===1?" ":se(" \u21B3 ")}${n.split("//").pop()} ${this.#r.get(n).value===1?"":se(xt(`\xD7 ${this.#r.get(n).value}`))}`.trimEnd())}r(` +${t.join(` +`)} +`),this.reset()}[Symbol.dispose](){fe&&this.report()}};function se(e){return`\x1B[2m${e}\x1B[22m`}function xt(e){return`\x1B[34m${e}\x1B[39m`}import Br from"@jridgewell/remapping";import{Features as X,transform as Yr}from"lightningcss";import Gr from"magic-string";function pu(e,{file:r="input.css",minify:t=!1,map:i}={}){function o(l,u){return Yr({filename:r,code:l,minify:t,sourceMap:typeof u<"u",inputSourceMap:u,drafts:{customMedia:!0},nonStandard:{deepSelectorCombinator:!0},include:X.Nesting|X.MediaQueries,exclude:X.LogicalProperties|X.DirSelector|X.LightDark,targets:{safari:16<<16|1024,ios_saf:16<<16|1024,firefox:8388608,chrome:7274496},errorRecovery:!0})}let a=o(Buffer.from(e),i);if(i=a.map?.toString(),a.warnings=a.warnings.filter(l=>!/'(deep|slotted|global)' is not recognized as a valid pseudo-/.test(l.message)),a.warnings.length>0){let l=e.split(` +`),u=[`Found ${a.warnings.length} ${a.warnings.length===1?"warning":"warnings"} while optimizing generated CSS:`];for(let[p,c]of a.warnings.entries()){u.push(""),a.warnings.length>1&&u.push(`Issue #${p+1}:`);let f=2,m=Math.max(0,c.loc.line-f-1),d=Math.min(l.length,c.loc.line+f),x=l.slice(m,d).map((h,_)=>m+_+1===c.loc.line?`${ee("\u2502")} ${h}`:ee(`\u2502 ${h}`));x.splice(c.loc.line-m,0,`${ee("\u2506")}${" ".repeat(c.loc.column-1)} ${qr(`${ee("^--")} ${c.message}`)}`,`${ee("\u2506")}`),u.push(...x)}u.push(""),console.warn(u.join(` +`))}a=o(a.code,i),i=a.map?.toString();let n=a.code.toString(),s=new Gr(n);if(s.replaceAll("@media not (","@media not all and ("),i!==void 0&&s.hasChanged()){let l=s.generateMap({source:"original",hires:"boundary"}).toString();i=Br([l,i],()=>null).toString()}return n=s.toString(),{code:n,map:i}}function ee(e){return`\x1B[2m${e}\x1B[22m`}function qr(e){return`\x1B[33m${e}\x1B[39m`}import{SourceMapGenerator as Hr}from"source-map-js";function Zr(e){let r=new Hr,t=1,i=new g(o=>({url:o?.url??``,content:o?.content??""}));for(let o of e.mappings){let a=i.get(o.originalPosition?.source??null);r.addMapping({generated:o.generatedPosition,original:o.originalPosition,source:a.url,name:o.name}),r.setSourceContent(a.url,a.content)}return r.toString()}function hu(e){let r=typeof e=="string"?e:Zr(e);return{raw:r,get inline(){let t="";return t+="/*# sourceMappingURL=data:application/json;base64,",t+=Buffer.from(r,"utf-8").toString("base64"),t+=` */ +`,t}}}if(!process.versions.bun){let e=ue.createRequire(import.meta.url);ue.register?.(Qr(e.resolve("@tailwindcss/node/esm-cache-loader")))}export{Xs as Features,bt as Instrumentation,eu as Polyfills,ou as __unstable__loadDesignSystem,nu as compile,iu as compileAst,ce as env,yt as loadModule,Ce as normalizePath,pu as optimize,hu as toSourceMap}; diff --git a/node_modules/@tailwindcss/node/dist/require-cache.d.ts b/node_modules/@tailwindcss/node/dist/require-cache.d.ts new file mode 100644 index 0000000..de970b9 --- /dev/null +++ b/node_modules/@tailwindcss/node/dist/require-cache.d.ts @@ -0,0 +1,3 @@ +declare function clearRequireCache(files: string[]): void; + +export { clearRequireCache }; diff --git a/node_modules/@tailwindcss/node/dist/require-cache.js b/node_modules/@tailwindcss/node/dist/require-cache.js new file mode 100644 index 0000000..398995f --- /dev/null +++ b/node_modules/@tailwindcss/node/dist/require-cache.js @@ -0,0 +1 @@ +"use strict";var i=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var n=(r,e)=>{for(var t in e)i(r,t,{get:e[t],enumerable:!0})},u=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let c of f(e))!l.call(r,c)&&c!==t&&i(r,c,{get:()=>e[c],enumerable:!(o=a(e,c))||o.enumerable});return r};var h=r=>u(i({},"__esModule",{value:!0}),r);var d={};n(d,{clearRequireCache:()=>q});module.exports=h(d);function q(r){for(let e of r)delete require.cache[e]}0&&(module.exports={clearRequireCache}); diff --git a/node_modules/@tailwindcss/node/package.json b/node_modules/@tailwindcss/node/package.json new file mode 100644 index 0000000..2de0a77 --- /dev/null +++ b/node_modules/@tailwindcss/node/package.json @@ -0,0 +1,48 @@ +{ + "name": "@tailwindcss/node", + "version": "4.1.17", + "description": "A utility-first CSS framework for rapidly building custom user interfaces.", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/tailwindlabs/tailwindcss.git", + "directory": "packages/@tailwindcss-node" + }, + "bugs": "https://github.com/tailwindlabs/tailwindcss/issues", + "homepage": "https://tailwindcss.com", + "files": [ + "dist/" + ], + "publishConfig": { + "provenance": true, + "access": "public" + }, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.js" + }, + "./require-cache": { + "types": "./dist/require-cache.d.ts", + "default": "./dist/require-cache.js" + }, + "./esm-cache-loader": { + "types": "./dist/esm-cache.loader.d.mts", + "default": "./dist/esm-cache.loader.mjs" + } + }, + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "enhanced-resolve": "^5.18.3", + "jiti": "^2.6.1", + "lightningcss": "1.30.2", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.17" + }, + "scripts": { + "build": "tsup-node", + "dev": "pnpm run build -- --watch" + } +} \ No newline at end of file diff --git a/node_modules/@tailwindcss/oxide-win32-x64-msvc/LICENSE b/node_modules/@tailwindcss/oxide-win32-x64-msvc/LICENSE new file mode 100644 index 0000000..d6a8229 --- /dev/null +++ b/node_modules/@tailwindcss/oxide-win32-x64-msvc/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Tailwind Labs, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@tailwindcss/oxide-win32-x64-msvc/README.md b/node_modules/@tailwindcss/oxide-win32-x64-msvc/README.md new file mode 100644 index 0000000..bb1c4ac --- /dev/null +++ b/node_modules/@tailwindcss/oxide-win32-x64-msvc/README.md @@ -0,0 +1,3 @@ +# `@tailwindcss/oxide-win32-x64-msvc` + +This is the **x86_64-pc-windows-msvc** binary for `@tailwindcss/oxide` diff --git a/node_modules/@tailwindcss/oxide-win32-x64-msvc/package.json b/node_modules/@tailwindcss/oxide-win32-x64-msvc/package.json new file mode 100644 index 0000000..4ee5b55 --- /dev/null +++ b/node_modules/@tailwindcss/oxide-win32-x64-msvc/package.json @@ -0,0 +1,27 @@ +{ + "name": "@tailwindcss/oxide-win32-x64-msvc", + "version": "4.1.17", + "repository": { + "type": "git", + "url": "git+https://github.com/tailwindlabs/tailwindcss.git", + "directory": "crates/node/npm/win32-x64-msvc" + }, + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "main": "tailwindcss-oxide.win32-x64-msvc.node", + "files": [ + "tailwindcss-oxide.win32-x64-msvc.node" + ], + "publishConfig": { + "provenance": true, + "access": "public" + }, + "license": "MIT", + "engines": { + "node": ">= 10" + } +} \ No newline at end of file diff --git a/node_modules/@tailwindcss/oxide-win32-x64-msvc/tailwindcss-oxide.win32-x64-msvc.node b/node_modules/@tailwindcss/oxide-win32-x64-msvc/tailwindcss-oxide.win32-x64-msvc.node new file mode 100644 index 0000000000000000000000000000000000000000..edbd84bd3eb4b3b5bef7e6a5e804cd897932a1c5 GIT binary patch literal 3186176 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

2=5jHyjml?*RC_+?_vYIy^Qdt8sVK{fcMBn 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 z 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

Ubywfk?+HKjKVQi;B2ny?> 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�* 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�G{V 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

6r<$ERxS}wzn1}X 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