@visulima/string 1.5.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/dist/{align-text.mjs → align-text.js} +1 -1
- package/dist/case/camel-case.d.ts +1 -1
- package/dist/case/camel-case.js +1 -0
- package/dist/case/capital-case.d.ts +1 -1
- package/dist/case/capital-case.js +1 -0
- package/dist/case/constant-case.d.ts +1 -1
- package/dist/case/constant-case.js +1 -0
- package/dist/case/dot-case.d.ts +1 -1
- package/dist/case/dot-case.js +1 -0
- package/dist/case/flat-case.d.ts +1 -1
- package/dist/case/flat-case.js +1 -0
- package/dist/case/flip-case.js +1 -0
- package/dist/case/identify-case.d.ts +1 -1
- package/dist/case/index.js +1 -0
- package/dist/case/kebab-case.js +1 -0
- package/dist/case/lower-first.d.ts +1 -1
- package/dist/case/no-case.d.ts +1 -1
- package/dist/case/no-case.js +1 -0
- package/dist/case/pascal-case.d.ts +1 -1
- package/dist/case/pascal-case.js +1 -0
- package/dist/case/pascal-snake-case.d.ts +1 -1
- package/dist/case/pascal-snake-case.js +1 -0
- package/dist/case/path-case.d.ts +1 -1
- package/dist/case/path-case.js +1 -0
- package/dist/case/sentence-case.d.ts +1 -1
- package/dist/case/sentence-case.js +1 -0
- package/dist/case/snake-case.d.ts +1 -1
- package/dist/case/snake-case.js +1 -0
- package/dist/case/split-by-case.js +1 -0
- package/dist/case/title-case.d.ts +1 -1
- package/dist/case/title-case.js +1 -0
- package/dist/case/train-case.d.ts +1 -1
- package/dist/case/train-case.js +1 -0
- package/dist/case/upper-first.d.ts +1 -1
- package/dist/closest-string.js +1 -0
- package/dist/compare-similarity.js +1 -0
- package/dist/get-string-truncated-width.js +1 -0
- package/dist/get-string-width.js +1 -0
- package/dist/index.js +1 -0
- package/dist/outdent.js +1 -0
- package/dist/packem_shared/closestN-DjNxwK0t.js +1 -0
- package/dist/packem_shared/joinSegments-DTGeJBZG.js +1 -0
- package/dist/packem_shared/{transliterate-DNh-jM0e.mjs → transliterate-CxVHmZUa.js} +1 -1
- package/dist/slice.js +1 -0
- package/dist/slugify.d.ts +1 -1
- package/dist/slugify.js +1 -0
- package/dist/test/utils.js +16 -0
- package/dist/test/vitest.js +1 -0
- package/dist/truncate.js +1 -0
- package/dist/utilities.js +1 -0
- package/dist/word-similarity-sort.js +1 -0
- package/dist/word-wrap.js +8 -0
- package/package.json +73 -404
- package/dist/align-text.cjs +0 -2
- package/dist/align-text.d.cts +0 -13
- package/dist/align-text.d.mts +0 -13
- package/dist/case/camel-case.cjs +0 -1
- package/dist/case/camel-case.d.cts +0 -7
- package/dist/case/camel-case.d.mts +0 -7
- package/dist/case/camel-case.mjs +0 -1
- package/dist/case/capital-case.cjs +0 -1
- package/dist/case/capital-case.d.cts +0 -7
- package/dist/case/capital-case.d.mts +0 -7
- package/dist/case/capital-case.mjs +0 -1
- package/dist/case/constant-case.cjs +0 -1
- package/dist/case/constant-case.d.cts +0 -7
- package/dist/case/constant-case.d.mts +0 -7
- package/dist/case/constant-case.mjs +0 -1
- package/dist/case/dot-case.cjs +0 -1
- package/dist/case/dot-case.d.cts +0 -7
- package/dist/case/dot-case.d.mts +0 -7
- package/dist/case/dot-case.mjs +0 -1
- package/dist/case/flat-case.cjs +0 -1
- package/dist/case/flat-case.d.cts +0 -7
- package/dist/case/flat-case.d.mts +0 -7
- package/dist/case/flat-case.mjs +0 -1
- package/dist/case/flip-case.cjs +0 -1
- package/dist/case/flip-case.d.cts +0 -9
- package/dist/case/flip-case.d.mts +0 -9
- package/dist/case/flip-case.mjs +0 -1
- package/dist/case/identify-case.cjs +0 -1
- package/dist/case/identify-case.d.cts +0 -7
- package/dist/case/identify-case.d.mts +0 -7
- package/dist/case/index.cjs +0 -1
- package/dist/case/index.d.cts +0 -26
- package/dist/case/index.d.mts +0 -26
- package/dist/case/index.mjs +0 -1
- package/dist/case/kebab-case.cjs +0 -1
- package/dist/case/kebab-case.d.cts +0 -12
- package/dist/case/kebab-case.d.mts +0 -12
- package/dist/case/kebab-case.mjs +0 -1
- package/dist/case/lower-first.cjs +0 -1
- package/dist/case/lower-first.d.cts +0 -7
- package/dist/case/lower-first.d.mts +0 -7
- package/dist/case/no-case.cjs +0 -1
- package/dist/case/no-case.d.cts +0 -7
- package/dist/case/no-case.d.mts +0 -7
- package/dist/case/no-case.mjs +0 -1
- package/dist/case/pascal-case.cjs +0 -1
- package/dist/case/pascal-case.d.cts +0 -7
- package/dist/case/pascal-case.d.mts +0 -7
- package/dist/case/pascal-case.mjs +0 -1
- package/dist/case/pascal-snake-case.cjs +0 -1
- package/dist/case/pascal-snake-case.d.cts +0 -7
- package/dist/case/pascal-snake-case.d.mts +0 -7
- package/dist/case/pascal-snake-case.mjs +0 -1
- package/dist/case/path-case.cjs +0 -1
- package/dist/case/path-case.d.cts +0 -7
- package/dist/case/path-case.d.mts +0 -7
- package/dist/case/path-case.mjs +0 -1
- package/dist/case/sentence-case.cjs +0 -1
- package/dist/case/sentence-case.d.cts +0 -7
- package/dist/case/sentence-case.d.mts +0 -7
- package/dist/case/sentence-case.mjs +0 -1
- package/dist/case/snake-case.cjs +0 -1
- package/dist/case/snake-case.d.cts +0 -7
- package/dist/case/snake-case.d.mts +0 -7
- package/dist/case/snake-case.mjs +0 -1
- package/dist/case/split-by-case.cjs +0 -1
- package/dist/case/split-by-case.d.cts +0 -17
- package/dist/case/split-by-case.d.mts +0 -17
- package/dist/case/split-by-case.mjs +0 -1
- package/dist/case/title-case.cjs +0 -1
- package/dist/case/title-case.d.cts +0 -7
- package/dist/case/title-case.d.mts +0 -7
- package/dist/case/title-case.mjs +0 -1
- package/dist/case/train-case.cjs +0 -1
- package/dist/case/train-case.d.cts +0 -7
- package/dist/case/train-case.d.mts +0 -7
- package/dist/case/train-case.mjs +0 -1
- package/dist/case/upper-first.cjs +0 -1
- package/dist/case/upper-first.d.cts +0 -7
- package/dist/case/upper-first.d.mts +0 -7
- package/dist/closest-string.cjs +0 -1
- package/dist/closest-string.d.cts +0 -8
- package/dist/closest-string.d.mts +0 -8
- package/dist/closest-string.mjs +0 -1
- package/dist/compare-similarity.cjs +0 -1
- package/dist/compare-similarity.d.cts +0 -8
- package/dist/compare-similarity.d.mts +0 -8
- package/dist/compare-similarity.mjs +0 -1
- package/dist/get-string-truncated-width.cjs +0 -1
- package/dist/get-string-truncated-width.d.cts +0 -25
- package/dist/get-string-truncated-width.d.mts +0 -25
- package/dist/get-string-truncated-width.mjs +0 -1
- package/dist/get-string-width.cjs +0 -1
- package/dist/get-string-width.d.cts +0 -7
- package/dist/get-string-width.d.mts +0 -7
- package/dist/get-string-width.mjs +0 -1
- package/dist/index.cjs +0 -1
- package/dist/index.d.cts +0 -47
- package/dist/index.d.mts +0 -47
- package/dist/index.mjs +0 -1
- package/dist/native-string-types.d.cts +0 -128
- package/dist/native-string-types.d.mts +0 -128
- package/dist/outdent.cjs +0 -1
- package/dist/outdent.d.cts +0 -16
- package/dist/outdent.d.mts +0 -16
- package/dist/outdent.mjs +0 -1
- package/dist/packem_shared/LRUCache-TYqfUYE5.cjs +0 -1
- package/dist/packem_shared/closest-DGumBGH9.cjs +0 -1
- package/dist/packem_shared/closestN-D4wF4I-I.mjs +0 -1
- package/dist/packem_shared/closestN-DqYIV5u3.cjs +0 -1
- package/dist/packem_shared/constants-DEcMFLn8.cjs +0 -1
- package/dist/packem_shared/generate-cache-key-BZf0GiMs.cjs +0 -1
- package/dist/packem_shared/joinSegments-BNRq9dVI.mjs +0 -1
- package/dist/packem_shared/joinSegments-Cs5mfgdt.cjs +0 -1
- package/dist/packem_shared/lru-cache-B_t27XwI.d.cts +0 -14
- package/dist/packem_shared/lru-cache-B_t27XwI.d.mts +0 -14
- package/dist/packem_shared/normalize-german-eszett-Bop4wOp9.cjs +0 -1
- package/dist/packem_shared/replaceString-9jUkfJB5.cjs +0 -1
- package/dist/packem_shared/transliterate-wQMEsr3l.cjs +0 -5
- package/dist/packem_shared/types-CNJfNczL.d.mts +0 -59
- package/dist/packem_shared/types-Cnu8OB9S.d.cts +0 -59
- package/dist/packem_shared/types-Daae0hGf.d.cts +0 -64
- package/dist/packem_shared/types-Daae0hGf.d.mts +0 -64
- package/dist/slice.cjs +0 -1
- package/dist/slice.d.cts +0 -11
- package/dist/slice.d.mts +0 -11
- package/dist/slice.mjs +0 -1
- package/dist/slugify.cjs +0 -1
- package/dist/slugify.d.cts +0 -5
- package/dist/slugify.d.mts +0 -5
- package/dist/slugify.mjs +0 -1
- package/dist/test/utils.cjs +0 -16
- package/dist/test/utils.d.cts +0 -31
- package/dist/test/utils.d.mts +0 -31
- package/dist/test/utils.mjs +0 -16
- package/dist/test/vitest.cjs +0 -1
- package/dist/test/vitest.d.cts +0 -9
- package/dist/test/vitest.d.mts +0 -9
- package/dist/test/vitest.mjs +0 -1
- package/dist/truncate.cjs +0 -1
- package/dist/truncate.d.cts +0 -13
- package/dist/truncate.d.mts +0 -13
- package/dist/truncate.mjs +0 -1
- package/dist/utilities.cjs +0 -1
- package/dist/utilities.d.cts +0 -10
- package/dist/utilities.d.mts +0 -10
- package/dist/utilities.mjs +0 -1
- package/dist/word-similarity-sort.cjs +0 -1
- package/dist/word-similarity-sort.d.cts +0 -8
- package/dist/word-similarity-sort.d.mts +0 -8
- package/dist/word-similarity-sort.mjs +0 -1
- package/dist/word-wrap.cjs +0 -8
- package/dist/word-wrap.d.cts +0 -16
- package/dist/word-wrap.d.mts +0 -16
- package/dist/word-wrap.mjs +0 -8
- /package/dist/case/{identify-case.mjs → identify-case.js} +0 -0
- /package/dist/case/{lower-first.mjs → lower-first.js} +0 -0
- /package/dist/case/{upper-first.mjs → upper-first.js} +0 -0
- /package/dist/packem_shared/{LRUCache-Bjo6gsbC.mjs → LRUCache-Bjo6gsbC.js} +0 -0
- /package/dist/packem_shared/{closest-uarbVSbs.mjs → closest-uarbVSbs.js} +0 -0
- /package/dist/packem_shared/{constants-CDcaCZKC.mjs → constants-CDcaCZKC.js} +0 -0
- /package/dist/packem_shared/{generate-cache-key-DPByFaMH.mjs → generate-cache-key-DPByFaMH.js} +0 -0
- /package/dist/packem_shared/{normalize-german-eszett-4k1qRtEP.mjs → normalize-german-eszett-4k1qRtEP.js} +0 -0
- /package/dist/packem_shared/{replaceString-DwIZyvoL.mjs → replaceString-DwIZyvoL.js} +0 -0
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { N as NodeLocale, k as IsStringLiteral } from './types-Daae0hGf.mjs';
|
|
2
|
-
import { L as LRUCache } from './lru-cache-B_t27XwI.mjs';
|
|
3
|
-
|
|
4
|
-
type SplitterCharacter = " " | "_" | "-" | "." | "/";
|
|
5
|
-
type LastOfArray<T extends any[]> = T extends [...any, infer R] ? R : never;
|
|
6
|
-
type RemoveLastOfArray<T extends any[]> = T extends [...infer F, any] ? F : never;
|
|
7
|
-
type IsUpperCase<S extends string> = S extends Uppercase<S> ? true : false;
|
|
8
|
-
type IsLowerCase<S extends string> = S extends Lowercase<S> ? true : false;
|
|
9
|
-
type SameLetterCase<X extends string, Y extends string> = IsUpperCase<X> extends IsUpperCase<Y> ? true : IsLowerCase<X> extends IsLowerCase<Y> ? true : false;
|
|
10
|
-
type FirstOfString<S extends string> = S extends `${infer F}${string}` ? F : never;
|
|
11
|
-
type RemoveFirstOfString<S extends string> = S extends `${string}${infer R}` ? R : never;
|
|
12
|
-
interface LocaleOptions {
|
|
13
|
-
locale?: NodeLocale;
|
|
14
|
-
}
|
|
15
|
-
interface CaseOptions extends LocaleOptions {
|
|
16
|
-
cache?: boolean;
|
|
17
|
-
cacheStore?: LRUCache<string, string>;
|
|
18
|
-
handleAnsi?: boolean;
|
|
19
|
-
handleEmoji?: boolean;
|
|
20
|
-
knownAcronyms?: ReadonlyArray<string>;
|
|
21
|
-
normalize?: boolean;
|
|
22
|
-
stripAnsi?: boolean;
|
|
23
|
-
stripEmoji?: boolean;
|
|
24
|
-
}
|
|
25
|
-
type CamelCase<T extends string> = IsStringLiteral<T> extends true ? T extends `${infer F}_${infer R}` ? `${Lowercase<F>}${Capitalize<CamelCase<R>>}` : T extends `${infer F}-${infer R}` ? `${Lowercase<F>}${Capitalize<CamelCase<R>>}` : T extends `${infer F} ${infer R}` ? `${Lowercase<F>}${Capitalize<CamelCase<R>>}` : Lowercase<T> : string;
|
|
26
|
-
type PascalCase<T extends string> = IsStringLiteral<T> extends true ? Capitalize<CamelCase<T>> : string;
|
|
27
|
-
type SnakeCase<T extends string> = IsStringLiteral<T> extends true ? T extends `${infer C}${infer Rest}` ? C extends Uppercase<C> ? `_${Lowercase<C>}${SnakeCase<Rest>}` : `${C}${SnakeCase<Rest>}` : T : string;
|
|
28
|
-
type KebabCase<T extends string> = IsStringLiteral<T> extends true ? T extends `${infer C}${infer Rest}` ? C extends Uppercase<C> ? `-${Lowercase<C>}${KebabCase<Rest>}` : `${C}${KebabCase<Rest>}` : T : string;
|
|
29
|
-
type FlatCase<T extends string> = IsStringLiteral<T> extends true ? Lowercase<T extends `${infer F}${infer R}` ? `${F}${FlatCase<R>}` : T> : string;
|
|
30
|
-
type TrainCase<T extends string, N extends boolean = false> = IsStringLiteral<T> extends true ? T extends `${infer F}${infer R}` ? F extends Uppercase<F> ? R extends `${infer Next}${infer Rest}` ? Next extends Uppercase<Next> ? N extends true ? `${Capitalize<F>}-${Lowercase<Next>}${TrainCase<Rest, N>}` : `${F}${Next}${TrainCase<Rest, N>}` : `${Capitalize<F>}${TrainCase<R, N>}` : `${Capitalize<F>}${Lowercase<R>}` : `${Lowercase<F>}${TrainCase<R, N>}` : T : string;
|
|
31
|
-
type TitleCase<T extends string> = IsStringLiteral<T> extends true ? (T extends `${infer F}${infer R}` ? `${Capitalize<F>}${Lowercase<R>}` : T) : string;
|
|
32
|
-
type UpperFirst<T extends string> = IsStringLiteral<T> extends true ? (T extends `${infer F}${infer R}` ? `${Uppercase<F>}${R}` : T) : string;
|
|
33
|
-
type LowerFirst<T extends string> = IsStringLiteral<T> extends true ? (T extends `${infer F}${infer R}` ? `${Lowercase<F>}${R}` : T) : string;
|
|
34
|
-
type FlipCase<T extends string> = IsStringLiteral<T> extends true ? T extends `${infer C}${infer Rest}` ? `${C extends Uppercase<C> ? Lowercase<C> : Uppercase<C>}${FlipCase<Rest>}` : T : string;
|
|
35
|
-
type DotCase<T extends string> = T & {
|
|
36
|
-
__dot_case__: never;
|
|
37
|
-
};
|
|
38
|
-
type PathCase<T extends string> = T & {
|
|
39
|
-
__path_case__: never;
|
|
40
|
-
};
|
|
41
|
-
type NoCase<T extends string> = T & {
|
|
42
|
-
__no_case__: never;
|
|
43
|
-
};
|
|
44
|
-
type ConstantCase<T extends string> = T & {
|
|
45
|
-
__constant_case__: never;
|
|
46
|
-
};
|
|
47
|
-
type CapitalCase<T extends string> = T & {
|
|
48
|
-
__capital_case__: never;
|
|
49
|
-
};
|
|
50
|
-
type SentenceCase<T extends string> = T & {
|
|
51
|
-
__sentence_case__: never;
|
|
52
|
-
};
|
|
53
|
-
type PascalSnakeCase<T extends string> = T & {
|
|
54
|
-
__pascal_snake_case__: never;
|
|
55
|
-
};
|
|
56
|
-
type IdentifyCase<T extends string> = IsStringLiteral<T> extends true ? T extends Lowercase<T> ? T extends `${string}_${string}` ? "snake" : T extends `${string}-${string}` ? "kebab" : T extends `${string}${string}` ? "flat" : "lower" : T extends Uppercase<T> ? "upper" : T extends Capitalize<string> ? T extends `${Uppercase<string>}${string}` ? T extends `${string}-${string}` ? "train" : "pascal" : T extends `${Lowercase<string>}${Capitalize<string>}` ? "camel" : T extends `${Capitalize<string>} ${Lowercase<string>}` ? "title" : "mixed" : "mixed" : string;
|
|
57
|
-
type SplitByCase<T, Separator extends string = SplitterCharacter, Accumulator extends unknown[] = []> = string extends Separator ? string[] : T extends `${infer F}${infer R}` ? [LastOfArray<Accumulator>] extends [never] ? SplitByCase<R, Separator, [F]> : LastOfArray<Accumulator> extends string ? R extends "" ? SplitByCase<R, Separator, [...RemoveLastOfArray<Accumulator>, `${LastOfArray<Accumulator>}${F}`]> : SameLetterCase<F, FirstOfString<R>> extends true ? F extends Separator ? FirstOfString<R> extends Separator ? SplitByCase<R, Separator, [...Accumulator, ""]> : IsUpperCase<FirstOfString<R>> extends true ? SplitByCase<RemoveFirstOfString<R>, Separator, [...Accumulator, FirstOfString<R>]> : SplitByCase<R, Separator, [...Accumulator, ""]> : SplitByCase<R, Separator, [...RemoveLastOfArray<Accumulator>, `${LastOfArray<Accumulator>}${F}`]> : IsLowerCase<F> extends true ? SplitByCase<RemoveFirstOfString<R>, Separator, [...RemoveLastOfArray<Accumulator>, `${LastOfArray<Accumulator>}${F}`, FirstOfString<R>]> : SplitByCase<R, Separator, [...Accumulator, F]> : never : Accumulator extends [] ? T extends "" ? [] : string[] : Accumulator;
|
|
58
|
-
|
|
59
|
-
export type { CaseOptions as C, DotCase as D, FlatCase as F, IdentifyCase as I, KebabCase as K, LocaleOptions as L, NoCase as N, PascalCase as P, SentenceCase as S, TitleCase as T, UpperFirst as U, CamelCase as a, CapitalCase as b, ConstantCase as c, FlipCase as d, LowerFirst as e, PascalSnakeCase as f, PathCase as g, SnakeCase as h, SplitByCase as i, TrainCase as j };
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { N as NodeLocale, k as IsStringLiteral } from './types-Daae0hGf.cjs';
|
|
2
|
-
import { L as LRUCache } from './lru-cache-B_t27XwI.cjs';
|
|
3
|
-
|
|
4
|
-
type SplitterCharacter = " " | "_" | "-" | "." | "/";
|
|
5
|
-
type LastOfArray<T extends any[]> = T extends [...any, infer R] ? R : never;
|
|
6
|
-
type RemoveLastOfArray<T extends any[]> = T extends [...infer F, any] ? F : never;
|
|
7
|
-
type IsUpperCase<S extends string> = S extends Uppercase<S> ? true : false;
|
|
8
|
-
type IsLowerCase<S extends string> = S extends Lowercase<S> ? true : false;
|
|
9
|
-
type SameLetterCase<X extends string, Y extends string> = IsUpperCase<X> extends IsUpperCase<Y> ? true : IsLowerCase<X> extends IsLowerCase<Y> ? true : false;
|
|
10
|
-
type FirstOfString<S extends string> = S extends `${infer F}${string}` ? F : never;
|
|
11
|
-
type RemoveFirstOfString<S extends string> = S extends `${string}${infer R}` ? R : never;
|
|
12
|
-
interface LocaleOptions {
|
|
13
|
-
locale?: NodeLocale;
|
|
14
|
-
}
|
|
15
|
-
interface CaseOptions extends LocaleOptions {
|
|
16
|
-
cache?: boolean;
|
|
17
|
-
cacheStore?: LRUCache<string, string>;
|
|
18
|
-
handleAnsi?: boolean;
|
|
19
|
-
handleEmoji?: boolean;
|
|
20
|
-
knownAcronyms?: ReadonlyArray<string>;
|
|
21
|
-
normalize?: boolean;
|
|
22
|
-
stripAnsi?: boolean;
|
|
23
|
-
stripEmoji?: boolean;
|
|
24
|
-
}
|
|
25
|
-
type CamelCase<T extends string> = IsStringLiteral<T> extends true ? T extends `${infer F}_${infer R}` ? `${Lowercase<F>}${Capitalize<CamelCase<R>>}` : T extends `${infer F}-${infer R}` ? `${Lowercase<F>}${Capitalize<CamelCase<R>>}` : T extends `${infer F} ${infer R}` ? `${Lowercase<F>}${Capitalize<CamelCase<R>>}` : Lowercase<T> : string;
|
|
26
|
-
type PascalCase<T extends string> = IsStringLiteral<T> extends true ? Capitalize<CamelCase<T>> : string;
|
|
27
|
-
type SnakeCase<T extends string> = IsStringLiteral<T> extends true ? T extends `${infer C}${infer Rest}` ? C extends Uppercase<C> ? `_${Lowercase<C>}${SnakeCase<Rest>}` : `${C}${SnakeCase<Rest>}` : T : string;
|
|
28
|
-
type KebabCase<T extends string> = IsStringLiteral<T> extends true ? T extends `${infer C}${infer Rest}` ? C extends Uppercase<C> ? `-${Lowercase<C>}${KebabCase<Rest>}` : `${C}${KebabCase<Rest>}` : T : string;
|
|
29
|
-
type FlatCase<T extends string> = IsStringLiteral<T> extends true ? Lowercase<T extends `${infer F}${infer R}` ? `${F}${FlatCase<R>}` : T> : string;
|
|
30
|
-
type TrainCase<T extends string, N extends boolean = false> = IsStringLiteral<T> extends true ? T extends `${infer F}${infer R}` ? F extends Uppercase<F> ? R extends `${infer Next}${infer Rest}` ? Next extends Uppercase<Next> ? N extends true ? `${Capitalize<F>}-${Lowercase<Next>}${TrainCase<Rest, N>}` : `${F}${Next}${TrainCase<Rest, N>}` : `${Capitalize<F>}${TrainCase<R, N>}` : `${Capitalize<F>}${Lowercase<R>}` : `${Lowercase<F>}${TrainCase<R, N>}` : T : string;
|
|
31
|
-
type TitleCase<T extends string> = IsStringLiteral<T> extends true ? (T extends `${infer F}${infer R}` ? `${Capitalize<F>}${Lowercase<R>}` : T) : string;
|
|
32
|
-
type UpperFirst<T extends string> = IsStringLiteral<T> extends true ? (T extends `${infer F}${infer R}` ? `${Uppercase<F>}${R}` : T) : string;
|
|
33
|
-
type LowerFirst<T extends string> = IsStringLiteral<T> extends true ? (T extends `${infer F}${infer R}` ? `${Lowercase<F>}${R}` : T) : string;
|
|
34
|
-
type FlipCase<T extends string> = IsStringLiteral<T> extends true ? T extends `${infer C}${infer Rest}` ? `${C extends Uppercase<C> ? Lowercase<C> : Uppercase<C>}${FlipCase<Rest>}` : T : string;
|
|
35
|
-
type DotCase<T extends string> = T & {
|
|
36
|
-
__dot_case__: never;
|
|
37
|
-
};
|
|
38
|
-
type PathCase<T extends string> = T & {
|
|
39
|
-
__path_case__: never;
|
|
40
|
-
};
|
|
41
|
-
type NoCase<T extends string> = T & {
|
|
42
|
-
__no_case__: never;
|
|
43
|
-
};
|
|
44
|
-
type ConstantCase<T extends string> = T & {
|
|
45
|
-
__constant_case__: never;
|
|
46
|
-
};
|
|
47
|
-
type CapitalCase<T extends string> = T & {
|
|
48
|
-
__capital_case__: never;
|
|
49
|
-
};
|
|
50
|
-
type SentenceCase<T extends string> = T & {
|
|
51
|
-
__sentence_case__: never;
|
|
52
|
-
};
|
|
53
|
-
type PascalSnakeCase<T extends string> = T & {
|
|
54
|
-
__pascal_snake_case__: never;
|
|
55
|
-
};
|
|
56
|
-
type IdentifyCase<T extends string> = IsStringLiteral<T> extends true ? T extends Lowercase<T> ? T extends `${string}_${string}` ? "snake" : T extends `${string}-${string}` ? "kebab" : T extends `${string}${string}` ? "flat" : "lower" : T extends Uppercase<T> ? "upper" : T extends Capitalize<string> ? T extends `${Uppercase<string>}${string}` ? T extends `${string}-${string}` ? "train" : "pascal" : T extends `${Lowercase<string>}${Capitalize<string>}` ? "camel" : T extends `${Capitalize<string>} ${Lowercase<string>}` ? "title" : "mixed" : "mixed" : string;
|
|
57
|
-
type SplitByCase<T, Separator extends string = SplitterCharacter, Accumulator extends unknown[] = []> = string extends Separator ? string[] : T extends `${infer F}${infer R}` ? [LastOfArray<Accumulator>] extends [never] ? SplitByCase<R, Separator, [F]> : LastOfArray<Accumulator> extends string ? R extends "" ? SplitByCase<R, Separator, [...RemoveLastOfArray<Accumulator>, `${LastOfArray<Accumulator>}${F}`]> : SameLetterCase<F, FirstOfString<R>> extends true ? F extends Separator ? FirstOfString<R> extends Separator ? SplitByCase<R, Separator, [...Accumulator, ""]> : IsUpperCase<FirstOfString<R>> extends true ? SplitByCase<RemoveFirstOfString<R>, Separator, [...Accumulator, FirstOfString<R>]> : SplitByCase<R, Separator, [...Accumulator, ""]> : SplitByCase<R, Separator, [...RemoveLastOfArray<Accumulator>, `${LastOfArray<Accumulator>}${F}`]> : IsLowerCase<F> extends true ? SplitByCase<RemoveFirstOfString<R>, Separator, [...RemoveLastOfArray<Accumulator>, `${LastOfArray<Accumulator>}${F}`, FirstOfString<R>]> : SplitByCase<R, Separator, [...Accumulator, F]> : never : Accumulator extends [] ? T extends "" ? [] : string[] : Accumulator;
|
|
58
|
-
|
|
59
|
-
export type { CaseOptions as C, DotCase as D, FlatCase as F, IdentifyCase as I, KebabCase as K, LocaleOptions as L, NoCase as N, PascalCase as P, SentenceCase as S, TitleCase as T, UpperFirst as U, CamelCase as a, CapitalCase as b, ConstantCase as c, FlipCase as d, LowerFirst as e, PascalSnakeCase as f, PathCase as g, SnakeCase as h, SplitByCase as i, TrainCase as j };
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
type TupleOf<L extends number, T = unknown, Result extends any[] = []> = Result["length"] extends L ? Result : TupleOf<L, T, [...Result, T]>;
|
|
2
|
-
type InternalSliceType<T extends string, StartIndex extends number, EndIndex extends number, Result extends string = ""> = IsNumberLiteral<EndIndex | StartIndex> extends true ? T extends `${infer Head}${infer Rest}` ? IsStringLiteral<Head> extends true ? StartIndex extends 0 ? EndIndex extends 0 ? Result : InternalSliceType<Rest, 0, Math.Subtract<Math.GetPositiveIndex<T, EndIndex>, 1>, `${Result}${Head}`> : InternalSliceType<Rest, Math.Subtract<Math.GetPositiveIndex<T, StartIndex>, 1>, Math.Subtract<Math.GetPositiveIndex<T, EndIndex>, 1>, Result> : EndIndex | StartIndex extends 0 ? Result : string : IsStringLiteral<T> extends true ? Result : EndIndex | StartIndex extends 0 ? Result : string : string;
|
|
3
|
-
type SliceStartType<T extends string, StartIndex extends number, Result extends string = ""> = IsNumberLiteral<StartIndex> extends true ? T extends `${infer Head}${infer Rest}` ? IsStringLiteral<Head> extends true ? StartIndex extends 0 ? T : SliceStartType<Rest, Math.Subtract<Math.GetPositiveIndex<T, StartIndex>, 1>, Result> : string : IsStringLiteral<T> extends true ? Result : StartIndex extends 0 ? Result : string : string;
|
|
4
|
-
type InternalEndsWithType<T extends string, S extends string, P extends number> = All<[IsStringLiteral<S>, IsNumberLiteral<P>]> extends true ? Math.IsNegative<P> extends false ? P extends Length<T> ? IsStringLiteral<T> extends true ? S extends Slice<T, Math.Subtract<Length<T>, Length<S>>, Length<T>> ? true : false : EndsWithNoPositionType<Slice<T, 0, P>, S> : EndsWithNoPositionType<Slice<T, 0, P>, S> : false : boolean;
|
|
5
|
-
type EndsWithNoPositionType<T extends string, S extends string> = StartsWith<Reverse<T>, Reverse<S>>;
|
|
6
|
-
declare namespace Math {
|
|
7
|
-
type Subtract<A extends number, B extends number> = number extends A | B ? number : TupleOf<A> extends [...infer U, ...TupleOf<B>] ? U["length"] : 0;
|
|
8
|
-
type IsNegative<T extends number> = number extends T ? boolean : `${T}` extends `-${number}` ? true : false;
|
|
9
|
-
type Abs<T extends number> = `${T}` extends `-${infer U extends number}` ? U : T;
|
|
10
|
-
type GetPositiveIndex<T extends string, I extends number> = IsNegative<I> extends false ? I : Subtract<Length<T>, Abs<I>>;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
type IsNumberLiteral<T extends number> = [T] extends [number] ? ([number] extends [T] ? false : true) : false;
|
|
14
|
-
type IsBooleanLiteral<T extends boolean> = [T] extends [boolean] ? ([boolean] extends [T] ? false : true) : false;
|
|
15
|
-
type Reverse<T extends string, Accumulator extends string = ""> = T extends `${infer Head}${infer Tail}` ? Reverse<Tail, `${Head}${Accumulator}`> : Accumulator extends "" ? T : `${T}${Accumulator}`;
|
|
16
|
-
type Any<BoolArray extends boolean[]> = BoolArray extends [infer Head extends boolean, ...infer Rest extends boolean[]] ? IsBooleanLiteral<Head> extends true ? Head extends true ? true : Any<Rest> : Any<Rest> : false;
|
|
17
|
-
type All<BoolArray extends boolean[]> = IsBooleanLiteral<BoolArray[number]> extends true ? BoolArray extends [infer Head extends boolean, ...infer Rest extends boolean[]] ? Head extends true ? Any<Rest> : false : true : false;
|
|
18
|
-
type IsStringLiteral<T extends string> = [T] extends [string] ? [string] extends [T] ? false : Uppercase<T> extends Uppercase<Lowercase<T>> ? Lowercase<T> extends Lowercase<Uppercase<T>> ? true : false : false : false;
|
|
19
|
-
type IsStringLiteralArray<StringArray extends ReadonlyArray<string>> = IsStringLiteral<StringArray[number]> extends true ? true : false;
|
|
20
|
-
type CharAt<T extends string, Index extends number> = All<[IsStringLiteral<T>, IsNumberLiteral<Index>]> extends true ? Split<T>[Index] : string;
|
|
21
|
-
type Concat<T extends string[]> = Join<T>;
|
|
22
|
-
type EndsWith<T extends string, S extends string, P extends number | undefined = undefined> = P extends number ? InternalEndsWithType<T, S, P> : EndsWithNoPositionType<T, S>;
|
|
23
|
-
type Includes<T extends string, S extends string, P extends number = 0> = string extends S | T ? boolean : Math.IsNegative<P> extends false ? P extends 0 ? T extends `${string}${S}${string}` ? true : false : Includes<Slice<T, P>, S> : Includes<T, S>;
|
|
24
|
-
type Join<T extends ReadonlyArray<string>, Delimiter extends string = ""> = All<[IsStringLiteralArray<T>, IsStringLiteral<Delimiter>]> extends true ? T extends readonly [infer First extends string, ...infer Rest extends string[]] ? Rest extends [] ? First : `${First}${Delimiter}${Join<Rest, Delimiter>}` : "" : string;
|
|
25
|
-
type Length<T extends string> = IsStringLiteral<T> extends true ? Split<T>["length"] : number;
|
|
26
|
-
type PadEnd<T extends string, Times extends number = 0, Pad extends string = " "> = All<[IsStringLiteral<Pad | T>, IsNumberLiteral<Times>]> extends true ? Math.IsNegative<Times> extends false ? Math.Subtract<Times, Length<T>> extends infer Missing extends number ? `${T}${Slice<Repeat<Pad, Missing>, 0, Missing>}` : never : T : string;
|
|
27
|
-
type PadStart<T extends string, Times extends number = 0, Pad extends string = " "> = All<[IsStringLiteral<Pad | T>, IsNumberLiteral<Times>]> extends true ? Math.IsNegative<Times> extends false ? Math.Subtract<Times, Length<T>> extends infer Missing extends number ? `${Slice<Repeat<Pad, Missing>, 0, Missing>}${T}` : never : T : string;
|
|
28
|
-
type Repeat<T extends string, Times extends number = 0> = All<[IsStringLiteral<T>, IsNumberLiteral<Times>]> extends true ? Times extends 0 ? "" : Math.IsNegative<Times> extends false ? Join<TupleOf<Times, T>> : never : string;
|
|
29
|
-
type ReplaceAll<Sentence extends string, Lookup extends RegExp | string, Replacement extends string = ""> = Lookup extends string ? IsStringLiteral<Lookup | Replacement | Sentence> extends true ? Sentence extends `${infer Rest}${Lookup}${infer Rest2}` ? `${Rest}${Replacement}${ReplaceAll<Rest2, Lookup, Replacement>}` : Sentence : string : string;
|
|
30
|
-
type Replace<Sentence extends string, Lookup extends RegExp | string, Replacement extends string = ""> = Lookup extends string ? IsStringLiteral<Lookup | Replacement | Sentence> extends true ? Sentence extends `${infer Rest}${Lookup}${infer Rest2}` ? `${Rest}${Replacement}${Rest2}` : Sentence : string : string;
|
|
31
|
-
type Slice<T extends string, StartIndex extends number = 0, EndIndex extends number | undefined = undefined> = EndIndex extends number ? InternalSliceType<T, StartIndex, EndIndex> : SliceStartType<T, StartIndex>;
|
|
32
|
-
type Split<T extends string, Delimiter extends string = ""> = IsStringLiteral<Delimiter | T> extends true ? T extends `${infer First}${Delimiter}${infer Rest}` ? [First, ...Split<Rest, Delimiter>] : T extends "" ? [] : [T] : string[];
|
|
33
|
-
type StartsWith<T extends string, S extends string, P extends number = 0> = All<[IsStringLiteral<S>, IsNumberLiteral<P>]> extends true ? Math.IsNegative<P> extends false ? P extends 0 ? S extends `${infer SHead}${infer SRest}` ? T extends `${infer THead}${infer TRest}` ? IsStringLiteral<SHead | THead> extends true ? THead extends SHead ? StartsWith<TRest, SRest> : false : boolean : IsStringLiteral<T> extends true ? false : boolean : true : StartsWith<Slice<T, P>, S> : StartsWith<T, S> : boolean;
|
|
34
|
-
type TrimEnd<T extends string> = T extends `${infer Rest} ` ? TrimEnd<Rest> : T;
|
|
35
|
-
type TrimStart<T extends string> = T extends ` ${infer Rest}` ? TrimStart<Rest> : T;
|
|
36
|
-
type Trim<T extends string> = TrimEnd<TrimStart<T>>;
|
|
37
|
-
type NodeLocale = "af" | "am" | "ar" | "az" | "be" | "bg" | "bn" | "bs" | "ca" | "cs" | "cy" | "da" | "de" | "el" | "en" | "en-AU" | "en-CA" | "en-GB" | "en-US" | "es" | "es-ES" | "et" | "fa" | "fi" | "fil" | "fr" | "ga" | "gl" | "gu" | "he" | "hi" | "hr" | "hu" | "hy" | "id" | "is" | "it" | "ja" | "ka" | "kk" | "km" | "kn" | "ko" | "ky" | "lo" | "lt" | "lv" | "mk" | "ml" | "mn" | "mr" | "ms" | "mt" | "ne" | "nl" | "no" | "pa" | "pl" | "pt" | "pt-BR" | "pt-PT" | "ro" | "ru" | "si" | "sk" | "sl" | "sq" | "sr" | "sv" | "ta" | "te" | "th" | "tr" | "uk" | "ur" | "uz" | "vi" | "zh" | "zh-CN" | "zh-HK" | "zh-TW";
|
|
38
|
-
type ToLowerCase<T extends string> = IsStringLiteral<T> extends true ? Lowercase<T> : string;
|
|
39
|
-
type ToUpperCase<T extends string> = IsStringLiteral<T> extends true ? Uppercase<T> : string;
|
|
40
|
-
type Interval = [number, number];
|
|
41
|
-
type IntervalArray = Interval[];
|
|
42
|
-
type OptionReplaceArray = [RegExp | string, string | undefined][];
|
|
43
|
-
type OptionReplaceObject = Record<string, string>;
|
|
44
|
-
type OptionReplaceCombined = OptionReplaceArray | OptionReplaceObject;
|
|
45
|
-
interface OptionsTransliterate {
|
|
46
|
-
fixChineseSpacing?: boolean;
|
|
47
|
-
ignore?: string[];
|
|
48
|
-
replaceAfter?: OptionReplaceCombined;
|
|
49
|
-
replaceBefore?: OptionReplaceCombined;
|
|
50
|
-
trim?: boolean;
|
|
51
|
-
unknown?: string;
|
|
52
|
-
}
|
|
53
|
-
type Charmap = Record<string, string | undefined>;
|
|
54
|
-
interface SlugifyOptions extends OptionsTransliterate {
|
|
55
|
-
allowedChars?: string;
|
|
56
|
-
fixChineseSpacing?: boolean;
|
|
57
|
-
lowercase?: boolean;
|
|
58
|
-
separator?: string;
|
|
59
|
-
transliterate?: boolean;
|
|
60
|
-
uppercase?: boolean;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
export { Math as M };
|
|
64
|
-
export type { All as A, CharAt as C, EndsWith as E, Includes as I, Join as J, Length as L, NodeLocale as N, OptionReplaceArray as O, PadEnd as P, Replace as R, Slice as S, ToLowerCase as T, Concat as a, PadStart as b, ReplaceAll as c, Split as d, StartsWith as e, ToUpperCase as f, Trim as g, TrimEnd as h, TrimStart as i, SlugifyOptions as j, IsStringLiteral as k, IntervalArray as l, OptionsTransliterate as m, Any as n, Charmap as o, Interval as p, IsBooleanLiteral as q, IsNumberLiteral as r, IsStringLiteralArray as s, OptionReplaceCombined as t, OptionReplaceObject as u, Repeat as v, Reverse as w };
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
type TupleOf<L extends number, T = unknown, Result extends any[] = []> = Result["length"] extends L ? Result : TupleOf<L, T, [...Result, T]>;
|
|
2
|
-
type InternalSliceType<T extends string, StartIndex extends number, EndIndex extends number, Result extends string = ""> = IsNumberLiteral<EndIndex | StartIndex> extends true ? T extends `${infer Head}${infer Rest}` ? IsStringLiteral<Head> extends true ? StartIndex extends 0 ? EndIndex extends 0 ? Result : InternalSliceType<Rest, 0, Math.Subtract<Math.GetPositiveIndex<T, EndIndex>, 1>, `${Result}${Head}`> : InternalSliceType<Rest, Math.Subtract<Math.GetPositiveIndex<T, StartIndex>, 1>, Math.Subtract<Math.GetPositiveIndex<T, EndIndex>, 1>, Result> : EndIndex | StartIndex extends 0 ? Result : string : IsStringLiteral<T> extends true ? Result : EndIndex | StartIndex extends 0 ? Result : string : string;
|
|
3
|
-
type SliceStartType<T extends string, StartIndex extends number, Result extends string = ""> = IsNumberLiteral<StartIndex> extends true ? T extends `${infer Head}${infer Rest}` ? IsStringLiteral<Head> extends true ? StartIndex extends 0 ? T : SliceStartType<Rest, Math.Subtract<Math.GetPositiveIndex<T, StartIndex>, 1>, Result> : string : IsStringLiteral<T> extends true ? Result : StartIndex extends 0 ? Result : string : string;
|
|
4
|
-
type InternalEndsWithType<T extends string, S extends string, P extends number> = All<[IsStringLiteral<S>, IsNumberLiteral<P>]> extends true ? Math.IsNegative<P> extends false ? P extends Length<T> ? IsStringLiteral<T> extends true ? S extends Slice<T, Math.Subtract<Length<T>, Length<S>>, Length<T>> ? true : false : EndsWithNoPositionType<Slice<T, 0, P>, S> : EndsWithNoPositionType<Slice<T, 0, P>, S> : false : boolean;
|
|
5
|
-
type EndsWithNoPositionType<T extends string, S extends string> = StartsWith<Reverse<T>, Reverse<S>>;
|
|
6
|
-
declare namespace Math {
|
|
7
|
-
type Subtract<A extends number, B extends number> = number extends A | B ? number : TupleOf<A> extends [...infer U, ...TupleOf<B>] ? U["length"] : 0;
|
|
8
|
-
type IsNegative<T extends number> = number extends T ? boolean : `${T}` extends `-${number}` ? true : false;
|
|
9
|
-
type Abs<T extends number> = `${T}` extends `-${infer U extends number}` ? U : T;
|
|
10
|
-
type GetPositiveIndex<T extends string, I extends number> = IsNegative<I> extends false ? I : Subtract<Length<T>, Abs<I>>;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
type IsNumberLiteral<T extends number> = [T] extends [number] ? ([number] extends [T] ? false : true) : false;
|
|
14
|
-
type IsBooleanLiteral<T extends boolean> = [T] extends [boolean] ? ([boolean] extends [T] ? false : true) : false;
|
|
15
|
-
type Reverse<T extends string, Accumulator extends string = ""> = T extends `${infer Head}${infer Tail}` ? Reverse<Tail, `${Head}${Accumulator}`> : Accumulator extends "" ? T : `${T}${Accumulator}`;
|
|
16
|
-
type Any<BoolArray extends boolean[]> = BoolArray extends [infer Head extends boolean, ...infer Rest extends boolean[]] ? IsBooleanLiteral<Head> extends true ? Head extends true ? true : Any<Rest> : Any<Rest> : false;
|
|
17
|
-
type All<BoolArray extends boolean[]> = IsBooleanLiteral<BoolArray[number]> extends true ? BoolArray extends [infer Head extends boolean, ...infer Rest extends boolean[]] ? Head extends true ? Any<Rest> : false : true : false;
|
|
18
|
-
type IsStringLiteral<T extends string> = [T] extends [string] ? [string] extends [T] ? false : Uppercase<T> extends Uppercase<Lowercase<T>> ? Lowercase<T> extends Lowercase<Uppercase<T>> ? true : false : false : false;
|
|
19
|
-
type IsStringLiteralArray<StringArray extends ReadonlyArray<string>> = IsStringLiteral<StringArray[number]> extends true ? true : false;
|
|
20
|
-
type CharAt<T extends string, Index extends number> = All<[IsStringLiteral<T>, IsNumberLiteral<Index>]> extends true ? Split<T>[Index] : string;
|
|
21
|
-
type Concat<T extends string[]> = Join<T>;
|
|
22
|
-
type EndsWith<T extends string, S extends string, P extends number | undefined = undefined> = P extends number ? InternalEndsWithType<T, S, P> : EndsWithNoPositionType<T, S>;
|
|
23
|
-
type Includes<T extends string, S extends string, P extends number = 0> = string extends S | T ? boolean : Math.IsNegative<P> extends false ? P extends 0 ? T extends `${string}${S}${string}` ? true : false : Includes<Slice<T, P>, S> : Includes<T, S>;
|
|
24
|
-
type Join<T extends ReadonlyArray<string>, Delimiter extends string = ""> = All<[IsStringLiteralArray<T>, IsStringLiteral<Delimiter>]> extends true ? T extends readonly [infer First extends string, ...infer Rest extends string[]] ? Rest extends [] ? First : `${First}${Delimiter}${Join<Rest, Delimiter>}` : "" : string;
|
|
25
|
-
type Length<T extends string> = IsStringLiteral<T> extends true ? Split<T>["length"] : number;
|
|
26
|
-
type PadEnd<T extends string, Times extends number = 0, Pad extends string = " "> = All<[IsStringLiteral<Pad | T>, IsNumberLiteral<Times>]> extends true ? Math.IsNegative<Times> extends false ? Math.Subtract<Times, Length<T>> extends infer Missing extends number ? `${T}${Slice<Repeat<Pad, Missing>, 0, Missing>}` : never : T : string;
|
|
27
|
-
type PadStart<T extends string, Times extends number = 0, Pad extends string = " "> = All<[IsStringLiteral<Pad | T>, IsNumberLiteral<Times>]> extends true ? Math.IsNegative<Times> extends false ? Math.Subtract<Times, Length<T>> extends infer Missing extends number ? `${Slice<Repeat<Pad, Missing>, 0, Missing>}${T}` : never : T : string;
|
|
28
|
-
type Repeat<T extends string, Times extends number = 0> = All<[IsStringLiteral<T>, IsNumberLiteral<Times>]> extends true ? Times extends 0 ? "" : Math.IsNegative<Times> extends false ? Join<TupleOf<Times, T>> : never : string;
|
|
29
|
-
type ReplaceAll<Sentence extends string, Lookup extends RegExp | string, Replacement extends string = ""> = Lookup extends string ? IsStringLiteral<Lookup | Replacement | Sentence> extends true ? Sentence extends `${infer Rest}${Lookup}${infer Rest2}` ? `${Rest}${Replacement}${ReplaceAll<Rest2, Lookup, Replacement>}` : Sentence : string : string;
|
|
30
|
-
type Replace<Sentence extends string, Lookup extends RegExp | string, Replacement extends string = ""> = Lookup extends string ? IsStringLiteral<Lookup | Replacement | Sentence> extends true ? Sentence extends `${infer Rest}${Lookup}${infer Rest2}` ? `${Rest}${Replacement}${Rest2}` : Sentence : string : string;
|
|
31
|
-
type Slice<T extends string, StartIndex extends number = 0, EndIndex extends number | undefined = undefined> = EndIndex extends number ? InternalSliceType<T, StartIndex, EndIndex> : SliceStartType<T, StartIndex>;
|
|
32
|
-
type Split<T extends string, Delimiter extends string = ""> = IsStringLiteral<Delimiter | T> extends true ? T extends `${infer First}${Delimiter}${infer Rest}` ? [First, ...Split<Rest, Delimiter>] : T extends "" ? [] : [T] : string[];
|
|
33
|
-
type StartsWith<T extends string, S extends string, P extends number = 0> = All<[IsStringLiteral<S>, IsNumberLiteral<P>]> extends true ? Math.IsNegative<P> extends false ? P extends 0 ? S extends `${infer SHead}${infer SRest}` ? T extends `${infer THead}${infer TRest}` ? IsStringLiteral<SHead | THead> extends true ? THead extends SHead ? StartsWith<TRest, SRest> : false : boolean : IsStringLiteral<T> extends true ? false : boolean : true : StartsWith<Slice<T, P>, S> : StartsWith<T, S> : boolean;
|
|
34
|
-
type TrimEnd<T extends string> = T extends `${infer Rest} ` ? TrimEnd<Rest> : T;
|
|
35
|
-
type TrimStart<T extends string> = T extends ` ${infer Rest}` ? TrimStart<Rest> : T;
|
|
36
|
-
type Trim<T extends string> = TrimEnd<TrimStart<T>>;
|
|
37
|
-
type NodeLocale = "af" | "am" | "ar" | "az" | "be" | "bg" | "bn" | "bs" | "ca" | "cs" | "cy" | "da" | "de" | "el" | "en" | "en-AU" | "en-CA" | "en-GB" | "en-US" | "es" | "es-ES" | "et" | "fa" | "fi" | "fil" | "fr" | "ga" | "gl" | "gu" | "he" | "hi" | "hr" | "hu" | "hy" | "id" | "is" | "it" | "ja" | "ka" | "kk" | "km" | "kn" | "ko" | "ky" | "lo" | "lt" | "lv" | "mk" | "ml" | "mn" | "mr" | "ms" | "mt" | "ne" | "nl" | "no" | "pa" | "pl" | "pt" | "pt-BR" | "pt-PT" | "ro" | "ru" | "si" | "sk" | "sl" | "sq" | "sr" | "sv" | "ta" | "te" | "th" | "tr" | "uk" | "ur" | "uz" | "vi" | "zh" | "zh-CN" | "zh-HK" | "zh-TW";
|
|
38
|
-
type ToLowerCase<T extends string> = IsStringLiteral<T> extends true ? Lowercase<T> : string;
|
|
39
|
-
type ToUpperCase<T extends string> = IsStringLiteral<T> extends true ? Uppercase<T> : string;
|
|
40
|
-
type Interval = [number, number];
|
|
41
|
-
type IntervalArray = Interval[];
|
|
42
|
-
type OptionReplaceArray = [RegExp | string, string | undefined][];
|
|
43
|
-
type OptionReplaceObject = Record<string, string>;
|
|
44
|
-
type OptionReplaceCombined = OptionReplaceArray | OptionReplaceObject;
|
|
45
|
-
interface OptionsTransliterate {
|
|
46
|
-
fixChineseSpacing?: boolean;
|
|
47
|
-
ignore?: string[];
|
|
48
|
-
replaceAfter?: OptionReplaceCombined;
|
|
49
|
-
replaceBefore?: OptionReplaceCombined;
|
|
50
|
-
trim?: boolean;
|
|
51
|
-
unknown?: string;
|
|
52
|
-
}
|
|
53
|
-
type Charmap = Record<string, string | undefined>;
|
|
54
|
-
interface SlugifyOptions extends OptionsTransliterate {
|
|
55
|
-
allowedChars?: string;
|
|
56
|
-
fixChineseSpacing?: boolean;
|
|
57
|
-
lowercase?: boolean;
|
|
58
|
-
separator?: string;
|
|
59
|
-
transliterate?: boolean;
|
|
60
|
-
uppercase?: boolean;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
export { Math as M };
|
|
64
|
-
export type { All as A, CharAt as C, EndsWith as E, Includes as I, Join as J, Length as L, NodeLocale as N, OptionReplaceArray as O, PadEnd as P, Replace as R, Slice as S, ToLowerCase as T, Concat as a, PadStart as b, ReplaceAll as c, Split as d, StartsWith as e, ToUpperCase as f, Trim as g, TrimEnd as h, TrimStart as i, SlugifyOptions as j, IsStringLiteral as k, IntervalArray as l, OptionsTransliterate as m, Any as n, Charmap as o, Interval as p, IsBooleanLiteral as q, IsNumberLiteral as r, IsStringLiteralArray as s, OptionReplaceCombined as t, OptionReplaceObject as u, Repeat as v, Reverse as w };
|
package/dist/slice.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var I=Object.defineProperty;var O=(t,f)=>I(t,"name",{value:f,configurable:!0});Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const b=require("./packem_shared/constants-DEcMFLn8.cjs"),k=require("./get-string-width.cjs"),F=require("./packem_shared/LRUCache-TYqfUYE5.cjs");var _=Object.defineProperty,S=O((t,f)=>_(t,"name",{value:f,configurable:!0}),"y");const y=new F(100),E=new Intl.Segmenter("en",{granularity:"grapheme"}),N=new Set(["0","22","23","24","27","28","29","39","49"]),P=new Set(["1","3","4","7","8","9"]),j=new Map([["22","1"],["23","3"],["24","4"],["27","7"],["28","8"],["29","9"]]),v=S(t=>t>="30"&&t<="37"||t>="90"&&t<="97"||t.startsWith("38;"),"isForegroundColor"),w=S(t=>t>="40"&&t<="47"||t>="100"&&t<="107"||t.startsWith("48;"),"isBackgroundColor"),R=[{close:"\x1B[22m",open:"\x1B[1m"},{close:"\x1B[23m",open:"\x1B[3m"},{close:"\x1B[24m",open:"\x1B[4m"},{close:"\x1B[27m",open:"\x1B[7m"},{close:"\x1B[28m",open:"\x1B[8m"},{close:"\x1B[29m",open:"\x1B[9m"}],L=S((t,f)=>{let l=-1;for(const d of f){const h=t.indexOf(d);h!==-1&&(l===-1||h<l)&&(l=h)}return l},"findFirstPositionOfAny"),q=S((t,f)=>{if(!t.includes("\x1B"))return[{after:"",before:"",content:t,visibleLength:k.getStringWidth(t,f.width)}];const l=y.get(t);if(l)return l;const d=[],h=[];let p=0,a;for(b.c.lastIndex=0;(a=b.c.exec(t))!==null;){const c=a[0];d.push(t.slice(p,a.index)),h.push(c),p=a.index+c.length}p<t.length&&d.push(t.slice(p));const m=[];for(const c of h){if(c==="\x1B[0m"||c==="\x1B]8;;\x07"){m.push(c);continue}if(c.startsWith("\x1B[")&&c.endsWith("m")){const x=c.slice(2,-1);if(N.has(x)){m.push(c);continue}}}const s=new Set,B=[];for(const[c,x]of d.entries()){if(c>0&&h[c-1]){const n=h[c-1];if(n==="\x1B[0m")s.clear();else if(n==="\x1B]8;;\x07"){for(const i of s)if(i.startsWith("\x1B]8;;")&&!i.endsWith("\x1B]8;;\x07")){s.delete(i);break}}else if(n.startsWith("\x1B[")&&n.endsWith("m")){const i=n.slice(2,-1);if(i==="39"){for(const e of s)if(e.startsWith("\x1B[")&&e.endsWith("m")){const o=e.slice(2,-1);if(v(o)){s.delete(e);break}}}else if(i==="49"){for(const e of s)if(e.startsWith("\x1B[")&&e.endsWith("m")){const o=e.slice(2,-1);if(w(o)){s.delete(e);break}}}else if(j.has(i)){const e=j.get(i);for(const o of s)if(o===`\x1B[${e}m`){s.delete(o);break}}else{if(v(i)){for(const e of s)if(e.startsWith("\x1B[")&&e.endsWith("m")){const o=e.slice(2,-1);if(v(o)){s.delete(e);break}}}else if(w(i)){for(const e of s)if(e.startsWith("\x1B[")&&e.endsWith("m")){const o=e.slice(2,-1);if(w(o)){s.delete(e);break}}}else if(P.has(i)){const e=`\x1B[${i}m`;s.has(e)&&s.delete(e)}s.add(n)}}else if(n.startsWith("\x1B]8;;")&&!n.endsWith("\x1B]8;;\x07")){for(const i of s)if(i.startsWith("\x1B]8;;")&&!i.endsWith("\x1B]8;;\x07")){s.delete(i);break}s.add(n)}}if(x==="")continue;let u="";if(s.size>0)if(m.includes("\x1B[0m"))u="\x1B[0m";else{const n=[];let i=!1;for(const r of s)if(r.startsWith("\x1B]8;;")&&!r.endsWith("\x1B]8;;\x07")){i=!0;break}i&&m.includes("\x1B]8;;\x07")&&n.push("\x1B]8;;\x07");let e=!1,o=!1;for(const r of s)if(r.startsWith("\x1B[")&&r.endsWith("m")){const W=r.slice(2,-1);v(W)?e=!0:w(W)&&(o=!0)}if(e&&o){const r=L(t,["\x1B[3","\x1B[9","\x1B[38;"]),W=L(t,["\x1B[4","\x1B[10","\x1B[48;"]);r>=0&&W>=0?r>W?n.push("\x1B[39m","\x1B[49m"):n.push("\x1B[49m","\x1B[39m"):n.push("\x1B[39m","\x1B[49m")}else e&&n.push("\x1B[39m"),o&&n.push("\x1B[49m");e&&o&&t.includes("\x1B[39m")&&t.includes("\x1B[49m")&&(t.indexOf("\x1B[39m")<t.indexOf("\x1B[49m")?(n.length-=e&&o?2:e||o?1:0,n.push("\x1B[39m","\x1B[49m")):t.indexOf("\x1B[49m")<t.indexOf("\x1B[39m")&&(n.length-=e&&o?2:e||o?1:0,n.push("\x1B[49m","\x1B[39m")));const M=R.filter(r=>s.has(r.open)).map(r=>({position:t.indexOf(r.open),style:r})).filter(r=>r.position>=0).sort((r,W)=>W.position-r.position);for(const r of M)m.includes(r.style.close)&&n.push(r.style.close);u=n.join("")}const g=[...s].join("");B.push({after:u,before:g,content:x,visibleLength:k.getStringWidth(x,{fullWidth:1,wideWidth:1})})}return y.set(t,B),B},"processIntoStyledSegments"),A=S((t,f,l,d)=>{const h=[...d.segmenter.segment(t)],p=[];let a=0,m=!1;for(const s of h){const B=k.getStringWidth(s.segment,d.width),c=a,x=a+B;if(!m)if(c<f){a=x;continue}else m=!0;if(c>=l||x>l)break;p.push(s.segment),a=x}return p.join("")},"fastSlice"),C=S((t,f=0,l=Number.MAX_SAFE_INTEGER,d={})=>{const h={segmenter:E,...d};if(f>=l||t==="")return"";const p=k.getStringWidth(t,h.width);if(f===0&&l>=p)return t;if(f<0||l<0)throw new RangeError("Negative indices aren't supported");if(!t.includes("\x1B"))return/^[\u0000-\u007F]*$/.test(t)?t.slice(f,l):A(t,f,l,h);if(b.a.lastIndex=0,b.b.lastIndex=0,!b.a.test(t)&&!b.b.test(t))return t;const a=q(t,h);if(a.length===0)return"";let m=0;const s=[];for(const[x,u]of a.entries()){const g=m,n=m+u.visibleLength;if(n>f&&g<l){const i=Math.max(0,f-g),e=Math.min(u.visibleLength,l-g);s.push({end:e,index:x,segment:u,start:i})}m=n}if(s.length===0)return"";const B=[],c=s[0].segment;B.push(c.before);for(let x=0;x<s.length;x++){const{end:u,segment:g,start:n}=s[x];if(n===0&&u===g.visibleLength)B.push(g.content);else{const i=[...h.segmenter.segment(g.content)];B.push(i.slice(n,u).map(e=>e.segment).join(""))}if(x<s.length-1){const i=s[x+1].segment,e=g.after,o=i.before;e!==o&&(e||o)&&B.push(e,o)}}return B.push(s.at(-1).segment.after),B.join("")},"slice");exports.slice=C;
|
package/dist/slice.d.cts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { StringWidthOptions } from './get-string-width.cjs';
|
|
2
|
-
import './get-string-truncated-width.cjs';
|
|
3
|
-
|
|
4
|
-
type SliceOptions = {
|
|
5
|
-
segmenter?: Intl.Segmenter;
|
|
6
|
-
width?: StringWidthOptions;
|
|
7
|
-
};
|
|
8
|
-
declare const slice: (inputString: string, startIndex?: number, endIndex?: number, options?: SliceOptions) => string;
|
|
9
|
-
|
|
10
|
-
export { slice };
|
|
11
|
-
export type { SliceOptions };
|
package/dist/slice.d.mts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { StringWidthOptions } from './get-string-width.mjs';
|
|
2
|
-
import './get-string-truncated-width.mjs';
|
|
3
|
-
|
|
4
|
-
type SliceOptions = {
|
|
5
|
-
segmenter?: Intl.Segmenter;
|
|
6
|
-
width?: StringWidthOptions;
|
|
7
|
-
};
|
|
8
|
-
declare const slice: (inputString: string, startIndex?: number, endIndex?: number, options?: SliceOptions) => string;
|
|
9
|
-
|
|
10
|
-
export { slice };
|
|
11
|
-
export type { SliceOptions };
|
package/dist/slice.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var R=Object.defineProperty;var k=(t,l)=>R(t,"name",{value:l,configurable:!0});import{a as v,b as L,c as O}from"./packem_shared/constants-CDcaCZKC.mjs";import{getStringWidth as I}from"./get-string-width.mjs";import N from"./packem_shared/LRUCache-Bjo6gsbC.mjs";var j=Object.defineProperty,b=k((t,l)=>j(t,"name",{value:l,configurable:!0}),"y");const _=new N(100),F=new Intl.Segmenter("en",{granularity:"grapheme"}),M=new Set(["0","22","23","24","27","28","29","39","49"]),P=new Set(["1","3","4","7","8","9"]),y=new Map([["22","1"],["23","3"],["24","4"],["27","7"],["28","8"],["29","9"]]),S=b(t=>t>="30"&&t<="37"||t>="90"&&t<="97"||t.startsWith("38;"),"isForegroundColor"),w=b(t=>t>="40"&&t<="47"||t>="100"&&t<="107"||t.startsWith("48;"),"isBackgroundColor"),V=[{close:"\x1B[22m",open:"\x1B[1m"},{close:"\x1B[23m",open:"\x1B[3m"},{close:"\x1B[24m",open:"\x1B[4m"},{close:"\x1B[27m",open:"\x1B[7m"},{close:"\x1B[28m",open:"\x1B[8m"},{close:"\x1B[29m",open:"\x1B[9m"}],A=b((t,l)=>{let c=-1;for(const d of l){const h=t.indexOf(d);h!==-1&&(c===-1||h<c)&&(c=h)}return c},"findFirstPositionOfAny"),$=b((t,l)=>{if(!t.includes("\x1B"))return[{after:"",before:"",content:t,visibleLength:I(t,l.width)}];const c=_.get(t);if(c)return c;const d=[],h=[];let g=0,m;for(O.lastIndex=0;(m=O.exec(t))!==null;){const f=m[0];d.push(t.slice(g,m.index)),h.push(f),g=m.index+f.length}g<t.length&&d.push(t.slice(g));const a=[];for(const f of h){if(f==="\x1B[0m"||f==="\x1B]8;;\x07"){a.push(f);continue}if(f.startsWith("\x1B[")&&f.endsWith("m")){const x=f.slice(2,-1);if(M.has(x)){a.push(f);continue}}}const s=new Set,B=[];for(const[f,x]of d.entries()){if(f>0&&h[f-1]){const n=h[f-1];if(n==="\x1B[0m")s.clear();else if(n==="\x1B]8;;\x07"){for(const i of s)if(i.startsWith("\x1B]8;;")&&!i.endsWith("\x1B]8;;\x07")){s.delete(i);break}}else if(n.startsWith("\x1B[")&&n.endsWith("m")){const i=n.slice(2,-1);if(i==="39"){for(const e of s)if(e.startsWith("\x1B[")&&e.endsWith("m")){const o=e.slice(2,-1);if(S(o)){s.delete(e);break}}}else if(i==="49"){for(const e of s)if(e.startsWith("\x1B[")&&e.endsWith("m")){const o=e.slice(2,-1);if(w(o)){s.delete(e);break}}}else if(y.has(i)){const e=y.get(i);for(const o of s)if(o===`\x1B[${e}m`){s.delete(o);break}}else{if(S(i)){for(const e of s)if(e.startsWith("\x1B[")&&e.endsWith("m")){const o=e.slice(2,-1);if(S(o)){s.delete(e);break}}}else if(w(i)){for(const e of s)if(e.startsWith("\x1B[")&&e.endsWith("m")){const o=e.slice(2,-1);if(w(o)){s.delete(e);break}}}else if(P.has(i)){const e=`\x1B[${i}m`;s.has(e)&&s.delete(e)}s.add(n)}}else if(n.startsWith("\x1B]8;;")&&!n.endsWith("\x1B]8;;\x07")){for(const i of s)if(i.startsWith("\x1B]8;;")&&!i.endsWith("\x1B]8;;\x07")){s.delete(i);break}s.add(n)}}if(x==="")continue;let u="";if(s.size>0)if(a.includes("\x1B[0m"))u="\x1B[0m";else{const n=[];let i=!1;for(const r of s)if(r.startsWith("\x1B]8;;")&&!r.endsWith("\x1B]8;;\x07")){i=!0;break}i&&a.includes("\x1B]8;;\x07")&&n.push("\x1B]8;;\x07");let e=!1,o=!1;for(const r of s)if(r.startsWith("\x1B[")&&r.endsWith("m")){const W=r.slice(2,-1);S(W)?e=!0:w(W)&&(o=!0)}if(e&&o){const r=A(t,["\x1B[3","\x1B[9","\x1B[38;"]),W=A(t,["\x1B[4","\x1B[10","\x1B[48;"]);r>=0&&W>=0?r>W?n.push("\x1B[39m","\x1B[49m"):n.push("\x1B[49m","\x1B[39m"):n.push("\x1B[39m","\x1B[49m")}else e&&n.push("\x1B[39m"),o&&n.push("\x1B[49m");e&&o&&t.includes("\x1B[39m")&&t.includes("\x1B[49m")&&(t.indexOf("\x1B[39m")<t.indexOf("\x1B[49m")?(n.length-=e&&o?2:e||o?1:0,n.push("\x1B[39m","\x1B[49m")):t.indexOf("\x1B[49m")<t.indexOf("\x1B[39m")&&(n.length-=e&&o?2:e||o?1:0,n.push("\x1B[49m","\x1B[39m")));const E=V.filter(r=>s.has(r.open)).map(r=>({position:t.indexOf(r.open),style:r})).filter(r=>r.position>=0).sort((r,W)=>W.position-r.position);for(const r of E)a.includes(r.style.close)&&n.push(r.style.close);u=n.join("")}const p=[...s].join("");B.push({after:u,before:p,content:x,visibleLength:I(x,{fullWidth:1,wideWidth:1})})}return _.set(t,B),B},"processIntoStyledSegments"),C=b((t,l,c,d)=>{const h=[...d.segmenter.segment(t)],g=[];let m=0,a=!1;for(const s of h){const B=I(s.segment,d.width),f=m,x=m+B;if(!a)if(f<l){m=x;continue}else a=!0;if(f>=c||x>c)break;g.push(s.segment),m=x}return g.join("")},"fastSlice"),H=b((t,l=0,c=Number.MAX_SAFE_INTEGER,d={})=>{const h={segmenter:F,...d};if(l>=c||t==="")return"";const g=I(t,h.width);if(l===0&&c>=g)return t;if(l<0||c<0)throw new RangeError("Negative indices aren't supported");if(!t.includes("\x1B"))return/^[\u0000-\u007F]*$/.test(t)?t.slice(l,c):C(t,l,c,h);if(v.lastIndex=0,L.lastIndex=0,!v.test(t)&&!L.test(t))return t;const m=$(t,h);if(m.length===0)return"";let a=0;const s=[];for(const[x,u]of m.entries()){const p=a,n=a+u.visibleLength;if(n>l&&p<c){const i=Math.max(0,l-p),e=Math.min(u.visibleLength,c-p);s.push({end:e,index:x,segment:u,start:i})}a=n}if(s.length===0)return"";const B=[],f=s[0].segment;B.push(f.before);for(let x=0;x<s.length;x++){const{end:u,segment:p,start:n}=s[x];if(n===0&&u===p.visibleLength)B.push(p.content);else{const i=[...h.segmenter.segment(p.content)];B.push(i.slice(n,u).map(e=>e.segment).join(""))}if(x<s.length-1){const i=s[x+1].segment,e=p.after,o=i.before;e!==o&&(e||o)&&B.push(e,o)}}return B.push(s.at(-1).segment.after),B.join("")},"slice");export{H as slice};
|
package/dist/slugify.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var c=Object.defineProperty;var l=(a,s)=>c(a,"name",{value:s,configurable:!0});const i=require("./packem_shared/transliterate-wQMEsr3l.cjs"),o=require("./utilities.cjs");var u=Object.defineProperty,p=l((a,s)=>u(a,"name",{value:s,configurable:!0}),"o");const g=p((a,s,e)=>{const r=o.escapeRegExp(s).replaceAll(String.raw`\-`,"-"),t=new RegExp(`[^${r}]`,"g");return a.replaceAll(t,e)},"removeDisallowedChars"),w=p((a,s)=>{const e={allowedChars:"a-zA-Z0-9-_.~",fixChineseSpacing:!0,ignore:[],lowercase:!0,replaceAfter:[],replaceBefore:[],separator:"-",transliterate:!0,trim:!1,unknown:"",uppercase:!1,...s};e.lowercase&&e.uppercase&&(console.warn("slugify: Both lowercase and uppercase options are true. Defaulting to lowercase."),e.uppercase=!1);let r=e.transliterate?i(a,e):a.normalize("NFC");e.lowercase?r=r.toLowerCase():e.uppercase&&(r=r.toUpperCase()),r=g(r,e.allowedChars,e.separator);const t=o.escapeRegExp(e.separator);if(t){const n=new RegExp(`${t}+`,"g");r=r.replace(n,e.separator)}return t?r.replaceAll(new RegExp(`^${t}+|${t}+$`,"g"),""):r},"slugify");module.exports=w;
|
package/dist/slugify.d.cts
DELETED
package/dist/slugify.d.mts
DELETED
package/dist/slugify.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var c=Object.defineProperty;var s=(a,o)=>c(a,"name",{value:o,configurable:!0});import i from"./packem_shared/transliterate-DNh-jM0e.mjs";import{escapeRegExp as t}from"./utilities.mjs";var u=Object.defineProperty,p=s((a,o)=>u(a,"name",{value:o,configurable:!0}),"o");const f=p((a,o,e)=>{const r=t(o).replaceAll(String.raw`\-`,"-"),l=new RegExp(`[^${r}]`,"g");return a.replaceAll(l,e)},"removeDisallowedChars"),C=p((a,o)=>{const e={allowedChars:"a-zA-Z0-9-_.~",fixChineseSpacing:!0,ignore:[],lowercase:!0,replaceAfter:[],replaceBefore:[],separator:"-",transliterate:!0,trim:!1,unknown:"",uppercase:!1,...o};e.lowercase&&e.uppercase&&(console.warn("slugify: Both lowercase and uppercase options are true. Defaulting to lowercase."),e.uppercase=!1);let r=e.transliterate?i(a,e):a.normalize("NFC");e.lowercase?r=r.toLowerCase():e.uppercase&&(r=r.toUpperCase()),r=f(r,e.allowedChars,e.separator);const l=t(e.separator);if(l){const n=new RegExp(`${l}+`,"g");r=r.replace(n,e.separator)}return l?r.replaceAll(new RegExp(`^${l}+|${l}+$`,"g"),""):r},"slugify");export{C as default};
|
package/dist/test/utils.cjs
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";var d=Object.defineProperty;var c=(e,t)=>d(e,"name",{value:t,configurable:!0});Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("node:util"),g=require("../get-string-width.cjs");var o=Object.defineProperty,a=c((e,t)=>o(e,"name",{value:t,configurable:!0}),"r");const n=a(e=>{const t=l.stripVTControlCharacters(e);return{ansi:e,json:JSON.stringify(e),lengthDifference:e.length-t.length,stripped:t,visible:e.replaceAll("\x1B",String.raw`\u001B`)}},"formatAnsiString"),u=a((e,t)=>{const i=n(e),s=n(t);return{message:a(()=>{if(e===t)return"ANSI strings are identical";const r=i.stripped===s.stripped;return l.format(`ANSI string comparison failed:
|
|
2
|
-
|
|
3
|
-
Actual:
|
|
4
|
-
- Visible content: %s
|
|
5
|
-
- With escape codes: %s
|
|
6
|
-
- JSON: %s
|
|
7
|
-
- Length: %d
|
|
8
|
-
|
|
9
|
-
Expected:
|
|
10
|
-
- Visible content: %s
|
|
11
|
-
- With escape codes: %s
|
|
12
|
-
- JSON: %s
|
|
13
|
-
- Length: %d
|
|
14
|
-
|
|
15
|
-
%s
|
|
16
|
-
`,i.stripped,i.visible,i.json,g.getStringWidth(i.ansi),s.stripped,s.visible,s.json,g.getStringWidth(s.ansi),r?"✓ Visible content is identical, but escape codes differ":"✗ Visible content differs")},"message"),pass:e===t}},"expectAnsiStrings"),S=a((e,t)=>{const i=n(e),s=n(t),r=i.stripped===s.stripped,p=e===t;return{actual:i,ansiEqual:p,expected:s,strippedEqual:r,summary:{actualLength:e.length,actualStrippedLength:i.stripped.length,ansiEqual:p,expectedLength:t.length,expectedStrippedLength:s.stripped.length,strippedEqual:r}}},"compareAnsiStrings");exports.compareAnsiStrings=S;exports.expectAnsiStrings=u;exports.formatAnsiString=n;
|
package/dist/test/utils.d.cts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
declare const formatAnsiString: (ansiString: string) => {
|
|
2
|
-
ansi: string;
|
|
3
|
-
json: string;
|
|
4
|
-
lengthDifference: number;
|
|
5
|
-
stripped: string;
|
|
6
|
-
visible: string;
|
|
7
|
-
};
|
|
8
|
-
interface ExpectationResult {
|
|
9
|
-
actual?: unknown;
|
|
10
|
-
expected?: unknown;
|
|
11
|
-
message: () => string;
|
|
12
|
-
pass: boolean;
|
|
13
|
-
}
|
|
14
|
-
declare const expectAnsiStrings: (actual: string, expected: string) => ExpectationResult;
|
|
15
|
-
declare const compareAnsiStrings: (actual: string, expected: string) => {
|
|
16
|
-
actual: ReturnType<typeof formatAnsiString>;
|
|
17
|
-
ansiEqual: boolean;
|
|
18
|
-
expected: ReturnType<typeof formatAnsiString>;
|
|
19
|
-
strippedEqual: boolean;
|
|
20
|
-
summary: {
|
|
21
|
-
actualLength: number;
|
|
22
|
-
actualStrippedLength: number;
|
|
23
|
-
ansiEqual: boolean;
|
|
24
|
-
expectedLength: number;
|
|
25
|
-
expectedStrippedLength: number;
|
|
26
|
-
strippedEqual: boolean;
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export { compareAnsiStrings, expectAnsiStrings, formatAnsiString };
|
|
31
|
-
export type { ExpectationResult };
|
package/dist/test/utils.d.mts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
declare const formatAnsiString: (ansiString: string) => {
|
|
2
|
-
ansi: string;
|
|
3
|
-
json: string;
|
|
4
|
-
lengthDifference: number;
|
|
5
|
-
stripped: string;
|
|
6
|
-
visible: string;
|
|
7
|
-
};
|
|
8
|
-
interface ExpectationResult {
|
|
9
|
-
actual?: unknown;
|
|
10
|
-
expected?: unknown;
|
|
11
|
-
message: () => string;
|
|
12
|
-
pass: boolean;
|
|
13
|
-
}
|
|
14
|
-
declare const expectAnsiStrings: (actual: string, expected: string) => ExpectationResult;
|
|
15
|
-
declare const compareAnsiStrings: (actual: string, expected: string) => {
|
|
16
|
-
actual: ReturnType<typeof formatAnsiString>;
|
|
17
|
-
ansiEqual: boolean;
|
|
18
|
-
expected: ReturnType<typeof formatAnsiString>;
|
|
19
|
-
strippedEqual: boolean;
|
|
20
|
-
summary: {
|
|
21
|
-
actualLength: number;
|
|
22
|
-
actualStrippedLength: number;
|
|
23
|
-
ansiEqual: boolean;
|
|
24
|
-
expectedLength: number;
|
|
25
|
-
expectedStrippedLength: number;
|
|
26
|
-
strippedEqual: boolean;
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export { compareAnsiStrings, expectAnsiStrings, formatAnsiString };
|
|
31
|
-
export type { ExpectationResult };
|
package/dist/test/utils.mjs
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
var o=Object.defineProperty;var c=(e,t)=>o(e,"name",{value:t,configurable:!0});import{stripVTControlCharacters as d,format as g}from"node:util";import{getStringWidth as l}from"../get-string-width.mjs";var u=Object.defineProperty,r=c((e,t)=>u(e,"name",{value:t,configurable:!0}),"r");const p=r(e=>{const t=d(e);return{ansi:e,json:JSON.stringify(e),lengthDifference:e.length-t.length,stripped:t,visible:e.replaceAll("\x1B",String.raw`\u001B`)}},"formatAnsiString"),S=r((e,t)=>{const s=p(e),i=p(t);return{message:r(()=>{if(e===t)return"ANSI strings are identical";const n=s.stripped===i.stripped;return g(`ANSI string comparison failed:
|
|
2
|
-
|
|
3
|
-
Actual:
|
|
4
|
-
- Visible content: %s
|
|
5
|
-
- With escape codes: %s
|
|
6
|
-
- JSON: %s
|
|
7
|
-
- Length: %d
|
|
8
|
-
|
|
9
|
-
Expected:
|
|
10
|
-
- Visible content: %s
|
|
11
|
-
- With escape codes: %s
|
|
12
|
-
- JSON: %s
|
|
13
|
-
- Length: %d
|
|
14
|
-
|
|
15
|
-
%s
|
|
16
|
-
`,s.stripped,s.visible,s.json,l(s.ansi),i.stripped,i.visible,i.json,l(i.ansi),n?"✓ Visible content is identical, but escape codes differ":"✗ Visible content differs")},"message"),pass:e===t}},"expectAnsiStrings"),b=r((e,t)=>{const s=p(e),i=p(t),n=s.stripped===i.stripped,a=e===t;return{actual:s,ansiEqual:a,expected:i,strippedEqual:n,summary:{actualLength:e.length,actualStrippedLength:s.stripped.length,ansiEqual:a,expectedLength:t.length,expectedStrippedLength:i.stripped.length,strippedEqual:n}}},"compareAnsiStrings");export{b as compareAnsiStrings,S as expectAnsiStrings,p as formatAnsiString};
|
package/dist/test/vitest.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var r=Object.defineProperty;var i=(e,t)=>r(e,"name",{value:t,configurable:!0});Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("./utils.cjs");var u=Object.defineProperty,n=i((e,t)=>u(e,"name",{value:t,configurable:!0}),"i");const o=n((e,t)=>s.expectAnsiStrings(e,t),"toEqualAnsi");exports.toEqualAnsi=o;
|
package/dist/test/vitest.d.cts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ExpectationResult } from './utils.cjs';
|
|
2
|
-
|
|
3
|
-
interface CustomMatchers {
|
|
4
|
-
toEqualAnsi: (expected: string) => ExpectationResult;
|
|
5
|
-
}
|
|
6
|
-
declare const toEqualAnsi: (actual: string, expected: string) => ExpectationResult;
|
|
7
|
-
|
|
8
|
-
export { toEqualAnsi };
|
|
9
|
-
export type { CustomMatchers };
|
package/dist/test/vitest.d.mts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ExpectationResult } from './utils.mjs';
|
|
2
|
-
|
|
3
|
-
interface CustomMatchers {
|
|
4
|
-
toEqualAnsi: (expected: string) => ExpectationResult;
|
|
5
|
-
}
|
|
6
|
-
declare const toEqualAnsi: (actual: string, expected: string) => ExpectationResult;
|
|
7
|
-
|
|
8
|
-
export { toEqualAnsi };
|
|
9
|
-
export type { CustomMatchers };
|
package/dist/test/vitest.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var i=Object.defineProperty;var t=(e,r)=>i(e,"name",{value:r,configurable:!0});import{expectAnsiStrings as n}from"./utils.mjs";var o=Object.defineProperty,a=t((e,r)=>o(e,"name",{value:r,configurable:!0}),"i");const c=a((e,r)=>n(e,r),"toEqualAnsi");export{c as toEqualAnsi};
|
package/dist/truncate.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var m=Object.defineProperty;var a=(t,i)=>m(t,"name",{value:i,configurable:!0});Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const h=require("./get-string-truncated-width.cjs"),c=require("./slice.cjs");var b=Object.defineProperty,p=a((t,i)=>b(t,"name",{value:i,configurable:!0}),"h");const f="…",T=3,u=p((t,i,e=!1)=>{if(t.charAt(i)===" ")return i;const r=e?1:-1,l=Math.min(T,e?t.length-i:i);for(let d=1;d<=l;d++){const n=i+d*r;if(t.charAt(n)===" ")return n}return i},"findNearestSpace"),v=p((t,i,e={})=>{if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof t}`);if(typeof i!="number")throw new TypeError(`Expected \`limit\` to be a number, got ${typeof i}`);if(t===""||i<=0)return"";t=t.normalize("NFC");const{ellipsis:r=f,position:l="end",preferTruncationOnSpace:d=!1}=e;let n=e.ellipsisWidth??r===f?1:void 0;if(n===void 0&&(n=h.getStringTruncatedWidth(r,{...e.width,ellipsis:"",ellipsisWidth:0,limit:Number.POSITIVE_INFINITY}).width),i===1&&n===1)return r;if(i===1)return"";const{width:s}=h.getStringTruncatedWidth(t,{...e.width,ellipsis:r,ellipsisWidth:n});if(s<=i)return t;switch(l){case"end":{if(d){const o=u(t,i-1);return c.slice(t,0,o,{width:e.width})+r}return c.slice(t,0,i-n,{width:e.width})+r}case"middle":{const o=Math.floor(i/2);if(d){const w=u(t,o),g=u(t,s-(i-o)+1,!0);return c.slice(t,0,w)+r+c.slice(t,g,s).trim()}return c.slice(t,0,o,{width:e.width})+r+c.slice(t,s-(i-o)+n,s,{width:e.width})}case"start":{if(d){const o=u(t,s-i+1,!0);return r+c.slice(t,o,s).trim()}return r+c.slice(t,s-i+n,s,{width:e.width})}default:throw new Error(`Invalid position: expected 'start', 'middle' or 'end', got '${l}'`)}},"truncate");exports.truncate=v;
|
package/dist/truncate.d.cts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { StringTruncatedWidthOptions } from './get-string-truncated-width.cjs';
|
|
2
|
-
|
|
3
|
-
type TruncateOptions = {
|
|
4
|
-
ellipsis?: string;
|
|
5
|
-
ellipsisWidth?: number;
|
|
6
|
-
position?: "end" | "middle" | "start";
|
|
7
|
-
preferTruncationOnSpace?: boolean;
|
|
8
|
-
width?: Omit<StringTruncatedWidthOptions, "ellipsis" | "ellipsisWidth" | "limit">;
|
|
9
|
-
};
|
|
10
|
-
declare const truncate: (input: string, limit: number, options?: TruncateOptions) => string;
|
|
11
|
-
|
|
12
|
-
export { truncate };
|
|
13
|
-
export type { TruncateOptions };
|
package/dist/truncate.d.mts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { StringTruncatedWidthOptions } from './get-string-truncated-width.mjs';
|
|
2
|
-
|
|
3
|
-
type TruncateOptions = {
|
|
4
|
-
ellipsis?: string;
|
|
5
|
-
ellipsisWidth?: number;
|
|
6
|
-
position?: "end" | "middle" | "start";
|
|
7
|
-
preferTruncationOnSpace?: boolean;
|
|
8
|
-
width?: Omit<StringTruncatedWidthOptions, "ellipsis" | "ellipsisWidth" | "limit">;
|
|
9
|
-
};
|
|
10
|
-
declare const truncate: (input: string, limit: number, options?: TruncateOptions) => string;
|
|
11
|
-
|
|
12
|
-
export { truncate };
|
|
13
|
-
export type { TruncateOptions };
|
package/dist/truncate.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var g=Object.defineProperty;var h=(t,i)=>g(t,"name",{value:i,configurable:!0});import{getStringTruncatedWidth as l}from"./get-string-truncated-width.mjs";import{slice as d}from"./slice.mjs";var b=Object.defineProperty,p=h((t,i)=>b(t,"name",{value:i,configurable:!0}),"h");const u="…",y=3,f=p((t,i,e=!1)=>{if(t.charAt(i)===" ")return i;const r=e?1:-1,a=Math.min(y,e?t.length-i:i);for(let c=1;c<=a;c++){const n=i+c*r;if(t.charAt(n)===" ")return n}return i},"findNearestSpace"),T=p((t,i,e={})=>{if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof t}`);if(typeof i!="number")throw new TypeError(`Expected \`limit\` to be a number, got ${typeof i}`);if(t===""||i<=0)return"";t=t.normalize("NFC");const{ellipsis:r=u,position:a="end",preferTruncationOnSpace:c=!1}=e;let n=e.ellipsisWidth??r===u?1:void 0;if(n===void 0&&(n=l(r,{...e.width,ellipsis:"",ellipsisWidth:0,limit:Number.POSITIVE_INFINITY}).width),i===1&&n===1)return r;if(i===1)return"";const{width:o}=l(t,{...e.width,ellipsis:r,ellipsisWidth:n});if(o<=i)return t;switch(a){case"end":{if(c){const s=f(t,i-1);return d(t,0,s,{width:e.width})+r}return d(t,0,i-n,{width:e.width})+r}case"middle":{const s=Math.floor(i/2);if(c){const w=f(t,s),m=f(t,o-(i-s)+1,!0);return d(t,0,w)+r+d(t,m,o).trim()}return d(t,0,s,{width:e.width})+r+d(t,o-(i-s)+n,o,{width:e.width})}case"start":{if(c){const s=f(t,o-i+1,!0);return r+d(t,s,o).trim()}return r+d(t,o-i+n,o,{width:e.width})}default:throw new Error(`Invalid position: expected 'start', 'middle' or 'end', got '${a}'`)}},"truncate");export{T as truncate};
|
package/dist/utilities.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var o=Object.defineProperty;var c=(u,n)=>o(u,"name",{value:n,configurable:!0});Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const h=require("./packem_shared/LRUCache-TYqfUYE5.cjs");var g=Object.defineProperty,r=c((u,n)=>g(u,"name",{value:n,configurable:!0}),"n");const p=r(u=>u.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`),"escapeRegExp"),C=r((u,n)=>n.some(t=>u>=t[0]&&u<=t[1]),"inRange"),E=r(u=>/[\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u3005\u3007\u3021-\u3029\u3038-\u303B\u3400-\u4DBF\u4E00-\u9FFC\uF900-\uFA6D\uFA70-\uFAD9]|\uD81B[\uDFF0\uDFF1]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]/.test(u),"hasChinese"),f=r(u=>/[\p{P}\p{Z}]/u.test(u),"hasPunctuationOrSpace"),l=r((u,n)=>{const t=[];if(!Array.isArray(n))return t;if(n.forEach(e=>{if(typeof e!="string"||e.length===0)return;let a=0,F;for(;(F=u.indexOf(e,a))>-1;){const i=F+e.length-1;t.push([F,i]),a=F+1}}),t.length===0)return[];t.sort((e,a)=>e[0]-a[0]);const s=[];let D;for(const e of t)D===void 0?D=[...e]:e[0]<=D[1]+1?D[1]=Math.max(D[1],e[1]):(s.push(D),D=[...e]);return D!==void 0&&s.push(D),s},"findStringOccurrences");exports.LRUCache=h;exports.escapeRegExp=p;exports.findStringOccurrences=l;exports.hasChinese=E;exports.hasPunctuationOrSpace=f;exports.inRange=C;
|
package/dist/utilities.d.cts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { l as IntervalArray } from './packem_shared/types-Daae0hGf.cjs';
|
|
2
|
-
export { L as LRUCache } from './packem_shared/lru-cache-B_t27XwI.cjs';
|
|
3
|
-
|
|
4
|
-
declare const escapeRegExp: (char: string) => string;
|
|
5
|
-
declare const inRange: (number_: number, ranges: IntervalArray) => boolean;
|
|
6
|
-
declare const hasChinese: (char: string) => boolean;
|
|
7
|
-
declare const hasPunctuationOrSpace: (char: string) => boolean;
|
|
8
|
-
declare const findStringOccurrences: (source: string, needles: string[]) => IntervalArray;
|
|
9
|
-
|
|
10
|
-
export { escapeRegExp, findStringOccurrences, hasChinese, hasPunctuationOrSpace, inRange };
|
package/dist/utilities.d.mts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { l as IntervalArray } from './packem_shared/types-Daae0hGf.mjs';
|
|
2
|
-
export { L as LRUCache } from './packem_shared/lru-cache-B_t27XwI.mjs';
|
|
3
|
-
|
|
4
|
-
declare const escapeRegExp: (char: string) => string;
|
|
5
|
-
declare const inRange: (number_: number, ranges: IntervalArray) => boolean;
|
|
6
|
-
declare const hasChinese: (char: string) => boolean;
|
|
7
|
-
declare const hasPunctuationOrSpace: (char: string) => boolean;
|
|
8
|
-
declare const findStringOccurrences: (source: string, needles: string[]) => IntervalArray;
|
|
9
|
-
|
|
10
|
-
export { escapeRegExp, findStringOccurrences, hasChinese, hasPunctuationOrSpace, inRange };
|
package/dist/utilities.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var o=Object.defineProperty;var c=(u,t)=>o(u,"name",{value:t,configurable:!0});import{default as x}from"./packem_shared/LRUCache-Bjo6gsbC.mjs";var p=Object.defineProperty,n=c((u,t)=>p(u,"name",{value:t,configurable:!0}),"n");const h=n(u=>u.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`),"escapeRegExp"),C=n((u,t)=>t.some(F=>u>=F[0]&&u<=F[1]),"inRange"),E=n(u=>/[\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u3005\u3007\u3021-\u3029\u3038-\u303B\u3400-\u4DBF\u4E00-\u9FFC\uF900-\uFA6D\uFA70-\uFAD9]|\uD81B[\uDFF0\uDFF1]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]/.test(u),"hasChinese"),g=n(u=>/[\p{P}\p{Z}]/u.test(u),"hasPunctuationOrSpace"),l=n((u,t)=>{const F=[];if(!Array.isArray(t))return F;if(t.forEach(D=>{if(typeof D!="string"||D.length===0)return;let r=0,a;for(;(a=u.indexOf(D,r))>-1;){const i=a+D.length-1;F.push([a,i]),r=a+1}}),F.length===0)return[];F.sort((D,r)=>D[0]-r[0]);const s=[];let e;for(const D of F)e===void 0?e=[...D]:D[0]<=e[1]+1?e[1]=Math.max(e[1],D[1]):(s.push(e),e=[...D]);return e!==void 0&&s.push(e),s},"findStringOccurrences");export{x as LRUCache,h as escapeRegExp,l as findStringOccurrences,E as hasChinese,g as hasPunctuationOrSpace,C as inRange};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var d=Object.defineProperty;var n=(o,r)=>d(o,"name",{value:r,configurable:!0});Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("./packem_shared/closest-DGumBGH9.cjs");var m=Object.defineProperty,S=n((o,r)=>m(o,"name",{value:r,configurable:!0}),"s");const g=S((o,r,s)=>{const{caseSensitive:i=!1,compareFunction:c=u.distance}=s??{},l=i?o:o.toLowerCase(),a=r.map(e=>{const t=i?e:e.toLowerCase();return{distance:c(l,t),originalWord:e}});return a.sort((e,t)=>e.distance!==t.distance?e.distance-t.distance:e.originalWord.localeCompare(t.originalWord)),a.map(e=>e.originalWord)},"wordSimilaritySort");exports.wordSimilaritySort=g;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
interface WordSimilaritySortOptions {
|
|
2
|
-
caseSensitive?: boolean;
|
|
3
|
-
compareFunction?: (a: string, b: string) => number;
|
|
4
|
-
}
|
|
5
|
-
declare const wordSimilaritySort: (givenWord: string, possibleWords: ReadonlyArray<string>, options?: WordSimilaritySortOptions) => string[];
|
|
6
|
-
|
|
7
|
-
export { wordSimilaritySort };
|
|
8
|
-
export type { WordSimilaritySortOptions };
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
interface WordSimilaritySortOptions {
|
|
2
|
-
caseSensitive?: boolean;
|
|
3
|
-
compareFunction?: (a: string, b: string) => number;
|
|
4
|
-
}
|
|
5
|
-
declare const wordSimilaritySort: (givenWord: string, possibleWords: ReadonlyArray<string>, options?: WordSimilaritySortOptions) => string[];
|
|
6
|
-
|
|
7
|
-
export { wordSimilaritySort };
|
|
8
|
-
export type { WordSimilaritySortOptions };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var l=Object.defineProperty;var n=(e,r)=>l(e,"name",{value:r,configurable:!0});import{distance as m}from"./packem_shared/closest-uarbVSbs.mjs";var p=Object.defineProperty,u=n((e,r)=>p(e,"name",{value:r,configurable:!0}),"s");const f=u((e,r,s)=>{const{caseSensitive:i=!1,compareFunction:c=m}=s??{},d=i?e:e.toLowerCase(),t=r.map(o=>{const a=i?o:o.toLowerCase();return{distance:c(d,a),originalWord:o}});return t.sort((o,a)=>o.distance!==a.distance?o.distance-a.distance:o.originalWord.localeCompare(a.originalWord)),t.map(o=>o.originalWord)},"wordSimilaritySort");export{f as wordSimilaritySort};
|