docs: 仓库链接指向本镜像仓库
Dev Build / cleanup (push) Waiting to run
Dev Build / typecheck (push) Waiting to run

This commit is contained in:
TanTan committed 2026-11-13 09:27:07 +08:00
1 parent fa9c73363d
commit 2a69b23b47
18210 files changed
+5101211 -16

No files matched your search

@@ -0,0 +1 @@
{"version":3,"file":"cloud-moon-rain.js","sources":["../../../src/icons/cloud-moon-rain.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CloudMoonRain\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMTg4IDguNUE2IDYgMCAwIDEgMTYgNGExIDEgMCAwIDAgNiA2IDYgNiAwIDAgMS0zIDUuMTk3IiAvPgogIDxwYXRoIGQ9Ik0xMSAyMHYyIiAvPgogIDxwYXRoIGQ9Ik0zIDIwYTUgNSAwIDEgMSA4LjktNEgxM2EzIDMgMCAwIDEgMiA1LjI0IiAvPgogIDxwYXRoIGQ9Ik03IDE5djIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloud-moon-rain\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CloudMoonRain = createLucideIcon('CloudMoonRain', [\n ['path', { d: 'M10.188 8.5A6 6 0 0 1 16 4a1 1 0 0 0 6 6 6 6 0 0 1-3 5.197', key: 'erj67n' }],\n ['path', { d: 'M11 20v2', key: '174qtz' }],\n ['path', { d: 'M3 20a5 5 0 1 1 8.9-4H13a3 3 0 0 1 2 5.24', key: '1qmrp3' }],\n ['path', { d: 'M7 19v2', key: '12npes' }],\n]);\n\nexport default CloudMoonRain;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,iBAAiB,eAAiB,CAAA,CAAA,CAAA;AAAA,CAAA,CACtD,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAA8D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CAC3F,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACzC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAA6C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CAC1E,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA;AAC1C,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1,114 @@
import * as util from "../core/util.js";
const error = () => {
const Sizable = {
string: { unit: "znaków", verb: "mieć" },
file: { unit: "bajtów", verb: "mieć" },
array: { unit: "elementów", verb: "mieć" },
set: { unit: "elementów", verb: "mieć" },
map: { unit: "elementów", verb: "mieć" },
};
function getSizing(origin) {
return Sizable[origin] ?? null;
}
const FormatDictionary = {
regex: "wyrażenie",
email: "adres email",
url: "URL",
emoji: "emoji",
uuid: "UUID",
uuidv4: "UUIDv4",
uuidv6: "UUIDv6",
nanoid: "nanoid",
guid: "GUID",
cuid: "cuid",
cuid2: "cuid2",
ulid: "ULID",
xid: "XID",
ksuid: "KSUID",
datetime: "data i godzina w formacie ISO",
date: "data w formacie ISO",
time: "godzina w formacie ISO",
duration: "czas trwania ISO",
ipv4: "adres IPv4",
ipv6: "adres IPv6",
mac: "adres MAC",
cidrv4: "zakres IPv4",
cidrv6: "zakres IPv6",
base64: "ciąg znaków zakodowany w formacie base64",
base64url: "ciąg znaków zakodowany w formacie base64url",
json_string: "ciąg znaków w formacie JSON",
e164: "liczba E.164",
credit_card: "numer karty kredytowej",
currency_code: "kod waluty",
iban: "IBAN",
jwt: "JWT",
template_literal: "wejście",
};
const TypeDictionary = {
nan: "NaN",
number: "liczba",
array: "tablica",
};
return (issue) => {
switch (issue.code) {
case "invalid_type": {
const expected = TypeDictionary[issue.expected] ?? issue.expected;
const receivedType = util.parsedType(issue.input);
const received = TypeDictionary[receivedType] ?? receivedType;
if (/^[A-Z]/.test(issue.expected)) {
return `Nieprawidłowe dane wejściowe: oczekiwano instanceof ${issue.expected}, otrzymano ${received}`;
}
return `Nieprawidłowe dane wejściowe: oczekiwano ${expected}, otrzymano ${received}`;
}
case "invalid_value":
if (issue.values.length === 1)
return `Nieprawidłowe dane wejściowe: oczekiwano ${util.stringifyPrimitive(issue.values[0])}`;
return `Nieprawidłowa opcja: oczekiwano jednej z wartości ${util.joinValues(issue.values, "|")}`;
case "too_big": {
const adj = issue.inclusive ? "<=" : "<";
const sizing = getSizing(issue.origin);
if (sizing) {
return `Za duża wartość: oczekiwano, że ${issue.origin ?? "wartość"} będzie mieć ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elementów"}`;
}
return `Zbyt duż(y/a/e): oczekiwano, że ${issue.origin ?? "wartość"} będzie wynosić ${adj}${issue.maximum.toString()}`;
}
case "too_small": {
const adj = issue.inclusive ? ">=" : ">";
const sizing = getSizing(issue.origin);
if (sizing) {
return `Za mała wartość: oczekiwano, że ${issue.origin ?? "wartość"} będzie mieć ${adj}${issue.minimum.toString()} ${sizing.unit ?? "elementów"}`;
}
return `Zbyt mał(y/a/e): oczekiwano, że ${issue.origin ?? "wartość"} będzie wynosić ${adj}${issue.minimum.toString()}`;
}
case "invalid_format": {
const _issue = issue;
if (_issue.format === "starts_with")
return `Nieprawidłowy ciąg znaków: musi zaczynać się od "${_issue.prefix}"`;
if (_issue.format === "ends_with")
return `Nieprawidłowy ciąg znaków: musi kończyć się na "${_issue.suffix}"`;
if (_issue.format === "includes")
return `Nieprawidłowy ciąg znaków: musi zawierać "${_issue.includes}"`;
if (_issue.format === "regex")
return `Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${_issue.pattern}`;
return `Nieprawidłow(y/a/e) ${FormatDictionary[_issue.format] ?? issue.format}`;
}
case "not_multiple_of":
return `Nieprawidłowa liczba: musi być wielokrotnością ${issue.divisor}`;
case "unrecognized_keys":
return `Nierozpoznane klucze${issue.keys.length > 1 ? "s" : ""}: ${util.joinValues(issue.keys, ", ")}`;
case "invalid_key":
return `Nieprawidłowy klucz w ${issue.origin}`;
case "invalid_union":
return "Nieprawidłowe dane wejściowe";
case "invalid_element":
return `Nieprawidłowa wartość w ${issue.origin}`;
default:
return `Nieprawidłowe dane wejściowe`;
}
};
};
export default function () {
return {
localeError: error(),
};
}
@@ -0,0 +1,34 @@
{
"name": "safer-buffer",
"version": "2.1.2",
"description": "Modern Buffer API polyfill without footguns",
"main": "safer.js",
"scripts": {
"browserify-test": "browserify --external tape tests.js > browserify-tests.js && tape browserify-tests.js",
"test": "standard && tape tests.js"
},
"author": {
"name": "Nikita Skovoroda",
"email": "chalkerx@gmail.com",
"url": "https://github.com/ChALkeR"
},
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/ChALkeR/safer-buffer.git"
},
"bugs": {
"url": "https://github.com/ChALkeR/safer-buffer/issues"
},
"devDependencies": {
"standard": "^11.0.1",
"tape": "^4.9.0"
},
"files": [
"Porting-Buffer.md",
"Readme.md",
"tests.js",
"dangerous.js",
"safer.js"
]
}
@@ -0,0 +1,8 @@
import type { SourceFile } from 'typescript';
import type { ASTMaps } from './convert';
import type { ParseSettings } from './parseSettings';
import type { TSESTree } from './ts-estree';
export declare function astConverter(ast: SourceFile, parseSettings: ParseSettings, shouldPreserveNodeMaps: boolean): {
astMaps: ASTMaps;
estree: TSESTree.Program;
};
@@ -0,0 +1 @@
{"version":3,"file":"ampersand.js","sources":["../../../src/icons/ampersand.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Ampersand\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcuNSAxMmMwIDQuNC0zLjYgOC04IDhBNC41IDQuNSAwIDAgMSA1IDE1LjVjMC02IDgtNCA4LTguNWEzIDMgMCAxIDAtNiAwYzAgMyAyLjUgOC41IDEyIDEzIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMmgzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ampersand\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Ampersand = createLucideIcon('Ampersand', [\n [\n 'path',\n {\n d: 'M17.5 12c0 4.4-3.6 8-8 8A4.5 4.5 0 0 1 5 15.5c0-6 8-4 8-8.5a3 3 0 1 0-6 0c0 3 2.5 8.5 12 13',\n key: '1o9ehi',\n },\n ],\n ['path', { d: 'M16 12h3', key: '4uvgyw' }],\n]);\n\nexport default Ampersand;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,iBAAiB,WAAa,CAAA,CAAA,CAAA;AAAA,CAC9C,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACA,CAAA,CAAA,CAAA,CAAA;AAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACP,CAAA,CAAA,CAAA,CAAA;AAAA,CACF,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA;AAC3C,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1,17 @@
/**
* @license lucide-react v0.469.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
import createLucideIcon from '../createLucideIcon.js';
const Anchor = createLucideIcon("Anchor", [
["path", { d: "M12 22V8", key: "qkxhtm" }],
["path", { d: "M5 12H2a10 10 0 0 0 20 0h-3", key: "1hv3nh" }],
["circle", { cx: "12", cy: "5", r: "3", key: "rqqgnr" }]
]);
export { Anchor as default };
//# sourceMappingURL=anchor.js.map
@@ -0,0 +1 @@
{"version":3,"file":"file-cog.js","sources":["../../../src/icons/file-cog.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name FileCog\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCIgLz4KICA8cGF0aCBkPSJtMy4yIDEyLjktLjktLjQiIC8+CiAgPHBhdGggZD0ibTMuMiAxNS4xLS45LjQiIC8+CiAgPHBhdGggZD0iTTQuNjc3IDIxLjVhMiAyIDAgMCAwIDEuMzEzLjVIMThhMiAyIDAgMCAwIDItMlY3bC01LTVINmEyIDIgMCAwIDAtMiAydjIuNSIgLz4KICA8cGF0aCBkPSJtNC45IDExLjItLjQtLjkiIC8+CiAgPHBhdGggZD0ibTQuOSAxNi44LS40LjkiIC8+CiAgPHBhdGggZD0ibTcuNSAxMC4zLS40LjkiIC8+CiAgPHBhdGggZD0ibTcuNSAxNy43LS40LS45IiAvPgogIDxwYXRoIGQ9Im05LjcgMTIuNS0uOS40IiAvPgogIDxwYXRoIGQ9Im05LjcgMTUuNS0uOS0uNCIgLz4KICA8Y2lyY2xlIGN4PSI2IiBjeT0iMTQiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-cog\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FileCog = createLucideIcon('FileCog', [\n ['path', { d: 'M14 2v4a2 2 0 0 0 2 2h4', key: 'tnqrlb' }],\n ['path', { d: 'm3.2 12.9-.9-.4', key: '1i3dj5' }],\n ['path', { d: 'm3.2 15.1-.9.4', key: '1fvgj0' }],\n [\n 'path',\n {\n d: 'M4.677 21.5a2 2 0 0 0 1.313.5H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v2.5',\n key: '1yo3oz',\n },\n ],\n ['path', { d: 'm4.9 11.2-.4-.9', key: 'otmhb9' }],\n ['path', { d: 'm4.9 16.8-.4.9', key: '1b8z07' }],\n ['path', { d: 'm7.5 10.3-.4.9', key: '11k65u' }],\n ['path', { d: 'm7.5 17.7-.4-.9', key: '431x55' }],\n ['path', { d: 'm9.7 12.5-.9.4', key: '87sjan' }],\n ['path', { d: 'm9.7 15.5-.9-.4', key: 'khqm91' }],\n ['circle', { cx: '6', cy: '14', r: '3', key: 'a1xfv6' }],\n]);\n\nexport default FileCog;\n"],"names":[],"mappings":"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 truncated
@@ -0,0 +1,4 @@
import Options from '../../Options';
import { MatchEstimated, MatchExtended } from '../../types';
declare const _default: ({ graph, token, shiftedCount, turns }: MatchExtended | MatchEstimated, options: Options) => number;
export default _default;
@@ -0,0 +1,4 @@
import { a as RolldownLog, i as RolldownError, n as LogLevelOption, o as RolldownLogWithString, r as LogOrStringHandler, t as LogLevel } from "./shared/logging-BSNejiLS.mjs";
import { z as PreRenderedChunk } from "./shared/binding-D26QphWG.mjs";
import { $ as MinimalPluginContext, $t as SourcemapIgnoreListOption, A as RolldownPlugin, At as ChunkingContext, B as SourceMapInput, Bt as OutputOptions, C as ParallelPluginHooks, Ct as BuildOptions, D as ResolveIdExtraOptions, Dt as AdvancedChunksOptions, E as PluginMeta, Et as AdvancedChunksGroup, Ft as GeneratedCodeOptions, G as EmittedChunk, Gt as OutputAsset, H as TreeshakingOptions, I as RUNTIME_MODULE_ID, It as GeneratedCodePreset, J as GetModuleInfo, Jt as RenderedModule, K as EmittedFile, Kt as OutputChunk, L as VERSION, Lt as GlobalsFunction, M as SourceDescription, Mt as CodeSplittingNameFunction, N as TransformResult, Nt as CodeSplittingOptions, O as ResolveIdResult, Ot as BuiltinModuleTag, Pt as CommentsOptions, Qt as ModuleInfo, R as BundleError, Rt as MinifyOptions, S as ObjectHook, St as RolldownBuild, T as Plugin, Tt as AddonFunction, U as TransformPluginContext, Ut as PartialNull, V as OutputBundle, Vt as PreRenderedAsset, W as EmittedAsset, X as PluginContextResolveOptions, Xt as SourceMap, Y as PluginContext, Yt as RolldownOutput, Z as DefineParallelPluginResult, _ as HookFilterExtension, _t as RolldownWatcher, a as ChunkOptimizationOptions, at as RolldownDirectoryEntry, b as ModuleOptions, bt as WatchOptions, c as InputOption, ct as InternalModuleFormat, d as OptimizationOptions, dt as TransformOptions, et as PluginContextMeta, f as WatcherFileWatcherOptions, ft as ChecksOptions, g as FunctionPluginHooks, gt as watch, h as CustomPluginOptions, ht as RolldownMagicString, i as RolldownOptions, it as BufferEncoding, j as RolldownPluginOption, jt as CodeSplittingGroup, k as ResolvedId, kt as ChunkFileNamesFunction, l as InputOptions, lt as NormalizedOutputOptions, m as AsyncPluginHooks, mt as WarningHandlerWithDefault, n as RolldownOptionsFunction, nt as HookFilter, o as ExternalOption, ot as RolldownFileStats, p as WatcherOptions, pt as LoggingFunction, q as EmittedPrebuiltChunk, qt as RenderedChunk, r as defineConfig, rt as ModuleTypeFilter, s as ExternalOptionFunction, st as RolldownFsModule, t as ConfigExport, tt as GeneralHookFilter, u as ModuleTypes, ut as NormalizedInputOptions, v as ImportKind, vt as RolldownWatcherEvent, w as PartialResolvedId, wt as build, x as ModuleType, xt as rolldown, y as LoadResult, yt as RolldownWatcherWatcherEventMap, z as ExistingRawSourceMap, zt as ModuleFormat } from "./shared/define-config-BhJ90aEv.mjs";
export { type AddonFunction, type AdvancedChunksGroup, type AdvancedChunksOptions, type AsyncPluginHooks, type BufferEncoding, type BuildOptions, type BuiltinModuleTag, type BundleError, type ChecksOptions, type ChunkFileNamesFunction, type ChunkOptimizationOptions, type ChunkingContext, type CodeSplittingGroup, type CodeSplittingNameFunction, type CodeSplittingOptions, type CommentsOptions, type ConfigExport, type CustomPluginOptions, type DefineParallelPluginResult, type EmittedAsset, type EmittedChunk, type EmittedFile, type EmittedPrebuiltChunk, type ExistingRawSourceMap, type ExternalOption, type ExternalOptionFunction, type FunctionPluginHooks, type GeneralHookFilter, type GeneratedCodeOptions, type GeneratedCodePreset, type GetModuleInfo, type GlobalsFunction, type HookFilter, type HookFilterExtension, type ImportKind, type InputOption, type InputOptions, type InternalModuleFormat, type LoadResult, type LogLevel, type LogLevelOption, type LogOrStringHandler, type LoggingFunction, type MinifyOptions, type MinimalPluginContext, type ModuleFormat, type ModuleInfo, type ModuleOptions, type ModuleType, type ModuleTypeFilter, type ModuleTypes, type NormalizedInputOptions, type NormalizedOutputOptions, type ObjectHook, type OptimizationOptions, type OutputAsset, type OutputBundle, type OutputChunk, type OutputOptions, type ParallelPluginHooks, type PartialNull, type PartialResolvedId, type Plugin, type PluginContext, type PluginContextMeta, type PluginContextResolveOptions, type PluginMeta, type PreRenderedAsset, type PreRenderedChunk, RUNTIME_MODULE_ID, type RenderedChunk, type RenderedModule, type ResolveIdExtraOptions, type ResolveIdResult, type ResolvedId, type RolldownBuild, type RolldownDirectoryEntry, type RolldownError, type RolldownError as RollupError, type RolldownFileStats, type RolldownFsModule, type RolldownLog, type RolldownLog as RollupLog, type RolldownLogWithString, type RolldownLogWithString as RollupLogWithString, RolldownMagicString, type RolldownOptions, type RolldownOptionsFunction, type RolldownOutput, type RolldownPlugin, type RolldownPluginOption, type RolldownWatcher, type RolldownWatcherEvent, type RolldownWatcherWatcherEventMap, type SourceDescription, type SourceMap, type SourceMapInput, type SourcemapIgnoreListOption, type TransformOptions, type TransformPluginContext, type TransformResult, type TreeshakingOptions, VERSION, type WarningHandlerWithDefault, type WatchOptions, type WatcherFileWatcherOptions, type WatcherOptions, build, defineConfig, rolldown, watch };
@@ -0,0 +1 @@
{"version":3,"file":"redirect.js","names":[],"sources":["../../src/redirect.ts"],"sourcesContent":["import type { NavigateOptions } from './link'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { ParsedLocation } from './location'\n\nexport type AnyRedirect = Redirect<any, any, any, any, any>\n\n/**\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/RedirectType)\n */\nexport type Redirect<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string = string,\n TTo extends string | undefined = undefined,\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '.',\n> = Response & {\n options: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo> & {\n /**\n * @internal\n * A **trusted** built location that can be used to redirect to.\n */\n _builtLocation?: ParsedLocation\n }\n redirectHandled?: boolean\n}\n\nexport type RedirectOptions<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string = string,\n TTo extends string | undefined = undefined,\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '.',\n> = {\n href?: string\n /**\n * @deprecated Use `statusCode` instead\n **/\n code?: number\n /**\n * The HTTP status code to use when redirecting.\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/RedirectType#statuscode-property)\n */\n statusCode?: number\n /**\n * If provided, will throw the redirect object instead of returning it. This can be useful in places where `throwing` in a function might cause it to have a return type of `never`. In that case, you can use `redirect({ throw: true })` to throw the redirect object instead of returning it.\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/RedirectType#throw-property)\n */\n throw?: any\n /**\n * The HTTP headers to use when redirecting.\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/RedirectType#headers-property)\n */\n headers?: HeadersInit\n /**\n * @internal\n * A **trusted** built location that can be used to redirect to.\n */\n _builtLocation?: ParsedLocation\n} & NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>\n\nexport type ResolvedRedirect<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string = string,\n TTo extends string = '',\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '',\n> = Redirect<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>\n\n/**\n * Options for route-bound redirect, where 'from' is automatically set.\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/RedirectType)\n */\nexport type RedirectOptionsRoute<\n TDefaultFrom extends string = string,\n TRouter extends AnyRouter = RegisteredRouter,\n TTo extends string | undefined = undefined,\n TMaskTo extends string = '',\n> = Omit<\n RedirectOptions<TRouter, TDefaultFrom, TTo, TDefaultFrom, TMaskTo>,\n 'from'\n>\n\n/**\n * A redirect function bound to a specific route, with 'from' pre-set to the route's fullPath.\n * This enables relative redirects like `Route.redirect({ to: './overview' })`.\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/RedirectType)\n */\nexport interface RedirectFnRoute<in out TDefaultFrom extends string = string> {\n <\n TRouter extends AnyRouter = RegisteredRouter,\n const TTo extends string | undefined = undefined,\n const TMaskTo extends string = '',\n >(\n opts: RedirectOptionsRoute<TDefaultFrom, TRouter, TTo, TMaskTo>,\n ): Redirect<TRouter, TDefaultFrom, TTo, TDefaultFrom, TMaskTo>\n}\n\n/**\n * Create a redirect Response understood by TanStack Router.\n *\n * Use from route `loader`/`beforeLoad` or server functions to trigger a\n * navigation. If `throw: true` is set, the redirect is thrown instead of\n * returned. When an absolute `href` is supplied and `reloadDocument` is not\n * set, a full-document navigation is inferred.\n *\n * @param opts Options for the redirect. Common fields:\n * - `href`: absolute URL for external redirects; infers `reloadDocument`.\n * - `statusCode`: HTTP status code to use (defaults to 307).\n * - `headers`: additional headers to include on the Response.\n * - Standard navigation options like `to`, `params`, `search`, `replace`,\n * and `reloadDocument` for internal redirects.\n * @returns A Response augmented with router navigation options.\n * @link https://tanstack.com/router/latest/docs/framework/react/api/router/redirectFunction\n */\nexport function redirect<\n TRouter extends AnyRouter = RegisteredRouter,\n const TTo extends string | undefined = '.',\n const TFrom extends string = string,\n const TMaskFrom extends string = TFrom,\n const TMaskTo extends string = '',\n>(\n opts: RedirectOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,\n): Redirect<TRouter, TFrom, TTo, TMaskFroLine truncated
@@ -0,0 +1,17 @@
import type { TSESTree } from '@typescript-eslint/types';
import type { ScopeManager } from '../ScopeManager';
import type { ImplicitLibVariableOptions } from '../variable';
import type { Scope } from './Scope';
import { ScopeBase } from './ScopeBase';
import { ScopeType } from './ScopeType';
export declare class GlobalScope extends ScopeBase<ScopeType.global, TSESTree.Program,
/**
* The global scope has no parent.
*/
null> {
private readonly implicit;
constructor(scopeManager: ScopeManager, block: GlobalScope['block']);
addVariables(names: string[]): void;
close(scopeManager: ScopeManager): Scope | null;
defineImplicitVariable(name: string, options: ImplicitLibVariableOptions): void;
}
@@ -0,0 +1,105 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("@typescript-eslint/utils");
const util_1 = require("../util");
const getESLintCoreRule_1 = require("../util/getESLintCoreRule");
const baseRule = (0, getESLintCoreRule_1.getESLintCoreRule)('init-declarations');
exports.default = (0, util_1.createRule)({
name: 'init-declarations',
meta: {
type: 'suggestion',
// defaultOptions, -- base rule does not use defaultOptions
docs: {
description: 'Require or disallow initialization in variable declarations',
extendsBaseRule: true,
frozen: true,
},
hasSuggestions: baseRule.meta.hasSuggestions,
messages: baseRule.meta.messages,
schema: baseRule.meta.schema,
},
defaultOptions: ['always'],
create(context, [mode]) {
// Make a custom context to adjust the loc of reports where the base
// rule's behavior is a bit too aggressive with TS-specific syntax (namely,
// type annotations).
function getBaseContextOverride() {
const reportOverride = descriptor => {
if ('node' in descriptor && descriptor.loc == null) {
const { node, ...rest } = descriptor;
// We only want to special case the report loc when reporting on
// variables declarations that are not initialized. Declarations that
// _are_ initialized get reported by the base rule due to a setting to
// prohibit initializing variables entirely, in which case underlining
// the whole node including the type annotation and initializer is
// appropriate.
if (node.type === utils_1.AST_NODE_TYPES.VariableDeclarator &&
node.init == null) {
context.report({
...rest,
loc: getReportLoc(node),
});
return;
}
}
context.report(descriptor);
};
// `return { ...context, report: reportOverride }` isn't safe because the
// `context` object has some getters that need to be preserved.
//
// `return new Proxy(context, ...)` doesn't work because `context` has
// non-configurable properties that throw when constructing a Proxy.
//
// So, we'll just use Proxy on a dummy object and use the `get` trap to
// proxy `context`'s properties.
return new Proxy({}, {
get: (target, prop, receiver) => prop === 'report'
? reportOverride
: Reflect.get(context, prop, receiver),
});
}
const rules = baseRule.create(getBaseContextOverride());
return {
'VariableDeclaration:exit'(node) {
if (mode === 'always') {
if (node.declare) {
return;
}
if (isAncestorNamespaceDeclared(node)) {
return;
}
}
rules['VariableDeclaration:exit'](node);
},
};
function isAncestorNamespaceDeclared(node) {
let ancestor = node.parent;
while (ancestor) {
if (ancestor.type === utils_1.AST_NODE_TYPES.TSModuleDeclaration &&
ancestor.declare) {
return true;
}
ancestor = ancestor.parent;
}
return false;
}
},
});
/**
* When reporting an uninitialized variable declarator, get the loc excluding
* the type annotation.
*/
function getReportLoc(node) {
const start = structuredClone(node.loc.start);
const end = {
line: node.loc.start.line,
// `if (id.type === AST_NODE_TYPES.Identifier)` is a condition for
// reporting in the base rule (as opposed to things like destructuring
// assignment), so the type assertion should always be valid.
column: node.loc.start.column + node.id.name.length,
};
return {
start,
end,
};
}
@@ -0,0 +1 @@
module.exports={C:{"115":0.04858,"120":0.21859,"121":0.43415,"123":0.00607,"124":0.00911,"125":0.00304,"127":0.00304,"135":0.00304,"140":0.00911,"142":0.00304,"143":0.00304,"146":0.00304,"147":0.00304,"148":0.00304,"149":0.00304,"150":0.01214,"151":0.00304,"152":0.04554,"153":0.00911,"154":0.05161,"155":0.15787,"156":0.19127,"157":0.00911,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 122 126 128 129 130 131 132 133 134 136 137 138 139 141 144 145 158 159 160 3.5 3.6"},D:{"41":0.00304,"49":0.00304,"51":0.00304,"56":0.00607,"68":0.00304,"69":0.00304,"73":0.00304,"75":0.00304,"79":0.00304,"81":0.00304,"83":0.00304,"87":0.00607,"88":0.00304,"90":0.00304,"91":0.00304,"92":0.00607,"93":0.00607,"95":0.00304,"98":0.00911,"101":0.00911,"103":0.06983,"104":0.06679,"105":0.06376,"106":0.06679,"107":0.06679,"108":0.06376,"109":0.25806,"110":0.06983,"111":0.06679,"112":0.06376,"113":0.00304,"114":0.03036,"116":0.14269,"117":0.06376,"118":0.58595,"119":0.44022,"120":0.51612,"121":0.00607,"122":0.02429,"123":0.01214,"124":0.07286,"125":0.00607,"126":0.00607,"127":0.00607,"128":0.01822,"129":0.00607,"130":0.00607,"131":0.1518,"132":0.00911,"133":0.25502,"134":0.14269,"135":0.14876,"136":0.15484,"137":0.16091,"138":0.22466,"139":0.16698,"140":0.17609,"141":0.17002,"142":0.53434,"143":0.02125,"144":0.09412,"145":0.03643,"146":0.08804,"147":0.04554,"148":0.12751,"149":0.15787,"150":0.25806,"151":2.07966,"152":5.04887,"153":6.45757,"154":1.44514,"155":0.02125,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 50 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 70 71 72 74 76 77 78 80 84 85 86 89 94 96 97 99 100 102 115 156 157"},F:{"101":0.01214,"102":0.00304,"105":0.00304,"106":0.00607,"107":0.00304,"115":0.00304,"116":0.00304,"120":0.00304,"122":0.00304,"132":0.00304,"133":0.00304,"134":0.02732,"135":0.18823,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 103 104 108 109 110 111 112 113 114 117 118 119 121 123 124 125 126 127 131 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00304,"92":0.00911,"109":0.00304,"114":0.01214,"119":0.21252,"120":0.21556,"122":0.00911,"123":0.00304,"124":0.00304,"126":0.00304,"128":0.00304,"129":0.00304,"130":0.00304,"131":0.00607,"132":0.00304,"133":0.00304,"135":0.00304,"136":0.00304,"137":0.00304,"138":0.00304,"139":0.00304,"140":0.00607,"141":0.00304,"142":0.01214,"143":0.00304,"144":0.01214,"145":0.00607,"146":0.01822,"147":0.02429,"148":0.02429,"149":0.02732,"150":0.06983,"151":0.20341,"152":0.8349,"153":1.10207,"154":0.30967,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 121 125 127 134"},E:{"27":0.10019,_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 16.0 27.1 27.2 TP","13.1":0.00304,"14.1":0.00304,"15.5":0.00304,"15.6":0.01518,"16.1":0.00607,"16.2":0.00304,"16.3":0.01214,"16.4":0.00607,"16.5":0.00607,"16.6":0.06376,"17.0":0.00304,"17.1":0.01822,"17.2":0.00607,"17.3":0.00911,"17.4":0.01214,"17.5":0.02429,"17.6":0.07286,"18.0":0.00607,"18.1":0.01822,"18.2":0.00911,"18.3":0.02125,"18.4":0.00911,"18.5-18.7":0.05465,"26.0":0.02429,"26.1":0.01822,"26.2":0.06072,"26.3":0.06679,"26.4":0.07286,"26.5":0.34914,"26.6":1.16279},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00335,"5.0-5.1":0.00335,"6.0-6.1":0,"7.0-7.1":0.0067,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0335,"11.0-11.2":0.00335,"11.3-11.4":0.0067,"12.0-12.1":0,"12.2-12.5":0.08709,"13.0-13.1":0,"13.2":0.01675,"13.3":0,"13.4-13.7":0.00335,"14.0-14.4":0.0134,"14.5-14.8":0.0201,"15.0-15.1":0.0201,"15.2-15.3":0.0134,"15.4":0.01675,"15.5":0.0201,"15.6-15.8":0.43546,"16.0":0.0335,"16.1":0.06029,"16.2":0.0335,"16.3":0.07369,"16.4":0.01675,"16.5":0.0268,"16.6-16.7":0.60629,"17.0":0.02345,"17.1":0.0335,"17.2":0.0335,"17.3":0.05025,"17.4":0.07034,"17.5":0.13734,"17.6-17.7":0.35507,"18.0":0.07369,"18.1":0.14739,"18.2":0.20098,"18.3":0.34837,"18.4":0.21773,"18.5-18.7":4.49863,"26.0":0.21773,"26.1":0.22108,"26.2":0.57615,"26.3":0.62304,"26.4":0.45556,"26.5":3.05156,"26.6":18.82857,"27.0":1.44371,"27.1":0,"27.2":0.03685},P:{"22":0.00939,"23":0.00939,"24":0.00939,"25":0.01878,"26":0.01878,"27":0.02817,"28":0.06572,"29":0.12206,"30":1.80268,_:"4 20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01878},I:{"0":0.02784,"3":0,"4":0,"2.1":0,"2.2":0,"2.3Line truncated
@@ -0,0 +1,49 @@
/**
* @fileoverview Helpers for severity values (e.g. normalizing different types).
* @author Bryan Mishkin
*/
"use strict";
/**
* Convert severity value of different types to a string.
* @param {string|number} severity severity value
* @throws error if severity is invalid
* @returns {string} severity string
*/
function normalizeSeverityToString(severity) {
if ([2, "2", "error"].includes(severity)) {
return "error";
}
if ([1, "1", "warn"].includes(severity)) {
return "warn";
}
if ([0, "0", "off"].includes(severity)) {
return "off";
}
throw new Error(`Invalid severity value: ${severity}`);
}
/**
* Convert severity value of different types to a number.
* @param {string|number} severity severity value
* @throws error if severity is invalid
* @returns {number} severity number
*/
function normalizeSeverityToNumber(severity) {
if ([2, "2", "error"].includes(severity)) {
return 2;
}
if ([1, "1", "warn"].includes(severity)) {
return 1;
}
if ([0, "0", "off"].includes(severity)) {
return 0;
}
throw new Error(`Invalid severity value: ${severity}`);
}
module.exports = {
normalizeSeverityToString,
normalizeSeverityToNumber,
};
@@ -0,0 +1,237 @@
/**
* @fileoverview Rule to require parens in arrow function arguments.
* @author Jxck
* @deprecated in ESLint v8.53.0
*/
"use strict";
//------------------------------------------------------------------------------
// Requirements
//------------------------------------------------------------------------------
const astUtils = require("./utils/ast-utils");
//------------------------------------------------------------------------------
// Helpers
//------------------------------------------------------------------------------
/**
* Determines if the given arrow function has block body.
* @param {ASTNode} node `ArrowFunctionExpression` node.
* @returns {boolean} `true` if the function has block body.
*/
function hasBlockBody(node) {
return node.body.type === "BlockStatement";
}
//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------
/** @type {import('../types').Rule.RuleModule} */
module.exports = {
meta: {
deprecated: {
message: "Formatting rules are being moved out of ESLint core.",
url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
deprecatedSince: "8.53.0",
availableUntil: "11.0.0",
replacedBy: [
{
message:
"ESLint Stylistic now maintains deprecated stylistic core rules.",
url: "https://eslint.style/guide/migration",
plugin: {
name: "@stylistic/eslint-plugin",
url: "https://eslint.style",
},
rule: {
name: "arrow-parens",
url: "https://eslint.style/rules/arrow-parens",
},
},
],
},
type: "layout",
docs: {
description: "Require parentheses around arrow function arguments",
recommended: false,
url: "https://eslint.org/docs/latest/rules/arrow-parens",
},
fixable: "code",
schema: [
{
enum: ["always", "as-needed"],
},
{
type: "object",
properties: {
requireForBlockBody: {
type: "boolean",
default: false,
},
},
additionalProperties: false,
},
],
messages: {
unexpectedParens:
"Unexpected parentheses around single function argument.",
expectedParens:
"Expected parentheses around arrow function argument.",
unexpectedParensInline:
"Unexpected parentheses around single function argument having a body with no curly braces.",
expectedParensBlock:
"Expected parentheses around arrow function argument having a body with curly braces.",
},
},
create(context) {
const asNeeded = context.options[0] === "as-needed";
const requireForBlockBody =
asNeeded &&
context.options[1] &&
context.options[1].requireForBlockBody === true;
const sourceCode = context.sourceCode;
/**
* Finds opening paren of parameters for the given arrow function, if it exists.
* It is assumed that the given arrow function has exactly one parameter.
* @param {ASTNode} node `ArrowFunctionExpression` node.
* @returns {Token|null} the opening paren, or `null` if the given arrow function doesn't have parens of parameters.
*/
function findOpeningParenOfParams(node) {
const tokenBeforeParams = sourceCode.getTokenBefore(node.params[0]);
if (
tokenBeforeParams &&
astUtils.isOpeningParenToken(tokenBeforeParams) &&
node.range[0] <= tokenBeforeParams.range[0]
) {
return tokenBeforeParams;
}
return null;
}
/**
* Finds closing paren of parameters for the given arrow function.
* It is assumed that the given arrow function has parens of parameters and that it has exactly one parameter.
* @param {ASTNode} node `ArrowFunctionExpression` node.
* @returns {Token} the closing paren of parameters.
*/
function getClosingParenOfParams(node) {
return sourceCode.getTokenAfter(
node.params[0],
astUtils.isClosingParenToken,
);
}
/**
* Determines whether the given arrow function has comments inside parens of parameters.
* It is assumed that the given arrow function has parens of parameters.
* @param {ASTNode} node `ArrowFunctionExpression` node.
* @param {Token} openingParen Opening paren of parameters.
* @returns {boolean} `true` if the function has at least one comment inside of parens of parameters.
*/
function hasCommentsInParensOfParams(node, openingParen) {
return sourceCode.commentsExistBetween(
openingParen,
getClosingParenOfParams(node),
);
}
/**
* Determines whether the given arrow function has unexpected tokens before opening paren of parameters,
* in which case it will be assumed that the existing parens of parameters are necessary.
* Only tokens within the range of the arrow function (tokens that are part of the arrow function) are taken into account.
* Example: <T>(a) => b
* @param {ASTNode} node `ArrowFunctionExpression` node.
* @param {Token} openingParen Opening paren of parameters.
* @returns {boolean} `true` if the function has at least one unexpected token.
*/
function hasUnexpectedTokensBeforeOpeningParen(node, openingParen) {
const expectedCount = node.async ? 1 : 0;
return (
sourceCode.getFirstToken(node, { skip: expectedCount }) !==
openingParen
);
}
return {
"ArrowFunctionExpression[params.length=1]"(node) {
const shouldHaveParens =
!asNeeded || (requireForBlockBody && hasBlockBody(node));
const openingParen = findOpeningParenOfParams(node);
const hasParens = openingParen !== null;
const [param] = node.params;
if (shouldHaveParens && !hasParens) {
context.report({
node,
messageId: requireForBlockBody
? "expectedParensBlock"
: "expectedParens",
loc: param.loc,
*fix(fixer) {
yield fixer.insertTextBefore(param, "(");
yield fixer.insertTextAfter(param, ")");
},
});
}
if (
!shouldHaveParens &&
hasParens &&
param.type === "Identifier" &&
!param.typeAnnotation &&
!node.returnType &&
!hasCommentsInParensOfParams(node, openingParen) &&
!hasUnexpectedTokensBeforeOpeningParen(node, openingParen)
) {
context.report({
node,
messageId: requireForBlockBody
? "unexpectedParensInline"
: "unexpectedParens",
loc: param.loc,
*fix(fixer) {
const tokenBeforeOpeningParen =
sourceCode.getTokenBefore(openingParen);
const closingParen = getClosingParenOfParams(node);
if (
tokenBeforeOpeningParen &&
tokenBeforeOpeningParen.range[1] ===
openingParen.range[0] &&
!astUtils.canTokensBeAdjacent(
tokenBeforeOpeningParen,
sourceCode.getFirstToken(param),
)
) {
yield fixer.insertTextBefore(openingParen, " ");
}
// remove parens, whitespace inside parens, and possible trailing comma
yield fixer.removeRange([
openingParen.range[0],
param.range[0],
]);
yield fixer.removeRange([
param.range[1],
closingParen.range[1],
]);
},
});
}
},
};
},
};
@@ -0,0 +1,924 @@
flf2a$ 9 3 15 0 5 0 64 0
Font Author: pC wIZARd
Font modified by patorjk to add X character
FIGFont created by patorjk.com's FIGFont Editor: http://patorjk.com/figfont-editor
$   $@
$   $@
$   $@
$   $@
$   $@
$   $@
$   $@
$   $@
$ $@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
.______  @
:      \ @
|   .   |@
|   :   |@
|___|   |@
    |___|@
@
@
@@
._______ @
: __   / @
|  |>  \ @
|  |>   \@
|_______/@
         @
@
@
@@
._______ @
:_.  ___\@
|  : |/\ @
|    /  \@
|. _____/@
 :/      @
 :       @
@
@@
.______  @
:_ _   \ @
|   |   |@
| . |   |@
|. ____/ @
 :/      @
 :       @
@
@@
._______@
: .____/@
| : _/\ @
|   /  \@
|_.: __/@
   :/   @
        @
@
@@
._______@
:_ ____/@
|   _/  @
|   |   @
|_. |   @
  :/    @
  :     @
@
@@
._____  @
:_ ___\ @
|   |___@
|   /  |@
|. __  |@
 :/ |. |@
 :   :/ @
     : @
@@
.___.__  @
:   |  \ @
|   :   |@
|   .   |@
|___|   |@
    |___|@
@
@
@@
.___ @
: __|@
| : |@
|   |@
|   |@
|___|@
@
@
@@
.________ @
:____.   \@
 __|  :/ |@
|     :  |@
 \__. __/ @
    :/    @
    :     @
@
@@
.____/\ @
:   /  \@
|.  ___/@
|     \ @
|      \@
|___\  /@
     \/ @
@
@@
.___    @
|   |   @
|   |   @
|   |/\ @
|   /  \@
|______/@
        @
@
@@
._____.___ @
:         |@
|   \  /  |@
|   |\/   |@
|___| |   |@
      |___|@
           @
@
@@
.______  @
:      \ @
|       |@
|   |   |@
|___|   |@
    |___|@
         @
@
@@
._______  @
: .___  \ @
| :   |  |@
|     :  |@
 \_. ___/ @
   :/     @
   :      @
@
@@
._______ @
: ____  |@
|    :  |@
|   |___|@
|___|    @
         @
         @
@
@@
._______ @
: .___  \ @
| :   |  |@
|     :  |@
 \_____. :@
       :/ @
       : @
@
@@
.______  @
: __   \ @
|  \____|@
|   :  \ @
|   |___\@
|___|    @
@
@
@@
.________@
|    ___/@
|___    \@
|       /@
|__:___/ @
   :     @
@
@
@@
_____._@
\__ _:|@
  |  :|@
  |   |@
  |   |@
  |___|@
       @
@
@@
.____     @
|    |___ @
|    |   |@
|    :   |@
|        |@
|. _____/ @
 :/       @
 :        @
@@
.___     @
|   |___ @
|   |   |@
|   :   |@
 \      |@
  \____/ @
         @
@
@@
         ___ @
.___    |   |@
:   | /\|   |@
|   |/  :   |@
|   /       |@
|______/|___|@
        : @
        : @
@@
 ____   ____@
 \   \_/   /@
  \___ ___/ @
  /   _   \ @
 /___/ \___\@
         @
@
@
@@
 ____   ____@
 \   \_/   /@
  \___ ___/ @
    |   | @
    |___| @
@
@
@
@@
.______ @
\____  |@
/  ____|@
\      |@
 \__:__|@
    :   @
    •   @
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
.______  @
:      \ @
|   .   |@
|   :   |@
|___|   |@
    |___|@
@
@
@@
._______ @
: __   / @
|  |>  \ @
|  |>   \@
|_______/@
         @
@
@
@@
._______ @
:_.  ___\@
|  : |/\ @
|    /  \@
|. _____/@
 :/      @
 :       @
@
@@
.______  @
:_ _   \ @
|   |   |@
| . |   |@
|. ____/ @
 :/      @
 :       @
@
@@
._______@
: .____/@
| : _/\ @
|   /  \@
|_.: __/@
   :/   @
        @
@
@@
._______@
:_ ____/@
|   _/  @
|   |   @
|_. |   @
  :/    @
  :     @
@
@@
._____  @
:_ ___\ @
|   |___@
|   /  |@
|. __  |@
 :/ |. |@
 :   :/ @
     : @
@@
.___.__  @
:   |  \ @
|   :   |@
|   .   |@
|___|   |@
    |___|@
@
@
@@
.___ @
: __|@
| : |@
|   |@
|   |@
|___|@
@
@
@@
.________ @
:____.   \@
 __|  :/ |@
|     :  |@
 \__. __/ @
    :/    @
    :     @
@
@@
.____/\ @
:   /  \@
|.  ___/@
|     \ @
|      \@
|___\  /@
     \/ @
@
@@
.___    @
|   |   @
|   |   @
|   |/\ @
|   /  \@
|______/@
        @
@
@@
._____.___ @
:         |@
|   \  /  |@
|   |\/   |@
|___| |   |@
      |___|@
           @
@
@@
.______  @
:      \ @
|       |@
|   |   |@
|___|   |@
    |___|@
         @
@
@@
._______  @
: .___  \ @
| :   |  |@
|     :  |@
 \_. ___/ @
   :/     @
   :      @
@
@@
._______ @
: ____  |@
|    :  |@
|   |___|@
|___|    @
         @
         @
@
@@
._______ @
: .___  \ @
| :   |  |@
|     :  |@
 \_____. :@
       :/ @
       : @
@
@@
.______  @
: __   \ @
|  \____|@
|   :  \ @
|   |___\@
|___|    @
@
@
@@
.________@
|    ___/@
|___    \@
|       /@
|__:___/ @
   :     @
@
@
@@
_____._@
\__ _:|@
  |  :|@
  |   |@
  |   |@
  |___|@
       @
@
@@
.____     @
|    |___ @
|    |   |@
|    :   |@
|        |@
|. _____/ @
 :/       @
 :        @
@@
.___     @
|   |___ @
|   |   |@
|   :   |@
 \      |@
  \____/ @
         @
@
@@
         ___ @
.___    |   |@
:   | /\|   |@
|   |/  :   |@
|   /       |@
|______/|___|@
        : @
        : @
@@
 ____   ____@
 \   \_/   /@
  \___ ___/ @
  /   _   \ @
 /___/ \___\@
         @
@
@
@@
 ____   ____@
 \   \_/   /@
  \___ ___/ @
    |   | @
    |___| @
@
@
@
@@
.______ @
\____  |@
/  ____|@
\      |@
 \__:__|@
    :   @
    •   @
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@@ -0,0 +1 @@
{"version":3,"names":["_cloneNode","require","cloneDeep","node","cloneNode"],"sources":["../../src/clone/cloneDeep.ts"],"sourcesContent":["import cloneNode from \"./cloneNode.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Create a deep clone of a `node` and all of it's child nodes\n * including only properties belonging to the node.\n * @deprecated Use t.cloneNode instead.\n */\nexport default function cloneDeep<T extends t.Node>(node: T): T {\n return cloneNode(node);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAQe,SAASC,SAASA,CAAmBC,IAAO,EAAK;EAC9D,OAAO,IAAAC,kBAAS,EAACD,IAAI,CAAC;AACxB","ignoreList":[]}
@@ -0,0 +1,9 @@
/**
* @license lucide-react v0.469.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
export { default } from './rows-3.js';
//# sourceMappingURL=panels-top-bottom.js.map
@@ -0,0 +1,46 @@
import { expect, expectTypeOf, test } from "vitest";
import * as z from "zod/v3";
test("test", () => {
expect(true).toBe(true);
});
test("test2", () => {
expect(() => z.string().parse(234)).toThrowErrorMatchingInlineSnapshot(`
[ZodError: [
{
"code": "invalid_type",
"expected": "string",
"received": "number",
"path": [],
"message": "Expected string, received number"
}
]]
`);
});
test("async validation", async () => {
const testTuple = z
.tuple([z.string().refine(async () => true), z.number().refine(async () => true)])
.refine(async () => true);
expectTypeOf<typeof testTuple._output>().toEqualTypeOf<[string, number]>();
const val = await testTuple.parseAsync(["asdf", 1234]);
expect(val).toEqual(val);
const r1 = await testTuple.safeParseAsync(["asdf", "asdf"]);
expect(r1.success).toEqual(false);
expect(r1.error!).toMatchInlineSnapshot(`
[ZodError: [
{
"code": "invalid_type",
"expected": "number",
"received": "string",
"path": [
1
],
"message": "Expected number, received string"
}
]]
`);
});
@@ -0,0 +1,9 @@
/**
* @license lucide-react v0.469.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
export { default } from './panel-left-close.js';
//# sourceMappingURL=sidebar-close.js.map
@@ -0,0 +1,2 @@
import type { LibDefinition } from '../variable';
export declare const es2024_collection: LibDefinition;
@@ -0,0 +1,40 @@
# @modelcontextprotocol/core
Canonical public home for the [Model Context Protocol](https://modelcontextprotocol.io) specification and OAuth/OpenID **Zod schemas**.
These are the exact schema constants the SDK validates protocol and OAuth/OpenID payloads against internally. The `@modelcontextprotocol/server` and `@modelcontextprotocol/client` packages keep a Zod-free public surface, so this package exists as the supported place to import the
raw schemas when you need to validate or parse MCP messages yourself.
## Install
```sh
npm install @modelcontextprotocol/core
```
## Usage
```ts
import { CallToolResultSchema } from '@modelcontextprotocol/core';
// Throws on invalid input; returns the typed result on success.
const result = CallToolResultSchema.parse(payload);
// Or non-throwing:
const parsed = CallToolResultSchema.safeParse(payload);
if (parsed.success) {
// parsed.data is a fully typed CallToolResult
}
```
## Scope
This package exports **only** Zod schema constants (`*Schema`), in two groups:
- the MCP **spec** schemas — `CallToolResultSchema`, `ListToolsResultSchema`, …; and
- the **OAuth/OpenID** auth schemas — `OAuthTokensSchema`, `OAuthMetadataSchema`, `IdJagTokenExchangeResponseSchema`, … (the schemas v1 exposed from `@modelcontextprotocol/sdk/shared/auth.js`).
The corresponding TypeScript types, error classes, enums, and type guards are part of the public API of [`@modelcontextprotocol/server`](https://www.npmjs.com/package/@modelcontextprotocol/server) and
[`@modelcontextprotocol/client`](https://www.npmjs.com/package/@modelcontextprotocol/client).
> **Migrating from v1?** In v1 these schemas were imported from `@modelcontextprotocol/sdk/types.js` (spec schemas) and `@modelcontextprotocol/sdk/shared/auth.js` (OAuth/OpenID schemas). Point those `*Schema` imports at `@modelcontextprotocol/core` and your existing `.parse()` /
> `.safeParse()` calls keep working unchanged.
@@ -0,0 +1,124 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
//#region src/utils/jwt/types.ts
/**
* @module
* Type definitions for JWT utilities.
*/
var JwtAlgorithmNotImplemented = class extends Error {
constructor(alg) {
super(`${alg} is not an implemented algorithm`);
this.name = "JwtAlgorithmNotImplemented";
}
};
var JwtAlgorithmRequired = class extends Error {
constructor() {
super("JWT verification requires \"alg\" option to be specified");
this.name = "JwtAlgorithmRequired";
}
};
var JwtAlgorithmMismatch = class extends Error {
constructor(expected, actual) {
super(`JWT algorithm mismatch: expected "${expected}", got "${actual}"`);
this.name = "JwtAlgorithmMismatch";
}
};
var JwtTokenInvalid = class extends Error {
constructor(token) {
super(`invalid JWT token: ${token}`);
this.name = "JwtTokenInvalid";
}
};
var JwtTokenNotBefore = class extends Error {
constructor(token) {
super(`token (${token}) is being used before it's valid`);
this.name = "JwtTokenNotBefore";
}
};
var JwtTokenExpired = class extends Error {
constructor(token) {
super(`token (${token}) expired`);
this.name = "JwtTokenExpired";
}
};
var JwtTokenIssuedAt = class extends Error {
constructor(currentTimestamp, iat) {
super(`Invalid "iat" claim, must be a valid number lower than "${currentTimestamp}" (iat: "${iat}")`);
this.name = "JwtTokenIssuedAt";
}
};
var JwtTokenIssuer = class extends Error {
constructor(expected, iss) {
super(`expected issuer "${expected}", got ${iss ? `"${iss}"` : "none"} `);
this.name = "JwtTokenIssuer";
}
};
var JwtHeaderInvalid = class extends Error {
constructor(header) {
super(`jwt header is invalid: ${JSON.stringify(header)}`);
this.name = "JwtHeaderInvalid";
}
};
var JwtHeaderRequiresKid = class extends Error {
constructor(header) {
super(`required "kid" in jwt header: ${JSON.stringify(header)}`);
this.name = "JwtHeaderRequiresKid";
}
};
var JwtSymmetricAlgorithmNotAllowed = class extends Error {
constructor(alg) {
super(`symmetric algorithm "${alg}" is not allowed for JWK verification`);
this.name = "JwtSymmetricAlgorithmNotAllowed";
}
};
var JwtAlgorithmNotAllowed = class extends Error {
constructor(alg, allowedAlgorithms) {
super(`algorithm "${alg}" is not in the allowed list: [${allowedAlgorithms.join(", ")}]`);
this.name = "JwtAlgorithmNotAllowed";
}
};
var JwtTokenSignatureMismatched = class extends Error {
constructor(token) {
super(`token(${token}) signature mismatched`);
this.name = "JwtTokenSignatureMismatched";
}
};
var JwtPayloadRequiresAud = class extends Error {
constructor(payload) {
super(`required "aud" in jwt payload: ${JSON.stringify(payload)}`);
this.name = "JwtPayloadRequiresAud";
}
};
var JwtTokenAudience = class extends Error {
constructor(expected, aud) {
super(`expected audience "${Array.isArray(expected) ? expected.join(", ") : expected}", got "${aud}"`);
this.name = "JwtTokenAudience";
}
};
let CryptoKeyUsage = /* @__PURE__ */ function(CryptoKeyUsage) {
CryptoKeyUsage["Encrypt"] = "encrypt";
CryptoKeyUsage["Decrypt"] = "decrypt";
CryptoKeyUsage["Sign"] = "sign";
CryptoKeyUsage["Verify"] = "verify";
CryptoKeyUsage["DeriveKey"] = "deriveKey";
CryptoKeyUsage["DeriveBits"] = "deriveBits";
CryptoKeyUsage["WrapKey"] = "wrapKey";
CryptoKeyUsage["UnwrapKey"] = "unwrapKey";
return CryptoKeyUsage;
}({});
//#endregion
exports.CryptoKeyUsage = CryptoKeyUsage;
exports.JwtAlgorithmMismatch = JwtAlgorithmMismatch;
exports.JwtAlgorithmNotAllowed = JwtAlgorithmNotAllowed;
exports.JwtAlgorithmNotImplemented = JwtAlgorithmNotImplemented;
exports.JwtAlgorithmRequired = JwtAlgorithmRequired;
exports.JwtHeaderInvalid = JwtHeaderInvalid;
exports.JwtHeaderRequiresKid = JwtHeaderRequiresKid;
exports.JwtPayloadRequiresAud = JwtPayloadRequiresAud;
exports.JwtSymmetricAlgorithmNotAllowed = JwtSymmetricAlgorithmNotAllowed;
exports.JwtTokenAudience = JwtTokenAudience;
exports.JwtTokenExpired = JwtTokenExpired;
exports.JwtTokenInvalid = JwtTokenInvalid;
exports.JwtTokenIssuedAt = JwtTokenIssuedAt;
exports.JwtTokenIssuer = JwtTokenIssuer;
exports.JwtTokenNotBefore = JwtTokenNotBefore;
exports.JwtTokenSignatureMismatched = JwtTokenSignatureMismatched;
@@ -0,0 +1,41 @@
import { z } from "zod/v4";
import * as generated from "./schema.js";
export type McpUiThemeSchemaInferredType = z.infer<typeof generated.McpUiThemeSchema>;
export type McpUiDisplayModeSchemaInferredType = z.infer<typeof generated.McpUiDisplayModeSchema>;
export type McpUiStyleVariableKeySchemaInferredType = z.infer<typeof generated.McpUiStyleVariableKeySchema>;
export type McpUiStylesSchemaInferredType = z.infer<typeof generated.McpUiStylesSchema>;
export type McpUiOpenLinkRequestSchemaInferredType = z.infer<typeof generated.McpUiOpenLinkRequestSchema>;
export type McpUiOpenLinkResultSchemaInferredType = z.infer<typeof generated.McpUiOpenLinkResultSchema>;
export type McpUiDownloadFileResultSchemaInferredType = z.infer<typeof generated.McpUiDownloadFileResultSchema>;
export type McpUiMessageResultSchemaInferredType = z.infer<typeof generated.McpUiMessageResultSchema>;
export type McpUiSandboxProxyReadyNotificationSchemaInferredType = z.infer<typeof generated.McpUiSandboxProxyReadyNotificationSchema>;
export type McpUiResourceCspSchemaInferredType = z.infer<typeof generated.McpUiResourceCspSchema>;
export type McpUiResourcePermissionsSchemaInferredType = z.infer<typeof generated.McpUiResourcePermissionsSchema>;
export type McpUiSizeChangedNotificationSchemaInferredType = z.infer<typeof generated.McpUiSizeChangedNotificationSchema>;
export type McpUiToolInputNotificationSchemaInferredType = z.infer<typeof generated.McpUiToolInputNotificationSchema>;
export type McpUiToolInputPartialNotificationSchemaInferredType = z.infer<typeof generated.McpUiToolInputPartialNotificationSchema>;
export type McpUiToolCancelledNotificationSchemaInferredType = z.infer<typeof generated.McpUiToolCancelledNotificationSchema>;
export type McpUiHostCssSchemaInferredType = z.infer<typeof generated.McpUiHostCssSchema>;
export type McpUiHostStylesSchemaInferredType = z.infer<typeof generated.McpUiHostStylesSchema>;
export type McpUiResourceTeardownRequestSchemaInferredType = z.infer<typeof generated.McpUiResourceTeardownRequestSchema>;
export type McpUiResourceTeardownResultSchemaInferredType = z.infer<typeof generated.McpUiResourceTeardownResultSchema>;
export type McpUiSupportedContentBlockModalitiesSchemaInferredType = z.infer<typeof generated.McpUiSupportedContentBlockModalitiesSchema>;
export type McpUiRequestTeardownNotificationSchemaInferredType = z.infer<typeof generated.McpUiRequestTeardownNotificationSchema>;
export type McpUiHostCapabilitiesSchemaInferredType = z.infer<typeof generated.McpUiHostCapabilitiesSchema>;
export type McpUiAppCapabilitiesSchemaInferredType = z.infer<typeof generated.McpUiAppCapabilitiesSchema>;
export type McpUiInitializedNotificationSchemaInferredType = z.infer<typeof generated.McpUiInitializedNotificationSchema>;
export type McpUiResourceMetaSchemaInferredType = z.infer<typeof generated.McpUiResourceMetaSchema>;
export type McpUiRequestDisplayModeRequestSchemaInferredType = z.infer<typeof generated.McpUiRequestDisplayModeRequestSchema>;
export type McpUiRequestDisplayModeResultSchemaInferredType = z.infer<typeof generated.McpUiRequestDisplayModeResultSchema>;
export type McpUiToolVisibilitySchemaInferredType = z.infer<typeof generated.McpUiToolVisibilitySchema>;
export type McpUiToolMetaSchemaInferredType = z.infer<typeof generated.McpUiToolMetaSchema>;
export type McpUiClientCapabilitiesSchemaInferredType = z.infer<typeof generated.McpUiClientCapabilitiesSchema>;
export type McpUiDownloadFileRequestSchemaInferredType = z.infer<typeof generated.McpUiDownloadFileRequestSchema>;
export type McpUiMessageRequestSchemaInferredType = z.infer<typeof generated.McpUiMessageRequestSchema>;
export type McpUiSandboxResourceReadyNotificationSchemaInferredType = z.infer<typeof generated.McpUiSandboxResourceReadyNotificationSchema>;
export type McpUiToolResultNotificationSchemaInferredType = z.infer<typeof generated.McpUiToolResultNotificationSchema>;
export type McpUiHostContextSchemaInferredType = z.infer<typeof generated.McpUiHostContextSchema>;
export type McpUiHostContextChangedNotificationSchemaInferredType = z.infer<typeof generated.McpUiHostContextChangedNotificationSchema>;
export type McpUiUpdateModelContextRequestSchemaInferredType = z.infer<typeof generated.McpUiUpdateModelContextRequestSchema>;
export type McpUiInitializeRequestSchemaInferredType = z.infer<typeof generated.McpUiInitializeRequestSchema>;
export type McpUiInitializeResultSchemaInferredType = z.infer<typeof generated.McpUiInitializeResultSchema>;
@@ -0,0 +1,38 @@
// src/visually-hidden.tsx
import * as React from "react";
import { Primitive } from "@radix-ui/react-primitive";
import { jsx } from "react/jsx-runtime";
var VISUALLY_HIDDEN_STYLES = Object.freeze({
// See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss
position: "absolute",
border: 0,
width: 1,
height: 1,
padding: 0,
margin: -1,
overflow: "hidden",
clip: "rect(0, 0, 0, 0)",
whiteSpace: "nowrap",
wordWrap: "normal"
});
var NAME = "VisuallyHidden";
var VisuallyHidden = React.forwardRef(
(props, forwardedRef) => {
return /* @__PURE__ */ jsx(
Primitive.span,
{
...props,
ref: forwardedRef,
style: { ...VISUALLY_HIDDEN_STYLES, ...props.style }
}
);
}
);
VisuallyHidden.displayName = NAME;
var Root = VisuallyHidden;
export {
Root,
VISUALLY_HIDDEN_STYLES,
VisuallyHidden
};
//# sourceMappingURL=index.mjs.map
@@ -0,0 +1,52 @@
import { noop } from '../noop.mjs';
/*
Bezier function generator
This has been modified from Gaëtan Renaudeau's BezierEasing
https://github.com/gre/bezier-easing/blob/master/src/index.js
https://github.com/gre/bezier-easing/blob/master/LICENSE
I've removed the newtonRaphsonIterate algo because in benchmarking it
wasn't noticeably faster than binarySubdivision, indeed removing it
usually improved times, depending on the curve.
I also removed the lookup table, as for the added bundle size and loop we're
only cutting ~4 or so subdivision iterations. I bumped the max iterations up
to 12 to compensate and this still tended to be faster for no perceivable
loss in accuracy.
Usage
const easeOut = cubicBezier(.17,.67,.83,.67);
const x = easeOut(0.5); // returns 0.627...
*/
// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.
const calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *
t;
const subdivisionPrecision = 0.0000001;
const subdivisionMaxIterations = 12;
function binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {
let currentX;
let currentT;
let i = 0;
do {
currentT = lowerBound + (upperBound - lowerBound) / 2.0;
currentX = calcBezier(currentT, mX1, mX2) - x;
if (currentX > 0.0) {
upperBound = currentT;
}
else {
lowerBound = currentT;
}
} while (Math.abs(currentX) > subdivisionPrecision &&
++i < subdivisionMaxIterations);
return currentT;
}
function cubicBezier(mX1, mY1, mX2, mY2) {
// If this is a linear gradient, return linear easing
if (mX1 === mY1 && mX2 === mY2)
return noop;
const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);
// If animation is at start/end, return t without easing
return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);
}
export { cubicBezier };
//# sourceMappingURL=cubic-bezier.mjs.map
@@ -0,0 +1,233 @@
# Migrating from Undici 7 to 8
<!--type=misc-->
This guide covers the changes you are most likely to hit when upgrading an
application or library from Undici v7 to v8.
## Before you upgrade
- Make sure your runtime is Node.js `>= 22.19.0`.
- If you have custom dispatchers, interceptors, or handlers, review the
handler API changes before updating.
- If you rely on HTTP/1.1-only behavior, plan to set `allowH2: false`
explicitly.
## 1. Update your Node.js version
Undici v8 requires Node.js `>= 22.19.0`.
If you are still on Node.js 20 or an older Node.js 22 release, upgrade Node.js
first:
```bash
node -v
```
If that command prints a version lower than `v22.19.0`, upgrade Node.js before
installing Undici v8.
## 2. Migrate custom dispatcher handlers to the v2 API
Undici v8 uses the newer dispatcher handler API consistently.
If you implemented custom dispatchers, interceptors, or wrappers around
`dispatch()`, update legacy callbacks such as `onConnect`, `onHeaders`, and
`onComplete` to the newer callback names.
### Old handler callbacks vs. v8 callbacks
| Undici 7 style | Undici 8 style |
|---|---|
| `onConnect(abort, context)` | `onRequestStart(controller, context)` |
| `onHeaders(statusCode, rawHeaders, resume, statusText)` | `onResponseStart(controller, statusCode, headers, statusText)` |
| `onData(chunk)` | `onResponseData(controller, chunk)` |
| `onComplete(trailers)` | `onResponseEnd(controller, trailers)` |
| `onError(err)` | `onResponseError(controller, err)` |
| `onUpgrade(statusCode, rawHeaders, socket)` | `onRequestUpgrade(controller, statusCode, headers, socket)` |
### Example
Before:
```js
client.dispatch(options, {
onConnect (abort) {
this.abort = abort
},
onHeaders (statusCode, headers, resume) {
this.resume = resume
return true
},
onData (chunk) {
chunks.push(chunk)
return true
},
onComplete (trailers) {
console.log(trailers)
},
onError (err) {
console.error(err)
}
})
```
After:
```js
client.dispatch(options, {
onRequestStart (controller) {
this.controller = controller
},
onResponseStart (controller, statusCode, headers, statusText) {
console.log(statusCode, statusText, headers)
},
onResponseData (controller, chunk) {
chunks.push(chunk)
},
onResponseEnd (controller, trailers) {
console.log(trailers)
},
onResponseError (controller, err) {
console.error(err)
}
})
```
### Pause, resume, and abort now go through the controller
In Undici v7, legacy handlers could return `false` or keep references to
`abort()` and `resume()` callbacks. In Undici v8, use the controller instead:
```js
onRequestStart (controller) {
this.controller = controller
}
onResponseData (controller, chunk) {
controller.pause()
setImmediate(() => controller.resume())
}
onResponseError (controller, err) {
controller.abort(err)
}
```
### Raw headers and trailers moved to the controller
If you need the raw header arrays, read them from the controller:
- `controller.rawHeaders`
- `controller.rawTrailers`
## 3. Update `onBodySent()` handlers
If you implemented `onBodySent()`, note that its signature changed.
Before, handlers received counters:
```js
onBodySent (chunkSize, totalBytesSent) {}
```
In Undici v8, handlers receive the actual chunk:
```js
onBodySent (chunk) {}
```
If you need a notification that the whole body has been sent, use
`onRequestSent()`:
```js
onRequestSent () {
console.log('request body fully sent')
}
```
## 4. If you need HTTP/1.1 only, disable HTTP/2 explicitly
Undici v8 enables HTTP/2 by default when a TLS server negotiates it via ALPN.
If your application depends on HTTP/1.1-specific behavior, set `allowH2: false`
explicitly.
Before:
```js
const client = new Client('https://example.com')
```
After, to keep HTTP/1.1 only:
```js
const client = new Client('https://example.com', {
allowH2: false
})
```
The same applies when you configure an `Agent`:
```js
const agent = new Agent({
allowH2: false
})
```
## 5. Use real `Blob` and `File` instances
Undici v8 no longer accepts fake Blob-like values that only imitate `Blob` or
`File` via properties such as `Symbol.toStringTag`.
If you were passing custom objects that looked like `Blob`s, replace them with
actual `Blob` or `File` instances:
```js
const body = new Blob(['hello'])
```
## 6. Avoid depending on the internal global dispatcher symbol
`setGlobalDispatcher()` and `getGlobalDispatcher()` remain the public APIs and
should continue to be used.
Internally, Undici v8 stores its dispatcher under
`Symbol.for('undici.globalDispatcher.2')` and mirrors a v1-compatible wrapper
for legacy consumers such as Node.js built-in `fetch`.
If your code was reading or writing `Symbol.for('undici.globalDispatcher.1')`
directly, migrate to the public APIs instead:
```js
import { setGlobalDispatcher, getGlobalDispatcher, Agent } from 'undici'
setGlobalDispatcher(new Agent())
const dispatcher = getGlobalDispatcher()
```
If you must expose a dispatcher to legacy v1 handler consumers, wrap it with
`Dispatcher1Wrapper`:
```js
import { Agent, Dispatcher1Wrapper } from 'undici'
const legacyCompatibleDispatcher = new Dispatcher1Wrapper(new Agent())
```
## 7. Verify the upgrade
After moving to Undici v8, it is worth checking these paths in your test suite:
- requests that use a custom `dispatcher`
- `setGlobalDispatcher()` behavior
- any custom interceptor or retry handler
- uploads that use `Blob`, `File`, or `FormData`
- integrations that depend on HTTP/1.1-only behavior
## Related documentation
- [Dispatcher](../api/Dispatcher.md)
- [Client](../api/Client.md)
- [Global Installation](../api/GlobalInstallation.md)
- [Undici Module vs. Node.js Built-in Fetch](./undici-vs-builtin-fetch.md)
@@ -0,0 +1,12 @@
import { animateMotionValue } from '../interfaces/motion-value.mjs';
import { motionValue } from '../../value/index.mjs';
import { isMotionValue } from '../../value/utils/is-motion-value.mjs';
function animateSingleValue(value, keyframes, options) {
const motionValue$1 = isMotionValue(value) ? value : motionValue(value);
motionValue$1.start(animateMotionValue("", motionValue$1, keyframes, options));
return motionValue$1.animation;
}
export { animateSingleValue };
//# sourceMappingURL=single-value.mjs.map
@@ -0,0 +1,66 @@
import { StatusCode } from "../../utils/http-status.js";
import { MiddlewareHandler, TypedResponse } from "../../types.js";
import { Context } from "../../context.js";
//#region src/helper/websocket/index.d.ts
/**
* WebSocket Event Listeners type
*/
export interface WSEvents<T = unknown> {
onOpen?: (evt: Event, ws: WSContext<T>) => void;
onMessage?: (evt: MessageEvent<WSMessageReceive>, ws: WSContext<T>) => void;
onClose?: (evt: CloseEvent, ws: WSContext<T>) => void;
onError?: (evt: Event, ws: WSContext<T>) => void;
}
/**
* Upgrade WebSocket Type
*/
export interface UpgradeWebSocket<T = unknown, U = any, _WSEvents = WSEvents<T>> {
(createEvents: (c: Context) => _WSEvents | Promise<_WSEvents>, options?: U): MiddlewareHandler<any, string, {
outputFormat: 'ws';
}>;
(c: Context, events: _WSEvents, options?: U): Promise<Response & TypedResponse<{}, StatusCode, 'ws'>>;
}
/**
* ReadyState for WebSocket
*/
export type WSReadyState = 0 | 1 | 2 | 3;
/**
* An argument for WSContext class
*/
export interface WSContextInit<T = unknown> {
send(data: string | ArrayBuffer | Uint8Array<ArrayBuffer>, options: SendOptions): void;
close(code?: number, reason?: string): void;
raw?: T;
readyState: WSReadyState;
url?: string | URL | null;
protocol?: string | null;
}
/**
* Options for sending message
*/
export interface SendOptions {
compress?: boolean;
}
/**
* A context for controlling WebSockets
*/
export declare class WSContext<T = unknown> {
constructor(init: WSContextInit<T>);
send(source: string | ArrayBuffer | Uint8Array<ArrayBuffer>, options?: SendOptions): void;
raw?: T;
binaryType: BinaryType;
get readyState(): WSReadyState;
url: URL | null;
protocol: string | null;
close(code?: number, reason?: string): void;
}
export type WSMessageReceive = string | Blob | ArrayBufferLike;
export declare const createWSMessageEvent: (source: WSMessageReceive) => MessageEvent<WSMessageReceive>;
export interface WebSocketHelperDefineContext {}
export type WebSocketHelperDefineHandler<T, U> = (c: Context, events: WSEvents<T>, options?: U) => Promise<Response | void> | Response | void;
/**
* Create a WebSocket adapter/helper
*/
export declare const defineWebSocketHelper: <T = unknown, U = any>(handler: WebSocketHelperDefineHandler<T, U>) => UpgradeWebSocket<T, U>;
//#endregion
@@ -0,0 +1,10 @@
/**
* @fileoverview exports for browsers
* @author 唯然<weiran.zsd@outlook.com>
*/
"use strict";
const { Linter } = require("./linter/linter");
module.exports = { Linter };
@@ -0,0 +1,3 @@
# `react-roving-focus`
This is an internal utility, not intended for public usage.
@@ -0,0 +1,154 @@
import { Module } from "node:module";
import { MessageChannel } from "node:worker_threads";
import { fileURLToPath } from "node:url";
//#region ../../node_modules/.pnpm/fresh-import@0.2.1/node_modules/fresh-import/dist/index.js
const instanceId = Math.random().toString(36).slice(2);
const relativeImportRE = /^\.{1,2}(?:\/|\\)/;
function escapeRegExp(value) {
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
}
/**
* The tracking query name `fresh-import-<instance>`, where `<instance>` is a
* random value unique to this loaded module instance. Any two instances (even
* two copies of the same build loaded into the same process) get distinct
* names, so each hook only recognizes the imports it tagged itself.
*/
function buildQueryName() {
return `fresh-import-${instanceId}`;
}
/**
* Build the regex that matches the tracking query `?<name>=<id>,<context>`
* (or the `&<name>=...` form).
*/
function buildQueryRE(queryName) {
return new RegExp(`(?:\\?|&)${escapeRegExp(queryName)}=(\\d+),([^&]+)(?:&|$)`);
}
/**
* Build the tracking query `?<name>=<id>,<context>` that `collect` appends to
* the entry specifier. `id` cache-busts the import (a distinct URL forces a
* fresh evaluation) and `context` tags the import graph so the resolve hook can
* attribute resolved dependencies back to the originating collect.
*/
function formatTrackingQuery(queryName, id, context) {
return `?${queryName}=${id},${context}`;
}
/**
* Shared body of the resolve hook for both the on-thread and off-thread
* importers. Given an already-resolved `result`, decides whether it is a tracked
* relative file dependency; if so, reports it via `onDependency` and tags the
* URL so the query propagates to its own dependencies.
*
* The sync/async difference between the two hooks lives entirely in the caller
* (which awaits `nextResolve` or not); this function performs no I/O. `result`
* is mutated in place and returned.
*/
function trackResolved(specifier, context, result, queryName, queryRE, onDependency) {
const isRelativeImport = relativeImportRE.test(specifier);
if (result.format === "builtin" || !isRelativeImport) return result;
if (!context.parentURL || queryRE.test(result.url) || !result.url.startsWith("file:")) return result;
const m = queryRE.exec(context.parentURL);
if (m) {
const [, id, contextFile] = m;
onDependency(contextFile, result.url);
result.url = result.url.replace(/(\?)|$/, (_n, n1) => `?${queryName}=${id},${contextFile}${n1 === "?" ? "&" : ""}`);
}
return result;
}
var loader_default = "data:text/javascript,Math.random().toString(36).slice(2);%0Aconst relativeImportRE = /^\\.{1,2}(%3F:\\/|\\\\)/;%0Afunction escapeRegExp(value) {%0A%09return value.replace(/[.*+%3F^${}()|[\\]\\\\]/g, \"\\\\$&\");%0A}%0A/**%0A* Build the regex that matches the tracking query `%3F<name>=<id>,<context>`%0A* (or the `&<name>=...` form).%0A*/%0Afunction buildQueryRE(queryName) {%0A%09return new RegExp(`(%3F:\\\\%3F|&)${escapeRegExp(queryName)}=(\\\\d+),([^&]+)(%3F:&|$)`);%0A}%0A/**%0A* Shared body of the resolve hook for both the on-thread and off-thread%0A* importers. Given an already-resolved `result`, decides whether it is a tracked%0A* relative file dependency; if so, reports it via `onDependency` and tags the%0A* URL so the query propagates to its own dependencies.%0A*%0A* The sync/async difference between the two hooks lives entirely in the caller%0A* (which awaits `nextResolve` or not); this function performs no I/O. `result`%0A* is mutated in place and returned.%0A*/%0Afunction trackResolved(specifier, context, result, queryName, queryRE, onDependency) {%0A%09const isRelativeImport = relativeImportRE.test(specifier);%0A%09if (result.format === \"builtin\" || !isRelativeImport) return result;%0A%09if (!context.parentURL || queryRE.test(result.url) || !result.url.startsWith(\"file:\")) return result;%0A%09const m = queryRE.exec(context.parentURL);%0A%09if (m) {%0A%09%09const [, id, contextFile] = m;%0A%09%09onDependency(contextFile, result.url);%0A%09%09result.url = result.url.replace(/(\\%3F)|$/, (_n, n1) => `%3F${queryName}=${id},${contextFile}${n1 === \"%3F\" %3F \"&\" : \"\"}`);%0A%09}%0A%09return result;%0A}%0A//%23endregion%0A//%23region src/off-thread/loader.ts%0Alet port;%0Alet queryName;%0Alet queryRE;%0Aconst initialize = async (data) => {%0A%09port = data.port;%0A%09queryName = data.queryName;%0A%09queryRE = buildQueryRE(queryName);%0A};%0Aconst resolve = async (specifier, context, nextResolve) => {%0A%09return trackResolved(specifier, context, await nextResolve(specifier, context), queryName, queryRE, (ctx, url) => {%0A%09%09port.postMessage({%0A%09%09%09context: ctx,%0A%09%09%09url%0A%09%09});%0A%09});%0A};%0A//%23endregion%0Aexport { initialize, resolve };%0A";
let nextId$1 = 0;
/**
* Off-thread importer: registers an ESM loader in a worker thread via
* `Module.register` and receives tracked dependencies over a `MessagePort`.
* Used on Node versions without `Module.registerHooks`.
*/
function createOffThreadImporter() {
const queryName = buildQueryName();
const { port1, port2 } = new MessageChannel();
Module.register(loader_default, {
data: {
port: port2,
queryName
},
transferList: [port2]
});
port1.unref();
return { async collect(specifier) {
const id = nextId$1++;
const depsList = /* @__PURE__ */ new Set();
const onMessage = (e) => {
if (e.context === specifier) depsList.add(e.url);
};
port1.on("message", onMessage);
port1.unref();
try {
const result = await import(specifier + formatTrackingQuery(queryName, id, specifier));
await new Promise((resolve) => setImmediate(resolve));
return {
result,
dependencies: [...depsList].filter((url) => url.startsWith("file:")).map((url) => fileURLToPath(url))
};
} finally {
port1.off("message", onMessage);
}
} };
}
let nextId = 0;
/**
* On-thread importer: registers synchronous resolution hooks via
* `Module.registerHooks` (Node 22.15+/23.5+).
*/
function createOnThreadImporter() {
const registry = /* @__PURE__ */ new Map();
const queryName = buildQueryName();
const queryRE = buildQueryRE(queryName);
const resolve = (specifier, context, nextResolve) => {
return trackResolved(specifier, context, nextResolve(specifier, context), queryName, queryRE, (ctx, url) => {
registry.get(ctx)?.add(url);
});
};
Module.registerHooks({ resolve });
return { async collect(specifier) {
const id = nextId++;
const depsList = /* @__PURE__ */ new Set();
registry.set(specifier, depsList);
try {
return {
result: await import(specifier + formatTrackingQuery(queryName, id, specifier)),
dependencies: [...depsList].filter((url) => url.startsWith("file:")).map((url) => fileURLToPath(url))
};
} finally {
registry.delete(specifier);
}
} };
}
/**
* Create the importer best suited to the current runtime, or `undefined` if it
* provides neither module-hook API.
*/
function createImporter() {
if (Module.registerHooks) return createOnThreadImporter();
if (Module.register) return createOffThreadImporter();
}
let importer;
let initialized = false;
/**
* Import an ESM entry in its own fresh module graph (separate from Node's module
* cache and from other concurrent imports) and report the dependency files it
* pulled in.
*
* Each call re-evaluates the entry in a fresh graph; concurrent calls stay
* isolated from one another. Only statically-imported relative dependencies are
* tracked, not dynamic imports.
*
* Returns `undefined` on runtimes that provide neither `Module.registerHooks`
* nor `Module.register`.
*/
function freshImport(specifier) {
if (!initialized) {
importer = createImporter();
initialized = true;
}
return importer?.collect(specifier);
}
//#endregion
export { freshImport };
@@ -0,0 +1 @@
{"version":3,"file":"chevrons-right-left.js","sources":["../../../src/icons/chevrons-right-left.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronsRightLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjAgMTctNS01IDUtNSIgLz4KICA8cGF0aCBkPSJtNCAxNyA1LTUtNS01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevrons-right-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronsRightLeft = createLucideIcon('ChevronsRightLeft', [\n ['path', { d: 'm20 17-5-5 5-5', key: '30x0n2' }],\n ['path', { d: 'm4 17 5-5-5-5', key: '16spf4' }],\n]);\n\nexport default ChevronsRightLeft;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,iBAAiB,mBAAqB,CAAA,CAAA,CAAA;AAAA,CAAA,CAC9D,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CAC/C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA;AAChD,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1,61 @@
import * as React from 'react';
/**
* Taken from https://github.com/radix-ui/primitives/blob/main/packages/react/compose-refs/src/compose-refs.tsx
*/
/**
* Set a given ref to a given value
* This utility takes care of different types of refs: callback refs and RefObject(s)
*/
function setRef(ref, value) {
if (typeof ref === "function") {
return ref(value);
}
else if (ref !== null && ref !== undefined) {
ref.current = value;
}
}
/**
* A utility to compose multiple refs together
* Accepts callback refs and RefObject(s)
*/
function composeRefs(...refs) {
return (node) => {
let hasCleanup = false;
const cleanups = refs.map((ref) => {
const cleanup = setRef(ref, node);
if (!hasCleanup && typeof cleanup === "function") {
hasCleanup = true;
}
return cleanup;
});
// React <19 will log an error to the console if a callback ref returns a
// value. We don't use ref cleanups internally so this will only happen if a
// user's ref callback returns a value, which we only expect if they are
// using the cleanup functionality added in React 19.
if (hasCleanup) {
return () => {
for (let i = 0; i < cleanups.length; i++) {
const cleanup = cleanups[i];
if (typeof cleanup === "function") {
cleanup();
}
else {
setRef(refs[i], null);
}
}
};
}
};
}
/**
* A custom hook that composes multiple refs
* Accepts callback refs and RefObject(s)
*/
function useComposedRefs(...refs) {
// eslint-disable-next-line react-hooks/exhaustive-deps
return React.useCallback(composeRefs(...refs), refs);
}
export { useComposedRefs };
//# sourceMappingURL=use-composed-ref.mjs.map
@@ -0,0 +1,98 @@
{
"name": "react-remove-scroll",
"version": "2.7.2",
"description": "Disables scroll outside of `children` node.",
"main": "dist/es5/index.js",
"jsnext:main": "dist/es2015/index.js",
"module": "dist/es2015/index.js",
"types": "dist/es5/index.d.ts",
"module:es2019": "dist/es2019/index.js",
"scripts": {
"dev": "lib-builder dev",
"test": "jest",
"test:ci": "jest --runInBand --coverage",
"build": "lib-builder build && yarn size:report",
"release": "yarn build && yarn test",
"size": "size-limit",
"size:report": "size-limit --json > .size.json",
"lint": "lib-builder lint",
"format": "lib-builder format",
"update": "lib-builder update",
"prepublish": "yarn build && yarn changelog",
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
"changelog:rewrite": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
"storybook": "start-storybook -p 6006"
},
"keywords": [
"scroll"
],
"author": "Anton Korzunov <thekashey@gmail.com>",
"license": "MIT",
"devDependencies": {
"@types/react": "^18.0.0",
"@babel/core": "^7.17.9",
"@size-limit/preset-small-lib": "^11.0.2",
"size-limit": "^11.0.2",
"@storybook/react": "^6.4.22",
"@theuiteam/lib-builder": "^0.1.4",
"@types/enzyme-adapter-react-16": "^1.0.6",
"babel-loader": "^8.2.4",
"enzyme-adapter-react-16": "^1.15.6"
},
"resolutions": {
"@types/react": "^18.0.0",
"tslib": "^2.1.0"
},
"engines": {
"node": ">=10"
},
"peerDependencies": {
"@types/react": "*",
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
},
"peerDependenciesMeta": {
"@types/react": {
"optional": true
}
},
"files": [
"dist",
"UI",
"sidecar"
],
"repository": "https://github.com/theKashey/react-remove-scroll",
"dependencies": {
"react-remove-scroll-bar": "^2.3.7",
"react-style-singleton": "^2.2.3",
"tslib": "^2.1.0",
"use-callback-ref": "^1.3.3",
"use-sidecar": "^1.1.3"
},
"sideEffects": [
"**/sidecar.js"
],
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{ts,tsx}": [
"prettier --write",
"eslint --fix",
"git add"
],
"*.{js,css,json,md}": [
"prettier --write",
"git add"
]
},
"prettier": {
"printWidth": 120,
"trailingComma": "es5",
"tabWidth": 2,
"semi": true,
"singleQuote": true
},
"packageManager": "yarn@1.22.19"
}
@@ -0,0 +1 @@
{"version":3,"file":"message-circle-code.js","sources":["../../../src/icons/message-circle-code.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MessageCircleCode\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgOS41IDggMTJsMiAyLjUiIC8+CiAgPHBhdGggZD0ibTE0IDkuNSAyIDIuNS0yIDIuNSIgLz4KICA8cGF0aCBkPSJNNy45IDIwQTkgOSAwIDEgMCA0IDE2LjFMMiAyMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-circle-code\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MessageCircleCode = createLucideIcon('MessageCircleCode', [\n ['path', { d: 'M10 9.5 8 12l2 2.5', key: '3mjy60' }],\n ['path', { d: 'm14 9.5 2 2.5-2 2.5', key: '1bir2l' }],\n ['path', { d: 'M7.9 20A9 9 0 1 0 4 16.1L2 22z', key: 'k85zhp' }],\n]);\n\nexport default MessageCircleCode;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,iBAAiB,mBAAqB,CAAA,CAAA,CAAA;AAAA,CAAA,CAC9D,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACnD,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACpD,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAkC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA;AACjE,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1,8 @@
import type { FlatConfig } from '@typescript-eslint/utils/ts-eslint';
/**
* A minimal ruleset that sets only the required parser and plugin options needed to run typescript-eslint.
* We don't recommend using this directly; instead, extend from an earlier recommended rule.
* @see {@link https://typescript-eslint.io/users/configs#base}
*/
declare const _default: (plugin: FlatConfig.Plugin, parser: FlatConfig.Parser) => FlatConfig.Config;
export default _default;
@@ -0,0 +1,2 @@
import type { LibDefinition } from '../variable';
export declare const esnext_full: LibDefinition;
@@ -0,0 +1,66 @@
# Client certificate
<!--type=misc-->
Client certificate authentication can be configured with the `Client`, the required options are passed along through the `connect` option.
The client certificates must be signed by a trusted CA. The Node.js default is to trust the well-known CAs curated by Mozilla.
Setting the server option `requestCert: true` tells the server to request the client certificate.
The server option `rejectUnauthorized: false` allows us to handle any invalid certificate errors in client code. The `authorized` property on the socket of the incoming request will show if the client certificate was valid. The `authorizationError` property will give the reason if the certificate was not valid.
### Client Certificate Authentication
```js
const { readFileSync } = require('node:fs')
const { join } = require('node:path')
const { createServer } = require('node:https')
const { Client } = require('undici')
const serverOptions = {
ca: [
readFileSync(join(__dirname, 'client-ca-crt.pem'), 'utf8')
],
key: readFileSync(join(__dirname, 'server-key.pem'), 'utf8'),
cert: readFileSync(join(__dirname, 'server-crt.pem'), 'utf8'),
requestCert: true,
rejectUnauthorized: false
}
const server = createServer(serverOptions, (req, res) => {
// true if client cert is valid
if(req.client.authorized === true) {
console.log('valid')
} else {
console.error(req.client.authorizationError)
}
res.end()
})
server.listen(0, function () {
const tls = {
ca: [
readFileSync(join(__dirname, 'server-ca-crt.pem'), 'utf8')
],
key: readFileSync(join(__dirname, 'client-key.pem'), 'utf8'),
cert: readFileSync(join(__dirname, 'client-crt.pem'), 'utf8'),
rejectUnauthorized: false,
servername: 'agent1'
}
const client = new Client(`https://localhost:${server.address().port}`, {
connect: tls
})
client.request({
path: '/',
method: 'GET'
}, (err, { body }) => {
body.on('data', (buf) => {})
body.on('end', () => {
client.close()
server.close()
})
})
})
```
@@ -0,0 +1,156 @@
import * as util from "./util.js";
/**
* @deprecated CUID v1 is deprecated by its authors due to information leakage
* (timestamps embedded in the id). Use {@link cuid2} instead.
* See https://github.com/paralleldrive/cuid.
*/
export const cuid = /^[cC][0-9a-z]{6,}$/;
export const cuid2 = /^[0-9a-z]+$/;
export const ulid = /^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/;
export const xid = /^[0-9a-vA-V]{20}$/;
export const ksuid = /^[A-Za-z0-9]{27}$/;
export const nanoid = /^[a-zA-Z0-9_-]{21}$/;
export function nanoidOfLength(length) {
return new RegExp(`^[a-zA-Z0-9_-]{${length}}$`);
}
/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */
export const duration = /^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;
/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */
export const extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/;
/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */
export const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;
/** Returns a regex for validating an RFC 9562/4122 UUID.
*
* @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */
export const uuid = (version) => {
if (!version)
return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;
return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);
};
export const uuid4 = /*@__PURE__*/ uuid(4);
export const uuid6 = /*@__PURE__*/ uuid(6);
export const uuid7 = /*@__PURE__*/ uuid(7);
/** Practical email validation */
export const email = /^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;
/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */
export const html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
/** The classic emailregex.com regex for RFC 5322-compliant emails */
export const rfc5322Email = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */
export const unicodeEmail = /^[^\s@"]{1,64}@[^\s@]{1,255}$/u;
export const idnEmail = unicodeEmail;
export const browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression
// Single character class, not an alternation: the two properties overlap (U+1F9B0-U+1F9B3), so `(A|B)+` backtracks exponentially on a failed match. The leading lookahead then demands one anchor — a pictograph, a regional indicator, or the enclosing keycap — because `\p{Emoji_Component}` on its own covers ASCII digits, `#`, `*`, ZWJ, variation selectors and skin tone modifiers, none of which is an emoji without a base.
const _emoji = `^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`;
export function emoji() {
return new RegExp(_emoji, "u");
}
export const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;
export const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;
export const mac = (delimiter) => {
const escapedDelim = util.escapeRegex(delimiter ?? ":");
return new RegExp(`^(?:[0-9A-F]{2}${escapedDelim}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${escapedDelim}){5}[0-9a-f]{2}$`);
};
export const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/;
export const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;
// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript
export const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;
export const base64url = /^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/;
// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address
// export const hostname: RegExp = /^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/;
export const hostname = /^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/;
export const domain = /^(?=.{1,253}$)([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$/;
export const httpProtocol = /^https?$/;
// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces) E.164: leading digit must be 1-9; total digits (excluding '+') between 7-15
export const e164 = /^\+[1-9]\d{6,14}$/;
// Credit card shape: 12–19 digits, optionally separated by single spaces or single hyphens. ISO/IEC 7812 caps the PAN at 19 digits; 12 is the shortest issued length (Maestro).
export const creditCard = /^\d(?:[ -]?\d){11,18}$/;
// ISO 4217 alpha codes from the SIX list, regenerated by scripts/update-iso-4217.ts
export const currencyCode = /^(?:AED|AFN|ALL|AMD|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BHD|BIF|BMD|BND|BOB|BOV|BRL|BSD|BTN|BWP|BYN|BZD|CAD|CDF|CHE|CHF|CHW|CLF|CLP|CNY|COP|COU|CRC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HTG|HUF|IDR|ILS|INR|IQD|IRR|ISK|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRU|MUR|MVR|MWK|MXN|MXV|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLE|SOS|SRD|SSP|STN|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TWD|TZS|UAH|UGX|USD|USN|UYI|UYU|UYW|UZS|VED|VES|VND|VUV|WST|XAD|XAF|XAG|XAU|XBA|XBB|XBC|XBD|XCD|XCG|XDR|XOF|XPD|XPF|XPT|XSU|XTS|XUA|XXX|YER|ZAR|ZMW|ZWG)$/;
// iban electronic format: 2-letter country, check digits 02-98 (the only values `98 - remainder` can produce), 11-30 bban characters
export const iban = /^[A-Z]{2}(?!00|01|99)\d{2}[A-Z0-9]{11,30}$/;
const dateSource = `(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`;
/** Anchors a pattern source. The interpolation lives here rather than at the call site because
* esbuild will not drop a `@__PURE__` call whose own argument interpolates a variable, but it
* will drop `anchor(dateSource)`. Keeping it inline pinned `date` into every bundle. */
function anchor(source) {
return new RegExp(`^${source}$`);
}
export const date = /*@__PURE__*/ anchor(dateSource);
function timeSource(args) {
const hhmm = `(?:[01]\\d|2[0-3]):[0-5]\\d`;
const regex = typeof args.precision === "number"
? args.precision === -1
? `${hhmm}`
: args.precision === 0
? `${hhmm}:[0-5]\\d`
: `${hhmm}:[0-5]\\d\\.\\d{${args.precision}}`
: args.seconds
? `${hhmm}:[0-5]\\d(?:\\.\\d+)?`
: `${hhmm}(?::[0-5]\\d(?:\\.\\d+)?)?`;
return regex;
}
export function time(args) {
return new RegExp(`^${timeSource(args)}$`);
}
// Adapted from https://stackoverflow.com/a/3143231
export function datetime(args) {
const opts = ["Z"];
// if (args.offset) opts.push(`([+-]\\d{2}:\\d{2})`);
if (args.offset)
opts.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);
// RFC 3339 mandates seconds wherever the time carries a `Z` or an offset, so only the unqualified form `local` adds may omit them
const qualified = `${timeSource({ precision: args.precision, seconds: true })}(?:${opts.join("|")})`;
const timeRegex = args.local ? `${qualified}|${timeSource({ precision: args.precision })}` : qualified;
return new RegExp(`^${dateSource}T(?:${timeRegex})$`);
}
// the unbounded form of `string()` as a literal, so every plain string shares one instance instead of building its own
export const anyString = /^[\s\S]{0,}$/;
export const string = (params) => {
const regex = params ? `[\\s\\S]{${params?.minimum ?? 0},${params?.maximum ?? ""}}` : `[\\s\\S]*`;
return new RegExp(`^${regex}$`);
};
export const bigint = /^-?\d+n?$/;
export const integer = /^-?\d+$/;
export const number = /^-?\d+(?:\.\d+)?$/;
export const boolean = /^(?:true|false)$/i;
const _null = /^null$/i;
export { _null as null };
const _undefined = /^undefined$/i;
export { _undefined as undefined };
// regex for string with no uppercase letters
export const lowercase = /^[^A-Z]*$/;
// regex for string with no lowercase letters
export const uppercase = /^[^a-z]*$/;
// regex for hexadecimal strings (any length)
export const hex = /^[0-9a-fA-F]*$/;
// Hash regexes for different algorithms and encodings
// Helper function to create base64 regex with exact length and padding
function fixedBase64(bodyLength, padding) {
return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`);
}
// Helper function to create base64url regex with exact length (no padding)
function fixedBase64url(length) {
return new RegExp(`^[A-Za-z0-9_-]{${length}}$`);
}
// MD5 (16 bytes): base64 = 24 chars total (22 + "==")
export const md5_hex = /^[0-9a-fA-F]{32}$/;
export const md5_base64 = /*@__PURE__*/ fixedBase64(22, "==");
export const md5_base64url = /*@__PURE__*/ fixedBase64url(22);
// SHA1 (20 bytes): base64 = 28 chars total (27 + "=")
export const sha1_hex = /^[0-9a-fA-F]{40}$/;
export const sha1_base64 = /*@__PURE__*/ fixedBase64(27, "=");
export const sha1_base64url = /*@__PURE__*/ fixedBase64url(27);
// SHA256 (32 bytes): base64 = 44 chars total (43 + "=")
export const sha256_hex = /^[0-9a-fA-F]{64}$/;
export const sha256_base64 = /*@__PURE__*/ fixedBase64(43, "=");
export const sha256_base64url = /*@__PURE__*/ fixedBase64url(43);
// SHA384 (48 bytes): base64 = 64 chars total (no padding)
export const sha384_hex = /^[0-9a-fA-F]{96}$/;
export const sha384_base64 = /*@__PURE__*/ fixedBase64(64, "");
export const sha384_base64url = /*@__PURE__*/ fixedBase64url(64);
// SHA512 (64 bytes): base64 = 88 chars total (86 + "==")
export const sha512_hex = /^[0-9a-fA-F]{128}$/;
export const sha512_base64 = /*@__PURE__*/ fixedBase64(86, "==");
export const sha512_base64url = /*@__PURE__*/ fixedBase64url(86);
@@ -0,0 +1,48 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getAssignmentIdentifiers;
function getAssignmentIdentifiers(node) {
const search = [].concat(node);
const ids = Object.create(null);
while (search.length) {
const id = search.pop();
if (!id) continue;
switch (id.type) {
case "ArrayPattern":
search.push(...id.elements);
break;
case "AssignmentExpression":
case "AssignmentPattern":
case "ForInStatement":
case "ForOfStatement":
search.push(id.left);
break;
case "ObjectPattern":
search.push(...id.properties);
break;
case "ObjectProperty":
search.push(id.value);
break;
case "RestElement":
case "UpdateExpression":
search.push(id.argument);
break;
case "UnaryExpression":
if (id.operator === "delete") {
search.push(id.argument);
}
break;
case "Identifier":
ids[id.name] = id;
break;
default:
break;
}
}
return ids;
}
//# sourceMappingURL=getAssignmentIdentifiers.js.map
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2020 Jordan Harband
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.
@@ -0,0 +1 @@
{"version":3,"file":"auth-V9XJSCfa.d.cts","names":[],"sources":["../src/types.ts","../src/schemas.ts","../src/auth.ts"],"sourcesContent":[],"mappings":"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 truncated
@@ -0,0 +1,51 @@
import * as React from 'react';
import { Primitive } from '@radix-ui/react-primitive';
type PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;
interface DismissableLayerProps extends PrimitiveDivProps {
/**
* When `true`, hover/focus/click interactions will be disabled on elements outside
* the `DismissableLayer`. Users will need to click twice on outside elements to
* interact with them: once to close the `DismissableLayer`, and again to trigger the element.
*/
disableOutsidePointerEvents?: boolean;
/**
* Event handler called when the escape key is down.
* Can be prevented.
*/
onEscapeKeyDown?: (event: KeyboardEvent) => void;
/**
* Event handler called when the a `pointerdown` event happens outside of the `DismissableLayer`.
* Can be prevented.
*/
onPointerDownOutside?: (event: PointerDownOutsideEvent) => void;
/**
* Event handler called when the focus moves outside of the `DismissableLayer`.
* Can be prevented.
*/
onFocusOutside?: (event: FocusOutsideEvent) => void;
/**
* Event handler called when an interaction happens outside the `DismissableLayer`.
* Specifically, when a `pointerdown` event happens outside or focus moves outside of it.
* Can be prevented.
*/
onInteractOutside?: (event: PointerDownOutsideEvent | FocusOutsideEvent) => void;
/**
* Handler called when the `DismissableLayer` should be dismissed
*/
onDismiss?: () => void;
}
declare const DismissableLayer: React.ForwardRefExoticComponent<DismissableLayerProps & React.RefAttributes<HTMLDivElement>>;
interface DismissableLayerBranchProps extends PrimitiveDivProps {
}
declare const DismissableLayerBranch: React.ForwardRefExoticComponent<DismissableLayerBranchProps & React.RefAttributes<HTMLDivElement>>;
type PointerDownOutsideEvent = CustomEvent<{
originalEvent: PointerEvent;
}>;
type FocusOutsideEvent = CustomEvent<{
originalEvent: FocusEvent;
}>;
declare const Root: React.ForwardRefExoticComponent<DismissableLayerProps & React.RefAttributes<HTMLDivElement>>;
declare const Branch: React.ForwardRefExoticComponent<DismissableLayerBranchProps & React.RefAttributes<HTMLDivElement>>;
export { Branch, DismissableLayer, DismissableLayerBranch, type DismissableLayerProps, Root };
@@ -0,0 +1,61 @@
# Browserslist
<img width="120" height="120" alt="Browserslist logo by Anton Popov"
src="https://browsersl.ist/logo.svg" align="right">
The config to share target browsers and Node.js versions between different
front-end tools. It is used in:
- [Autoprefixer]
- [Babel]
- [postcss-preset-env]
- [eslint-plugin-compat]
- [stylelint-no-unsupported-browser-features]
- [postcss-normalize]
- [obsolete-webpack-plugin]
All tools will find target browsers automatically,
when you add the following to `package.json`:
```json
"browserslist": [
"defaults and fully supports es6-module",
"maintained node versions"
]
```
Or in `.browserslistrc` config:
```yaml
# Browsers that we support
defaults and fully supports es6-module
maintained node versions
```
Developers set their version lists using queries like `last 2 versions`
to be free from updating versions manually.
Browserslist will use [`caniuse-lite`] with [Can I Use] data for this queries.
You can check how config works at our playground: [`browsersl.ist`](https://browsersl.ist/)
<a href="https://browsersl.ist/">
<img src="/img/screenshot.webp" alt="browsersl.ist website">
</a>
<br>
<br>
<div align="center">
<a href="https://evilmartians.com/?utm_source=browserslist"><img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg" alt="Sponsored by Evil Martians" width="236" height="54"></a>  <a href="https://cube.dev/?ref=eco-browserslist-github"><img src="https://user-images.githubusercontent.com/986756/154330861-d79ab8ec-aacb-4af8-9e17-1b28f1eccb01.svg" alt="Supported by Cube" width="227" height="46"></a>
</div>
[stylelint-no-unsupported-browser-features]: https://github.com/ismay/stylelint-no-unsupported-browser-features
[obsolete-webpack-plugin]: https://github.com/ElemeFE/obsolete-webpack-plugin
[eslint-plugin-compat]: https://github.com/amilajack/eslint-plugin-compat
[postcss-preset-env]: https://github.com/csstools/postcss-plugins/tree/main/plugin-packs/postcss-preset-env
[postcss-normalize]: https://github.com/csstools/postcss-normalize
[`browsersl.ist`]: https://browsersl.ist/
[`caniuse-lite`]: https://github.com/ben-eb/caniuse-lite
[Autoprefixer]: https://github.com/postcss/autoprefixer
[Can I Use]: https://caniuse.com/
[Babel]: https://github.com/babel/babel/tree/master/packages/babel-preset-env
@@ -0,0 +1 @@
{"version":3,"names":["_temporalUndefined"],"sources":["../../src/helpers/temporalUndefined.ts"],"sourcesContent":["/* @minVersion 7.0.0-beta.0 */\n\n// This function isn't mean to be called, but to be used as a reference.\n// We can't use a normal object because it isn't hoisted.\nexport default function _temporalUndefined(this: never): void {}\n"],"mappings":";;;;;;AAIe,SAASA,kBAAkBA,CAAA,EAAoB,CAAC","ignoreList":[]}
@@ -0,0 +1,17 @@
/**
* @license lucide-react v0.469.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
import createLucideIcon from '../createLucideIcon.js';
const SwissFranc = createLucideIcon("SwissFranc", [
["path", { d: "M10 21V3h8", key: "br2l0g" }],
["path", { d: "M6 16h9", key: "2py0wn" }],
["path", { d: "M10 9.5h7", key: "13dmhz" }]
]);
export { SwissFranc as default };
//# sourceMappingURL=swiss-franc.js.map
@@ -0,0 +1 @@
{"version":3,"file":"esquery.esm.min.js","sources":["../node_modules/estraverse/estraverse.js","../parser.js","../esquery.js"],"sourcesContent":["/*\n Copyright (C) 2012-2013 Yusuke Suzuki <utatane.tea@gmail.com>\n Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*jslint vars:false, bitwise:true*/\n/*jshint indent:4*/\n/*global exports:true*/\n(function clone(exports) {\n 'use strict';\n\n var Syntax,\n VisitorOption,\n VisitorKeys,\n BREAK,\n SKIP,\n REMOVE;\n\n function deepCopy(obj) {\n var ret = {}, key, val;\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n val = obj[key];\n if (typeof val === 'object' && val !== null) {\n ret[key] = deepCopy(val);\n } else {\n ret[key] = val;\n }\n }\n }\n return ret;\n }\n\n // based on LLVM libc++ upper_bound / lower_bound\n // MIT License\n\n function upperBound(array, func) {\n var diff, len, i, current;\n\n len = array.length;\n i = 0;\n\n while (len) {\n diff = len >>> 1;\n current = i + diff;\n if (func(array[current])) {\n len = diff;\n } else {\n i = current + 1;\n len -= diff + 1;\n }\n }\n return i;\n }\n\n Syntax = {\n AssignmentExpression: 'AssignmentExpression',\n AssignmentPattern: 'AssignmentPattern',\n ArrayExpression: 'ArrayExpression',\n ArrayPattern: 'ArrayPattern',\n ArrowFunctionExpression: 'ArrowFunctionExpression',\n AwaitExpression: 'AwaitExpression', // CAUTION: It's deferred to ES7.\n BlockStatement: 'BlockStatement',\n BinaryExpression: 'BinaryExpression',\n BreakStatement: 'BreakStatement',\n CallExpression: 'CallExpression',\n CatchClause: 'CatchClause',\n ChainExpression: 'ChainExpression',\n ClassBody: 'ClassBody',\n ClassDeclaration: 'ClassDeclaration',\n ClassExpression: 'ClassExpression',\n ComprehensionBlock: 'ComprehensionBlock', // CAUTION: It's deferred to ES7.\n ComprehensionExpression: 'ComprehensionExpression', // CAUTION: It's deferred to ES7.\n ConditionalExpression: 'ConditionalExpression',\n ContinueStatement: 'ContinueStatement',\n DebuggerStatement: 'DebuggerStatement',\n DirectiveStatement: 'DirectiveStatement',\n DoWhileStatement: 'DoWhileStatement',\n EmptyStatement: 'EmptyStatement',\n ExportAllDeclaration: 'ExportAllDeclaration',\n ExportDefaultDeclaration: 'ExportDefaultDeclaration',\n ExportNamedDeclaration: 'ExportNamedDeclaration',\n ExportSpecifier: 'ExportSpecifier',\n ExpressionStatement: 'ExpressionStatement',\n ForStatement: 'ForStatement',\n ForInStatement: 'ForInStatement',\n ForOfStatement: 'ForOfStatement',\n FunctionDeclaration: 'FunctionDeclaration',\n FunctionExpression: 'FunctionExpression',\n GeneratorExpression: 'GeneratorExpression', // CAUTION: It's deferred to ES7.\n Identifier: 'Identifier',\n IfStatement: 'IfStatement',\n ImportExpression: 'ImportExpression',\n ImportDeclaration: 'ImportDeclaration',\n ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n ImportSpecifier: 'ImportSpecifier',\n Literal: 'Literal',\n LabeledStatement: 'LabeledStatement',\n LogicalExpression: 'LogicalExpression',\n Line truncated
@@ -0,0 +1 @@
{"version":3,"file":"gallery-horizontal.js","sources":["../../../src/icons/gallery-horizontal.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name GalleryHorizontal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAzdjE4IiAvPgogIDxyZWN0IHdpZHRoPSIxMiIgaGVpZ2h0PSIxOCIgeD0iNiIgeT0iMyIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTIyIDN2MTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/gallery-horizontal\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst GalleryHorizontal = createLucideIcon('GalleryHorizontal', [\n ['path', { d: 'M2 3v18', key: 'pzttux' }],\n ['rect', { width: '12', height: '18', x: '6', y: '3', rx: '2', key: 'btr8bg' }],\n ['path', { d: 'M22 3v18', key: '6jf3v' }],\n]);\n\nexport default GalleryHorizontal;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,iBAAiB,mBAAqB,CAAA,CAAA,CAAA;AAAA,CAAA,CAC9D,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACxC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,MAAM,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,GAAG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CAC9E,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,SAAS,CAAA;AAC1C,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1,75 @@
import { HonoRequest } from "../request.js";
//#region src/utils/body.d.ts
type BodyDataValueDot = {
[x: string]: string | File | BodyDataValueDot;
};
type BodyDataValueDotAll = {
[x: string]: string | File | (string | File)[] | BodyDataValueDotAll;
};
type SimplifyBodyData<T> = { [K in keyof T]: string | File | (string | File)[] | BodyDataValueDotAll extends T[K] ? string | File | (string | File)[] | BodyDataValueDotAll : string | File | BodyDataValueDot extends T[K] ? string | File | BodyDataValueDot : string | File | (string | File)[] extends T[K] ? string | File | (string | File)[] : string | File; } & {};
type BodyDataValueComponent<T> = string | File | (T extends {
all: false;
} ? never : T extends {
all: true;
} | {
all: boolean;
} ? (string | File)[] : never);
type BodyDataValueObject<T> = {
[key: string]: BodyDataValueComponent<T> | BodyDataValueObject<T>;
};
type BodyDataValue<T> = BodyDataValueComponent<T> | (T extends {
dot: false;
} ? never : T extends {
dot: true;
} | {
dot: boolean;
} ? BodyDataValueObject<T> : never);
export type BodyData<T extends Partial<ParseBodyOptions> = {}> = SimplifyBodyData<Record<string, BodyDataValue<T>>>;
export type ParseBodyOptions = {
/**
* Determines whether all fields with multiple values should be parsed as arrays.
* @default false
* @example
* const data = new FormData()
* data.append('file', 'aaa')
* data.append('file', 'bbb')
* data.append('message', 'hello')
*
* If all is false:
* parseBody should return { file: 'bbb', message: 'hello' }
*
* If all is true:
* parseBody should return { file: ['aaa', 'bbb'], message: 'hello' }
*/
all: boolean;
/**
* Determines whether all fields with dot notation should be parsed as nested objects.
* @default false
* @example
* const data = new FormData()
* data.append('obj.key1', 'value1')
* data.append('obj.key2', 'value2')
*
* If dot is false:
* parseBody should return { 'obj.key1': 'value1', 'obj.key2': 'value2' }
*
* If dot is true:
* parseBody should return { obj: { key1: 'value1', key2: 'value2' } }
*/
dot: boolean;
};
/**
* Parses the body of a request based on the provided options.
*
* @template T - The type of the parsed body data.
* @param {HonoRequest | Request} request - The request object to parse.
* @param {Partial<ParseBodyOptions>} [options] - Options for parsing the body.
* @returns {Promise<T>} The parsed body data.
*/
interface ParseBody {
<Options extends Partial<ParseBodyOptions>, T extends BodyData<Options>>(request: HonoRequest | Request, options?: Options): Promise<T>;
<T extends BodyData>(request: HonoRequest | Request, options?: Partial<ParseBodyOptions>): Promise<T>;
}
export declare const parseBody: ParseBody;
//#endregion
export {};
@@ -0,0 +1,307 @@
import { readdir, readdirSync, realpath, realpathSync, stat, statSync } from "fs";
import { isAbsolute, posix, resolve } from "path";
import { fileURLToPath } from "url";
import { fdir } from "fdir";
import picomatch from "picomatch";
//#region src/utils.ts
const isReadonlyArray = Array.isArray;
const BACKSLASHES = /\\/g;
const DRIVE_RELATIVE_PATH = /^[A-Za-z]:$/;
const isWin = process.platform === "win32";
const ONLY_PARENT_DIRECTORIES = /^(\/?\.\.)+$/;
function getPartialMatcher(patterns, options = {}) {
const patternsCount = patterns.length;
const patternsParts = Array(patternsCount);
const matchers = Array(patternsCount);
let i, j;
for (i = 0; i < patternsCount; i++) {
const parts = splitPattern(patterns[i]);
patternsParts[i] = parts;
const partsCount = parts.length;
const partMatchers = Array(partsCount);
for (j = 0; j < partsCount; j++) partMatchers[j] = picomatch(parts[j], options);
matchers[i] = partMatchers;
}
return (input) => {
const inputParts = input.split("/");
if (inputParts[0] === ".." && ONLY_PARENT_DIRECTORIES.test(input)) return true;
for (i = 0; i < patternsCount; i++) {
const patternParts = patternsParts[i];
const matcher = matchers[i];
const inputPatternCount = inputParts.length;
const minParts = Math.min(inputPatternCount, patternParts.length);
j = 0;
while (j < minParts) {
const part = patternParts[j];
if (part.includes("/")) return true;
if (!matcher[j](inputParts[j])) break;
if (!options.noglobstar && part === "**") return true;
j++;
}
if (j === inputPatternCount) return true;
}
return false;
};
}
/* node:coverage ignore next 2 */
const WIN32_ROOT_DIR = /^[A-Z]:\/$/i;
const isRoot = isWin ? (p) => WIN32_ROOT_DIR.test(p) : (p) => p === "/";
function buildFormat(cwd, root, absolute) {
if (cwd === root || root.startsWith(`${cwd}/`)) {
if (absolute) {
const start = cwd.length + +!isRoot(cwd);
return (p, isDir) => p.slice(start, isDir ? -1 : void 0) || ".";
}
const prefix = root.slice(cwd.length + 1);
if (prefix) return (p, isDir) => {
if (p === ".") return prefix;
const result = `${prefix}/${p}`;
return isDir ? result.slice(0, -1) : result;
};
return (p, isDir) => isDir && p !== "." ? p.slice(0, -1) : p;
}
if (absolute) return (p) => posix.relative(cwd, p) || ".";
return (p) => posix.relative(cwd, `${root}/${p}`) || ".";
}
function buildRelative(cwd, root) {
if (root.startsWith(`${cwd}/`)) {
const prefix = root.slice(cwd.length + 1);
return (p) => `${prefix}/${p}`;
}
return (p) => {
const result = posix.relative(cwd, `${root}/${p}`);
return p[p.length - 1] === "/" && result !== "" ? `${result}/` : result || ".";
};
}
function ensureNonDriveRelativePath(path) {
return path.replace(DRIVE_RELATIVE_PATH, (match) => `${match}/`);
}
const splitPatternOptions = { parts: true };
function splitPattern(path) {
var _result$parts;
const result = picomatch.scan(path, splitPatternOptions);
return ((_result$parts = result.parts) === null || _result$parts === void 0 ? void 0 : _result$parts.length) ? result.parts : [path];
}
const ESCAPED_WIN32_BACKSLASHES = /\\(?![()[\]{}!+@])/g;
function convertPosixPathToPattern(path) {
return escapePosixPath(path);
}
function convertWin32PathToPattern(path) {
return escapeWin32Path(path).replace(ESCAPED_WIN32_BACKSLASHES, "/");
}
/**
* Converts a path to a pattern depending on the platform.
* Identical to {@link escapePath} on POSIX systems.
* @see {@link https://superchupu.dev/tinyglobby/documentation#convertPathToPattern}
*/
/* node:coverage ignore next 3 */
const convertPathToPattern = isWin ? convertWin32PathToPattern : convertPosixPathToPattern;
const POSIX_UNESCAPED_GLOB_SYMBOLS = /(?<!\\)([()[\]{}*?|]|^!|[!+@](?=\()|\\(?![()[\]{}!*+?@|]))/g;
const WIN32_UNESCAPED_GLOB_SYMBOLS = /(?<!\\)([()[\]{}]|^!|[!+@](?=\())/g;
const escapePosixPath = (path) => path.replace(POSIX_UNESCAPED_GLOB_SYMBOLS, "\\$&");
const escapeWin32Path = (path) => path.replace(WIN32_UNESCAPED_GLOB_SYMBOLS, "\\$&");
/**
* Escapes a path's special characters depending on the platform.
* @see {@link https://superchupu.dev/tinyglobby/documentation#escapePath}
*/
/* node:coverage ignore next */
const escapePath = isWin ? escapeWin32Path : escapePosixPath;
/**
* Checks if a pattern has dynamic parts.
*
* Has a few minor differences with [`fast-glob`](https://github.com/mrmlnc/fast-glob) for better accuracy:
*
* - Doesn't necessarily return `false` on patterns that include `\`.
* - Returns `true` if the pattern includes parentheses, regardless of them representing one single pattern or not.
* - Returns `true` for unfinished glob extensions i.e. `(h`, `+(h`.
* - Returns `true` for unfinished brace expansions as long as they include `,` or `..`.
*
* @see {@link https://superchupu.dev/tinyglobby/documentation#isDynamicPattern}
*/
function isDynamicPattern(pattern, options) {
if ((options === null || options === void 0 ? void 0 : options.caseSensitiveMatch) === false) return true;
const scan = picomatch.scan(pattern);
return scan.isGlob || scan.negated;
}
function log(...tasks) {
console.log(`[tinyglobby ${(/* @__PURE__ */ new Date()).toLocaleTimeString("es")}]`, ...tasks);
}
function ensureStringArray(value) {
return typeof value === "string" ? [value] : value !== null && value !== void 0 ? value : [];
}
//#endregion
//#region src/patterns.ts
const PARENT_DIRECTORY = /^(\/?\.\.)+/;
const ESCAPING_BACKSLASHES = /\\(?=[()[\]{}!*+?@|])/g;
function normalizePattern(pattern, opts, props, isIgnore) {
var _PARENT_DIRECTORY$exe;
const cwd = opts.cwd;
let result = pattern;
if (pattern[pattern.length - 1] === "/") result = pattern.slice(0, -1);
if (result[result.length - 1] !== "*" && opts.expandDirectories) result += "/**";
const escapedCwd = escapePath(cwd);
result = isAbsolute(result.replace(ESCAPING_BACKSLASHES, "")) ? posix.relative(escapedCwd, result) : posix.normalize(result);
const parentDir = (_PARENT_DIRECTORY$exe = PARENT_DIRECTORY.exec(result)) === null || _PARENT_DIRECTORY$exe === void 0 ? void 0 : _PARENT_DIRECTORY$exe[0];
const parts = splitPattern(result);
if (parentDir) {
const n = (parentDir.length + 1) / 3;
let i = 0;
const cwdParts = escapedCwd.split("/");
while (i < n && parts[i + n] === cwdParts[cwdParts.length + i - n]) {
result = result.slice(0, (n - i - 1) * 3) + result.slice((n - i) * 3 + parts[i + n].length + 1) || ".";
i++;
}
const potentialRoot = posix.join(cwd, parentDir.slice(i * 3));
if (potentialRoot[0] !== "." && props.root.length > potentialRoot.length) {
props.root = ensureNonDriveRelativePath(potentialRoot);
props.depthOffset = -n + i;
}
}
if (!isIgnore && props.depthOffset >= 0) {
var _props$commonPath;
(_props$commonPath = props.commonPath) !== null && _props$commonPath !== void 0 || (props.commonPath = parts);
const newCommonPath = [];
const length = Math.min(props.commonPath.length, parts.length);
for (let i = 0; i < length; i++) {
const part = parts[i];
if (part === "**" && !parts[i + 1]) {
newCommonPath.pop();
break;
}
if (i === parts.length - 1 || part !== props.commonPath[i] || isDynamicPattern(part)) break;
newCommonPath.push(part);
}
props.depthOffset = newCommonPath.length;
props.commonPath = newCommonPath;
props.root = ensureNonDriveRelativePath(newCommonPath.length > 0 ? posix.join(cwd, ...newCommonPath) : cwd);
}
return result;
}
function processPatterns(options, patterns, props) {
const matchPatterns = [];
const ignorePatterns = [];
for (const pattern of options.ignore) {
if (!pattern) continue;
if (pattern[0] !== "!" || pattern[1] === "(") ignorePatterns.push(normalizePattern(pattern, options, props, true));
}
for (const pattern of patterns) {
if (!pattern) continue;
if (pattern[0] !== "!" || pattern[1] === "(") matchPatterns.push(normalizePattern(pattern, options, props, false));
else if (pattern[1] !== "!" || pattern[2] === "(") ignorePatterns.push(normalizePattern(pattern.slice(1), options, props, true));
}
return {
match: matchPatterns,
ignore: ignorePatterns
};
}
//#endregion
//#region src/crawler.ts
function buildCrawler(options, patterns) {
const cwd = options.cwd;
const props = {
root: cwd,
depthOffset: 0
};
const processed = processPatterns(options, patterns, props);
if (options.debug) log("internal processing patterns:", processed);
const { absolute, caseSensitiveMatch, debug, dot, followSymbolicLinks, onlyDirectories } = options;
const root = props.root.replace(BACKSLASHES, "");
const matchOptions = {
dot,
nobrace: options.braceExpansion === false,
nocase: !caseSensitiveMatch,
noextglob: options.extglob === false,
noglobstar: options.globstar === false,
posix: true
};
const matcher = picomatch(processed.match, matchOptions);
const ignore = picomatch(processed.ignore, matchOptions);
const partialMatcher = getPartialMatcher(processed.match, matchOptions);
const format = buildFormat(cwd, root, absolute);
const excludeFormatter = absolute ? format : buildFormat(cwd, root, true);
const excludePredicate = (_, p) => {
const relativePath = excludeFormatter(p, true);
return relativePath !== "." && !partialMatcher(relativePath) || ignore(relativePath);
};
let maxDepth;
if (options.deep !== void 0) maxDepth = Math.round(options.deep - props.depthOffset);
const crawler = new fdir({
filters: [debug ? (p, isDirectory) => {
const path = format(p, isDirectory);
const matches = matcher(path) && !ignore(path);
if (matches) log(`matched ${path}`);
return matches;
} : (p, isDirectory) => {
const path = format(p, isDirectory);
return matcher(path) && !ignore(path);
}],
exclude: debug ? (_, p) => {
const skipped = excludePredicate(_, p);
log(`${skipped ? "skipped" : "crawling"} ${p}`);
return skipped;
} : excludePredicate,
fs: options.fs,
pathSeparator: "/",
relativePaths: !absolute,
resolvePaths: absolute,
includeBasePath: absolute,
resolveSymlinks: followSymbolicLinks,
excludeSymlinks: !followSymbolicLinks,
excludeFiles: onlyDirectories,
includeDirs: onlyDirectories || !options.onlyFiles,
maxDepth,
signal: options.signal
}).crawl(root);
if (options.debug) log("internal properties:", {
...props,
root
});
return [crawler, cwd !== root && !absolute && buildRelative(cwd, root)];
}
//#endregion
//#region src/index.ts
function formatPaths(paths, mapper) {
if (mapper) for (let i = paths.length - 1; i >= 0; i--) paths[i] = mapper(paths[i]);
return paths;
}
const defaultOptions = {
caseSensitiveMatch: true,
debug: !!process.env.TINYGLOBBY_DEBUG,
expandDirectories: true,
followSymbolicLinks: true,
onlyFiles: true
};
function getOptions(options) {
const opts = Object.assign({}, options);
for (const key in defaultOptions) if (opts[key] === void 0) Object.assign(opts, { [key]: defaultOptions[key] });
opts.cwd = (opts.cwd instanceof URL ? fileURLToPath(opts.cwd) : resolve(opts.cwd || process.cwd())).replace(BACKSLASHES, "/");
opts.ignore = ensureStringArray(opts.ignore);
opts.fs && (opts.fs = {
readdir: opts.fs.readdir || readdir,
readdirSync: opts.fs.readdirSync || readdirSync,
realpath: opts.fs.realpath || realpath,
realpathSync: opts.fs.realpathSync || realpathSync,
stat: opts.fs.stat || stat,
statSync: opts.fs.statSync || statSync
});
if (opts.debug) log("globbing with options:", opts);
return opts;
}
function getCrawler(globInput, inputOptions = {}) {
var _ref;
if (globInput && (inputOptions === null || inputOptions === void 0 ? void 0 : inputOptions.patterns)) throw new Error("Cannot pass patterns as both an argument and an option");
const isModern = isReadonlyArray(globInput) || typeof globInput === "string";
const patterns = ensureStringArray((_ref = isModern ? globInput : globInput.patterns) !== null && _ref !== void 0 ? _ref : "**/*");
const options = getOptions(isModern ? inputOptions : globInput);
return patterns.length > 0 ? buildCrawler(options, patterns) : [];
}
async function glob(globInput, options) {
const [crawler, relative] = getCrawler(globInput, options);
return crawler ? formatPaths(await crawler.withPromise(), relative) : [];
}
function globSync(globInput, options) {
const [crawler, relative] = getCrawler(globInput, options);
return crawler ? formatPaths(crawler.sync(), relative) : [];
}
//#endregion
export { convertPathToPattern, escapePath, glob, globSync, isDynamicPattern };
@@ -0,0 +1,14 @@
'use strict';
var s;
if (process.env.NODE_ENV === 'production') {
s = require('./cjs/react-dom-server.node.production.js');
} else {
s = require('./cjs/react-dom-server.node.development.js');
}
exports.version = s.version;
exports.prerenderToNodeStream = s.prerenderToNodeStream;
exports.prerender = s.prerender;
exports.resumeAndPrerenderToNodeStream = s.resumeAndPrerenderToNodeStream;
exports.resumeAndPrerender = s.resumeAndPrerender;
@@ -0,0 +1,485 @@
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABILITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
/// <reference lib="es2015.symbol.wellknown" />
/// <reference lib="es2020.intl" />
/// <reference lib="es2025.intl" />
declare namespace Temporal {
type CalendarLike = PlainDate | PlainDateTime | PlainMonthDay | PlainYearMonth | ZonedDateTime | string;
type DurationLike = Duration | DurationLikeObject | string;
type InstantLike = Instant | ZonedDateTime | string;
type PlainDateLike = PlainDate | ZonedDateTime | PlainDateTime | DateLikeObject | string;
type PlainDateTimeLike = PlainDateTime | ZonedDateTime | PlainDate | DateTimeLikeObject | string;
type PlainMonthDayLike = PlainMonthDay | DateLikeObject | string;
type PlainTimeLike = PlainTime | PlainDateTime | ZonedDateTime | TimeLikeObject | string;
type PlainYearMonthLike = PlainYearMonth | YearMonthLikeObject | string;
type TimeZoneLike = ZonedDateTime | string;
type ZonedDateTimeLike = ZonedDateTime | ZonedDateTimeLikeObject | string;
type PartialTemporalLike<T extends object> = {
[P in Exclude<keyof T, "calendar" | "timeZone">]?: T[P] | undefined;
};
interface DateLikeObject {
year?: number | undefined;
era?: string | undefined;
eraYear?: number | undefined;
month?: number | undefined;
monthCode?: string | undefined;
day: number;
calendar?: string | undefined;
}
interface DateTimeLikeObject extends DateLikeObject, TimeLikeObject {}
interface DurationLikeObject {
years?: number | undefined;
months?: number | undefined;
weeks?: number | undefined;
days?: number | undefined;
hours?: number | undefined;
minutes?: number | undefined;
seconds?: number | undefined;
milliseconds?: number | undefined;
microseconds?: number | undefined;
nanoseconds?: number | undefined;
}
interface TimeLikeObject {
hour?: number | undefined;
minute?: number | undefined;
second?: number | undefined;
millisecond?: number | undefined;
microsecond?: number | undefined;
nanosecond?: number | undefined;
}
interface YearMonthLikeObject extends Omit<DateLikeObject, "day"> {}
interface ZonedDateTimeLikeObject extends DateTimeLikeObject {
timeZone: TimeZoneLike;
offset?: string | undefined;
}
type DateUnit = "year" | "month" | "week" | "day";
type TimeUnit = "hour" | "minute" | "second" | "millisecond" | "microsecond" | "nanosecond";
type PluralizeUnit<T extends DateUnit | TimeUnit> =
| T
| {
year: "years";
month: "months";
week: "weeks";
day: "days";
hour: "hours";
minute: "minutes";
second: "seconds";
millisecond: "milliseconds";
microsecond: "microseconds";
nanosecond: "nanoseconds";
}[T];
interface DisambiguationOptions {
disambiguation?: "compatible" | "earlier" | "later" | "reject" | undefined;
}
interface OverflowOptions {
overflow?: "constrain" | "reject" | undefined;
}
interface TransitionOptions {
direction: "next" | "previous";
}
interface RoundingOptions<Units extends DateUnit | TimeUnit> {
smallestUnit?: PluralizeUnit<Units> | undefined;
roundingIncrement?: number | undefined;
roundingMode?: "ceil" | "floor" | "expand" | "trunc" | "halfCeil" | "halfFloor" | "halfExpand" | "halfTrunc" | "halfEven" | undefined;
}
interface RoundingOptionsWithLargestUnit<Units extends DateUnit | TimeUnit> extends RoundingOptions<Units> {
largestUnit?: "auto" | PluralizeUnit<Units> | undefined;
}
interface ToStringRoundingOptions<Units extends DateUnit | TimeUnit> extends Pick<RoundingOptions<Units>, "smallestUnit" | "roundingMode"> {}
interface ToStringRoundingOptionsWithFractionalSeconds<Units extends DateUnit | TimeUnit> extends ToStringRoundingOptions<Units> {
fractionalSecondDigits?: "auto" | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | undefined;
}
namespace Now {
function timeZoneId(): string;
function instant(): Instant;
function plainDateTimeISO(timeZone?: TimeZoneLike): PlainDateTime;
function zonedDateTimeISO(timeZone?: TimeZoneLike): ZonedDateTime;
function plainDateISO(timeZone?: TimeZoneLike): PlainDate;
function plainTimeISO(timeZone?: TimeZoneLike): PlainTime;
}
interface PlainDateToStringOptions {
calendarName?: "auto" | "always" | "never" | "critical" | undefined;
}
interface PlainDateToZonedDateTimeOptions {
plainTime?: PlainTimeLike | undefined;
timeZone: TimeZoneLike;
}
interface PlainDate {
readonly calendarId: string;
readonly era: string | undefined;
readonly eraYear: number | undefined;
readonly year: number;
readonly month: number;
readonly monthCode: string;
readonly day: number;
readonly dayOfWeek: number;
readonly dayOfYear: number;
readonly weekOfYear: number | undefined;
readonly yearOfWeek: number | undefined;
readonly daysInWeek: number;
readonly daysInMonth: number;
readonly daysInYear: number;
readonly monthsInYear: number;
readonly inLeapYear: boolean;
toPlainYearMonth(): PlainYearMonth;
toPlainMonthDay(): PlainMonthDay;
add(duration: DurationLike, options?: OverflowOptions): PlainDate;
subtract(duration: DurationLike, options?: OverflowOptions): PlainDate;
with(dateLike: PartialTemporalLike<DateLikeObject>, options?: OverflowOptions): PlainDate;
withCalendar(calendarLike: CalendarLike): PlainDate;
until(other: PlainDateLike, options?: RoundingOptionsWithLargestUnit<DateUnit>): Duration;
since(other: PlainDateLike, options?: RoundingOptionsWithLargestUnit<DateUnit>): Duration;
equals(other: PlainDateLike): boolean;
toPlainDateTime(time?: PlainTimeLike): PlainDateTime;
toZonedDateTime(timeZone: TimeZoneLike): ZonedDateTime;
toZonedDateTime(item: PlainDateToZonedDateTimeOptions): ZonedDateTime;
toString(options?: PlainDateToStringOptions): string;
toLocaleString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;
toJSON(): string;
valueOf(): never;
readonly [Symbol.toStringTag]: "Temporal.PlainDate";
}
interface PlainDateConstructor {
new (isoYear: number, isoMonth: number, isoDay: number, calendar?: string): PlainDate;
readonly prototype: PlainDate;
from(item: PlainDateLike, options?: OverflowOptions): PlainDate;
compare(one: PlainDateLike, two: PlainDateLike): number;
}
var PlainDate: PlainDateConstructor;
interface PlainTimeToStringOptions extends ToStringRoundingOptionsWithFractionalSeconds<Exclude<TimeUnit, "hour">> {}
interface PlainTime {
readonly hour: number;
readonly minute: number;
readonly second: number;
readonly millisecond: number;
readonly microsecond: number;
readonly nanosecond: number;
add(duration: DurationLike): PlainTime;
subtract(duration: DurationLike): PlainTime;
with(timeLike: PartialTemporalLike<TimeLikeObject>, options?: OverflowOptions): PlainTime;
until(other: PlainTimeLike, options?: RoundingOptionsWithLargestUnit<TimeUnit>): Duration;
since(other: PlainTimeLike, options?: RoundingOptionsWithLargestUnit<TimeUnit>): Duration;
equals(other: PlainTimeLike): boolean;
round(roundTo: PluralizeUnit<TimeUnit>): PlainTime;
round(roundTo: RoundingOptions<TimeUnit>): PlainTime;
toString(options?: PlainTimeToStringOptions): string;
toLocaleString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;
toJSON(): string;
valueOf(): never;
readonly [Symbol.toStringTag]: "Temporal.PlainTime";
}
interface PlainTimeConstructor {
new (hour?: number, minute?: number, second?: number, millisecond?: number, microsecond?: number, nanosecond?: number): PlainTime;
readonly prototype: PlainTime;
from(item: PlainTimeLike, options?: OverflowOptions): PlainTime;
compare(one: PlainTimeLike, two: PlainTimeLike): number;
}
var PlainTime: PlainTimeConstructor;
interface PlainDateTimeToStringOptions extends PlainDateToStringOptions, PlainTimeToStringOptions {}
interface PlainDateTime {
readonly calendarId: string;
readonly era: string | undefined;
readonly eraYear: number | undefined;
readonly year: number;
readonly month: number;
readonly monthCode: string;
readonly day: number;
readonly hour: number;
readonly minute: number;
readonly second: number;
readonly millisecond: number;
readonly microsecond: number;
readonly nanosecond: number;
readonly dayOfWeek: number;
readonly dayOfYear: number;
readonly weekOfYear: number | undefined;
readonly yearOfWeek: number | undefined;
readonly daysInWeek: number;
readonly daysInMonth: number;
readonly daysInYear: number;
readonly monthsInYear: number;
readonly inLeapYear: boolean;
with(dateTimeLike: PartialTemporalLike<DateTimeLikeObject>, options?: OverflowOptions): PlainDateTime;
withPlainTime(plainTime?: PlainTimeLike): PlainDateTime;
withCalendar(calendar: CalendarLike): PlainDateTime;
add(duration: DurationLike, options?: OverflowOptions): PlainDateTime;
subtract(duration: DurationLike, options?: OverflowOptions): PlainDateTime;
until(other: PlainDateTimeLike, options?: RoundingOptionsWithLargestUnit<DateUnit | TimeUnit>): Duration;
since(other: PlainDateTimeLike, options?: RoundingOptionsWithLargestUnit<DateUnit | TimeUnit>): Duration;
round(roundTo: PluralizeUnit<"day" | TimeUnit>): PlainDateTime;
round(roundTo: RoundingOptions<"day" | TimeUnit>): PlainDateTime;
equals(other: PlainDateTimeLike): boolean;
toString(options?: PlainDateTimeToStringOptions): string;
toLocaleString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;
toJSON(): string;
valueOf(): never;
toZonedDateTime(timeZone: TimeZoneLike, options?: DisambiguationOptions): ZonedDateTime;
toPlainDate(): PlainDate;
toPlainTime(): PlainTime;
readonly [Symbol.toStringTag]: "Temporal.PlainDateTime";
}
interface PlainDateTimeConstructor {
new (isoYear: number, isoMonth: number, isoDay: number, hour?: number, minute?: number, second?: number, millisecond?: number, microsecond?: number, nanosecond?: number, calendar?: string): PlainDateTime;
readonly prototype: PlainDateTime;
from(item: PlainDateTimeLike, options?: OverflowOptions): PlainDateTime;
compare(one: PlainDateTimeLike, two: PlainDateTimeLike): number;
}
var PlainDateTime: PlainDateTimeConstructor;
interface ZonedDateTimeToStringOptions extends PlainDateTimeToStringOptions {
offset?: "auto" | "never" | undefined;
timeZoneName?: "auto" | "never" | "critical" | undefined;
}
interface ZonedDateTimeFromOptions extends OverflowOptions, DisambiguationOptions {
offset?: "use" | "ignore" | "prefer" | "reject" | undefined;
}
interface ZonedDateTime {
readonly calendarId: string;
readonly timeZoneId: string;
readonly era: string | undefined;
readonly eraYear: number | undefined;
readonly year: number;
readonly month: number;
readonly monthCode: string;
readonly day: number;
readonly hour: number;
readonly minute: number;
readonly second: number;
readonly millisecond: number;
readonly microsecond: number;
readonly nanosecond: number;
readonly epochMilliseconds: number;
readonly epochNanoseconds: bigint;
readonly dayOfWeek: number;
readonly dayOfYear: number;
readonly weekOfYear: number | undefined;
readonly yearOfWeek: number | undefined;
readonly hoursInDay: number;
readonly daysInWeek: number;
readonly daysInMonth: number;
readonly daysInYear: number;
readonly monthsInYear: number;
readonly inLeapYear: boolean;
readonly offsetNanoseconds: number;
readonly offset: string;
with(zonedDateTimeLike: PartialTemporalLike<ZonedDateTimeLikeObject>, options?: ZonedDateTimeFromOptions): ZonedDateTime;
withPlainTime(plainTime?: PlainTimeLike): ZonedDateTime;
withTimeZone(timeZone: TimeZoneLike): ZonedDateTime;
withCalendar(calendar: CalendarLike): ZonedDateTime;
add(duration: DurationLike, options?: OverflowOptions): ZonedDateTime;
subtract(duration: DurationLike, options?: OverflowOptions): ZonedDateTime;
until(other: ZonedDateTimeLike, options?: RoundingOptionsWithLargestUnit<DateUnit | TimeUnit>): Duration;
since(other: ZonedDateTimeLike, options?: RoundingOptionsWithLargestUnit<DateUnit | TimeUnit>): Duration;
round(roundTo: PluralizeUnit<"day" | TimeUnit>): ZonedDateTime;
round(roundTo: RoundingOptions<"day" | TimeUnit>): ZonedDateTime;
equals(other: ZonedDateTimeLike): boolean;
toString(options?: ZonedDateTimeToStringOptions): string;
toLocaleString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;
toJSON(): string;
valueOf(): never;
startOfDay(): ZonedDateTime;
getTimeZoneTransition(direction: "next" | "previous"): ZonedDateTime | null;
getTimeZoneTransition(direction: TransitionOptions): ZonedDateTime | null;
toInstant(): Instant;
toPlainDate(): PlainDate;
toPlainTime(): PlainTime;
toPlainDateTime(): PlainDateTime;
readonly [Symbol.toStringTag]: "Temporal.ZonedDateTime";
}
interface ZonedDateTimeConstructor {
new (epochNanoseconds: bigint, timeZone: string, calendar?: string): ZonedDateTime;
readonly prototype: ZonedDateTime;
from(item: ZonedDateTimeLike, options?: ZonedDateTimeFromOptions): ZonedDateTime;
compare(one: ZonedDateTimeLike, two: ZonedDateTimeLike): number;
}
var ZonedDateTime: ZonedDateTimeConstructor;
interface DurationRelativeToOptions {
relativeTo?: ZonedDateTimeLike | PlainDateLike | undefined;
}
interface DurationRoundingOptions extends DurationRelativeToOptions, RoundingOptionsWithLargestUnit<DateUnit | TimeUnit> {}
interface DurationToStringOptions extends ToStringRoundingOptionsWithFractionalSeconds<Exclude<TimeUnit, "hour" | "minute">> {}
interface DurationTotalOptions extends DurationRelativeToOptions {
unit: PluralizeUnit<DateUnit | TimeUnit>;
}
interface Duration {
readonly years: number;
readonly months: number;
readonly weeks: number;
readonly days: number;
readonly hours: number;
readonly minutes: number;
readonly seconds: number;
readonly milliseconds: number;
readonly microseconds: number;
readonly nanoseconds: number;
readonly sign: number;
readonly blank: boolean;
with(durationLike: PartialTemporalLike<DurationLikeObject>): Duration;
negated(): Duration;
abs(): Duration;
add(other: DurationLike): Duration;
subtract(other: DurationLike): Duration;
round(roundTo: PluralizeUnit<"day" | TimeUnit>): Duration;
round(roundTo: DurationRoundingOptions): Duration;
total(totalOf: PluralizeUnit<"day" | TimeUnit>): number;
total(totalOf: DurationTotalOptions): number;
toString(options?: DurationToStringOptions): string;
toLocaleString(locales?: Intl.LocalesArgument, options?: Intl.DurationFormatOptions): string;
toJSON(): string;
valueOf(): never;
readonly [Symbol.toStringTag]: "Temporal.Duration";
}
interface DurationConstructor {
new (years?: number, months?: number, weeks?: number, days?: number, hours?: number, minutes?: number, seconds?: number, milliseconds?: number, microseconds?: number, nanoseconds?: number): Duration;
readonly prototype: Duration;
from(item: DurationLike): Duration;
compare(one: DurationLike, two: DurationLike, options?: DurationRelativeToOptions): number;
}
var Duration: DurationConstructor;
interface InstantToStringOptions extends PlainTimeToStringOptions {
timeZone?: TimeZoneLike | undefined;
}
interface Instant {
readonly epochMilliseconds: number;
readonly epochNanoseconds: bigint;
add(duration: DurationLike): Instant;
subtract(duration: DurationLike): Instant;
until(other: InstantLike, options?: RoundingOptionsWithLargestUnit<TimeUnit>): Duration;
since(other: InstantLike, options?: RoundingOptionsWithLargestUnit<TimeUnit>): Duration;
round(roundTo: PluralizeUnit<TimeUnit>): Instant;
round(roundTo: RoundingOptions<TimeUnit>): Instant;
equals(other: InstantLike): boolean;
toString(options?: InstantToStringOptions): string;
toLocaleString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;
toJSON(): string;
valueOf(): never;
toZonedDateTimeISO(timeZone: TimeZoneLike): ZonedDateTime;
readonly [Symbol.toStringTag]: "Temporal.Instant";
}
interface InstantConstructor {
new (epochNanoseconds: bigint): Instant;
readonly prototype: Instant;
from(item: InstantLike): Instant;
fromEpochMilliseconds(epochMilliseconds: number): Instant;
fromEpochNanoseconds(epochNanoseconds: bigint): Instant;
compare(one: InstantLike, two: InstantLike): number;
}
var Instant: InstantConstructor;
interface PlainYearMonthToPlainDateOptions {
day: number;
}
interface PlainYearMonth {
readonly calendarId: string;
readonly era: string | undefined;
readonly eraYear: number | undefined;
readonly year: number;
readonly month: number;
readonly monthCode: string;
readonly daysInYear: number;
readonly daysInMonth: number;
readonly monthsInYear: number;
readonly inLeapYear: boolean;
with(yearMonthLike: PartialTemporalLike<YearMonthLikeObject>, options?: OverflowOptions): PlainYearMonth;
add(duration: DurationLike, options?: OverflowOptions): PlainYearMonth;
subtract(duration: DurationLike, options?: OverflowOptions): PlainYearMonth;
until(other: PlainYearMonthLike, options?: RoundingOptionsWithLargestUnit<"year" | "month">): Duration;
since(other: PlainYearMonthLike, options?: RoundingOptionsWithLargestUnit<"year" | "month">): Duration;
equals(other: PlainYearMonthLike): boolean;
toString(options?: PlainDateToStringOptions): string;
toLocaleString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;
toJSON(): string;
valueOf(): never;
toPlainDate(item: PlainYearMonthToPlainDateOptions): PlainDate;
readonly [Symbol.toStringTag]: "Temporal.PlainYearMonth";
}
interface PlainYearMonthConstructor {
new (isoYear: number, isoMonth: number, calendar?: string, referenceISODay?: number): PlainYearMonth;
readonly prototype: PlainYearMonth;
from(item: PlainYearMonthLike, options?: OverflowOptions): PlainYearMonth;
compare(one: PlainYearMonthLike, two: PlainYearMonthLike): number;
}
var PlainYearMonth: PlainYearMonthConstructor;
interface PlainMonthDayToPlainDateOptions {
era?: string | undefined;
eraYear?: number | undefined;
year?: number | undefined;
}
interface PlainMonthDay {
readonly calendarId: string;
readonly monthCode: string;
readonly day: number;
with(monthDayLike: PartialTemporalLike<DateLikeObject>, options?: OverflowOptions): PlainMonthDay;
equals(other: PlainMonthDayLike): boolean;
toString(options?: PlainDateToStringOptions): string;
toLocaleString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;
toJSON(): string;
valueOf(): never;
toPlainDate(item: PlainMonthDayToPlainDateOptions): PlainDate;
readonly [Symbol.toStringTag]: "Temporal.PlainMonthDay";
}
interface PlainMonthDayConstructor {
new (isoMonth: number, isoDay: number, calendar?: string, referenceISOYear?: number): PlainMonthDay;
readonly prototype: PlainMonthDay;
from(item: PlainMonthDayLike, options?: OverflowOptions): PlainMonthDay;
}
var PlainMonthDay: PlainMonthDayConstructor;
}
@@ -0,0 +1,114 @@
import Document from './document.js'
import LazyResult from './lazy-result.js'
import NoWorkResult from './no-work-result.js'
import {
AcceptedPlugin,
Plugin,
ProcessOptions,
TransformCallback,
Transformer
} from './postcss.js'
import Result from './result.js'
import Root from './root.js'
declare namespace Processor {
export { Processor_ as default }
}
/**
* Contains plugins to process CSS. Create one `Processor` instance,
* initialize its plugins, and then use that instance on numerous CSS files.
*
* ```js
* const processor = postcss([autoprefixer, postcssNested])
* processor.process(css1).then(result => console.log(result.css))
* processor.process(css2).then(result => console.log(result.css))
* ```
*/
declare class Processor_ {
/**
* Plugins added to this processor.
*
* ```js
* const processor = postcss([autoprefixer, postcssNested])
* processor.plugins.length //=> 2
* ```
*/
plugins: (Plugin | TransformCallback | Transformer)[]
/**
* Current PostCSS version.
*
* ```js
* if (result.processor.version.split('.')[0] !== '6') {
* throw new Error('This plugin works only with PostCSS 6')
* }
* ```
*/
version: string
/**
* @param plugins PostCSS plugins
*/
constructor(plugins?: readonly AcceptedPlugin[])
/**
* Parses source CSS and returns a `LazyResult` Promise proxy.
* Because some plugins can be asynchronous it doesn’t make
* any transformations. Transformations will be applied
* in the `LazyResult` methods.
*
* ```js
* processor.process(css, { from: 'a.css', to: 'a.out.css' })
* .then(result => {
* console.log(result.css)
* })
* ```
*
* @param css String with input CSS or any object with a `toString()` method,
* like a Buffer. Optionally, send a `Result` instance
* and the processor will take the `Root` from it.
* @param opts Options.
* @return Promise proxy.
*/
process(
css: { toString(): string } | LazyResult | Result | Root | string
): LazyResult | NoWorkResult
process<RootNode extends Document | Root = Root>(
css: { toString(): string } | LazyResult | Result | Root | string,
options: ProcessOptions<RootNode>
): LazyResult<RootNode>
/**
* Adds a plugin to be used as a CSS processor.
*
* PostCSS plugin can be in 4 formats:
* * A plugin in `Plugin` format.
* * A plugin creator function with `pluginCreator.postcss = true`.
* PostCSS will call this function without argument to get plugin.
* * A function. PostCSS will pass the function a {@link Root}
* as the first argument and current `Result` instance
* as the second.
* * Another `Processor` instance. PostCSS will copy plugins
* from that instance into this one.
*
* Plugins can also be added by passing them as arguments when creating
* a `postcss` instance (see [`postcss(plugins)`]).
*
* Asynchronous plugins should return a `Promise` instance.
*
* ```js
* const processor = postcss()
* .use(autoprefixer)
* .use(postcssNested)
* ```
*
* @param plugin PostCSS plugin or `Processor` with plugins.
* @return Current processor to make methods chain.
*/
use(plugin: AcceptedPlugin): this
}
declare class Processor extends Processor_ {}
export = Processor
@@ -0,0 +1,17 @@
/**
* @license lucide-react v0.469.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
import createLucideIcon from '../createLucideIcon.js';
const Route = createLucideIcon("Route", [
["circle", { cx: "6", cy: "19", r: "3", key: "1kj8tv" }],
["path", { d: "M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15", key: "1d8sl" }],
["circle", { cx: "18", cy: "5", r: "3", key: "gq8acd" }]
]);
export { Route as default };
//# sourceMappingURL=route.js.map
@@ -0,0 +1,21 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
// seal-cjs-exports
(function () {
var keys = Object.getOwnPropertyNames(exports);
for (var i = 0; i < keys.length; i++) {
var desc = Object.getOwnPropertyDescriptor(exports, keys[i]);
if (!desc || !desc.get || !desc.configurable) continue;
var value;
try {
value = desc.get();
} catch (e) {
continue;
}
// a circular require may not have settled this one yet, so leave it live
if (value === undefined) continue;
Object.defineProperty(exports, keys[i], { value: value, writable: false, enumerable: desc.enumerable, configurable: false });
}
Object.freeze(exports);
})();
@@ -0,0 +1 @@
{"version":3,"file":"eraser.js","sources":["../../../src/icons/eraser.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Eraser\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyAyMS00LjMtNC4zYy0xLTEtMS0yLjUgMC0zLjRsOS42LTkuNmMxLTEgMi41LTEgMy40IDBsNS42IDUuNmMxIDEgMSAyLjUgMCAzLjRMMTMgMjEiIC8+CiAgPHBhdGggZD0iTTIyIDIxSDciIC8+CiAgPHBhdGggZD0ibTUgMTEgOSA5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eraser\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Eraser = createLucideIcon('Eraser', [\n [\n 'path',\n {\n d: 'm7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21',\n key: '182aya',\n },\n ],\n ['path', { d: 'M22 21H7', key: 't4ddhn' }],\n ['path', { d: 'm5 11 9 9', key: '1mo9qw' }],\n]);\n\nexport default Eraser;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,iBAAiB,QAAU,CAAA,CAAA,CAAA;AAAA,CACxC,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACA,CAAA,CAAA,CAAA,CAAA;AAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACP,CAAA,CAAA,CAAA,CAAA;AAAA,CACF,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACzC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA;AAC5C,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1 @@
{"version":3,"file":"map-pin.js","sources":["../../../src/icons/map-pin.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MapPin\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MapPin = createLucideIcon('MapPin', [\n [\n 'path',\n {\n d: 'M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0',\n key: '1r0f0z',\n },\n ],\n ['circle', { cx: '12', cy: '10', r: '3', key: 'ilqhr7' }],\n]);\n\nexport default MapPin;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,iBAAiB,QAAU,CAAA,CAAA,CAAA;AAAA,CACxC,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACA,CAAA,CAAA,CAAA,CAAA;AAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACP,CAAA,CAAA,CAAA,CAAA;AAAA,CACF,CAAA,CAAA,CAAA;AAAA,CACA,CAAA,CAAC,QAAU,CAAA,CAAA,CAAA,CAAE,EAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAM,CAAI,CAAA,CAAA,CAAA,IAAA,CAAM,CAAA,CAAG,EAAA,CAAA,CAAA,CAAA,CAAA,CAAK,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAU,CAAA;AAC1D,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1,820 @@
export default `flf2a$ 8 6 20 15 2
bigchf.flf 10/94 pk6811s@acad.drake.edu, update 1/95 syb3@ABER.AC.UK
Mrs. Penderson is SO proud of me!
____@
@
$$$$@
----@
$$$$@
____@
@
@@
_______@
/ @
/ @
---/---@
/ @
_o_____@
@
@@
____@
@
// @
----@
@
____@
@
@@
_________@
-/--/- @
-/--/- @
---------@
@
_________@
@
@@
___________@
__/_ @
( / ) @
-----\\-----@
(__/_) @
___/_______@
@
@@
_____@
@
()/ @
--/--@
/() @
_____@
@
@@
________@
__ @
( ) @
---\\/---@
/ \\ @
_(__ \\__@
) @
@@
___@
@
/ @
---@
@
___@
@
@@
_________@
.- @
/ @
----/----@
/ @
__/______@
/ @
- @@
________@
-. @
/ @
-----/--@
/ @
___/____@
/ @
- @@
______@
@
@
-_\\/_-@
/\\ @
______@
@
@@
_____@
@
@
-_|_-@
| @
_____@
@
@@
____@
@
@
----@
@
__/_@
/ @
@@
_____@
@
@
-----@
$=== @
_____@
@
@@
___@
$ @
$ @
---@
$$ @
_o_@
$ @
$ @@
_______$@
$@
/ @
---/----@
/ @
_/______@
@
@@
__________@
__ @
/ )@
---/----/-@
/ / @
_(____/___@
@
@@
__________@
_ @
// @
-----/----@
/ @
___/______@
@
@@
__________@
__ @
/ ) @
----___/--@
/ @
_/____/___@
@
@@
__________@
__ @
/ ) @
---- _ /--@
) @
_(____/___@
@
@@
__________@
@
/ / @
--/____/--@
/ @
_____/____@
@
@@
__________@
____ @
/ @
---/___---@
) @
_(____/___@
@
@@
__________@
___ @
/ @
---/___---@
/ ) @
_(____/___@
@
@@
__________@
____ @
/ / @
-------/--@
/ @
_____/____@
@
@@
__________@
__ @
/ )@
----___ --@
/ / @
_(____/___@
@
@@
__________@
__ @
/ )@
---(___ /-@
/ @
_(____/___@
@
@@
___@
@
@
---@
$o$@
_o_@
@
@@
___@
@
@
---@
@
___@
/ @
@@
____@
@
/ @
-<--@
\\ @
____@
@
@@
____@
@
__ @
-__-@
@
____@
@
@@
____@
@
\\ @
-->-@
/ @
____@
@
@@
________@
___ @
( ) @
----/---@
/ @
__o_____@
@
@@
________@
_ @
/ ) @
-/--O---@
\\__ / @
________@
@
@@
________@
__ @
/ | @
---/__|-@
/ | @
_/____|_@
@
@@
__________@
____ @
/ ) @
---/__ /--@
/ ) @
_/____/___@
@
@@
__________@
__ @
/ )@
---/------@
/ @
_(____/___@
@
@@
__________@
_____ @
/ )@
---/----/-@
/ / @
_/____/___@
@
@@
__________@
_____ @
/ '@
---/__----@
/ @
_/____$___@
@
@@
__________@
_____ @
/ '@
---/__----@
/ @
_/________@
@
@@
__________@
__ @
/ )@
---/------@
/ --, @
_(____/___@
@
@@
___________@
_ _@
/ / @
---/___ /--@
/ / @
_/____/____@
@
@@
_______@
__@
/ @
----/--@
/ @
$_/_$__@
@
@@
__________@
__@
/ @
-------/--@
/ @
_(___/____@
@
@@
__________@
_ _@
/ ,' @
---/_.'---@
/ \\ @
_/____\\___@
@
@@
________@
_ @
/ @
---/----@
/ @
_/____/_@
@
@@
__________@
_ _ @
/ /| @
---/| /-|-@
/ |/ | @
_/__/___|_@
@
@@
___________@
_ _@
/| / @
---/-| -/--@
/ | / @
_/___|/____@
@
@@
__________@
__ @
/ )@
---/----/-@
/ / @
_(____/___@
@
@@
__________@
____ @
/ )@
---/____/-@
/ @
_/________@
@
@@
__________@
__ @
/ )@
---/----/-@
/ \\ / @
_(____X___@
\\ @
@@
__________@
____ @
/ )@
---/___ /-@
/ | @
_/_____|__@
@
@@
__________@
__ @
/ )@
----\\-----@
\\ @
_(____/___@
@
@@
________@
______@
/ @
---/----@
/ @
_/______@
@
@@
___________@
_ _@
/ / @
---/----/--@
/ / @
_(____/____@
@
@@
________@
_ _@
| / @
--|--/--@
| / @
__|/____@
@
@@
__________@
_ _@
| | / @
--|-/|-/--@
|/ |/ @
__/__|____@
@
@@
_______@
_ _@
| / @
---|---@
/| @
_/_|___@
@
@@
___________@
_ _@
| / @
----|---/--@
| / @
____|_/____@
/ @
(_ / @@
__________@
___ @
/ @
-------/--@
/ @
____(_____@
/ @
(_ / @@
________@
__@
/ @
----/---@
/ @
__/_____@
/__ @
@@
______@
@
\\ @
--\\---@
\\ @
____\\_@
@
@@
________@
__@
/@
------/-@
/ @
____/___@
__/ @
@@
____@
@
| @
-/|-@
@
____@
@
@@
______@
@
@
------@
@
______@
------@
@@
___@
@
\\ @
---@
@
___@
@
@@
_______@
@
@
----__-@
/ )@
_(___(_@
@
@@
_______@
@
/ @
---/__-@
/ )@
_(___/_@
@
@@
_______@
@
@
----__-@
/ '@
_(___$_@
@
@@
_________@
@
/@
----__-/-@
/ / @
_(___/___@
@
@@
_______@
@
@
----__-@
/___)@
_(___$_@
@
@@
________@
_ @
/ \`@
--_/__--@
/ @
_/______@
@
@@
_______@
@
@
----__-@
/ )@
_(___/_@
/ @
(_ / @@
_______@
@
/ @
---/__-@
/ )@
_/___/_@
@
@@
_____@
@
,@
-----@
/ @
_/___@
@
@@
_________@
@
,@
---------@
/ @
_____/___@
/ @
(_ / @@
________@
@
/ @
---/-__-@
/( @
_/___\\__@
@
@@
_____@
@
/@
---/-@
/ @
_/___@
@
@@
________@
@
@
---_--_-@
/ / )@
_/_/__/_@
@
@@
_______@
@
@
----__-@
/ )@
_/___/_@
@
@@
_______@
@
@
----__-@
/ )@
_(___/_@
@
@@
_________@
@
@
------__-@
/ )@
___/___/_@
/ @
/ @@
_______@
@
@
----__-@
/ )@
_(___/_@
/ @
(_ @@
_______@
@
@
---)__-@
/ )@
_/_____@
@
@@
______@
@
@
---__-@
(_ \`@
_(__)_@
@
@@
______@
@
@
--_/_-@
/ @
_(_$__@
@
@@
________@
@
@
--------@
/ / @
_(___(__@
@
@@
______@
@
@
------@
| / @
__|/__@
@
@@
________@
@
@
--------@
| /| / @
_|/_|/__@
@
@@
_____@
@
@
---|/@
| @
__/|_@
/ @
@@
_______@
@
@
-------@
/ /@
_(___/_@
/ @
(_ / @@
_______@
@
@
----__-@
/@
____(__@
/ @
(_ / @@
________@
_@
/ @
----/---@
< @
__/_____@
(__ @
@@
_@
|@
|@
|@
|@
|@
$@
$@@
________@
_ @
)@
------/-@
> @
____/___@
_ / @
@@
_______@
_ _@
/ \\_/ @
-------@
@
_______@
@
@@
________@
, , @
__ @
---/__|-@
/ | @
_/____|_@
@
@@
_________@
, ,@
__ @
---/----)@
/ / @
_(____/__@
@
@@
________@
, ,@
@
---/---/@
/ / @
_(___(__@
@
@@
_______@
@
, ,@
----_--@
/ )@
_(___(_@
@
@@
_______@
@
, ,@
----_--@
/ )@
_(___/_@
@
@@
_______@
@
, ,@
-------@
/ /@
_(___(_@
@
@@
___________@
_____ @
// )@
---//__ ,/-@
// ) @
_//____/___@
/ @
@@
`
@@ -0,0 +1,24 @@
/**
* @license lucide-react v0.469.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
import createLucideIcon from '../createLucideIcon.js';
const ScrollText = createLucideIcon("ScrollText", [
["path", { d: "M15 12h-5", key: "r7krc0" }],
["path", { d: "M15 8h-5", key: "1khuty" }],
["path", { d: "M19 17V5a2 2 0 0 0-2-2H4", key: "zz82l3" }],
[
"path",
{
d: "M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",
key: "1ph1d7"
}
]
]);
export { ScrollText as default };
//# sourceMappingURL=scroll-text.js.map
@@ -0,0 +1 @@
{"version":3,"file":"helper.mjs","sources":["../../src/utils/helper.ts"],"sourcesContent":[null],"names":["extend","listToExtend","list","push","apply","sorted","matches","sort","m1","m2","i","j","buildRankedDictionary","orderedList","result","counter","forEach","word"],"mappings":"MAIaA,MAAM,GAAGA,CAACC,YAAmB,EAAEC,IAAW;AACrD;AACAD,YAAY,CAACE,IAAI,CAACC,KAAK,CAACH,YAAY,EAAEC,IAAI;AAkB5C;AACO,MAAMG,MAAM,GAAIC,OAAwB,IAC7CA,OAAO,CAACC,IAAI,CAAC,CAACC,EAAE,EAAEC,EAAE,KAAKD,EAAE,CAACE,CAAC,GAAGD,EAAE,CAACC,CAAC,IAAIF,EAAE,CAACG,CAAC,GAAGF,EAAE,CAACE,CAAC;AAE9C,MAAMC,qBAAqB,GAAIC,WAAkB,IAAI;EAC1D,MAAMC,MAAM,GAAgB,EAAE;AAC9B,EAAA,IAAIC,OAAO,GAAG,CAAC,CAAA;AACfF,EAAAA,WAAW,CAACG,OAAO,CAAEC,IAAI,IAAI;AAC3BH,IAAAA,MAAM,CAACG,IAAI,CAAC,GAAGF,OAAO;AACtBA,IAAAA,OAAO,IAAI,CAAC;AACd,EAAA,CAAC,CAAC;AACF,EAAA,OAAOD,MAAM;AACf;;;;"}
@@ -0,0 +1,69 @@
{
"name": "@radix-ui/react-primitive",
"version": "2.1.4",
"license": "MIT",
"source": "./src/index.ts",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
"files": [
"dist",
"README.md"
],
"sideEffects": false,
"dependencies": {
"@radix-ui/react-slot": "1.2.4"
},
"devDependencies": {
"@types/react": "^19.2.2",
"@types/react-dom": "^19.2.2",
"eslint": "^9.38.0",
"react": "^19.2.0",
"react-dom": "^19.2.0",
"typescript": "^5.9.3",
"@repo/builder": "0.0.0",
"@repo/eslint-config": "0.0.0",
"@repo/typescript-config": "0.0.0"
},
"peerDependencies": {
"@types/react": "*",
"@types/react-dom": "*",
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
"react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
},
"peerDependenciesMeta": {
"@types/react": {
"optional": true
},
"@types/react-dom": {
"optional": true
}
},
"homepage": "https://radix-ui.com/primitives",
"repository": {
"type": "git",
"url": "git+https://github.com/radix-ui/primitives.git"
},
"bugs": {
"url": "https://github.com/radix-ui/primitives/issues"
},
"scripts": {
"lint": "eslint --max-warnings 0 src",
"clean": "rm -rf dist",
"reset": "rm -rf dist node_modules",
"typecheck": "tsc --noEmit",
"build": "radix-build"
},
"types": "./dist/index.d.ts",
"exports": {
".": {
"import": {
"types": "./dist/index.d.mts",
"default": "./dist/index.mjs"
},
"require": {
"types": "./dist/index.d.ts",
"default": "./dist/index.js"
}
}
}
}
@@ -0,0 +1,21 @@
//#region src/utils/misc.ts
function arraify(value) {
return Array.isArray(value) ? value : [value];
}
function isPromiseLike(value) {
return value && (typeof value === "object" || typeof value === "function") && typeof value.then === "function";
}
function unimplemented(info) {
if (info) throw new Error(`unimplemented: ${info}`);
throw new Error("unimplemented");
}
function unreachable(info) {
if (info) throw new Error(`unreachable: ${info}`);
throw new Error("unreachable");
}
function unsupported(info) {
throw new Error(`UNSUPPORTED: ${info}`);
}
function noop(..._args) {}
//#endregion
export { unreachable as a, unimplemented as i, isPromiseLike as n, unsupported as o, noop as r, arraify as t };
@@ -0,0 +1,19 @@
/**
* @license lucide-react v0.469.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
import createLucideIcon from '../createLucideIcon.js';
const Heading4 = createLucideIcon("Heading4", [
["path", { d: "M12 18V6", key: "zqpxq5" }],
["path", { d: "M17 10v3a1 1 0 0 0 1 1h3", key: "tj5zdr" }],
["path", { d: "M21 10v8", key: "1kdml4" }],
["path", { d: "M4 12h8", key: "17cfdx" }],
["path", { d: "M4 18V6", key: "1rz3zl" }]
]);
export { Heading4 as default };
//# sourceMappingURL=heading-4.js.map
@@ -0,0 +1 @@
{"version":3,"file":"globe-lock.js","sources":["../../../src/icons/globe-lock.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name GlobeLock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuNjg2IDE1QTE0LjUgMTQuNSAwIDAgMSAxMiAyMmExNC41IDE0LjUgMCAwIDEgMC0yMCAxMCAxMCAwIDEgMCA5LjU0MiAxMyIgLz4KICA8cGF0aCBkPSJNMiAxMmg4LjUiIC8+CiAgPHBhdGggZD0iTTIwIDZWNGEyIDIgMCAxIDAtNCAwdjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iNSIgeD0iMTQiIHk9IjYiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/globe-lock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst GlobeLock = createLucideIcon('GlobeLock', [\n [\n 'path',\n {\n d: 'M15.686 15A14.5 14.5 0 0 1 12 22a14.5 14.5 0 0 1 0-20 10 10 0 1 0 9.542 13',\n key: 'qkt0x6',\n },\n ],\n ['path', { d: 'M2 12h8.5', key: 'ovaggd' }],\n ['path', { d: 'M20 6V4a2 2 0 1 0-4 0v2', key: '1of5e8' }],\n ['rect', { width: '8', height: '5', x: '14', y: '6', rx: '1', key: '1fmf51' }],\n]);\n\nexport default GlobeLock;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,iBAAiB,WAAa,CAAA,CAAA,CAAA;AAAA,CAC9C,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACA,CAAA,CAAA,CAAA,CAAA;AAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACP,CAAA,CAAA,CAAA,CAAA;AAAA,CACF,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CAC1C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAA2B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACxD,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,GAAG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA;AAC/E,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1 @@
{"version":3,"file":"book-marked.js","sources":["../../../src/icons/book-marked.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name BookMarked\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnY4bDMtMyAzIDNWMiIgLz4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/book-marked\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst BookMarked = createLucideIcon('BookMarked', [\n ['path', { d: 'M10 2v8l3-3 3 3V2', key: 'sqw3rj' }],\n [\n 'path',\n {\n d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20',\n key: 'k3hazp',\n },\n ],\n]);\n\nexport default BookMarked;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,iBAAiB,YAAc,CAAA,CAAA,CAAA;AAAA,CAAA,CAChD,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAClD,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACA,CAAA,CAAA,CAAA,CAAA;AAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACP,CAAA,CAAA,CAAA,CAAA;AAAA,CACF,CAAA,CAAA;AACF,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1,20 @@
/**
* @license lucide-react v0.469.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
import createLucideIcon from '../createLucideIcon.js';
const AudioLines = createLucideIcon("AudioLines", [
["path", { d: "M2 10v3", key: "1fnikh" }],
["path", { d: "M6 6v11", key: "11sgs0" }],
["path", { d: "M10 3v18", key: "yhl04a" }],
["path", { d: "M14 8v7", key: "3a1oy3" }],
["path", { d: "M18 5v13", key: "123xd1" }],
["path", { d: "M22 10v3", key: "154ddg" }]
]);
export { AudioLines as default };
//# sourceMappingURL=audio-lines.js.map
@@ -0,0 +1,12 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getEnv = getEnv;
function getEnv(defaultValue = "development") {
return process.env.BABEL_ENV || process.env.NODE_ENV || defaultValue;
}
0 && 0;
//# sourceMappingURL=environment.js.map
@@ -0,0 +1,151 @@
/**
* @fileoverview Rule to enforce placing object properties on separate lines.
* @author Vitor Balocco
* @deprecated in ESLint v8.53.0
*/
"use strict";
//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------
/** @type {import('../types').Rule.RuleModule} */
module.exports = {
meta: {
deprecated: {
message: "Formatting rules are being moved out of ESLint core.",
url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
deprecatedSince: "8.53.0",
availableUntil: "11.0.0",
replacedBy: [
{
message:
"ESLint Stylistic now maintains deprecated stylistic core rules.",
url: "https://eslint.style/guide/migration",
plugin: {
name: "@stylistic/eslint-plugin",
url: "https://eslint.style",
},
rule: {
name: "object-property-newline",
url: "https://eslint.style/rules/object-property-newline",
},
},
],
},
type: "layout",
docs: {
description: "Enforce placing object properties on separate lines",
recommended: false,
url: "https://eslint.org/docs/latest/rules/object-property-newline",
},
schema: [
{
type: "object",
properties: {
allowAllPropertiesOnSameLine: {
type: "boolean",
default: false,
},
allowMultiplePropertiesPerLine: {
// Deprecated
type: "boolean",
default: false,
},
},
additionalProperties: false,
},
],
fixable: "whitespace",
messages: {
propertiesOnNewlineAll:
"Object properties must go on a new line if they aren't all on the same line.",
propertiesOnNewline: "Object properties must go on a new line.",
},
},
create(context) {
const allowSameLine =
context.options[0] &&
(context.options[0].allowAllPropertiesOnSameLine ||
context.options[0]
.allowMultiplePropertiesPerLine); /* Deprecated */
const messageId = allowSameLine
? "propertiesOnNewlineAll"
: "propertiesOnNewline";
const sourceCode = context.sourceCode;
return {
ObjectExpression(node) {
if (allowSameLine) {
if (node.properties.length > 1) {
const firstTokenOfFirstProperty =
sourceCode.getFirstToken(node.properties[0]);
const lastTokenOfLastProperty = sourceCode.getLastToken(
node.properties.at(-1),
);
if (
firstTokenOfFirstProperty.loc.end.line ===
lastTokenOfLastProperty.loc.start.line
) {
// All keys and values are on the same line
return;
}
}
}
for (let i = 1; i < node.properties.length; i++) {
const lastTokenOfPreviousProperty = sourceCode.getLastToken(
node.properties[i - 1],
);
const firstTokenOfCurrentProperty =
sourceCode.getFirstToken(node.properties[i]);
if (
lastTokenOfPreviousProperty.loc.end.line ===
firstTokenOfCurrentProperty.loc.start.line
) {
context.report({
node,
loc: firstTokenOfCurrentProperty.loc,
messageId,
fix(fixer) {
const comma = sourceCode.getTokenBefore(
firstTokenOfCurrentProperty,
);
const rangeAfterComma = [
comma.range[1],
firstTokenOfCurrentProperty.range[0],
];
// Don't perform a fix if there are any comments between the comma and the next property.
if (
sourceCode.text
.slice(
rangeAfterComma[0],
rangeAfterComma[1],
)
.trim()
) {
return null;
}
return fixer.replaceTextRange(
rangeAfterComma,
"\n",
);
},
});
}
}
},
};
},
};
@@ -0,0 +1,16 @@
/**
* @license lucide-react v0.469.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
import createLucideIcon from '../createLucideIcon.js';
const ChevronsLeftRight = createLucideIcon("ChevronsLeftRight", [
["path", { d: "m9 7-5 5 5 5", key: "j5w590" }],
["path", { d: "m15 7 5 5-5 5", key: "1bl6da" }]
]);
export { ChevronsLeftRight as default };
//# sourceMappingURL=chevrons-left-right.js.map