Args CLI arguments container.
Positional arguments stored in _, named flags/options as string keys.
Produced by argv_parse or external parsers (mri, minimist, etc.).
_
Array<string>utility belt for JS
51 modules ยท 415 declarations
Args CLI arguments container.
Positional arguments stored in _, named flags/options as string keys.
Produced by argv_parse or external parsers (mri, minimist, etc.).
_Array<string>(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): ArgsAliasesResult Extracts alias mappings and canonical keys from a zod schema's metadata.
Useful for consumers building custom tooling (help generators, conflict detection, etc.). Results are cached per schema (WeakMap).
Note: Returns copies of the cached data to prevent mutation of internal cache.
schemaZod object schema with optional .meta({aliases}) on fields
ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>ArgsAliasesResult Object with aliases map and canonical_keys set
<TOutput extends Record<string, ArgValue> = Args>(unparsed_args: Args, schema: ZodType<TOutput, unknown, $ZodTypeInternals<TOutput, unknown>>): ZodSafeParseResult<...> Validates parsed CLI args against a zod schema.
Handles CLI-specific concerns before validation:
1. Validates schema (cached) - returns error if alias conflicts exist
2. Expands aliases defined in schema .meta({aliases: ['v']})
3. Strips alias keys (required for strictObject schemas)
4. Validates with zod
5. After validation, syncs no- prefixed boolean flags with their base keys
Schema analysis is cached per schema (WeakMap) for performance.
unparsed_argsArgs object from CLI parser (mri, minimist, etc.)
schemaZod object schema with optional alias metadata
ZodType<TOutput, unknown, $ZodTypeInternals<TOutput, unknown>>ZodSafeParseResult<TOutput> Zod SafeParseResult with expanded/synced data on success
(args: Args, schema?: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> | undefined): string[] Serializes Args to CLI string array for subprocess forwarding.
Handles CLI conventions:
- Positionals first, then flags
- Single-char keys get single dash, multi-char get double dash
- Boolean true becomes bare flag, false is skipped
- undefined values are skipped
- no- prefixed keys skipped when base key is truthy (avoid contradiction)
- When schema provided, extracts aliases and prefers shortest form
Schema analysis is cached per schema (WeakMap) for performance.
argsArgs object to serialize
schema?Optional zod schema to extract aliases for short form preference
ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> | undefinedstring[] Array of CLI argument strings
(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): { success: true; } | { success: false; error: ZodError<unknown>; } Validates a zod schema for CLI arg usage.
Checks for: - Alias conflicts with canonical keys - Duplicate aliases across different keys
Results are cached per schema (WeakMap). Safe to call multiple times.
schemaZod object schema with optional alias metadata
ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>{ success: true; } | { success: false; error: ZodError<unknown>; } Validation result with success flag and optional error
ArgsAliasesResult Result of alias extraction from a schema. Includes canonical keys for downstream conflict detection.
aliasesMap<string, string>canonical_keysSet<string>ArgSchema Schema description for help text generation. Not used by args_parse/args_serialize directly - provided for consumers building CLI help output.
typestringdefaultdescriptionstring(argv: string[]): ParsedArgs Parses raw CLI argv array into an Args object.
A lightweight, dependency-free alternative to mri/minimist with compatible behavior.
Features:
- --flag โ {flag: true}
- --flag value โ {flag: 'value'} or {flag: 123} (numeric coercion)
- --flag=value โ equals syntax
- --flag= โ {flag: ''} (empty string, differs from mri which returns true)
- -f โ {f: true} (short flag)
- -f value โ {f: 'value'}
- -abc โ {a: true, b: true, c: true} (combined short flags)
- -abc value โ {a: true, b: true, c: 'value'} (last flag gets value)
- --no-flag โ {flag: false} (negation prefix)
- -- โ stops flag parsing, rest become positionals
- Positionals collected in _ array
- Repeated flags become arrays
Intentional differences from mri:
- --flag= returns '' (mri returns true)
- --flag= next returns {flag: '', _: ['next']} (mri takes next as the value)
- ---flag returns {'-flag': true} (mri strips all dashes)
- ['--flag', ''] preserves '' (mri coerces to 0)
- --__proto__ works as a normal key (mri silently fails)
The returned object uses Object.create(null) to prevent prototype pollution
and allow any key name including __proto__ and constructor.
argvRaw argument array (typically process.argv.slice(2))
string[]ParsedArgs Parsed Args object with guaranteed _ array (null prototype)
ArgValue Value types supported in CLI arguments.
ArrayElement<T> TAssignable<T, K> TKkeyof Tkeyof TAsync semaphore for concurrency limiting.
With Infinity permits, acquire() always resolves immediately.
constructortype new (permits: number): AsyncSemaphore
permitsnumberacquiretype (): Promise<void>
Promise<void>releasetype (): void
voidAsyncStatus (options?: { to_error_label?: ((err: Error, origin: UncaughtExceptionOrigin) => string | null) | undefined; map_error_text?: ((err: Error, origin: UncaughtExceptionOrigin) => string | null) | undefined; handle_error?: ((err: Error, origin: UncaughtExceptionOrigin) => void) | undefined; graceful_timeout_ms?: number | ... 1 more ... | undefined; } | undefined): () => void Attaches an uncaughtException handler to the default registry.
options?{ to_error_label?: ((err: Error, origin: UncaughtExceptionOrigin) => string | null) | undefined; map_error_text?: ((err: Error, origin: UncaughtExceptionOrigin) => string | null) | undefined; handle_error?: ((err: Error, origin: UncaughtExceptionOrigin) => void) | undefined; graceful_timeout_ms?: number | ... 1 more...() => void ProcessRegistry.attach_error_handler
Benchmark class for measuring and comparing function performance.
constructortype new (config?: BenchmarkConfig): Benchmark
config{}addAdd a benchmark task.
type (name: string, fn: () => unknown): this
nameTask name or full task object
stringfnFunction to benchmark (if name is string). Return values are ignored.
() => unknownthisThis Benchmark instance for chaining
addtype (name: string, fn: () => unknown): this
namestringfn() => unknownthisaddtype (name: string, fn: () => unknown): this
namestringfn() => unknownthisremoveRemove a benchmark task by name.
type (name: string): this
nameName of the task to remove
stringthisThis Benchmark instance for chaining
Error - if task with given name doesn't existskipMark a task to be skipped during benchmark runs.
type (name: string): this
nameName of the task to skip
stringthisThis Benchmark instance for chaining
Error - if task with given name doesn't existonlyMark a task to run exclusively (along with other only tasks).
type (name: string): this
nameName of the task to run exclusively
stringthisThis Benchmark instance for chaining
Error - if task with given name doesn't existrunRun all benchmark tasks.
type (): Promise<BenchmarkResult[]>
Promise<BenchmarkResult[]>Array of benchmark results
tableFormat results as an ASCII table with percentiles, min/max, and relative performance.
type (options?: BenchmarkFormatTableOptions | undefined): string
options?Formatting options
BenchmarkFormatTableOptions | undefinedstringFormatted table string
markdownFormat results as a Markdown table.
type (options?: BenchmarkFormatTableOptions | undefined): string
options?Formatting options (groups for organized output with optional baselines)
BenchmarkFormatTableOptions | undefinedstringFormatted markdown string
jsonFormat results as JSON.
type (options?: BenchmarkFormatJsonOptions | undefined): string
options?Formatting options (pretty, include_timings)
BenchmarkFormatJsonOptions | undefinedstringJSON string
resultsGet the benchmark results. Returns a shallow copy to prevent external mutation.
type (): BenchmarkResult[]
BenchmarkResult[]Array of benchmark results
results_by_nameGet results as a map for convenient lookup by task name. Returns a new Map each call to prevent external mutation.
type (): Map<string, BenchmarkResult>
Map<string, BenchmarkResult>Map of task name to benchmark result
resetReset the benchmark results. Keeps tasks intact so benchmarks can be rerun.
type (): this
thisThis Benchmark instance for chaining
clearClear everything (results and tasks). Use this to start fresh with a new set of benchmarks.
type (): this
thisThis Benchmark instance for chaining
summaryGet a quick text summary of the fastest task.
type (): string
stringHuman-readable summary string
benchmark_baseline.ts view source
(results: BenchmarkResult[], options?: BenchmarkBaselineCompareOptions): Promise<BenchmarkBaselineComparisonResult> Compare benchmark results against the stored baseline.
resultsCurrent benchmark results
BenchmarkResult[]optionsComparison options including regression threshold and staleness warning
{}Promise<BenchmarkBaselineComparisonResult> Comparison result with regressions, improvements, and unchanged tasks
const bench = new Benchmark();
bench.add('test', () => fn());
await bench.run();
const comparison = await benchmark_baseline_compare(bench.results(), {
regression_threshold: 1.05, // Only flag regressions 5% or more slower
staleness_warning_days: 7, // Warn if baseline is older than 7 days
});
if (comparison.regressions.length > 0) {
console.log('Performance regressions detected!');
for (const r of comparison.regressions) {
console.log(` ${r.name}: ${r.comparison.speedup_ratio.toFixed(2)}x slower`);
}
process.exit(1);
}benchmark_baseline.ts view source
(result: BenchmarkBaselineComparisonResult): string Format a baseline comparison result as a human-readable string.
resultComparison result from benchmark_baseline_compare
string Formatted string summary
benchmark_baseline.ts view source
(result: BenchmarkBaselineComparisonResult, options?: { pretty?: boolean | undefined; }): string Format a baseline comparison result as JSON for programmatic consumption.
resultComparison result from benchmark_baseline_compare
optionsFormatting options
{ pretty?: boolean | undefined; }{}string JSON string
benchmark_baseline.ts view source
(options?: BenchmarkBaselineLoadOptions): Promise<{ version: number; timestamp: string; git_commit: string | null; git_branch: string | null; node_version: string; entries: { ...; }[]; } | null> Load the current baseline from disk.
optionsLoad options
{}Promise<{ version: number; timestamp: string; git_commit: string | null; git_branch: string | null; node_version: string; entries: { name: string; mean_ns: number; p50_ns: number; std_dev_ns: number; ... 7 more ...; sample_size: number; }[]; } | null> The baseline, or null if not found or invalid
const baseline = await benchmark_baseline_load();
if (baseline) {
console.log(`Baseline from ${baseline.timestamp}`);
}benchmark_baseline.ts view source
(results: BenchmarkResult[], options?: BenchmarkBaselineSaveOptions): Promise<void> Save benchmark results as the current baseline.
resultsBenchmark results to save
BenchmarkResult[]optionsSave options
{}Promise<void> const bench = new Benchmark();
bench.add('test', () => fn());
await bench.run();
await benchmark_baseline_save(bench.results());benchmark_format.ts view source
(results: BenchmarkResult[], options?: BenchmarkFormatJsonOptions | undefined): string Format results as JSON.
resultsArray of benchmark results
BenchmarkResult[]options?Formatting options
BenchmarkFormatJsonOptions | undefinedstring JSON string
console.log(format_json(results));
console.log(format_json(results, {pretty: false}));
console.log(format_json(results, {include_timings: true}));benchmark_format.ts view source
(results: BenchmarkResult[], baseline?: string | undefined): string Format results as a Markdown table with key metrics. All times use the same unit for easy comparison.
resultsArray of benchmark results
BenchmarkResult[]baseline?Optional task name to use as baseline for comparison (defaults to fastest)
string | undefinedstring Formatted markdown table string
console.log(benchmark_format_markdown(results));
// | Task Name | ops/sec | p50 (ฮผs) | p75 (ฮผs) | p90 (ฮผs) | p95 (ฮผs) | p99 (ฮผs) | min (ฮผs) | max (ฮผs) | vs Best |
// |------------|------------|----------|----------|----------|----------|----------|----------|----------|----------|
// | slugify v2 | 1,237,144 | 0.81 | 0.85 | 0.89 | 0.95 | 1.20 | 0.72 | 2.45 | baseline |
// | slugify | 261,619 | 3.82 | 3.95 | 4.12 | 4.35 | 5.10 | 3.21 | 12.45 | 4.73x |benchmark_format.ts view source
(results: BenchmarkResult[], groups: BenchmarkGroup[]): string Format results as grouped Markdown tables with headers between groups.
resultsArray of benchmark results
BenchmarkResult[]groupsArray of group definitions
BenchmarkGroup[]string Formatted markdown string with group headers and tables
const groups = [
{ name: 'Fast Paths', filter: (r) => r.name.includes('fast'), baseline: 'fast/reference' },
{ name: 'Slow Paths', filter: (r) => r.name.includes('slow') },
];
console.log(benchmark_format_markdown_grouped(results, groups));
// ### Fast Paths
// | Task Name | ops/sec | ... | vs fast/reference |
// |-----------|---------|-----|-------------------|
// | ... | ... | ... | ... |
//
// ### Slow Paths
// | Task Name | ops/sec | ... | vs Best |
// |-----------|---------|-----|---------|
// | ... | ... | ... | ... |benchmark_format.ts view source
(n: number, decimals?: number) => string Format a number with fixed decimal places and thousands separators.
{@link format_number} in maths.ts for the underlying implementation.
benchmark_format.ts view source
(results: BenchmarkResult[], baseline?: string | undefined): string Format results as an ASCII table with percentiles, min/max, and relative performance. All times use the same unit for easy comparison.
resultsArray of benchmark results
BenchmarkResult[]baseline?Optional task name to use as baseline for comparison (defaults to fastest)
string | undefinedstring Formatted table string with enhanced metrics
console.log(benchmark_format_table(results));
// โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโ
// โ Task Name โ ops/sec โ p50 (ฮผs) โ p75 (ฮผs) โ p90 (ฮผs) โ p95 (ฮผs) โ p99 (ฮผs) โ min (ฮผs) โ max (ฮผs) โ vs Best โ
// โโโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโค
// โ slugify v2 โ 1,237,144 โ 0.81 โ 0.85 โ 0.89 โ 0.95 โ 1.20 โ 0.72 โ 2.45 โ baseline โ
// โ slugify โ 261,619 โ 3.82 โ 3.95 โ 4.12 โ 4.35 โ 5.10 โ 3.21 โ 12.45 โ 4.73x โ
// โโโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโbenchmark_format.ts view source
(results: BenchmarkResult[], groups: BenchmarkGroup[]): string Format results as a grouped table with visual separators between groups.
resultsArray of benchmark results
BenchmarkResult[]groupsArray of group definitions
BenchmarkGroup[]string Formatted table string with group separators
const groups = [
{ name: 'FAST PATHS', filter: (r) => r.name.includes('fast') },
{ name: 'SLOW PATHS', filter: (r) => r.name.includes('slow') },
];
console.log(benchmark_format_table_grouped(results, groups));
// ๐ฆ FAST PATHS
// โโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโโฌ...โ
// โ ๐ โ fast test 1 โ 1,237,144 โ...โ
// โ ๐ โ fast test 2 โ 261,619 โ...โ
// โโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโด...โ
//
// ๐ฆ SLOW PATHS
// โโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโโฌ...โ
// โ ๐ข โ slow test 1 โ 10,123 โ...โ
// โโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโด...โbenchmark_stats.ts view source
(a: BenchmarkStatsComparable, b: BenchmarkStatsComparable, options?: BenchmarkCompareOptions | undefined): BenchmarkComparison Compare two benchmark results for statistical significance. Uses Welch's t-test (handles unequal variances) and Cohen's d effect size.
aFirst benchmark stats (or any object with required properties)
bSecond benchmark stats (or any object with required properties)
options?Comparison options
BenchmarkCompareOptions | undefinedBenchmarkComparison Comparison result with significance, effect size, and recommendation
const comparison = benchmark_stats_compare(result_a.stats, result_b.stats);
if (comparison.significant) {
console.log(`${comparison.faster} is ${comparison.speedup_ratio.toFixed(2)}x faster`);
}(fn: () => unknown, iterations: number, async_hint?: boolean | undefined): Promise<boolean> Warmup function by running it multiple times. Detects whether the function is async based on return value.
fnFunction to warmup (sync or async)
() => unknowniterationsNumber of warmup iterations
numberasync_hint?If provided, use this instead of detecting
boolean | undefinedPromise<boolean> Whether the function is async
const is_async = await benchmark_warmup(() => expensive_operation(), 10);benchmark_baseline.ts view source
ZodObject<{ version: ZodNumber; timestamp: ZodString; git_commit: ZodNullable<ZodString>; git_branch: ZodNullable<ZodString>; node_version: ZodString; entries: ZodArray<...>; }, $strip> Schema for the complete baseline file.
benchmark_baseline.ts view source
BenchmarkBaselineCompareOptions Options for comparing against a baseline.
regression_thresholdMinimum speedup ratio to consider a regression. For example, 1.05 means only flag regressions that are 5% or more slower. Default: 1.0 (any statistically significant slowdown is a regression)
numberstaleness_warning_daysNumber of days after which to warn about stale baseline. Default: undefined (no staleness warning)
numberbenchmark_baseline.ts view source
BenchmarkBaselineComparisonResult Result of comparing current results against a baseline.
baseline_foundWhether a baseline was found
booleanbaseline_timestampTimestamp of the baseline
string | nullbaseline_commitGit commit of the baseline
string | nullbaseline_age_daysAge of the baseline in days
number | nullbaseline_staleWhether the baseline is considered stale based on staleness_warning_days option
booleancomparisonsIndividual task comparisons
Array<BenchmarkBaselineTaskComparison>regressionsTasks that regressed (slower with statistical significance), sorted by effect size (largest first)
Array<BenchmarkBaselineTaskComparison>improvementsTasks that improved (faster with statistical significance), sorted by effect size (largest first)
Array<BenchmarkBaselineTaskComparison>unchangedTasks with no significant change
Array<BenchmarkBaselineTaskComparison>new_tasksTasks in current run but not in baseline
Array<string>removed_tasksTasks in baseline but not in current run
Array<string>benchmark_baseline.ts view source
ZodObject<{ name: ZodString; mean_ns: ZodNumber; p50_ns: ZodNumber; std_dev_ns: ZodNumber; min_ns: ZodNumber; max_ns: ZodNumber; ... 5 more ...; sample_size: ZodNumber; }, $strip> Schema for a single benchmark entry in the baseline.
benchmark_baseline.ts view source
BenchmarkBaselineLoadOptions Options for loading a baseline.
pathDirectory to load baseline from (default: '.gro/benchmarks')
stringbenchmark_baseline.ts view source
BenchmarkBaselineSaveOptions Options for saving a baseline.
pathDirectory to store baselines (default: '.gro/benchmarks')
stringgit_commitGit commit hash (auto-detected if not provided)
string | nullgit_branchGit branch name (auto-detected if not provided)
string | nullbenchmark_baseline.ts view source
BenchmarkBaselineTaskComparison Comparison result for a single task.
namestringbaselinecurrentcomparisonbenchmark_stats.ts view source
BenchmarkCompareOptions Options for benchmark comparison.
alphaSignificance level for hypothesis testing (default: 0.05)
numberbenchmark_stats.ts view source
BenchmarkComparison Result from comparing two benchmark stats.
fasterWhich benchmark is faster ('a', 'b', or 'equal' if difference is negligible)
'a' | 'b' | 'equal'speedup_ratioHow much faster the winner is (e.g., 1.5 means 1.5x faster)
numbersignificantWhether the difference is statistically significant at the given alpha
booleanp_valueP-value from Welch's t-test (lower = more confident the difference is real)
numbereffect_sizeCohen's d effect size (magnitude of difference independent of sample size)
numbereffect_magnitudeInterpretation of effect size
ci_overlapWhether the 95% confidence intervals overlap
booleanrecommendationHuman-readable interpretation of the comparison
stringbenchmark_types.ts view source
BenchmarkConfig Configuration options for a benchmark suite.
duration_msTarget duration to run each benchmark task in milliseconds. The benchmark will run until this duration is reached or max_iterations is hit. Default: 1000ms
numberwarmup_iterationsNumber of warmup iterations before actual measurements. Warmup helps stabilize JIT compilation and caches. Default: 5
numbercooldown_msCooldown time between tasks in milliseconds. Helps prevent interference between benchmarks. Default: 100ms
numbermin_iterationsMinimum number of iterations to run. Default: 10
numbermax_iterationsMaximum number of iterations to run. Prevents infinite loops if function is extremely fast. Default: 100000
numbertimerCustom timer to use for measurements. Default: timer_default (auto-detects environment)
on_iterationCallback invoked after each iteration completes. Useful for triggering garbage collection, logging progress, early termination, or custom instrumentation.
Note: The callback time is NOT included in iteration measurements - it runs after the timing capture. However, frequent GC calls will slow overall benchmark execution time.
(task_name: string, iteration: number, abort: () => void) => voidon_task_completeCallback invoked after each task completes. Useful for logging progress during long benchmark runs.
(result: BenchmarkResult, index: number, total: number) => voidbenchmark_format.ts view source
BenchmarkFormatJsonOptions prettyWhether to pretty-print (default: true)
booleaninclude_timingsWhether to include raw timings array (default: false, can be large)
booleanbenchmark_types.ts view source
BenchmarkFormatTableOptions Options for table formatting.
groupsGroup results by category using filter functions.
Array<BenchmarkGroup>benchmark_types.ts view source
BenchmarkGroup A group definition for organizing benchmark results.
nameDisplay name for the group
stringdescriptionOptional description shown below the group name
stringfilterFilter function to determine which results belong to this group
(result: BenchmarkResult) => booleanbaselineTask name to use as baseline for the "vs" column. When specified, ratios are computed against this task instead of the fastest. If the baseline task is not found in the group, falls back to "vs Best" with a warning.
stringbenchmark_types.ts view source
BenchmarkResult Result from running a single benchmark task.
nameTask name
stringstatsStatistical analysis of the benchmark
iterationsNumber of iterations executed
numbertotal_time_msTotal time spent benchmarking (including warmup) in milliseconds
numbertimings_nsRaw timing data for each iteration in nanoseconds. Useful for custom statistical analysis, histogram generation, or exporting to external tools.
Array<number>benchmark_stats.ts view source
Complete statistical analysis of timing measurements. Includes outlier detection, descriptive statistics, and performance metrics. All timing values are in nanoseconds.
mean_nsMean (average) time in nanoseconds
type number
p50_ns50th percentile (median) time in nanoseconds
type number
std_dev_nsStandard deviation in nanoseconds
type number
min_nsMinimum time in nanoseconds
type number
max_nsMaximum time in nanoseconds
type number
p75_ns75th percentile in nanoseconds
type number
p90_ns90th percentile in nanoseconds
type number
p95_ns95th percentile in nanoseconds
type number
p99_ns99th percentile in nanoseconds
type number
cvCoefficient of variation (std_dev / mean)
type number
confidence_interval_ns95% confidence interval for the mean in nanoseconds
type [number, number]
outliers_nsArray of detected outlier values in nanoseconds
type Array<number>
outlier_ratioRatio of outliers to total samples
type number
sample_sizeNumber of samples after outlier removal
type number
raw_sample_sizeOriginal number of samples (before outlier removal)
type number
ops_per_secondOperations per second (NS_PER_SEC / mean_ns)
type number
failed_iterationsNumber of failed iterations (NaN, Infinity, or negative values)
type number
constructortype new (timings_ns: number[]): BenchmarkStats
timings_nsnumber[]toStringFormat stats as a human-readable string.
type (): string
stringbenchmark_stats.ts view source
BenchmarkStatsComparable Minimal stats interface for comparison. This allows comparing stats from different sources (e.g., loaded baselines).
mean_nsnumberstd_dev_nsnumbersample_sizenumberconfidence_interval_ns[number, number]benchmark_types.ts view source
BenchmarkTask A benchmark task to execute.
nameName of the task (for display)
stringfnFunction to benchmark (sync or async). Return values are ignored.
() => unknownsetupOptional setup function run before benchmarking this task. Not included in timing measurements.
() => void | Promise<void>teardownOptional teardown function run after benchmarking this task. Not included in timing measurements.
() => void | Promise<void>skipIf true, skip this task during benchmark runs. Useful for temporarily disabling tasks during development.
booleanonlyIf true, run only this task (and other tasks marked only).
Useful for focusing on specific tasks during development.
booleanasyncHint for whether the function is sync or async. If not provided, automatically detected during warmup. Setting this explicitly skips per-iteration promise checking for sync functions.
booleanPromise<void> Resolves when the BLAKE3 WASM module is initialized and ready. Initialization starts eagerly on import. Idempotent โ safe to await multiple times. In Node.js/Deno (sync init), this resolves immediately.
Blue Brand<T> TBranded<TValue, TName> TValueTNamesvelte_preprocess_helpers.ts view source
(ast: Root): Map<string, string> Builds a map of statically resolvable const bindings from a Svelte AST.
Scans top-level const variable declarations in both instance and module scripts.
For each declarator with a plain Identifier pattern and a statically evaluable
initializer, adds the binding to the map. Processes declarations in source order
so that chained references resolve: const a = 'x'; const b = a; maps b to 'x'.
Skips destructuring patterns, let/var declarations, and declarations
whose initializers reference dynamic values.
astThe parsed Svelte AST root node.
RootMap<string, string> Map of variable names to their resolved static string values.
(n: number, min: number, max: number): number Returns n bounded to min and max.
nnumberminnumbermaxnumbernumber ClassConstructor<TInstance, TArgs> TInstanceTArgsArray<any>Array<any>ClientIdCreator (a: [any, any], b: [any, any]): number Compares two map entries for sorting purposes.
If the key is a string, it uses localeCompare for comparison.
For other types, it uses >.
a[any, any]b[any, any]number ZodObject<{ name: ZodString; type: ZodString; optional: ZodOptional<ZodBoolean>; description: ZodOptional<ZodString>; ... 6 more ...; since: ZodOptional<...>; }, $loose> Component prop information for Svelte components.
Kept distinct from ParameterInfo despite structural similarity.
Component props are named attributes with different semantics:
no positional order when passing (<Foo {a} {b} /> = <Foo {b} {a} />),
support two-way binding via $bindable rune.
svelte_preprocess_helpers.ts view source
ConditionalChainBranch A single branch in a conditional chain extracted from nested ternary expressions.
test_sourceThe source text of the test expression, or null for the final else branch.
string | nullvalueThe resolved static string value for this branch.
string(s: ((format: ForegroundColors | BackgroundColors | Modifiers | (ForegroundColors | BackgroundColors | Modifiers)[], text: string, options?: StyleTextOptions | undefined) => string) | null | undefined): (format: ForegroundColors | ... 2 more ... | (ForegroundColors | ... 1 more ... | Modifiers)[], text: string, options?: StyleTextOptions | undefined) => string Configures the module-level styling function for colored output.
s((format: ForegroundColors | BackgroundColors | Modifiers | (ForegroundColors | BackgroundColors | Modifiers)[], text: string, options?: StyleTextOptions | undefined) => string) | null | undefined(format: ForegroundColors | BackgroundColors | Modifiers | (ForegroundColors | BackgroundColors | Modifiers)[], text: string, options?: StyleTextOptions | undefined) => string (str: string): number Returns the count of graphemes in a string, the individually rendered characters.
strstringnumber (iterator: Iterable<unknown>): number Useful for fast counting when .length is not available.
iteratorIterable<unknown>number Counter (name: string, count?: number | undefined, separator?: string): ClientIdCreator Creates a string id generator function, outputting ${name}_${count} by default.
namestringcount?number | undefinedseparatorstring'_'ClientIdCreator (initial?: number | undefined): Counter Creates a counter constructor function, starting at 0.
initial?number | undefinedCounter <T>(): Deferred<T> Creates an object with a promise and its resolve/reject handlers.
Deferred<T> (...seed: unknown[]): RandomAlea Seeded pseudo-random number generator. DO NOT USE when security matters, use webcrypto APIs instead.
seedunknown[]RandomAlea (seed?: number | undefined): RandomXoshiro Seeded pseudo-random number generator using the Xoshiro128** algorithm. DO NOT USE when security matters, use webcrypto APIs instead.
seed?number | undefinedRandomXoshiro (decimals?: number): Stopwatch Tracks elapsed time in milliseconds.
decimalsnumber2Stopwatch CreateCounter DagNode Minimum shape for a DAG node.
idstringdepends_onArray<string>DagNodeResult Result for a single node.
idstringstatus'completed' | 'failed' | 'skipped'errorstringduration_msnumberDagOptions<T> Options for running a DAG.
TnodesNodes to execute.
Array<T>executeExecute a node. Throw on failure.
(node: T) => Promise<void>on_errorCalled after a node fails. For observability โ the error is already recorded.
(node: T, error: Error) => Promise<void>on_skipCalled when a node is skipped (pre-skip or dependency failure).
(node: T, reason: string) => Promise<void>should_skipReturn true to skip a node without executing. Dependents still proceed.
(node: T) => booleanmax_concurrencyMaximum concurrent executions. Default: Infinity.
numberstop_on_failureStop starting new nodes on first failure. Default: true.
booleanskip_validationSkip internal graph validation (caller already validated).
booleanDagResult Result of a DAG execution.
successWhether all executed nodes succeeded.
booleanresultsPer-node results.
Map<string, DagNodeResult>completedNumber of nodes that completed successfully.
numberfailedNumber of nodes that failed.
numberskippedNumber of nodes that were skipped.
numberduration_msTotal execution time in milliseconds.
numbererrorError message if any nodes failed.
stringโ ๏ธ deprecated: Use `generateImport` from `@fuzdev/svelte-docinfo/types.js` instead.
(declaration: { [x: string]: unknown; name: string; kind: "function" | "type" | "variable" | "class" | "constructor" | "component" | "json" | "css"; doc_comment?: string | undefined; type_signature?: string | undefined; ... 18 more ...; alias_of?: { ...; } | undefined; }, module_path: string, library_name: string): string Generate TypeScript import statement for a declaration.
declaration{ [x: string]: unknown; name: string; kind: "function" | "type" | "variable" | "class" | "constructor" | "component" | "json" | "css"; doc_comment?: string | undefined; type_signature?: string | undefined; ... 18 more ...; alias_of?: { ...; } | undefined; }module_pathstringlibrary_namestringstring declaration_generate_import({name: 'Foo', kind: 'type'}, 'foo.ts', '@pkg/lib')
// => "import type {Foo} from '@pkg/lib/foo.js';"โ ๏ธ deprecated: Use `getDisplayName` from `@fuzdev/svelte-docinfo/types.js` instead.
(declaration: { [x: string]: unknown; name: string; kind: "function" | "type" | "variable" | "class" | "constructor" | "component" | "json" | "css"; doc_comment?: string | undefined; type_signature?: string | undefined; ... 18 more ...; alias_of?: { ...; } | undefined; }): string Format declaration name with generic parameters for display.
declaration{ [x: string]: unknown; name: string; kind: "function" | "type" | "variable" | "class" | "constructor" | "component" | "json" | "css"; doc_comment?: string | undefined; type_signature?: string | undefined; ... 18 more ...; alias_of?: { ...; } | undefined; }string declaration_get_display_name({name: 'Map', kind: 'type', generic_params: [{name: 'K'}, {name: 'V'}]})
// => 'Map<K, V>'ZodObject<{ name: ZodString; kind: ZodEnum<{ function: "function"; type: "type"; variable: "variable"; class: "class"; constructor: "constructor"; component: "component"; json: "json"; css: "css"; }>; ... 20 more ...; alias_of: ZodOptional<...>; }, $loose> Metadata for an exported declaration (function, type, class, component, etc.).
Extracted from TypeScript source and JSDoc/TSDoc comments at build time.
ZodEnum<{ function: "function"; type: "type"; variable: "variable"; class: "class"; constructor: "constructor"; component: "component"; json: "json"; css: "css"; }> The kind of exported declaration.
(a: unknown, b: unknown): boolean Deep equality comparison that checks both structure and type.
Key behaviors:
- Compares by constructor to prevent type confusion (security: {} โ [], {} โ new Map(), new ClassA() โ new ClassB())
- Prevents asymmetry bugs: deep_equal(a, b) always equals deep_equal(b, a)
- Compares only enumerable own properties (ignores prototypes, symbols, non-enumerable)
- Special handling for: Date (timestamp), Number/Boolean (boxed primitives), Error (message/name)
- Promises always return false (cannot be meaningfully compared)
- Maps/Sets compare by reference for object keys/values
afirst value to compare
unknownbsecond value to compare
unknownboolean true if deeply equal, false otherwise
Deferred<T> A deferred object with a promise and its resolve/reject handlers.
TpromisePromise<T>resolve(value: T) => voidreject(reason: any) => voidDefined<T> T(str: string): string Removes leading and trailing spaces from each line of a string.
strstringstring (serialized: string): Map<string, { key: string; url: string; params: any; value: any; etag: string | null; last_modified: string | null; }> Converts a serialized cache string to a FetchValueCache.
serializedstringMap<string, { key: string; url: string; params: any; value: any; etag: string | null; last_modified: string | null; }> (child: ChildProcess, options?: DespawnOptions | undefined): Promise<SpawnResult> Kills a child process and returns the result.
childChildProcessoptions?DespawnOptions | undefinedPromise<SpawnResult> const result = await despawn(child, {timeout_ms: 5000});
// If process ignores SIGTERM, SIGKILL sent after 5s(options?: DespawnOptions | undefined): Promise<SpawnResult[]> Kills all processes in the default registry.
options?DespawnOptions | undefinedPromise<SpawnResult[]> DespawnOptions Options for killing processes.
signalSignal to send.
NodeJS.Signalstimeout_msTimeout in ms before escalating to SIGKILL. Must be non-negative. Useful for processes that may ignore SIGTERM. A value of 0 triggers immediate SIGKILL escalation.
number(a: string, b: string): DiffLine[] Generate a line-based diff between two strings using LCS algorithm.
aThe original/current content.
stringbThe new/desired content.
stringDiffLine[] Array of diff lines with type annotations.
DiffLine Line diff result
type'same' | 'add' | 'remove'linestring<T>(items: Iterable<T>, concurrency: number, fn: (item: T, index: number) => void | Promise<void>, signal?: AbortSignal | undefined): Promise<...> Runs a function on each item with controlled concurrency. Like map_concurrent but doesn't collect results (more efficient for side effects).
itemsitems to process
Iterable<T>concurrencymaximum number of concurrent operations
numberfnfunction to apply to each item
(item: T, index: number) => void | Promise<void>signal?optional AbortSignal to cancel processing
AbortSignal | undefinedPromise<void> await each_concurrent(
file_paths,
5, // max 5 concurrent deletions
async (path) => { await unlink(path); },
);benchmark_stats.ts view source
EffectMagnitude Effect size magnitude interpretation (Cohen's d).
any[] Record<string | number | symbol, undefined> & object Frozen empty object with no properties, good for options default values.
(source: string, ensured: string): string Adds the substring ensured to the end of the source string if it's not already present.
sourcestringensuredstringstring (source: string, ensured: string): string Adds the substring ensured to the start of the source string if it's not already present.
sourcestringensuredstringstring (value: string): string Escapes a string for use inside a single-quoted JS string literal.
Uses a single-pass regex replacement to escape backslashes, single quotes, newlines, carriage returns, and Unicode line/paragraph separators.
valuestringstring (str: string): string Escapes a string for literal matching in a RegExp.
strstringstring svelte_preprocess_helpers.ts view source
(text: string): string Escapes text for safe embedding in Svelte template markup.
Uses a single-pass regex replacement to avoid corruption that occurs with sequential
.replace() calls (where the second replace matches characters introduced by the first).
Escapes four characters:
- { โ {'{'} and } โ {'}'} โ prevents Svelte expression interpretation
- < โ < โ prevents HTML/Svelte tag interpretation
- & โ & โ prevents HTML entity interpretation
The & escaping is necessary because runtime MdzNodeView.svelte renders text
with {node.content} (a Svelte expression), which auto-escapes & to &.
The preprocessor emits raw template text where & is NOT auto-escaped, so
manual escaping is required to match the runtime behavior.
textstringstring svelte_preprocess_helpers.ts view source
(expr: Expression, bindings?: ReadonlyMap<string, string> | undefined): string | null Recursively evaluates an expression AST node to a static string value.
Handles string Literal, TemplateLiteral (including interpolations when all
expressions resolve), BinaryExpression with +, and Identifier lookup
via an optional bindings map built by build_static_bindings.
Returns null for dynamic expressions, non-string literals, or unsupported node types.
exprAn ESTree expression AST node.
Expressionbindings?Optional map of variable names to their resolved static string values.
ReadonlyMap<string, string> | undefinedstring | null The resolved static string, or null if the expression is dynamic.
ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> svelte_preprocess_helpers.ts view source
(value: true | ExpressionTag | (ExpressionTag | Text)[], bindings?: ReadonlyMap<string, string> | undefined): string | null Extracts a static string value from a Svelte attribute value AST node.
Handles three forms:
- Boolean true (bare attribute like inline) -- returns null.
- Array with a single Text node (quoted attribute like content="text") --
returns the text data.
- ExpressionTag (expression like content={'text'}) -- delegates to evaluate_static_expr.
Returns null for null literals, mixed arrays, dynamic expressions, and non-string values.
valueThe attribute value from AST.Attribute['value'].
true | ExpressionTag | (ExpressionTag | Text)[]bindings?Optional map of variable names to their resolved static string values.
ReadonlyMap<string, string> | undefinedstring | null The resolved static string, or null if the value is dynamic.
<TValue = any, TParams = undefined>(url: string | URL, options?: FetchValueOptions<TValue, TParams> | undefined): Promise<Result<{ value: TValue; headers: Headers; }, { ...; }>> Specializes fetch with some slightly different behavior and additional features:
- throws on ratelimit errors to mitigate unintentional abuse
- optional parse function called on the return value
- optional cache (different from the browser cache,
the caller can serialize it so e.g. dev setups can avoid hitting the network)
- optional simplified API for authorization and data types
(you can still provide headers directly)
Unlike fetch, this throws on ratelimits (status code 429)
to halt whatever is happpening in its tracks to avoid accidental abuse,
but returns a Result in all other cases.
Handling ratelimit headers with more sophistication gets tricky because behavior
differs across services.
(e.g. Mastodon returns an ISO string for x-ratelimit-reset,
but GitHub returns Date.now()/1000,
and other services may do whatever, or even use a different header)
It's also stateless to avoid the complexity and bugs,
so we don't try to track x-ratelimit-remaining per domain.
If the value is cached, only the cached safe subset of the headers are returned.
(currently just etag and last-modified)
Otherwise the full res.headers are included.
urlstring | URLoptions?FetchValueOptions<TValue, TParams> | undefinedPromise<Result<{ value: TValue; headers: Headers; }, { status: number; message: string; }>> ZodMap<ZodString, ZodObject<{ key: ZodString; url: ZodString; params: ZodAny; value: ZodAny; etag: ZodNullable<ZodString>; last_modified: ZodNullable<...>; }, $strip>> ZodObject<{ key: ZodString; url: ZodString; params: ZodAny; value: ZodAny; etag: ZodNullable<ZodString>; last_modified: ZodNullable<ZodString>; }, $strip> ZodString FetchValueOptions<TValue, TParams> TValueTParamsundefinedrequestThe request.headers take precedence over the headers computed from other options.
RequestInitparamsTParamsparse(v: any) => TValuetokenstring | nullcacheFetchValueCache | nullreturn_early_from_cachebooleanlogfetchtypeof globalThis.fetchFileFilter A filter function for file paths only.
(diff: DiffLine[], context_lines?: number): DiffLine[] Filter diff to only include lines within N lines of context around changes.
diffThe full diff lines.
DiffLine[]context_linesNumber of context lines to show around changes (default: 3).
number3DiffLine[] Filtered diff with ellipsis markers for skipped regions.
svelte_preprocess_helpers.ts view source
(node: Component, name: string): Attribute | undefined Finds an attribute by name on a component AST node.
Iterates the node's attributes array and returns the first Attribute
node whose name matches. Skips SpreadAttribute, directive, and other node types.
nodeThe component AST node to search.
ComponentnameThe attribute name to find.
stringAttribute | undefined The matching Attribute node, or undefined if not found.
svelte_preprocess_helpers.ts view source
(script: Script): number Finds the position to insert new import statements within a script block.
Returns the end position of the last ImportDeclaration, or the start
of the script body content if no imports exist.
scriptThe parsed AST.Script node.
Scriptnumber The character position where new imports should be inserted.
Flavor<T> TFlavored<TValue, TName> The Flavored and Branded type helpers add varying degrees of nominal typing to other types. This is especially useful with primitives like strings and numbers.
TValueTNamehttps://spin.atomicobject.com/typescript-flexible-nominal-typing/ * Flavored is a looser form of Branded that trades explicitness and a little safety in some cases for ergonomics. With Flavored you don't need to cast unflavored types: * ``ts type Email = Flavored<string, 'Email'>; const email1: Email = 'foo'; // ok type Address = Flavored<string, 'Address'>; const email2: Email = 'foo' as Address; // error! `` * Branded requires casting: * ``ts type PhoneNumber = Branded<string, 'PhoneNumber'>; const phone1: PhoneNumber = 'foo'; // error! const phone2: PhoneNumber = 'foo' as PhoneNumber; // ok `` * See also Zod's .brand schema helper:
(n: number): string Formats a byte count as a human-readable string.
nbyte count.
numberstring formatted string like '1.2 KB' or '3.4 MB'.
(diff: DiffLine[], current_path: string, desired_path: string, options?: FormatDiffOptions): string Format a diff for display.
diffThe diff lines to format.
DiffLine[]current_pathPath label for "current" content.
stringdesired_pathPath label for "desired" content.
stringoptionsFormatting options.
{}string Formatted diff string.
(n: number, decimals?: number): string Format a number with fixed decimal places and thousands separators.
nnumberdecimalsnumber2string (url: string): string Formats a URL by removing 'https://', 'www.', and trailing slashes. Notably it does not remove 'http://', so the user can see that it's insecure.
urlstringstring FormatDiffOptions Format options for diff output.
prefixPrefix for each line (for indentation in plan output).
stringuse_colorWhether to use ANSI colors.
booleanmax_linesMaximum number of diff lines to show (0 = unlimited).
number(hex: string): Uint8Array<ArrayBufferLike> | null Decodes a hex string to a Uint8Array.
Whitespace is stripped before parsing. Returns null for invalid hex.
hexHex string to decode (case-insensitive, whitespace allowed).
stringUint8Array<ArrayBufferLike> | null Decoded bytes, or null if the input is not valid hex.
(dir: string, should_remove?: ((name: string) => boolean) | undefined, options?: RmOptions | undefined): Promise<void> Empties a directory, recursively by default. If should_remove is provided, only entries where it returns true are removed.
dirstringshould_remove?((name: string) => boolean) | undefinedoptions?RmOptions | undefinedPromise<void> (path: string): Promise<boolean> Checks if a file or directory exists.
pathstringPromise<boolean> (dir: string, options?: FsSearchOptions): Promise<ResolvedPath[]> dirstringoptionsEMPTY_OBJECTPromise<ResolvedPath[]> FsSearchOptions filterOne or more filter functions, any of which can short-circuit the search by returning false.
PathFilter | Array<PathFilter>file_filterOne or more file filter functions. Every filter must pass for a file to be included.
FileFilter | Array<FileFilter>sortPass null or false to speed things up at the cost of volatile ordering.
boolean | null | ((a: ResolvedPath, b: ResolvedPath) => number)include_directoriesSet to true to include directories. Defaults to false.
booleancwdSets the cwd for dir unless it's an absolute path or null.
string | null(current: string, desired: string, path: string, options?: FormatDiffOptions): string | null Generate a formatted diff between two strings.
Combines diff_lines, filter_diff_context, and format_diff for convenience. Returns null if content is binary.
currentCurrent content.
stringdesiredDesired content.
stringpathFile path for labels.
stringoptionsFormatting options.
{}string | null Formatted diff string, or null if binary.
svelte_preprocess_helpers.ts view source
(imports: Map<string, PreprocessImportInfo>, indent?: string): string Generates indented import statement lines from an import map.
Default imports produce import Name from 'path'; lines.
Named imports are grouped by path into import {a, b} from 'path'; lines.
importsMap of local names to their import info.
Map<string, PreprocessImportInfo>indentIndentation prefix for each line.
string'\t'string A string of newline-separated import statements.
ZodObject<{ name: ZodString; constraint: ZodOptional<ZodString>; default_type: ZodOptional<ZodString>; }, $loose> Generic type parameter information.
(options?: SpawnOptions | undefined): Promise<string | null> options?SpawnOptions | undefinedPromise<string | null> an error message if the git workspace has any unstaged or uncommitted changes, or null if it's clean
(options?: SpawnOptions | undefined): Promise<string | null> options?SpawnOptions | undefinedPromise<string | null> an error message if the git workspace has any unstaged changes or untracked files, or null if fully staged
(options?: SpawnOptions | undefined): Promise<boolean> Returns the global git config setting for pull.rebase.
options?SpawnOptions | undefinedPromise<boolean> (options?: SpawnOptions | undefined): Promise<GitWorkspaceStatus> Checks the git workspace status using a single git status --porcelain -z call.
The -z format provides more reliable parsing by using NUL separators and avoiding escaping.
options?SpawnOptions | undefinedPromise<GitWorkspaceStatus> status object with flags for unstaged changes, staged changes, and untracked files
(branch: GitBranch, options?: SpawnOptions | undefined): Promise<GitBranch | null> Calls git checkout and throws if anything goes wrong.
branchoptions?SpawnOptions | undefinedPromise<GitBranch | null> the previous branch name, if it changed
(origin: GitOrigin, branch: GitBranch, source_dir: string, target_dir: string, options?: SpawnOptions | undefined): Promise<void> Clones a branch locally to another directory and updates the origin to match the source.
originbranchsource_dirstringtarget_dirstringoptions?SpawnOptions | undefinedPromise<void> (options?: SpawnOptions | undefined): Promise<string> Returns the hash of the current branch's first commit or throws if something goes wrong.
options?SpawnOptions | undefinedPromise<string> (options?: SpawnOptions | undefined): Promise<GitBranch> Returns the current git branch name or throws if something goes wrong.
options?SpawnOptions | undefinedPromise<GitBranch> (branch?: string | undefined, options?: SpawnOptions | undefined): Promise<string | null> Returns the branch's latest commit hash or throws if something goes wrong.
branch?string | undefinedoptions?SpawnOptions | undefinedPromise<string | null> (branch: GitBranch, options?: SpawnOptions | undefined): Promise<void> Deletes a branch locally and throws if anything goes wrong.
branchoptions?SpawnOptions | undefinedPromise<void> (origin: GitOrigin, branch: GitBranch, options?: SpawnOptions | undefined): Promise<void> Deletes a branch remotely and throws if anything goes wrong.
originbranchoptions?SpawnOptions | undefinedPromise<void> (origin?: GitOrigin, branch?: GitBranch | undefined, options?: SpawnOptions | undefined): Promise<void> Calls git fetch and throws if anything goes wrong.
origin'origin' as GitOriginbranch?GitBranch | undefinedoptions?SpawnOptions | undefinedPromise<void> (options?: SpawnOptions | undefined): Promise<GitInfo> Get basic git info (commit hash and branch name) without throwing. Returns null values if git commands fail (e.g., not in a git repo).
options?SpawnOptions | undefinedPromise<GitInfo> (branch: GitBranch, options?: SpawnOptions | undefined): Promise<boolean> branchoptions?SpawnOptions | undefinedPromise<boolean> a boolean indicating if the local git branch exists
(stdout: string | null): GitWorkspaceStatus Parses the output of git status --porcelain -z (v1 format) into a status object.
This is a pure function that can be tested independently.
Format: XY path\0 where: - X = staged status (index) - Y = unstaged status (work tree) - path = file path (unescaped with -z)
Supported status codes: - M = modified - A = added - D = deleted - R = renamed - C = copied - T = type changed (regular file, symbolic link or submodule) - U = unmerged - ? = untracked - ! = ignored
For renames/copies: XY new\0old\0 (two NUL-separated paths)
Note: This implementation treats submodules the same as regular files. Submodule-specific status codes (lowercase m, ?) are interpreted as changes.
stdoutThe raw output from git status --porcelain -z
string | nullGitWorkspaceStatus status object with flags for unstaged changes, staged changes, and untracked files
(origin?: GitOrigin, branch?: GitBranch | undefined, options?: SpawnOptions | undefined): Promise<void> Calls git pull and throws if anything goes wrong.
origin'origin' as GitOriginbranch?GitBranch | undefinedoptions?SpawnOptions | undefinedPromise<void> (origin: GitOrigin, branch?: GitBranch | undefined, options?: SpawnOptions | undefined, set_upstream?: boolean): Promise<void> Calls git push and throws if anything goes wrong.
originbranch?GitBranch | undefinedoptions?SpawnOptions | undefinedset_upstreambooleanfalsePromise<void> (origin?: GitOrigin, branch?: GitBranch | undefined, options?: SpawnOptions | undefined): Promise<void> Calls git push and throws if anything goes wrong.
origin'origin' as GitOriginbranch?GitBranch | undefinedoptions?SpawnOptions | undefinedPromise<void> (origin?: GitOrigin, branch?: GitBranch | undefined, options?: SpawnOptions | undefined): Promise<boolean> origin'origin' as GitOriginbranch?GitBranch | undefinedoptions?SpawnOptions | undefinedPromise<boolean> a boolean indicating if the remote git branch exists
(origin: GitOrigin, branch: GitBranch, options?: SpawnOptions | undefined): Promise<void> Resets the target branch back to its first commit both locally and remotely.
originbranchoptions?SpawnOptions | undefinedPromise<void> (status: GitWorkspaceStatus): boolean statusboolean true if the workspace has no changes at all
(status: GitWorkspaceStatus): boolean statusboolean true if the workspace has no unstaged changes and no untracked files (staged changes are OK)
(status: GitWorkspaceStatus): string Converts a workspace status to a human-readable message.
statusstring ZodString GitInfo Basic git repository info.
commitstring | nullbranchstring | nullZodString GitWorkspaceStatus Git workspace status flags indicating which types of changes are present.
unstaged_changesbooleanstaged_changesbooleanuntracked_filesboolean1.618033988749895 golden ratio/mean constants, useful for scaling: https://wikipedia.org/wiki/Golden_ratio
2.618033988749895 golden ratio/mean constants, GR**2, useful for scaling: https://wikipedia.org/wiki/Golden_ratio
0.38196601125010515 golden ratio/mean constants, 1/(GR**2), useful for scaling: https://wikipedia.org/wiki/Golden_ratio
4.23606797749979 golden ratio/mean constants, GR**3, useful for scaling: https://wikipedia.org/wiki/Golden_ratio
0.2360679774997897 golden ratio/mean constants, 1/(GR**3), useful for scaling: https://wikipedia.org/wiki/Golden_ratio
6.854101966249686 golden ratio/mean constants, GR**4, useful for scaling: https://wikipedia.org/wiki/Golden_ratio
0.14589803375031543 golden ratio/mean constants, 1/(GR**4), useful for scaling: https://wikipedia.org/wiki/Golden_ratio
11.090169943749476 golden ratio/mean constants, GR**5, useful for scaling: https://wikipedia.org/wiki/Golden_ratio
0.09016994374947422 golden ratio/mean constants, 1/(GR**5), useful for scaling: https://wikipedia.org/wiki/Golden_ratio
17.944271909999163 golden ratio/mean constants, GR**6, useful for scaling: https://wikipedia.org/wiki/Golden_ratio
0.0557280900008412 golden ratio/mean constants, 1/(GR**6), useful for scaling: https://wikipedia.org/wiki/Golden_ratio
29.03444185374864 golden ratio/mean constants, GR**7, useful for scaling: https://wikipedia.org/wiki/Golden_ratio
0.03444185374863302 golden ratio/mean constants, 1/(GR**7), useful for scaling: https://wikipedia.org/wiki/Golden_ratio
46.978713763747805 golden ratio/mean constants, GR**8, useful for scaling: https://wikipedia.org/wiki/Golden_ratio
0.02128623625220818 golden ratio/mean constants, 1/(GR**8), useful for scaling: https://wikipedia.org/wiki/Golden_ratio
76.01315561749645 golden ratio/mean constants, GR**9, useful for scaling: https://wikipedia.org/wiki/Golden_ratio
0.013155617496424835 golden ratio/mean constants, 1/(GR**9), useful for scaling: https://wikipedia.org/wiki/Golden_ratio
0.6180339887498948 golden ratio/mean constants, 1/GR, useful for scaling: https://wikipedia.org/wiki/Golden_ratio
Green svelte_preprocess_helpers.ts view source
(error: unknown, prefix: string, filename: string | undefined, on_error: "log" | "throw"): void Handles errors during Svelte preprocessing with configurable behavior.
errorThe caught error.
unknownprefixLog prefix (e.g. '[fuz-mdz]', '[fuz-code]').
stringfilenameThe file being processed.
string | undefinedon_error'throw' to re-throw as a new Error, 'log' to console.error.
"log" | "throw"void (cb: (value: any, event: any) => void, swallow_event?: boolean): (e: any) => void Handles the value of an event's target and invokes a callback. Defaults to swallowing the event to prevent default actions and propagation.
cb(value: any, event: any) => voidswallow_eventbooleantrue(e: any) => void svelte_preprocess_helpers.ts view source
(node: unknown, name: string, skip?: Set<unknown> | undefined): boolean Checks if an identifier with the given name appears anywhere in an AST subtree.
Recursively walks all object and array properties of the tree, matching
ESTree Identifier nodes ({type: 'Identifier', name}). Nodes in the
skip set are excluded from traversal โ used to skip ImportDeclaration
nodes so the import's own specifier identifier doesn't false-positive.
Skips Identifier nodes in non-reference positions defined by
NON_REFERENCE_FIELDS โ for example, obj.Mdz (non-computed member property),
{ Mdz: value } (non-computed object key), and statement labels.
Safe for Svelte template ASTs: Component.name is a plain string property
(not an Identifier node), so <Mdz> tags do not produce false matches.
nodeThe AST subtree to search.
unknownnameThe identifier name to look for.
stringskip?Set of AST nodes to skip during traversal.
Set<unknown> | undefinedboolean true if a matching Identifier node is found.
(data: string | BufferSource): string Computes a BLAKE3 hash synchronously.
dataString or binary data to hash. Strings are UTF-8 encoded.
string | BufferSourcestring 64-character hexadecimal hash string (32 bytes).
(data: string | BufferSource): string Computes a fast non-cryptographic hash using DJB2 algorithm. Use for content comparison and cache keys, not security.
Note: Strings use UTF-16 code units, buffers use raw bytes.
For non-ASCII, hash_insecure(str) !== hash_insecure(encoder.encode(str)).
dataString or binary data to hash.
string | BufferSourcestring 8-character hex-encoded unsigned 32-bit hash.
(data: string | BufferSource): Promise<string> Computes a SHA-1 hash using Web Crypto API.
dataString or binary data to hash. Strings are UTF-8 encoded.
string | BufferSourcePromise<string> 40-character hexadecimal hash string.
(data: string | BufferSource): Promise<string> Computes a SHA-256 hash using Web Crypto API.
dataString or binary data to hash. Strings are UTF-8 encoded.
string | BufferSourcePromise<string> 64-character hexadecimal hash string.
(data: string | BufferSource): Promise<string> Computes a SHA-384 hash using Web Crypto API.
dataString or binary data to hash. Strings are UTF-8 encoded.
string | BufferSourcePromise<string> 96-character hexadecimal hash string.
(data: string | BufferSource): Promise<string> Computes a SHA-512 hash using Web Crypto API.
dataString or binary data to hash. Strings are UTF-8 encoded.
string | BufferSourcePromise<string> 128-character hexadecimal hash string.
(hex: string): Hsl hexstringHsl (hex: string): Rgb hexstringRgb (hex: number): Rgb Converts a hex color to an RGB color.
hexnumberRgb Hsl (h: Hue, s: Saturation, l: Lightness): number hslnumber (h: Hue, s: Saturation, l: Lightness): string hslstring (h: Hue, s: Saturation, l: Lightness): Rgb Converts an HSL color value to RGB. Conversion formula adapted from http://wikipedia.org/wiki/HSL_color_space. Values h/s/l are in the range [0,1] and returns r/g/b in the range [0,255].
hslRgb (h: Hue, s: Saturation, l: Lightness): string hslstring Hue (p: number, q: number, t: number): number pnumberqnumbertnumbernumber <T>(t: T): T Returns the first arg.
tTT (el: Element): boolean Returns true if the element is within a contenteditable ancestor.
elElementboolean (el: any): boolean Checks if the given element is editable.
Returns true for text-based input types, textareas, and contenteditable elements.
elanyboolean (): boolean Returns a boolean indicating if the current browser window, if any, is iframed inside of another.
boolean (el: any): boolean Checks if the element is interactive (clickable, focusable, or otherwise accepts user input).
Returns true for buttons, links, form controls,
and elements with interactive attributes and ARIA roles.
elanyboolean (value: any): boolean Returns a boolean indicating if value is
a plain object, possibly created with Object.create(null).
But warning! This fails for some obscure corner cases, use a proper library for weird things.
valueanyboolean (value: unknown): value is Promise<unknown> Checks if value is a Promise (or thenable).
valueunknownboolean (str: string): str is Uuid Loosely validates a UUID string.
strstringboolean Json <T>(data: T, stringify?: (data: T) => string): string Embeds data as a JSON string, escaping single quotes.
Useful for optimizing JSON in JS because it parses faster.
dataTstringify(data: T) => stringJSON.stringifystring (value: unknown): string Serializes a value to JSON with deterministic key ordering. Recursively sorts object keys alphabetically for consistent hashing. Arrays and primitives are serialized as-is.
valueAny JSON-serializable value
unknownstring Deterministic JSON string representation
(value: Json): JsonType | undefined Returns the JsonType of value, which is like typeof json
but includes 'array' and omits 'undefined'.
valueJsonType | undefined JsonArray Array<Json>JsonObject Record<string, Json>JsonPrimitive JsonType Like typeof json, but includes arrays. Excludes 'undefined' because it's not valid JSON.
KeyofUnion<T> Like keyof but works for type unions.
T(a: number, b: number, amount: number): number Linear interpolation between a and b by amount.
anumberbnumberamountnumbernumber (a: string, b: string): number Calculates the Levenshtein distance between two strings. Useful for typo detection and fuzzy matching.
aFirst string
stringbSecond string
stringnumber The edit distance between the strings
(package_json: { [x: string]: unknown; name: string; version: string; private?: boolean | undefined; description?: string | undefined; motto?: string | undefined; glyph?: string | undefined; logo?: string | undefined; ... 23 more ...; exports?: string | ... 2 more ... | undefined; }, source_json: { ...; }): LibraryJson Creates a LibraryJson with computed properties from package.json and source metadata.
package_json{ [x: string]: unknown; name: string; version: string; private?: boolean | undefined; description?: string | undefined; motto?: string | undefined; glyph?: string | undefined; logo?: string | undefined; ... 23 more ...; exports?: string | ... 2 more ... | undefined; }source_json{ [x: string]: unknown; name: string; version: string; modules?: { [x: string]: unknown; path: string; declarations?: { [x: string]: unknown; name: string; kind: "function" | "type" | "variable" | "class" | "constructor" | "component" | "json" | "css"; ... 20 more ...; alias_of?: { ...; } | undefined; }[] | undefine...LibraryJson (library: LibraryJson): string | null Extracts GitHub org URL from a library, e.g. https://github.com/ryanatkn.
librarystring | null (name: string): string Extracts repo name from a package name, e.g. @fuzdev/fuz_ui โ fuz.
namestringstring LibraryJson A library's package.json and source metadata with computed properties.
namePackage name, e.g. @fuzdev/fuz_ui.
stringrepo_nameName without scope, e.g. fuz.
stringrepo_urlGitHub repo URL, e.g. https://github.com/fuzdev/fuz_ui.
owner_nameGitHub user/org, e.g. ryanatkn.
string | nullhomepage_urlUrl | nulllogo_urlLogo URL, falls back to favicon.png.
Url | nulllogo_altstringnpm_urlUrl | nullchangelog_urlUrl | nullpublishedTrue if has exports and version is not 0.0.1.
booleanpackage_jsonsource_jsonLightness (value: string | undefined): LogLevel | undefined Parses and validates a log level string.
valueThe value to parse as a log level
string | undefinedLogLevel | undefined The validated log level, or undefined if value is undefined
Error - if value is provided but invalid(level: LogLevel): number Converts a log level to its numeric value for comparison. Higher numbers indicate more verbose logging.
levelThe log level to convert
number Numeric value (0-4)
LogConsole Console interface subset used by Logger for output. Allows custom console implementations for testing.
Simple, flexible logger with support for child loggers and automatic context.
Features: - Instance-based configuration (no global state) - Child loggers with automatic label concatenation - Parent chain inheritance for level, console, and colors - Respects NO_COLOR environment variable
// Basic logger
const log = new Logger('app');
log.info('starting'); // [app] โค starting
// Child logger
const db_log = log.child('db');
db_log.info('connected'); // [app:db] โค connected
// Custom configuration
const verbose_log = new Logger('debug', { level: 'debug', colors: true });labeltype string
parenttype Logger
constructorCreates a new Logger instance.
type new (label?: string | undefined, options?: LoggerOptions): Logger
label?Optional label for this logger. Can be undefined for no label, or an
empty string '' which is functionally equivalent (both produce no brackets in output).
Note: Empty strings are only allowed for root loggers - child loggers cannot have empty labels.
string | undefinedoptionsOptional configuration for level, colors, and console
{}clear_level_overrideClears the level override for this logger, restoring inheritance from parent. After calling this, the logger will dynamically inherit the level from its parent (or use the default level if it has no parent).
type (): void
voidclear_colors_overrideClears the colors override for this logger, restoring inheritance from parent. After calling this, the logger will dynamically inherit colors from its parent (or use the default colors behavior if it has no parent).
type (): void
voidclear_console_overrideClears the console override for this logger, restoring inheritance from parent. After calling this, the logger will dynamically inherit the console from its parent (or use the global console if it has no parent).
type (): void
voidchildCreates a child logger with automatic label concatenation. Children inherit parent configuration unless overridden.
type (label: string, options?: LoggerOptions): Logger
labelChild label (will be concatenated with parent label using :).
Cannot be an empty string - empty labels would result in confusing output like parent:
with a trailing colon. Use undefined or '' only for root loggers.
stringoptionsOptional configuration overrides
{}New Logger instance with concatenated label
Error - if label is an empty stringerrorLogs an error message with ๐ฉerror๐ฉ prefix.
Only outputs if current level is error or higher.
type (...args: unknown[]): void
argsunknown[]voidwarnLogs a warning message with โwarnโ prefix.
Only outputs if current level is warn or higher.
type (...args: unknown[]): void
argsunknown[]voidinfoLogs an informational message.
Unlike error/warn/debug, info has no character prefix - only the label is shown.
This keeps standard output clean since info is the default log level.
Only outputs if current level is info or higher.
type (...args: unknown[]): void
argsunknown[]voiddebugLogs a debug message with โdebugโ prefix.
Only outputs if current level is debug.
type (...args: unknown[]): void
argsunknown[]voidrawLogs raw output without any prefix, formatting, or level filtering. Bypasses the logger's level checking, prefix formatting, and color application entirely. Useful for outputting structured data or when you need full control over formatting.
Note: This method ignores the configured log level - it always outputs regardless of whether the logger is set to 'off' or any other level.
type (...args: unknown[]): void
argsValues to log directly to console
unknown[]voidLoggerOptions levelLog level for this logger instance. Inherits from parent or defaults to 'info'.
consoleConsole interface for output. Inherits from parent or defaults to global console. Useful for testing.
colorsWhether to use colors in output. Inherits from parent or defaults to enabled (unless NO_COLOR env var is set).
booleanLogLevel Log level hierarchy from least to most verbose.
- 'off': No logging
- 'error': Only errors
- 'warn': Errors and warnings
- 'info': Errors, warnings, and info (default)
- 'debug': All messages including debug
<T, R>(items: Iterable<T>, concurrency: number, fn: (item: T, index: number) => R | Promise<R>, signal?: AbortSignal | undefined): Promise<...> Maps over items with controlled concurrency, preserving input order.
itemsitems to process
Iterable<T>concurrencymaximum number of concurrent operations
numberfnfunction to apply to each item
(item: T, index: number) => R | Promise<R>signal?optional AbortSignal to cancel processing
AbortSignal | undefinedPromise<R[]> promise resolving to array of results in same order as input
const results = await map_concurrent(
file_paths,
5, // max 5 concurrent reads
async (path) => readFile(path, 'utf8'),
);<T, R>(items: Iterable<T>, concurrency: number, fn: (item: T, index: number) => R | Promise<R>, signal?: AbortSignal | undefined): Promise<...> Like map_concurrent but collects all results/errors instead of failing fast.
Returns an array of settlement objects matching the Promise.allSettled pattern.
On abort, resolves with partial results: completed items keep their real settlements, in-flight and un-started items are settled as rejected with the abort reason.
itemsitems to process
Iterable<T>concurrencymaximum number of concurrent operations
numberfnfunction to apply to each item
(item: T, index: number) => R | Promise<R>signal?optional AbortSignal to cancel processing
AbortSignal | undefinedPromise<PromiseSettledResult<R>[]> promise resolving to array of PromiseSettledResult objects in input order
const results = await map_concurrent_settled(urls, 5, fetch);
for (const [i, result] of results.entries()) {
if (result.status === 'fulfilled') {
console.log(`${urls[i]}: ${result.value.status}`);
} else {
console.error(`${urls[i]}: ${result.reason}`);
}
}<T, K extends string | number, U>(obj: Record<K, T>, mapper: (value: T, key: string) => U): Record<K, U> Iterated keys in for..in are always returned as strings,
so to prevent usage errors the key type of mapper is always a string.
Symbols are not enumerable as keys, so they're excluded.
objRecord<K, T>mapper(value: T, key: string) => URecord<K, U> ZodObject<{ path: ZodString; declarations: ZodOptional<ZodArray<ZodObject<{ name: ZodString; kind: ZodEnum<{ function: "function"; type: "type"; variable: "variable"; class: "class"; constructor: "constructor"; component: "component"; json: "json"; css: "css"; }>; ... 20 more ...; alias_of: ZodOptional<...>; }, $loo... A source file in src/lib/ with its exported declarations.
(...args: any[]): any Does nothing when called.
argsany[]any (...args: any[]): Promise<any> Async function that returns a resolved promise.
argsany[]Promise<any> Readonly<{ readonly ok: false; }> Frozen object representing a failed result.
NotNull<T> TReadonly<{ readonly ok: true; }> Frozen object representing a successful result.
<T extends Record<K, any>, K extends keyof T>(obj: T, keys: K[]): OmitStrict<T, K> Creates a new object without the specified keys.
objTkeysK[]OmitStrict<T, K> <T extends Record<string | number, any>>(obj: T): T omit_undefined is a commonly used form of pick_by. See this issue for why it's used so much: https://github.com/Microsoft/TypeScript/issues/13195
objTT obj with all undefined properties removed
OmitStrict<T, K> TKkeyof TZodObject<{ name: ZodString; version: ZodString; private: ZodOptional<ZodBoolean>; description: ZodOptional<ZodString>; ... 26 more ...; exports: ZodOptional<...>; }, $loose> ZodUnion<readonly [ZodString, ZodObject<{ name: ZodString; email: ZodOptional<ZodEmail>; url: ZodOptional<ZodURL>; }, $loose>]> ZodUnion<readonly [ZodString, ZodNull, ZodRecord<ZodString, ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>>]> Package exports can be: 1. A string (shorthand for main export) 2. null (to block exports) 3. A record of export conditions/paths
ZodUnion<readonly [ZodString, ZodObject<{ type: ZodString; url: ZodURL; }, $loose>]> ZodUnion<readonly [ZodString, ZodObject<{ type: ZodString; url: ZodURL; directory: ZodOptional<ZodString>; }, $loose>]> (str: string, target_width: number, align?: "left" | "right"): string Pad a string to a target display width (accounting for wide characters).
strstringtarget_widthnumberalign"left" | "right"'left'string ZodObject<{ name: ZodString; type: ZodString; optional: ZodOptional<ZodBoolean>; description: ZodOptional<ZodString>; default_value: ZodOptional<...>; }, $loose> Parameter information for functions and methods.
Kept distinct from ComponentPropInfo despite structural similarity.
Function parameters form a tuple with positional semantics:
calling order matters (fn(a, b) vs fn(b, a)),
may include rest parameters and destructuring patterns.
(hsl: string): Hsl hslstringHsl (path: string): string[] pathstringstring[] parse_path_parts('./foo/bar/baz.ts') // => ['foo', 'foo/bar', 'foo/bar/baz.ts'](raw_path: string): PathPiece[] Treats all paths as absolute, so the first piece is always a '/' with type 'separator'.
raw_pathstringPathPiece[] (path: string): string[] Gets the individual parts of a path, ignoring dots and separators.
pathstringstring[] parse_path_segments('/foo/bar/baz.ts') // => ['foo', 'bar', 'baz.ts']ParsedArgs Parsed CLI arguments with guaranteed positionals array.
Returned by argv_parse which always initializes _.
_Array<string>PartialExcept<T, K> TKkeyof TPartialOnly<T, K> TKkeyof TPartialValues<T> TPathFilter A filter function for paths, can distinguish between files and directories.
PathId An absolute path on the filesystem. Named "id" to be consistent with Rollup.
PathInfo Basic information about a filesystem path.
idis_directorybooleanPathPiece A piece of a parsed path, either a path segment or separator.
<T extends Record<K, any>, K extends string | number>(obj: T, should_pick: (value: any, key: K) => boolean): Partial<T> Creates a new object with properties that pass the should_pick predicate.
objTshould_pick(value: any, key: K) => booleanPartial<T> PickUnion<T, K> Like Pick but works for type unions.
TKKeyofUnion<T>(count: number | null | undefined, suffix?: string): string Returns a plural suffix based on a count.
countnumber | null | undefinedsuffixstring's'string svelte_preprocess_helpers.ts view source
PreprocessImportInfo Import metadata for a single import specifier.
pathThe module path to import from.
stringkindWhether this is a default or named import.
'default' | 'named'(value: boolean): string Formats a boolean for printing.
valuebooleanstring (child: ChildProcess): string Formats a child process for display.
childChildProcessstring `pid(1234) <- node server.js`(err: Error): string Formats an error for printing.
Because throwing errors and rejecting promises isn't typesafe,
don't assume the arg is an Error and try to return something useful.
errErrorstring (key: string, value: string | number): string Formats a key-value pair for printing.
keystringvaluestring | numberstring (ms: number, decimals?: number | undefined, separator?: string | undefined): string Formats a number of milliseconds for printing.
msnumberdecimals?number | undefinedseparator?string | undefinedstring (value: number): string Formats a number for printing.
valuenumberstring (v: string, separator?: string): string Formats a number with separators for improved readability.
vstringseparatorstring','string (result: SpawnResult): string Formats a spawn result for display.
Returns 'ok' for success, or the error/signal/code for failures.
resultstring (value: string): string Formats a string for printing.
valuestringstring (key: string | number, timing: number | undefined): string Formats a timing entry with key for printing.
keystring | numbertimingnumber | undefinedstring (timings: Timings, log: Logger): void Prints all timings in a Timings object.
timingslogvoid (value: unknown): string Formats any value for printing.
valueunknownstring (pid: number): boolean Checks if a process with the given PID is running. Uses signal 0 which checks existence without sending a signal.
pidThe process ID to check (must be a positive integer)
numberboolean true if the process exists (even without permission to signal it),
false if the process doesn't exist or if pid is invalid (non-positive, non-integer, NaN, Infinity)
ProcessRegistry Default process registry used by module-level spawn functions. For testing or isolated process groups, create a new ProcessRegistry instance.
Manages a collection of spawned processes for lifecycle tracking and cleanup.
The default instance process_registry_default is used by module-level functions. Create separate instances for isolated process groups or testing.
// Use default registry via module functions
const result = await spawn('echo', ['hello']);
// Or create isolated registry for testing
const registry = new ProcessRegistry();
const {child, closed} = registry.spawn('node', ['server.js']);
await registry.despawn_all();processesAll currently tracked child processes
type Set<ChildProcess>
spawnSpawns a process and tracks it in this registry. The process is automatically unregistered when it exits.
type (command: string, args?: readonly string[], options?: SpawnProcessOptions | undefined): SpawnedProcess
commandThe command to run
stringargsArguments to pass to the command
readonly string[][]options?Spawn options including signal and timeout_ms
SpawnProcessOptions | undefinedHandle with child process and closed promise
spawn_outSpawns a process and captures stdout/stderr as strings.
Sets stdio: 'pipe' automatically.
type (command: string, args?: readonly string[], options?: SpawnProcessOptions | undefined): Promise<SpawnedOut>
commandThe command to run
stringargsArguments to pass to the command
readonly string[][]options?Spawn options
SpawnProcessOptions | undefinedPromise<SpawnedOut>Result with captured stdout and stderr.
- null means spawn failed (ENOENT, etc.) or stream was unavailable
- '' (empty string) means process ran but produced no output
- non-empty string contains the captured output
despawnKills a child process and waits for it to exit.
type (child: ChildProcess, options?: DespawnOptions | undefined): Promise<SpawnResult>
childThe child process to kill
ChildProcessoptions?Kill options including signal and timeout
DespawnOptions | undefinedPromise<SpawnResult>The spawn result after the process exits
despawn_allKills all processes in this registry.
type (options?: DespawnOptions | undefined): Promise<SpawnResult[]>
options?Kill options applied to all processes
DespawnOptions | undefinedPromise<SpawnResult[]>Array of spawn results
attach_error_handlerAttaches an uncaughtException handler that kills all processes before exiting.
Prevents zombie processes when the parent crashes.
By default uses SIGKILL for immediate termination. Set graceful_timeout_ms
to attempt SIGTERM first (allowing processes to clean up) before escalating
to SIGKILL after the timeout.
Note: Node's uncaughtException handler cannot await async operations, so graceful shutdown uses a blocking busy-wait. This may not be sufficient for processes that need significant cleanup time.
type (options?: { to_error_label?: ((err: Error, origin: UncaughtExceptionOrigin) => string | null) | undefined; map_error_text?: ((err: Error, origin: UncaughtExceptionOrigin) => string | null) | undefined; handle_error?: ((err: Error, origin: UncaughtExceptionOrigin) => void) | undefined; graceful_timeout_ms?: number | ... 1 more ... | undefined; } | undefined): () => void
options?Configuration options
{ to_error_label?: ((err: Error, origin: UncaughtExceptionOrigin) => string | null) | undefined; map_error_text?: ((err: Error, origin: UncaughtExceptionOrigin) => string | null) | undefined; handle_error?: ((err: Error, origin: UncaughtExceptionOrigin) => void) | undefined; graceful_timeout_ms?: number | ... 1 more...() => voidCleanup function to remove the handler
(random?: () => number): boolean Generates a random boolean.
random() => numberMath.randomboolean (min: number, max: number, random?: () => number): number Generates a random number between min and max.
minnumbermaxnumberrandom() => numberMath.randomnumber (min: number, max: number, random?: () => number): number Returns a random integer between min and max inclusive.
Node's randomInt is similar but exclusive of the max value, and makes min optional -
https://nodejs.org/docs/latest-v20.x/api/crypto.html#cryptorandomintmin-max-callback
minnumbermaxnumberrandom() => numberMath.randomnumber <T extends ReadonlyArray<any>>(arr: T, random?: () => number): ArrayElement<T> Selects a random item from an array.
arrTrandom() => numberMath.randomArrayElement<T> RandomAlea Alea: a seedable pseudo-random number generator by Johannes Baagรธe.
Supports variadic and string seeds (create_random_alea('my', 3, 'seeds')).
For numeric seeds, prefer create_random_xoshiro which is faster with equal quality.
DO NOT USE when security matters โ use the Web Crypto API (crypto.getRandomValues) instead.
Alea passes all 11 distribution quality tests at 10M samples,
performing on par with Math.random (V8's xorshift128+):
- mean, variance, chi-squared uniformity, Kolmogorov-Smirnov - lag-1 through lag-8 autocorrelation - runs test, gap test, permutation test (triples) - bit-level frequency (bits 0-7) - 2D serial pairs (25x25 through 200x200 grids) - birthday spacings (Marsaglia parameters)
Speed is ~19% slower than Math.random (~12.2M ops/sec vs ~15.0M ops/sec).
To reproduce:
npm run benchmark_random_quality # distribution tests (N=1M)
npm run benchmark_random_quality -- --deep # thorough (N=10M, multi-trial)
npm run benchmark_random # speed comparisonuint32() => numberfract53() => numberversionstringseedsArray<unknown>RandomXoshiro Xoshiro128**: a seedable pseudo-random number generator by Blackman & Vigna (2018). Recommended for reproducible randomness (testing, simulations, procedural generation).
DO NOT USE when security matters โ use the Web Crypto API (crypto.getRandomValues) instead.
Xoshiro128** has a 2^128-1 period and passes BigCrush.
It uses pure 32-bit arithmetic (shifts, rotates, XOR, multiply)
making it very fast in JavaScript via Math.imul.
Xoshiro128** passes all 11 distribution quality tests at 10M samples,
performing on par with Math.random (V8's xorshift128+):
- mean, variance, chi-squared uniformity, Kolmogorov-Smirnov - lag-1 through lag-8 autocorrelation - runs test, gap test, permutation test (triples) - bit-level frequency (bits 0-7) - 2D serial pairs (25x25 through 200x200 grids) - birthday spacings (Marsaglia parameters)
Speed is near-native (~4% slower than Math.random) and ~18% faster than Alea
(~14.4M ops/sec vs ~15.0M and ~12.2M respectively).
To reproduce:
npm run benchmark_random_quality # distribution tests (N=1M)
npm run benchmark_random_quality -- --deep # thorough (N=10M, multi-trial)
npm run benchmark_random # speed comparisonuint32() => numberfract53() => numberversionstringseednumberRed svelte_preprocess_helpers.ts view source
(s: { remove: (start: number, end: number) => unknown; }, import_node: ImportDeclaration & { start: number; end: number; }, source: string): void Removes an ImportDeclaration from source using MagicString.
Consumes leading whitespace (tabs/spaces) and trailing newline to avoid leaving blank lines.
sThe MagicString instance to modify.
{ remove: (start: number, end: number) => unknown; }import_nodeThe ImportDeclaration AST node with Svelte position data.
ImportDeclaration & { start: number; end: number; }sourceThe original source string.
stringvoid svelte_preprocess_helpers.ts view source
(s: { overwrite: (start: number, end: number, content: string) => unknown; }, node: ImportDeclaration & { start: number; end: number; }, specifier_to_remove: ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier, source: string, additional_lines?: string): void Removes a specifier from a multi-specifier import declaration by reconstructing the statement without the removed specifier.
Overwrites the entire declaration range to avoid character-level comma surgery.
Handles:
- import Mdz, {other} from '...' โ import {other} from '...'
- import {default as Mdz, other} from '...' โ import {other} from '...'
- import {Mdz, other} from '...' โ import {other} from '...'
sThe MagicString instance to modify.
{ overwrite: (start: number, end: number, content: string) => unknown; }nodeThe positioned ImportDeclaration AST node.
ImportDeclaration & { start: number; end: number; }specifier_to_removeThe specifier to remove from the import.
ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifiersourceThe original source string.
stringadditional_linesExtra content appended after the reconstructed import (used to bundle new imports into the overwrite to avoid MagicString boundary conflicts).
string''void (array: any[], index: number): void Removes an element from array at index in an unordered manner.
arrayany[]indexnumbervoid svelte_preprocess_helpers.ts view source
(s: { remove: (start: number, end: number) => unknown; }, declaration_node: VariableDeclaration & { start: number; end: number; }, source: string): void Removes a single-declarator VariableDeclaration from source using MagicString.
Consumes leading whitespace (tabs/spaces) and trailing newline to avoid leaving
blank lines. Only safe for single-declarator statements (const x = 'val';);
callers must verify node.declarations.length === 1 before calling.
sThe MagicString instance to modify.
{ remove: (start: number, end: number) => unknown; }declaration_nodeThe VariableDeclaration AST node with Svelte position data.
VariableDeclaration & { start: number; end: number; }sourceThe original source string.
stringvoid <T extends Record<K, any>, K extends string | number>(obj: T, keys: K[]): T A more explicit form of {put_this_first: obj.put_this_first, ...obj}.
objTkeysK[]T <T extends RegExp>(regexp: T): T Reset a RegExp's lastIndex to 0 for global and sticky patterns. Ensures consistent behavior by clearing state that affects subsequent matches.
regexpTT svelte_preprocess_helpers.ts view source
(ast: Root, component_imports: string[]): Map<string, ResolvedComponentImport> Resolves local names that import from specified source paths.
Scans ImportDeclaration nodes in both the instance and module scripts.
Handles default, named, and aliased imports. Skips namespace imports
and import type declarations (both whole-declaration and per-specifier).
Returns import node references alongside names to support import removal.
astThe parsed Svelte AST root node.
Rootcomponent_importsArray of import source paths to match against.
string[]Map<string, ResolvedComponentImport> Map of local names to their resolved import info.
Promise<void> A singleton resolved Promise.
svelte_preprocess_helpers.ts view source
ResolvedComponentImport Information about a resolved component import.
import_nodeThe ImportDeclaration AST node that provides this name.
ImportDeclarationspecifierThe specific import specifier for this name.
ImportSpecifier | ImportDefaultSpecifierResolvedPath A resolved path with both the original path string and its absolute id.
pathstringRestartableProcess Handle for a process that can be restarted.
Exposes closed promise for observing exits and implementing restart policies.
restartRestart the process, killing the current one if active. Concurrent calls are coalesced - multiple calls before the first completes will share the same restart operation.
() => Promise<void>killKill the process and set active to false
() => Promise<void>activeWhether this handle is managing a process.
Note: This reflects handle state, not whether the underlying OS process is executing.
Remains true after a process exits naturally until kill() or restart() is called.
To check if the process actually exited, await closed.
booleanchildThe current child process, or null if not active
ChildProcess | nullclosedPromise that resolves when the current process exits
Promise<SpawnResult>spawnedPromise that resolves when the initial spawn_process() call completes.
Note: This resolves when the spawn syscall returns, NOT when the process
is "ready" or has produced output. For commands that fail immediately
(e.g., ENOENT), spawned still resolves - check closed for errors.
Promise<void>Result<TValue, TError> An alternative pattern to throwing and catching errors. Uses the type system to strongly type error return values when desired. Catching errors is then reserved for unexpected situations.
TValueobjectTErrorobjectA custom error class that's thrown by unwrap. Wraps a failed Result with an optional message, and also accepts an optional message that overrides the result's. Useful for generic handling of unwrapped results to forward custom messages and other failed result data.
ErrorDEFAULT_MESSAGEresulttype {ok: false; message?: string}
constructortype new (result: { ok: false; message?: string | undefined; }, message?: string | undefined, options?: ErrorOptions | undefined): ResultError
result{ ok: false; message?: string | undefined; }message?string | undefinedoptions?ErrorOptions | undefinedRgb (r: number, g: number, b: number): number Converts an RGB color to a hex color.
rnumbergnumberbnumbernumber (r: number, g: number, b: number): string rnumbergnumberbnumberstring (r: number, g: number, b: number): Hsl Converts an RGB color value to HSL. Conversion formula adapted from http://wikipedia.org/wiki/HSL_color_space. Values r/g/b are in the range [0,255] and returns h/s/l in the range [0,1].
rnumbergnumberbnumberHsl (n: number, decimals: number): number Rounds a number to a specified number of decimal places.
nnumberdecimalsnumbernumber <T extends DagNode>(options: DagOptions<T>): Promise<DagResult> Execute nodes in a dependency graph concurrently.
Independent nodes (no unmet dependencies) run in parallel up to
max_concurrency. When a node completes, its dependents become
eligible to start. Failure cascading and stop-on-failure are handled
per the options.
optionsDAG execution options.
DagOptions<T>Promise<DagResult> Aggregated result with per-node details.
Saturation (cache: Map<string, { key: string; url: string; params: any; value: any; etag: string | null; last_modified: string | null; }>): string Converts FetchValueCache to a JSON string.
cacheMap<string, { key: string; url: string; params: any; value: any; etag: string | null; last_modified: string | null; }>string (filename: string | undefined, exclude: (string | RegExp)[]): boolean Checks if a filename matches any exclusion pattern.
Returns false when filename is undefined, empty string, or exclude is empty.
String patterns use substring matching. RegExp patterns use .test().
filenameThe file path to check, or undefined for virtual files.
string | undefinedexcludeArray of string or RegExp exclusion patterns.
(string | RegExp)[]boolean true if the file should be excluded from processing.
<T extends Array<any>>(array: T, random?: ((min: number, max: number, random?: () => number) => number) | undefined): T Mutates array with random ordering.
arrayTrandom?((min: number, max: number, random?: () => number) => number) | undefinedT (str: string, map_special_characters?: boolean): string Converts a string into a URL-compatible slug.
strthe string to convert
stringmap_special_charactersif true, characters like รฑ are converted to their ASCII equivalents, runs around 5x faster when disabled
booleantruestring <T extends Map<any, any>>(map: T, comparator?: (a: [any, any], b: [any, any]) => number): T Sorts a map by comparator, a function that compares two entries,
defaulting to using localCompare and >.
mapTcomparator(a: [any, any], b: [any, any]) => numbercompare_simple_map_entriesT Sortable Minimum shape required for topological sorting.
idstringdepends_onArray<string>ZodObject<{ name: ZodString; version: ZodString; modules: ZodOptional<ZodArray<ZodObject<{ path: ZodString; declarations: ZodOptional<ZodArray<ZodObject<{ name: ZodString; kind: ZodEnum<{ function: "function"; ... 6 more ...; css: "css"; }>; ... 20 more ...; alias_of: ZodOptional<...>; }, $loose>>>; module_comment: ... Metadata for a library's src/lib/ exports.
(command: string, args?: readonly string[], options?: SpawnProcessOptions | undefined): Promise<SpawnResult> Spawns a process and returns a promise that resolves when it exits. Use this for commands that complete (not long-running processes).
commandstringargsreadonly string[][]options?SpawnProcessOptions | undefinedPromise<SpawnResult> const result = await spawn('npm', ['install']);
if (!result.ok) console.error('Install failed');(command: string, args?: readonly string[], options?: SpawnOptions | undefined): SpawnDetachedResult Spawns a detached process that continues after parent exits.
Unlike other spawn functions, this is NOT tracked in any ProcessRegistry. The spawned process is meant to outlive the parent (e.g., daemon processes).
commandThe command to run
stringargsArguments to pass to the command
readonly string[][]options?Spawn options (use stdio to redirect output to file descriptors)
SpawnOptions | undefinedSpawnDetachedResult Result with pid on success, or error message on failure
// Simple detached process
const result = spawn_detached('node', ['daemon.js'], {cwd: '/app'});
// With log file (caller handles file opening)
import {openSync, closeSync} from 'node:fs';
const log_fd = openSync('/var/log/daemon.log', 'a');
const result = spawn_detached('node', ['daemon.js'], {
cwd: '/app',
stdio: ['ignore', log_fd, log_fd],
});
closeSync(log_fd);(command: string, args?: readonly string[], options?: SpawnProcessOptions | undefined): Promise<SpawnedOut> Spawns a process and captures stdout/stderr as strings.
commandstringargsreadonly string[][]options?SpawnProcessOptions | undefinedPromise<SpawnedOut> const {result, stdout} = await spawn_out('git', ['status', '--porcelain']);
if (result.ok && stdout) console.log(stdout);(command: string, args?: readonly string[], options?: SpawnProcessOptions | undefined): SpawnedProcess Spawns a process with graceful shutdown behavior.
Returns a handle with access to the child process and closed promise.
commandstringargsreadonly string[][]options?SpawnProcessOptions | undefinedSpawnedProcess const {child, closed} = spawn_process('node', ['server.js']);
// Later...
child.kill();
const result = await closed;(command: string, args?: readonly string[], options?: SpawnProcessOptions | undefined): RestartableProcess Spawns a process that can be restarted. Handles concurrent restart calls gracefully.
Note: The signal and timeout_ms options are reapplied on each restart.
If the AbortSignal is already aborted when restart() is called, the new
process will be killed immediately.
commandstringargsreadonly string[][]options?SpawnProcessOptions | undefinedRestartableProcess Simple restart on crash
const rp = spawn_restartable_process('node', ['server.js']);
while (rp.active) {
const result = await rp.closed;
if (result.ok) break; // Clean exit
await rp.restart();
}Restart with backoff
const rp = spawn_restartable_process('node', ['server.js']);
let failures = 0;
while (rp.active) {
const result = await rp.closed;
if (result.ok || ++failures > 5) break;
await new Promise((r) => setTimeout(r, 1000 * failures));
await rp.restart();
}(result: SpawnResult): result is SpawnResultError Type guard for spawn errors (process failed to start).
resultboolean (result: SpawnResult): result is SpawnResultExited Type guard for normal exit with code.
resultboolean (result: SpawnResult): result is SpawnResultSignaled Type guard for signal termination.
resultboolean (result: SpawnResult): string Formats a spawn result for use in error messages.
resultstring SpawnDetachedResult Result of spawning a detached process.
SpawnedOut Result of spawn_out with captured output streams.
resultstdoutCaptured stdout, or null if stream unavailable
string | nullstderrCaptured stderr, or null if stream unavailable
string | nullSpawnedProcess Handle for a spawned process with access to the child and completion promise.
childThe underlying Node.js ChildProcess
ChildProcessclosedResolves when the process exits
Promise<SpawnResult>SpawnProcessOptions Options for spawning processes, extending Node's SpawnOptions.
SpawnOptionssignalAbortSignal to cancel the process. When aborted, sends SIGTERM to the child.
AbortSignaltimeout_msTimeout in milliseconds. Must be non-negative. Sends SIGTERM when exceeded. A value of 0 triggers immediate SIGTERM.
numberspawn_child_processCustom spawn function for testing. Defaults to node:child_process spawn.
typeof node_spawn_child_processSpawnResult Discriminated union representing all possible spawn outcomes. Use type guards spawn_result_is_error, spawn_result_is_signaled, and spawn_result_is_exited to narrow the type.
SpawnResultError Spawn failed before the process could run.
ENOENT when command not found
okfalsechildChildProcesserrorErrorcodenullsignalnullSpawnResultExited Process ran and exited with a code.
ok is true when code is 0.
okbooleanchildChildProcesserrornullcodenumbersignalnullSpawnResultSignaled Process was terminated by a signal (e.g., SIGTERM, SIGKILL).
okfalsechildChildProcesserrornullcodenullsignalNodeJS.Signals(format: ForegroundColors | BackgroundColors | Modifiers | (ForegroundColors | BackgroundColors | Modifiers)[], text: string, options?: StyleTextOptions | undefined): string formatForegroundColors | BackgroundColors | Modifiers | (ForegroundColors | BackgroundColors | Modifiers)[]textstringoptions?StyleTextOptions | undefinedstring (values: number[], options?: StatsConfidenceIntervalOptions | undefined): [number, number] Calculate confidence interval for the mean.
valuesArray of numbers
number[]options?Configuration options
StatsConfidenceIntervalOptions | undefined[number, number] [lower_bound, upper_bound]
(mean: number, std_dev: number, sample_size: number, options?: StatsConfidenceIntervalOptions | undefined): [number, number] Calculate confidence interval from summary statistics (mean, std_dev, sample_size). Useful when raw data is not available.
meanMean of the data
numberstd_devStandard deviation of the data
numbersample_sizeNumber of samples
numberoptions?Configuration options
StatsConfidenceIntervalOptions | undefined[number, number] [lower_bound, upper_bound]
(level: number): number Convert a confidence level (0-1) to a z-score. Uses a lookup table for common values, approximates others.
levelnumbernumber stats_confidence_level_to_z_score(0.95); // 1.96
stats_confidence_level_to_z_score(0.99); // 2.576Record<number, number> Common z-scores for confidence intervals.
(mean: number, std_dev: number): number Calculate the coefficient of variation (CV). CV = standard deviation / mean, expressed as a ratio. Useful for comparing relative variability between datasets.
meannumberstd_devnumbernumber (x: number, a: number, b: number): number Approximate regularized incomplete beta function for p-value calculation. Uses continued fraction expansion for reasonable accuracy.
xnumberanumberbnumbernumber (z: number): number Log gamma function approximation (Lanczos approximation).
znumbernumber (values: number[]): number Calculate the mean (average) of an array of numbers.
valuesnumber[]number (values: number[]): number Calculate the median of an array of numbers.
valuesnumber[]number (values: number[]): { min: number; max: number; } Calculate min and max values.
valuesnumber[]{ min: number; max: number; } (x: number): number Standard normal CDF approximation (Abramowitz and Stegun formula 7.1.26).
xnumbernumber (values: number[], options?: StatsOutliersIqrOptions | undefined): StatsOutlierResult Detect outliers using the IQR (Interquartile Range) method. Values outside [Q1 - multiplier*IQR, Q3 + multiplier*IQR] are considered outliers.
valuesnumber[]options?StatsOutliersIqrOptions | undefinedStatsOutlierResult (values: number[], options?: StatsOutliersMadOptions | undefined): StatsOutlierResult Detect outliers using the MAD (Median Absolute Deviation) method. More robust than IQR for skewed distributions. Uses modified Z-score: |0.6745 * (x - median) / MAD| Values with modified Z-score > threshold are considered outliers.
valuesnumber[]options?StatsOutliersMadOptions | undefinedStatsOutlierResult (values: number[], p: number): number Calculate a percentile of an array of numbers using linear interpolation. Uses the "R-7" method (default in R, NumPy, Excel) which interpolates between data points for more accurate percentile estimates, especially with smaller samples.
valuesArray of numbers
number[]pPercentile (0-1, e.g., 0.95 for 95th percentile)
numbernumber (values: number[], mean?: number | undefined): number Calculate the standard deviation of an array of numbers. Uses population standard deviation (divides by n, not n-1). For benchmarks with many samples, this is typically appropriate.
valuesnumber[]mean?number | undefinednumber (t: number, df: number): number Approximate two-tailed p-value from t-distribution. For large df (>100), uses normal approximation. For smaller df, uses incomplete beta function.
tAbsolute value of t-statistic
numberdfDegrees of freedom
numbernumber Two-tailed p-value
(values: number[], mean?: number | undefined): number Calculate the variance of an array of numbers.
valuesnumber[]mean?number | undefinednumber (mean1: number, std1: number, n1: number, mean2: number, std2: number, n2: number): StatsWelchTTestResult Calculate Welch's t-test statistic and degrees of freedom. Welch's t-test is more robust than Student's t-test when variances are unequal.
mean1Mean of first sample
numberstd1Standard deviation of first sample
numbern1Size of first sample
numbermean2Mean of second sample
numberstd2Standard deviation of second sample
numbern2Size of second sample
numberStatsWelchTTestResult StatsConfidenceIntervalOptions Configuration options for confidence interval calculation.
z_scoreZ-score for confidence level (default: 1.96 for 95% CI)
numberconfidence_levelConfidence level (0-1), alternative to z_score. If both provided, z_score takes precedence.
numberStatsOutlierResult Result from outlier detection.
cleanedValues after removing outliers
Array<number>outliersDetected outlier values
Array<number>StatsOutliersIqrOptions Configuration options for IQR outlier detection.
iqr_multiplierMultiplier for IQR bounds (default: 1.5)
numbermin_sample_sizeMinimum sample size to perform outlier detection (default: 3)
numberStatsOutliersMadOptions Configuration options for MAD outlier detection.
z_score_thresholdModified Z-score threshold for outlier detection (default: 3.5)
numberz_score_extremeExtreme Z-score threshold when too many outliers detected (default: 5.0)
numbermad_constantMAD constant for normal distribution (default: 0.6745)
numberoutlier_ratio_highRatio threshold to switch to extreme mode (default: 0.3)
numberoutlier_ratio_extremeRatio threshold to switch to keep-closest mode (default: 0.4)
numberoutlier_keep_ratioRatio of values to keep in keep-closest mode (default: 0.8)
numbermin_sample_sizeMinimum sample size to perform outlier detection (default: 3)
numberiqr_optionsOptions to pass to IQR fallback when MAD is zero
StatsWelchTTestResult Result from Welch's t-test calculation.
t_statisticThe t-statistic
numberdegrees_of_freedomWelch-Satterthwaite degrees of freedom
numberStopwatch (str: string): number Calculate the display width of a string in terminal columns.
- Strips ANSI escape codes (they have 0 width)
- Emojis and other wide characters take 2 columns
- Tab characters take 4 columns
- Newlines and other control characters take 0 columns
- Uses Intl.Segmenter to properly handle grapheme clusters (e.g., family emoji "๐จโ๐ฉโ๐งโ๐ฆ")
strstringnumber (content: string): boolean Check if content appears to be binary.
Checks for null bytes in the first 8KB of content.
contentContent to check.
stringboolean True if content appears to be binary.
(value: unknown): string Stringifies a value like JSON.stringify but with some corner cases handled better.
valueunknownstring (source: string, stripped: string): string Removes characters inclusive of stripped.
sourcestringstrippedstringstring (str: string): string Strips ANSI escape sequences from a string
strstringstring (source: string, stripped: string): string Removes characters inclusive of stripped.
sourcestringstrippedstringstring (source: string, stripped: string): string Removes characters inclusive of stripped.
sourcestringstrippedstringstring (source: string, stripped: string): string Removes characters inclusive of stripped.
sourcestringstrippedstringstring <T extends Pick<Event, "preventDefault" | "stopPropagation" | "stopImmediatePropagation">>(event: T, immediate?: boolean, preventDefault?: boolean): T Stops an event from bubbling and doing default behavior.
eventTimmediatedefaults to true to use stopImmediatePropagation over stopPropagation
booleantruepreventDefaultdefaults to true
booleantrueT <T extends (...args: Array<any>) => Promise<void>>(cb: T, { delay, when }?: ThrottleOptions): T Throttles calls to a callback that returns a void promise.
Immediately invokes the callback on the first call unless leading=false.
If the throttled function is called while the promise is already pending,
the call is queued to run after the pending promise completes plus delay,
and only the last call is invoked.
In other words, all calls and their args are discarded
during the pending window except for the most recent.
Unlike debouncing, this calls the throttled callback
both on the leading and trailing edges of the delay window by default,
and this can be customized by setting leading or `trailing.
It also differs from a queue where every call to the throttled callback eventually runs.
cbT__1EMPTY_OBJECTT same as cb
ThrottleOptions delayEnforced milliseconds between calls. For when='trailing' this is the debounce delay.
numberwhenWhen to call the throttled function. Defaults to both.
'both' | 'leading' | 'trailing'Thunk<T> Represents a value wrapped in a function. Useful for lazy values and bridging reactive boundaries in Svelte.
T<T>(fn: () => Promise<T>, timer?: Timer): Promise<{ result: T; timing: TimeResult; }> Time an asynchronous function execution.
fnAsync function to time
() => Promise<T>timerTimer to use (defaults to timer_default)
timer_defaultPromise<{ result: T; timing: TimeResult; }> Object containing the function result and timing information
const {result, timing} = await time_async(async () => {
await fetch('https://api.example.com/data');
return 42;
});
console.log(`Result: ${result}, took ${time_format_adaptive(timing.elapsed_ns)}`);(ns: number, unit: TimeUnit, decimals?: number): string Format time with a specific unit.
nsTime in nanoseconds
numberunitUnit to use ('ns', 'us', 'ms', 's')
decimalsNumber of decimal places (default: 2)
number2string Formatted string like "3.87ฮผs"
(ns: number, decimals?: number): string Format time with adaptive units (ns/ฮผs/ms/s) based on magnitude.
nsTime in nanoseconds
numberdecimalsNumber of decimal places (default: 2)
number2string Formatted string like "3.87ฮผs" or "1.23ms"
time_format_adaptive(1500) // "1.50ฮผs"
time_format_adaptive(3870) // "3.87ฮผs"
time_format_adaptive(1500000) // "1.50ms"
time_format_adaptive(1500000000) // "1.50s"(fn: () => unknown, iterations: number, timer?: Timer): Promise<number[]> Measure multiple executions of a function and return all timings.
fnFunction to measure (sync or async)
() => unknowniterationsNumber of times to execute
numbertimerTimer to use (defaults to timer_default)
timer_defaultPromise<number[]> Array of elapsed times in nanoseconds
const timings_ns = await time_measure(async () => {
await process_data();
}, 100);
import {BenchmarkStats} from './benchmark_stats.js';
const stats = new BenchmarkStats(timings_ns);
console.log(`Mean: ${time_format_adaptive(stats.mean_ns)}`);1000000 1000000000 1000 Time units and conversions.
(ns: number): number Convert nanoseconds to milliseconds.
nsnumbernumber (ns: number): number Convert nanoseconds to seconds.
nsnumbernumber (ns: number): number Convert nanoseconds to microseconds.
nsnumbernumber <T>(fn: () => T, timer?: Timer): { result: T; timing: TimeResult; } Time a synchronous function execution.
fnSync function to time
() => TtimerTimer to use (defaults to timer_default)
timer_default{ result: T; timing: TimeResult; } Object containing the function result and timing information
const {result, timing} = time_sync(() => {
return expensive_computation();
});
console.log(`Result: ${result}, took ${time_format_adaptive(timing.elapsed_ns)}`);(values_ns: number[]): TimeUnit Detect the best time unit for a set of nanosecond values. Chooses the unit where most values fall in the range 1-9999.
values_nsArray of times in nanoseconds
number[]TimeUnit Best unit to use for all values
Record<TimeUnit, string> Display labels for time units (uses proper Unicode ฮผ for microseconds).
Timer Timer interface for measuring elapsed time. Returns time in nanoseconds for maximum precision.
nowGet current time in nanoseconds
() => numberTimer Browser high-resolution timer using performance.now(). Converts milliseconds to nanoseconds for consistent API.
Precision varies by browser due to Spectre/Meltdown mitigations: - Chrome: ~100ฮผs (coarsened) - Firefox: ~1ms (rounded) - Safari: ~100ฮผs - Node.js: ~1ฮผs
For nanosecond-precision benchmarks, use Node.js with timer_node.
Timer Auto-detected timer based on environment. Uses process.hrtime in Node.js, performance.now() in browsers. The timer function is detected once and cached for performance.
Timer Node.js high-resolution timer using process.hrtime.bigint(). Provides true nanosecond precision.
TimeResult Result from timing a function execution. All times in nanoseconds for maximum precision.
elapsed_nsElapsed time in nanoseconds
numberelapsed_usElapsed time in microseconds (convenience)
numberelapsed_msElapsed time in milliseconds (convenience)
numberstarted_at_nsStart time in nanoseconds (from timer.now())
numberended_at_nsEnd time in nanoseconds (from timer.now())
numberTimeUnit Time unit for formatting.
Tracks and manages multiple timing operations. Allows starting, stopping, and retrieving timings with optional precision.
decimalstype number | undefined
constructortype new (decimals?: number | undefined): Timings
decimals?number | undefinedstartStarts a timing operation for the given key.
type (key: TimingsKey, decimals?: number | undefined): () => number
keydecimalsnumber | undefinedthis.decimals() => numbergettype (key: TimingsKey): number
keynumberentriestype (): IterableIterator<[TimingsKey, number | undefined]>
IterableIterator<[TimingsKey, number | undefined]>mergeMerges other timings into this one, adding together values with identical keys.
type (timings: Timings): void
timingsvoidTimingsKey <T>(value: T): T extends readonly any[] ? T : T[] Converts value to an array if it's not already.
valueTT extends readonly any[] ? T : T[] (data: string | BufferSource): Uint8Array<ArrayBufferLike> Converts string or binary data to a Uint8Array.
Strings are UTF-8 encoded. Uint8Array inputs are returned as-is.
dataString or BufferSource to convert.
string | BufferSourceUint8Array<ArrayBufferLike> Uint8Array view of the data.
(url: string, params: any, method: string): FetchValueCacheKey urlstringparamsanymethodstringFetchValueCacheKey (path_or_url: string | URL): string Converts a URL to a file path string, or returns the string as-is.
path_or_urlstring | URLstring (bytes: Uint8Array<ArrayBufferLike>): string Converts a Uint8Array to a lowercase hex string.
bytesBinary data to encode.
Uint8Array<ArrayBufferLike>string Hex string with two characters per byte.
(v: number): string vnumberstring <T extends ReadonlyArray<any>>(array: T): () => ArrayElement<T> Returns a function that returns the next item in the array
in a linear sequence, looping back to index 0 when it reaches the end.
arrayT() => ArrayElement<T> <T extends Sortable>(items: T[], label?: string): TopologicalSortResult<T> Sort items by their dependencies using Kahn's algorithm.
Returns items ordered so that dependencies come before dependents. If a cycle is detected, returns an error with the cycle path.
itemsArray of items to sort.
T[]labelLabel for error messages (e.g. "resource", "step").
string'item'TopologicalSortResult<T> Sorted items or error if cycle detected.
TopologicalSortResult<T> Result of topological sort.
T<T>(obj: T): T | undefined objTT | undefined (obj: any, cb: (key: string, value: any, obj: any) => void): void Performs a depth-first traversal of an object's enumerable properties,
calling cb for every key and value with the current obj context.
objany object with enumerable properties
anycbreceives the key, value, and obj for every enumerable property on obj and its descendents
(key: string, value: any, obj: any) => voidvoid (str: string, maxLength: number, suffix?: string): string Truncates a string to a maximum length, adding a suffix if needed that defaults to ....
strstringmaxLengthnumbersuffixstring'...'string svelte_preprocess_helpers.ts view source
(value: true | ExpressionTag | (ExpressionTag | Text)[], source: string, bindings: ReadonlyMap<string, string>): ConditionalChainBranch[] | null Extracts a chain of conditional expressions where all leaf values are static strings.
Handles nested ternaries like a ? 'x' : b ? 'y' : 'z' by iteratively walking
the right-recursive ConditionalExpression chain. At each level, evaluates the
consequent via evaluate_static_expr and continues into the alternate if it is
another ConditionalExpression. The final alternate is the else branch.
Returns null if the attribute value is not an ExpressionTag containing a
ConditionalExpression, if any leaf fails to resolve to a static string, or
if the chain exceeds 10 branches (safety limit).
A 2-branch result covers the simple ternary case (a ? 'x' : 'y').
valueThe attribute value from AST.Attribute['value'].
true | ExpressionTag | (ExpressionTag | Text)[]sourceThe full source string (needed to slice test expression source text).
stringbindingsMap of variable names to their resolved static string values.
ReadonlyMap<string, string>ConditionalChainBranch[] | null Array of conditional chain branches, or null if not extractable.
(value: never, message?: string | undefined): asserts value is never Beyond terseness, this is useful because throw is not an expression,
and therefore can't be used in places like Svelte markup without a workaround,
at least until this proposal is accepted and widely available:
https://github.com/tc39/proposal-throw-expressions
valuenevermessage?string | undefinedvoid Error for asserting unreachable code paths in TypeScript. Useful for exhaustive matching.
Errorconstructortype new (value: never, message?: string, options?: ErrorOptions | undefined): UnreachableError
valuenevermessagestring`Unreachable case: ${value}`options?ErrorOptions | undefined<T>(value: T | Thunk<T>): T Returns the result of calling value if it's a function,
otherwise it's like the identity function and passes it through.
valueT | Thunk<T>T <TValue extends { value?: unknown; }, TError extends { message?: string; }>(result: Result<TValue, TError>, message?: string | undefined): TValue["value"] A helper that says,
"hey I know this is wrapped in a Result, but I expect it to be ok,
so if it's not, I understand it will throw an error that wraps the result".
resultSome Result object.
Result<TValue, TError>message?Optional custom error message.
string | undefinedTValue["value"] The wrapped value.
<TError extends object>(result: Result<object, TError>, message?: string): { ok: false; } & TError A helper that does the opposite of unwrap, throwing if the Result is ok.
Note that while unwrap returns the wrapped value, unwrap_error returns the entire result.
resultSome Result object.
Result<object, TError>messageOptional custom error message.
string'Failed to unwrap result error'{ ok: false; } & TError The type-narrowed result.
ZodURL Uuid RegExp Postgres doesn't support the namespace prefix, so neither does Felt. For more see the UUID RFC - https://tools.ietf.org/html/rfc4122 The Ajv validator does support the namespace, hence this custom implementation.
(duration?: number): Promise<void> Waits for the given duration before resolving.
durationnumber0Promise<void> (schema: ZodObject<$ZodLooseShape, $strip>): ZodFieldInfo[] Extract field metadata from a Zod object schema.
schemaZod object schema to extract from
ZodObject<$ZodLooseShape, $strip>ZodFieldInfo[] array of field info for each property
(value: unknown): string Format a value for display in help text.
valueValue to format.
unknownstring Formatted string representation.
(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): string Get the base type name for a Zod schema, unwrapping all wrappers.
schemaZod schema to inspect
ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>string base type name (e.g. 'string', 'object', 'uuid')
(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): boolean Check if a schema has a default value at any wrapping level.
Unlike zod_to_schema_default (which returns the value), this returns a boolean. Distinguishes "no default" from "default is undefined".
schemaZod schema to check
ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>boolean (schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): boolean Check if a schema accepts null at any wrapping level.
schemaZod schema to check
ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>boolean (schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): boolean Check if a schema is optional at the outermost level.
schemaZod schema to check
ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>boolean (schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): string[] Get aliases from a schema's metadata, unwrapping if needed.
schemaZod schema to extract aliases from.
ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>string[] Array of alias strings.
(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): unknown Get the default value from a schema, unwrapping if needed.
schemaZod schema to extract default from.
ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>unknown Default value or undefined.
(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): string | null Get the description from a schema's metadata, unwrapping if needed.
schemaZod schema to extract description from.
ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>string | null Description string or null if not found.
(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): Set<string> Get all property names and their aliases from an object schema.
schemaZod object schema.
ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>Set<string> Set of all names and aliases.
(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): ZodSchemaProperty[] Extract properties from a Zod object schema.
schemaZod object schema to extract from.
ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>ZodSchemaProperty[] Array of property definitions.
(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): string Get the type string for a schema, suitable for display.
schemaZod schema to get type string for.
ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>string Human-readable type string.
(def: $ZodTypeDef): ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> | undefined Unwrap nested schema types (optional, default, nullable, etc).
defZod type definition to unwrap.
$ZodTypeDefZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> | undefined Inner schema if wrapped, undefined otherwise.
(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): $ZodTypeDef Unwrap Zod wrappers (optional, default, nullable, pipe, transform) to get the base type definition.
schemaZod schema to unwrap
ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>$ZodTypeDef the innermost non-wrapper type definition
(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): ZodObject<$ZodLooseShape, $strip> | null Unwrap a schema to find the inner ZodObject, or null if not an object schema.
Handles wrappers like z.strictObject({...}).default({...}).
schemaZod schema to unwrap
ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>ZodObject<$ZodLooseShape, $strip> | null the inner ZodObject or null
Set<string> Zod wrapper type names that zod_unwrap_def traverses through.
ZodFieldInfo Metadata extracted from a single field of a Zod object schema.
namestringbase_typestringrequiredbooleanhas_defaultbooleannullablebooleanZodSchemaProperty Property extracted from an object schema.
namestringtypestringdescriptionstringdefaultunknownaliasesArray<string>