+1
-1
@@ -10,3 +10,3 @@ import type { Backslash, ErrorMessage, noSuggest, Scanner, writeUnclosedGroupMessage } from "@ark/util"; | ||
| set | "-" : parseNonNegatedCharset<unscanned, set | "-", "-">; | ||
| type inferRange<start extends string, end extends string> = start | end extends StringDigit ? `${bigint}` : string; | ||
| type inferRange<start extends string, end extends string> = start | end extends StringDigit ? `${number}` : string; | ||
| type UnescapedDashMarker = noSuggest<"dash">; | ||
@@ -13,0 +13,0 @@ type parseChar<unscanned extends string> = unscanned extends Scanner.shift<infer lookahead, infer next> ? lookahead extends Backslash ? next extends Scanner.shift<infer escaped, infer postEscaped> ? Scanner.shiftResult<parseEscapedChar<escaped>, postEscaped> : never : Scanner.shiftResult<lookahead extends "-" ? UnescapedDashMarker : lookahead, next> : null; |
+1
-1
@@ -8,3 +8,3 @@ import type { ErrorMessage, Scanner, WhitespaceChar } from "@ark/util"; | ||
| type parseSingleEscapedCharacter<s extends State, char extends string, remaining extends string> = parseEscapedChar<char> extends infer result extends string ? result extends ErrorMessage ? s.error<result> : s.shiftQuantifiable<s, result, remaining> : never; | ||
| export type parseEscapedChar<char extends string> = char extends RegexClassChar ? string : char extends "d" ? `${bigint}` : char extends "s" ? WhitespaceChar : char extends BoundaryChar ? "" : char extends Control ? char : char extends "c" ? ErrorMessage<caretNotationMessage> : char extends StringEscapableChar ? ErrorMessage<writeStringEscapableMessage<char>> : ErrorMessage<writeUnnecessaryEscapeMessage<char>>; | ||
| export type parseEscapedChar<char extends string> = char extends RegexClassChar ? string : char extends "d" ? `${number}` : char extends "s" ? WhitespaceChar : char extends BoundaryChar ? "" : char extends Control ? char : char extends "c" ? ErrorMessage<caretNotationMessage> : char extends StringEscapableChar ? ErrorMessage<writeStringEscapableMessage<char>> : ErrorMessage<writeUnnecessaryEscapeMessage<char>>; | ||
| export declare const trailingBackslashMessage = "A regex cannot end with \\"; | ||
@@ -11,0 +11,0 @@ export type trailingBackslashMessage = typeof trailingBackslashMessage; |
@@ -33,3 +33,3 @@ import type { parseNonNegativeInteger, Scanner } from "@ark/util"; | ||
| export type quantify<pattern extends string, min extends number, max extends number | null> = tryFastPath<pattern, min, max>; | ||
| type tryFastPath<pattern extends string, min extends number, max extends number | null> = max extends 0 ? "" : string extends pattern ? string : min extends 0 ? max extends 1 ? "" | pattern : max extends number ? loopFromZero<pattern, max, "", []> : // max is null, all we can do is append ${string} | ||
| type tryFastPath<pattern extends string, min extends number, max extends number | null> = max extends 0 ? "" : string extends pattern ? string : `${number}` extends pattern ? `${number}` : min extends 0 ? max extends 1 ? "" | pattern : max extends number ? loopFromZero<pattern, max, "", []> : // max is null, all we can do is append ${string} | ||
| "" | `${pattern}${string}` : loopUntilMin<pattern, min, max, "", []>; | ||
@@ -36,0 +36,0 @@ type loopFromZero<base extends string, max extends number, acc extends string, repetitions extends 1[]> = repetitions["length"] extends max ? acc : loopFromZero<base, max, acc | `${acc}${base}`, [...repetitions, 1]>; |
+2
-2
@@ -355,6 +355,6 @@ import type { contains, ErrorMessage, noSuggest, NumberLiteral, setIndex, unionKeyOf, writeUnclosedGroupMessage, writeUnmatchedGroupCloseMessage, ZeroWidthSpace } from "@ark/util"; | ||
| type anchorsAway<pattern extends string> = pattern extends `${StartAnchorMarker}${infer startStripped}` ? startStripped extends `${infer bothStripped}${EndAnchorMarker}` ? bothStripped : startStripped : pattern extends `${infer endStripped}${EndAnchorMarker}` ? endStripped : pattern; | ||
| type appendNonRedundant<base extends string, suffix extends string> = string extends base ? string extends suffix ? string : `${base}${suffix}` : `${base}${suffix}`; | ||
| type prependNonRedundant<base extends string, prefix extends string> = string extends base ? string extends prefix ? string : `${prefix}${base}` : `${prefix}${base}`; | ||
| type appendNonRedundant<base extends string, suffix extends string> = string extends base ? string extends suffix ? string : `${base}${suffix}` : `${number}` extends base ? `${number}` extends suffix ? `${number}` : `${base}${suffix}` : `${base}${suffix}`; | ||
| type prependNonRedundant<base extends string, prefix extends string> = string extends base ? string extends prefix ? string : `${prefix}${base}` : `${number}` extends base ? `${number}` extends prefix ? `${number}` : `${prefix}${base}` : `${prefix}${base}`; | ||
| export declare const writeMidAnchorError: <anchor extends Anchor>(anchor: anchor) => writeMidAnchorError<anchor>; | ||
| type writeMidAnchorError<anchor extends Anchor> = `Anchor ${anchor} may not appear mid-pattern`; | ||
| export {}; |
+1
-1
| { | ||
| "name": "arkregex", | ||
| "description": "A drop-in replacement for new RegExp() with types", | ||
| "version": "0.0.4", | ||
| "version": "0.0.5", | ||
| "license": "MIT", | ||
@@ -6,0 +6,0 @@ "author": { |
+1
-1
@@ -16,3 +16,3 @@ # arkregex | ||
| const semver = regex("^(\\d*)\\.(\\d*)\\.(\\d*)$") | ||
| // Regex<`${bigint}.${bigint}.${bigint}`, { captures: [`${bigint}`, `${bigint}`, `${bigint}`] }> | ||
| // Regex<`${number}.${number}.${number}`, { captures: [`${number}`, `${number}`, `${number}`] }> | ||
@@ -19,0 +19,0 @@ const email = regex("^(?<name>\\w+)@(?<domain>\\w+\\.\\w+)$") |
48406
0.47%612
0.16%