inferred-types 0.43.6 → 0.45.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/dist/constants/NetworkConstants.d.ts +29 -0
- package/dist/constants/NetworkConstants.d.ts.map +1 -0
- package/dist/constants/NetworkConstants.js +83 -0
- package/dist/constants/RepoConstants.d.ts +31 -0
- package/dist/constants/RepoConstants.d.ts.map +1 -0
- package/dist/constants/RepoConstants.js +48 -0
- package/dist/constants/index.d.ts +2 -1
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +2 -1
- package/dist/constants/tsconfig.tsbuildinfo +1 -1
- package/dist/inferred-types/index.cjs +646 -312
- package/dist/inferred-types/tsconfig.tsbuildinfo +1 -1
- package/dist/runtime/dictionary/valuesOf.d.ts +1 -1
- package/dist/runtime/dictionary/valuesOf.d.ts.map +1 -1
- package/dist/runtime/dictionary/withKeys.d.ts +1 -1
- package/dist/runtime/index.d.ts +1 -0
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +1 -0
- package/dist/runtime/literals/index.d.ts +1 -0
- package/dist/runtime/literals/index.d.ts.map +1 -1
- package/dist/runtime/literals/index.js +1 -0
- package/dist/runtime/literals/takeNumericCharacters.d.ts +9 -0
- package/dist/runtime/literals/takeNumericCharacters.d.ts.map +1 -0
- package/dist/runtime/literals/takeNumericCharacters.js +12 -0
- package/dist/runtime/meta/index.d.ts +3 -0
- package/dist/runtime/meta/index.d.ts.map +1 -0
- package/dist/runtime/meta/index.js +2 -0
- package/dist/runtime/meta/urlMeta.d.ts +52 -0
- package/dist/runtime/meta/urlMeta.d.ts.map +1 -0
- package/dist/runtime/meta/urlMeta.js +57 -0
- package/dist/runtime/meta/youtube-meta.d.ts +31 -0
- package/dist/runtime/meta/youtube-meta.d.ts.map +1 -0
- package/dist/runtime/meta/youtube-meta.js +19 -0
- package/dist/runtime/runtime-types/parse.d.ts +1 -1
- package/dist/runtime/runtime-types/shape-helpers/getTokenData.d.ts +1 -1
- package/dist/runtime/runtime-types/shape-helpers/getTokenName.d.ts +1 -1
- package/dist/runtime/runtime-types/shape-helpers/singletons.d.ts.map +1 -1
- package/dist/runtime/runtime-types/shape-helpers/singletons.js +1 -1
- package/dist/runtime/runtime-types/shape.d.ts +1 -1
- package/dist/runtime/tsconfig.tsbuildinfo +1 -1
- package/dist/runtime/type-conversion/asChars.d.ts +8 -0
- package/dist/runtime/type-conversion/asChars.d.ts.map +1 -0
- package/dist/runtime/type-conversion/asChars.js +8 -0
- package/dist/runtime/type-conversion/index.d.ts +2 -0
- package/dist/runtime/type-conversion/index.d.ts.map +1 -1
- package/dist/runtime/type-conversion/index.js +2 -0
- package/dist/runtime/type-conversion/ip6GroupExpansion.d.ts +14 -0
- package/dist/runtime/type-conversion/ip6GroupExpansion.d.ts.map +1 -0
- package/dist/runtime/type-conversion/ip6GroupExpansion.js +15 -0
- package/dist/runtime/type-guards/index.d.ts +4 -0
- package/dist/runtime/type-guards/index.d.ts.map +1 -1
- package/dist/runtime/type-guards/index.js +4 -0
- package/dist/runtime/type-guards/isHexadecimal.d.ts +8 -0
- package/dist/runtime/type-guards/isHexadecimal.d.ts.map +1 -0
- package/dist/runtime/type-guards/isHexadecimal.js +13 -0
- package/dist/runtime/type-guards/isUrl.d.ts +20 -4
- package/dist/runtime/type-guards/isUrl.d.ts.map +1 -1
- package/dist/runtime/type-guards/isUrl.js +29 -9
- package/dist/runtime/type-guards/network-tg.d.ts +48 -0
- package/dist/runtime/type-guards/network-tg.d.ts.map +1 -0
- package/dist/runtime/type-guards/network-tg.js +85 -0
- package/dist/runtime/type-guards/repos.d.ts +45 -0
- package/dist/runtime/type-guards/repos.d.ts.map +1 -0
- package/dist/runtime/type-guards/repos.js +77 -0
- package/dist/runtime/type-guards/youtube.d.ts +42 -0
- package/dist/runtime/type-guards/youtube.d.ts.map +1 -0
- package/dist/runtime/type-guards/youtube.js +74 -0
- package/dist/types/{numeric-literals/ValueCallback.d.ts → api/api.d.ts} +1 -1
- package/dist/types/api/api.d.ts.map +1 -0
- package/dist/types/api/index.d.ts +2 -0
- package/dist/types/api/index.d.ts.map +1 -0
- package/dist/types/api/index.js +1 -0
- package/dist/types/boolean-logic/branching/OnPass.d.ts +29 -0
- package/dist/types/boolean-logic/branching/OnPass.d.ts.map +1 -0
- package/dist/types/boolean-logic/branching/index.d.ts +1 -0
- package/dist/types/boolean-logic/branching/index.d.ts.map +1 -1
- package/dist/types/boolean-logic/branching/index.js +1 -0
- package/dist/types/boolean-logic/combinators/And.d.ts +1 -1
- package/dist/types/boolean-logic/combinators/And.d.ts.map +1 -1
- package/dist/types/boolean-logic/combinators/Not.d.ts +5 -6
- package/dist/types/boolean-logic/combinators/Not.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/Extends.d.ts +2 -1
- package/dist/types/boolean-logic/operators/Extends.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/IsBoolean.d.ts +2 -1
- package/dist/types/boolean-logic/operators/IsBoolean.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/IsCssHexadecimal.d.ts +9 -0
- package/dist/types/boolean-logic/operators/IsCssHexadecimal.d.ts.map +1 -0
- package/dist/types/boolean-logic/operators/IsCssHexadecimal.js +1 -0
- package/dist/types/boolean-logic/operators/IsEqual.d.ts +7 -1
- package/dist/types/boolean-logic/operators/IsEqual.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/IsLessThan.d.ts +13 -0
- package/dist/types/boolean-logic/operators/IsLessThan.d.ts.map +1 -0
- package/dist/types/boolean-logic/operators/IsLessThan.js +1 -0
- package/dist/types/boolean-logic/operators/IsNever.d.ts +2 -1
- package/dist/types/boolean-logic/operators/IsNever.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/IsNumber.d.ts +2 -2
- package/dist/types/boolean-logic/operators/IsNumber.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/IsString.d.ts +2 -2
- package/dist/types/boolean-logic/operators/IsString.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/IsUrl.d.ts +35 -0
- package/dist/types/boolean-logic/operators/IsUrl.d.ts.map +1 -0
- package/dist/types/boolean-logic/operators/IsUrl.js +1 -0
- package/dist/types/boolean-logic/operators/Network-operators.d.ts +71 -0
- package/dist/types/boolean-logic/operators/Network-operators.d.ts.map +1 -0
- package/dist/types/boolean-logic/operators/Network-operators.js +1 -0
- package/dist/types/boolean-logic/operators/YouTube-operators.d.ts +32 -0
- package/dist/types/boolean-logic/operators/YouTube-operators.d.ts.map +1 -0
- package/dist/types/boolean-logic/operators/YouTube-operators.js +1 -0
- package/dist/types/boolean-logic/operators/index.d.ts +4 -1
- package/dist/types/boolean-logic/operators/index.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/index.js +4 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/literals/ExpandRecursively.d.ts +7 -1
- package/dist/types/literals/ExpandRecursively.d.ts.map +1 -1
- package/dist/types/literals/Shape.d.ts +1 -1
- package/dist/types/literals/Shape.d.ts.map +1 -1
- package/dist/types/numeric-literals/index.d.ts +0 -1
- package/dist/types/numeric-literals/index.d.ts.map +1 -1
- package/dist/types/numeric-literals/index.js +0 -1
- package/dist/types/string-literals/RetainUntil.d.ts +33 -0
- package/dist/types/string-literals/RetainUntil.d.ts.map +1 -0
- package/dist/types/string-literals/RetainUntil.js +1 -0
- package/dist/types/string-literals/Split.d.ts +3 -3
- package/dist/types/string-literals/Split.d.ts.map +1 -1
- package/dist/types/string-literals/StripAfter.d.ts +2 -2
- package/dist/types/string-literals/StripAfter.d.ts.map +1 -1
- package/dist/types/string-literals/StripBefore.d.ts +2 -2
- package/dist/types/string-literals/StripBefore.d.ts.map +1 -1
- package/dist/types/string-literals/StripUntil.d.ts +6 -0
- package/dist/types/string-literals/StripUntil.d.ts.map +1 -0
- package/dist/types/string-literals/StripUntil.js +1 -0
- package/dist/types/string-literals/character-sets/DomainName.d.ts +26 -18
- package/dist/types/string-literals/character-sets/DomainName.d.ts.map +1 -1
- package/dist/types/string-literals/character-sets/InlineSvg.d.ts +2 -2
- package/dist/types/string-literals/character-sets/InlineSvg.d.ts.map +1 -1
- package/dist/types/string-literals/character-sets/IpAddress.d.ts +28 -4
- package/dist/types/string-literals/character-sets/IpAddress.d.ts.map +1 -1
- package/dist/types/string-literals/character-sets/Optional.d.ts +14 -0
- package/dist/types/string-literals/character-sets/Optional.d.ts.map +1 -0
- package/dist/types/string-literals/character-sets/Optional.js +1 -0
- package/dist/types/string-literals/character-sets/Repos.d.ts +108 -0
- package/dist/types/string-literals/character-sets/Repos.d.ts.map +1 -0
- package/dist/types/string-literals/character-sets/Repos.js +1 -0
- package/dist/types/string-literals/character-sets/Url.d.ts +208 -6
- package/dist/types/string-literals/character-sets/Url.d.ts.map +1 -1
- package/dist/types/string-literals/character-sets/Url.js +1 -0
- package/dist/types/string-literals/character-sets/YouTube.d.ts +127 -0
- package/dist/types/string-literals/character-sets/YouTube.d.ts.map +1 -0
- package/dist/types/string-literals/character-sets/YouTube.js +1 -0
- package/dist/types/string-literals/character-sets/index.d.ts +4 -0
- package/dist/types/string-literals/character-sets/index.d.ts.map +1 -1
- package/dist/types/string-literals/character-sets/index.js +4 -0
- package/dist/types/string-literals/index.d.ts +2 -0
- package/dist/types/string-literals/index.d.ts.map +1 -1
- package/dist/types/string-literals/index.js +2 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/type-conversion/MergeObjects.d.ts.map +1 -1
- package/dist/types/type-conversion/RetainChars.d.ts +15 -0
- package/dist/types/type-conversion/RetainChars.d.ts.map +1 -0
- package/dist/types/type-conversion/RetainChars.js +1 -0
- package/dist/types/type-conversion/StripChars.d.ts +18 -0
- package/dist/types/type-conversion/StripChars.d.ts.map +1 -0
- package/dist/types/type-conversion/StripChars.js +1 -0
- package/dist/types/type-conversion/index.d.ts +2 -0
- package/dist/types/type-conversion/index.d.ts.map +1 -1
- package/dist/types/type-conversion/index.js +2 -0
- package/package.json +9 -9
- package/dist/constants/TCP_IP.d.ts +0 -11
- package/dist/constants/TCP_IP.d.ts.map +0 -1
- package/dist/constants/TCP_IP.js +0 -10
- package/dist/types/boolean-logic/operators/IsHexadecimal.d.ts +0 -9
- package/dist/types/boolean-logic/operators/IsHexadecimal.d.ts.map +0 -1
- package/dist/types/numeric-literals/ValueCallback.d.ts.map +0 -1
- /package/dist/types/{boolean-logic/operators/IsHexadecimal.js → api/api.js} +0 -0
- /package/dist/types/{numeric-literals/ValueCallback.js → boolean-logic/branching/OnPass.js} +0 -0
|
@@ -1,8 +1,179 @@
|
|
|
1
|
-
import { DomainName } from "
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { AlphaNumericChar, AsString, ExpandUnion, IsStringLiteral, StripAfter, StripChars, StripLeading, StripTrailing, TupleToUnion, DnsName, DomainName, Ip4Address, Mutable, Values, Flatten, EmptyObject, IsEqual, NumericChar, RetainWhile, AsNumber, StripWhile } from "../../index";
|
|
2
|
+
import { NETWORK_PROTOCOL_LOOKUP } from "../../../constants/index";
|
|
3
|
+
export type NetworkProtocol = Exclude<TupleToUnion<Mutable<Flatten<Values<typeof NETWORK_PROTOCOL_LOOKUP>>>>, "">;
|
|
4
|
+
/**
|
|
5
|
+
* **NetworkProtocolPrefix**
|
|
6
|
+
*
|
|
7
|
+
* A type which tries to represent the _prefix_ of a URL/URI which
|
|
8
|
+
* indicates the network protocol.
|
|
9
|
+
*/
|
|
10
|
+
export type NetworkProtocolPrefix<T extends NetworkProtocol = NetworkProtocol> = `${T}://`;
|
|
11
|
+
export type PortSpecifierOptions = {
|
|
12
|
+
/**
|
|
13
|
+
* **portRequirement**
|
|
14
|
+
*
|
|
15
|
+
* Whether a _port_ is "required", "optional", or "not-allowed"
|
|
16
|
+
* for this protocol.
|
|
17
|
+
*
|
|
18
|
+
* @default "not-allowed"
|
|
19
|
+
*/
|
|
20
|
+
portRequirement?: "optional" | "required" | "not-allowed";
|
|
21
|
+
ports?: number;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* **GetUrlProtocol**`<T>`
|
|
25
|
+
*
|
|
26
|
+
* Gets the network protocol used in the URL string passed into `T`.
|
|
27
|
+
*/
|
|
28
|
+
export type GetUrlProtocol<T> = T extends string ? T extends `${NetworkProtocolPrefix}${string}` ? StripAfter<T, "://"> : IsEqual<T, string> extends true ? string : never : never;
|
|
29
|
+
/**
|
|
30
|
+
* **GetUrlProtocolPrefix**`<T>`
|
|
31
|
+
*
|
|
32
|
+
* Just like `GetUrlProtocol` but adds in the `://` so long
|
|
33
|
+
* as there's a protocol found.
|
|
34
|
+
*/
|
|
35
|
+
export type GetUrlProtocolPrefix<T> = T extends string ? GetUrlProtocol<T> extends NetworkProtocol ? NetworkProtocolPrefix<GetUrlProtocol<T>> : "" : "";
|
|
36
|
+
type _Ports<TOpt extends PortSpecifierOptions> = TOpt["ports"] extends number ? `${TOpt["ports"]}` : `${number}`;
|
|
37
|
+
/**
|
|
38
|
+
* **UrlPort**`<TOpt>`
|
|
39
|
+
*
|
|
40
|
+
* Produces a string literal for the _port_ designation of
|
|
41
|
+
* many protocols. Basically just a `:${number}` and
|
|
42
|
+
* then possibly a space.
|
|
43
|
+
*
|
|
44
|
+
* - `TOpt` allows you to state whether the port should be:
|
|
45
|
+
* - `optional`
|
|
46
|
+
* - `required`
|
|
47
|
+
* - or `not-allowed`
|
|
48
|
+
*/
|
|
49
|
+
export type UrlPort<TOpt extends PortSpecifierOptions = {
|
|
50
|
+
portRequirement: "not-allowed";
|
|
51
|
+
ports: number;
|
|
52
|
+
}> = [TOpt["portRequirement"]] extends ["required"] ? `:${_Ports<TOpt>}` : [TOpt["portRequirement"]] extends ["optional"] ? "" | `:${_Ports<TOpt>}` : ``;
|
|
53
|
+
/**
|
|
54
|
+
* **GetUrlPort**`<T>`
|
|
55
|
+
*
|
|
56
|
+
* Returns the port designated in the URL passed in if found.
|
|
57
|
+
*
|
|
58
|
+
* - if `T` is a literal string and port not found then value is "default"
|
|
59
|
+
* - if `T` is a wide string then the value will be `number | "default"`
|
|
60
|
+
* - all non-string based values result in `never`
|
|
61
|
+
*/
|
|
62
|
+
export type GetUrlPort<T> = T extends string ? IsStringLiteral<T> extends true ? RemoveNetworkProtocol<T> extends `${string}:${infer Port extends number}${infer Rest}` ? AsNumber<RetainWhile<`${Port}${Rest}`, NumericChar>> : "default" : number | "default" : never;
|
|
63
|
+
/**
|
|
64
|
+
* **RemoveUrlPort**`<T,[TOpt]>`
|
|
65
|
+
*
|
|
66
|
+
* Removes a _port specification_ in a URL if found otherwise returns string literal
|
|
67
|
+
* as it was.
|
|
68
|
+
*/
|
|
69
|
+
export type RemoveUrlPort<T> = T extends string ? IsStringLiteral<T> extends true ? RemoveNetworkProtocol<T> extends `${infer Before}:${infer _Port extends `${number}`}${infer After}` ? `${GetUrlProtocolPrefix<T>}${Before}${StripWhile<After, NumericChar>}` : T : string : never;
|
|
70
|
+
export type ProtocolOptions = {
|
|
71
|
+
/**
|
|
72
|
+
* whether the protocol prefix should be optional
|
|
73
|
+
* @default false
|
|
74
|
+
*/
|
|
75
|
+
protocolOptional?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* The Network Protocols to use.
|
|
78
|
+
*/
|
|
79
|
+
protocols?: NetworkProtocol[];
|
|
80
|
+
};
|
|
81
|
+
export type UrlOptions = {
|
|
82
|
+
/**
|
|
83
|
+
* Specify how you'd like to allow for queryParameters in the URL's
|
|
84
|
+
* you're generating.
|
|
85
|
+
*
|
|
86
|
+
* - you may choose "any", "none"
|
|
87
|
+
*
|
|
88
|
+
* @default "any"
|
|
89
|
+
*/
|
|
90
|
+
queryParameters?: "any" | "none";
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* **RemoveHttpProtocol**`<T>`
|
|
94
|
+
*
|
|
95
|
+
* Removes both `http://` and `https://` prefixes to a string.
|
|
96
|
+
*
|
|
97
|
+
* **Related:** `RemoveNetworkProtocol`
|
|
98
|
+
*/
|
|
99
|
+
export type RemoveHttpProtocol<T extends string> = T extends `http://${infer Insecure}` ? Insecure : T extends `https://${infer Secure}` ? Secure : T;
|
|
100
|
+
/**
|
|
101
|
+
* **RemoveNetworkProtocol**`<TContent,[TProtocol]>`
|
|
102
|
+
*
|
|
103
|
+
* Removes any _leading_ content which is a network protocol reference.
|
|
104
|
+
*
|
|
105
|
+
* - an example would be `https://` but so would `ftp://`
|
|
106
|
+
* - you can narrow the protocols it's looking to remove by modifying
|
|
107
|
+
* `TProtocol`
|
|
108
|
+
*/
|
|
109
|
+
export type RemoveNetworkProtocol<TContent extends string, TProtocol extends NetworkProtocol = NetworkProtocol> = TContent extends `${NetworkProtocolPrefix<TProtocol>}${infer Rest}` ? Rest : TContent;
|
|
110
|
+
type UrlPathChars = AlphaNumericChar | "_" | "@" | "." | "-";
|
|
111
|
+
/**
|
|
112
|
+
* **UrlPath**`<T>`
|
|
113
|
+
*
|
|
114
|
+
* A simple type that represents the _shape_ of a UrlPath
|
|
115
|
+
* when no generics are used (aka, `T` is defaulted to _null_).
|
|
116
|
+
*
|
|
117
|
+
* This type is either an empty string `''` or a string starting
|
|
118
|
+
* with a `/` character.
|
|
119
|
+
*
|
|
120
|
+
* If you want more detailed type checking of the path you can
|
|
121
|
+
* pass in a string to `T` and it will be validated and return
|
|
122
|
+
* `never` when an invalid character is used.
|
|
123
|
+
*/
|
|
124
|
+
export type UrlPath<T extends string | null = null> = T extends null ? "" | `/${UrlPathChars}${string}` : T extends string ? IsStringLiteral<T> extends true ? T extends `${string}/` ? never : StripChars<T, UrlPathChars | "/"> extends "" ? T : never : never : never;
|
|
125
|
+
/**
|
|
126
|
+
* **GetUrlSource**`<T>`
|
|
127
|
+
*
|
|
128
|
+
* Extracts out the IP address or Domain Name from a URL-like string literal.
|
|
129
|
+
*
|
|
130
|
+
* - if _not_ a string literal then just proxies through `string`
|
|
131
|
+
* - if not able to find it then it returns the literal ''
|
|
132
|
+
*/
|
|
133
|
+
export type GetUrlSource<T extends string> = IsStringLiteral<T> extends true ? StripAfter<StripAfter<RemoveNetworkProtocol<T>, "/">, ":"> extends `${infer Domain extends DnsName | Ip4Address}` ? Domain : never : string;
|
|
134
|
+
/**
|
|
135
|
+
* **RemoveUrlSource**`<T>`
|
|
136
|
+
*
|
|
137
|
+
* Removes the URL source (aka, domain name or IP address) from a URL string when
|
|
138
|
+
* it can be identified.
|
|
139
|
+
*/
|
|
140
|
+
export type RemoveUrlSource<T extends string> = IsStringLiteral<T> extends true ? GetUrlSource<T> extends string ? IsStringLiteral<GetUrlSource<T>> extends true ? T extends `${infer Before}${GetUrlSource<T>}${infer After}` ? `${Before}${After}` : T : T : T : string;
|
|
141
|
+
type _GetUrlPath<T extends string> = [
|
|
142
|
+
T
|
|
143
|
+
] extends [`${string}//${string}`] ? never : T extends "" ? "" : StripAfter<T, "?"> extends "/" ? "" : T extends `/${string}` ? StripAfter<T, "?"> : never;
|
|
144
|
+
/**
|
|
145
|
+
* **GetUrlPath**`<T>`
|
|
146
|
+
*
|
|
147
|
+
* Extracts the URL's path from a full URL/URI.
|
|
148
|
+
*
|
|
149
|
+
* - removes any reference to the network protocol
|
|
150
|
+
* - removes the domain name or IP address
|
|
151
|
+
* - removes any trailing query parameters
|
|
152
|
+
*/
|
|
153
|
+
export type GetUrlPath<T extends string> = [IsStringLiteral<T>] extends [true] ? _GetUrlPath<RemoveUrlSource<RemoveNetworkProtocol<RemoveUrlPort<T>>>> : string;
|
|
154
|
+
/**
|
|
155
|
+
* **GetUrlQueryParams**`<T>`
|
|
156
|
+
*
|
|
157
|
+
* Given a URL passed into `T`, this utility will extract the
|
|
158
|
+
* query parameters portion of the URL or `""` if none exists.
|
|
159
|
+
*/
|
|
160
|
+
export type GetUrlQueryParams<T extends string> = T extends `${string}?${infer QP}` ? `?${QP}` : "";
|
|
161
|
+
/**
|
|
162
|
+
* **AnyQueryParams**
|
|
163
|
+
*
|
|
164
|
+
* A type which represents any string value for query parameters
|
|
165
|
+
* or no query parameters at all.
|
|
166
|
+
*
|
|
167
|
+
* Can be quite useful for creating pattern matching types where
|
|
168
|
+
* you don't want to be blocked by someone having put some silly
|
|
169
|
+
* marketing QP at the end of a URL.
|
|
170
|
+
*/
|
|
171
|
+
export type AnyQueryParams = `?${string}` | "";
|
|
172
|
+
type RelativeStart = `../` | `./`;
|
|
173
|
+
/**
|
|
174
|
+
* **RelativeUrl**
|
|
175
|
+
*/
|
|
176
|
+
export type RelativeUrl = `${RelativeStart}${UrlPath}`;
|
|
6
177
|
/**
|
|
7
178
|
* A literal variant of _string_ which forces a string to follow conventions
|
|
8
179
|
* for a fully qualified URL like `https://google.com`. It can't ensure the
|
|
@@ -10,5 +181,36 @@ export type RelativeUrl = `${VariableChar | "/"}`;
|
|
|
10
181
|
*/
|
|
11
182
|
export type FullyQualifiedUrl = `${NetworkProtocol}://${Ip4Address | DomainName}/${string}`;
|
|
12
183
|
export type UrlBuilder = (<P extends NetworkProtocol, D extends DomainName, B extends RelativeUrl>(protocol: P, domain: D, basePath: B) => `${P}://${D}/${B}`) | (<U extends RelativeUrl>(url: U) => U);
|
|
13
|
-
|
|
184
|
+
/**
|
|
185
|
+
* **Uri**
|
|
186
|
+
*
|
|
187
|
+
* A simple type to allow for any HTTP, File, or Websocket based URI.
|
|
188
|
+
*/
|
|
189
|
+
export type Uri<T extends NetworkProtocol = NetworkProtocol> = `${T}://${string}`;
|
|
190
|
+
/**
|
|
191
|
+
* **AddUrlPathSegment**`<TExisting, TAdd>`
|
|
192
|
+
*
|
|
193
|
+
* Adds a new URL path segment, ensuring that appropriate
|
|
194
|
+
* `/` representation is preserved.
|
|
195
|
+
*/
|
|
196
|
+
export type AddUrlPathSegment<TExisting extends string, TAdd extends string> = TExisting extends `${string}/` ? `${TExisting}${StripTrailing<StripLeading<TAdd, "/">, "/">}` : `${TExisting}/${StripTrailing<StripLeading<TAdd, "/">, "/">}`;
|
|
197
|
+
type _Path<T extends string> = GetUrlPath<T> extends UrlPath ? GetUrlPath<T> : never;
|
|
198
|
+
type _Proto<TOpt extends ProtocolOptions & PortSpecifierOptions & UrlOptions> = NetworkProtocolPrefix<[] extends TOpt["protocols"] ? "https" : TupleToUnion<TOpt["protocols"]>>;
|
|
199
|
+
type _QP<TOpt extends ProtocolOptions & PortSpecifierOptions & UrlOptions> = TOpt["queryParameters"] extends "none" ? "" : `${AnyQueryParams}`;
|
|
200
|
+
type _UrlsFrom<TContent extends string, TOpt extends ProtocolOptions & PortSpecifierOptions & UrlOptions> = [TOpt["protocolOptional"]] extends [true] ? `${_Proto<TOpt>}${GetUrlSource<TContent>}${UrlPort<TOpt>}${AddUrlPathSegment<_Path<TContent>, `${string}`>}` | `${_Proto<TOpt>}${GetUrlSource<TContent>}${UrlPort<TOpt>}${_Path<TContent>}${_QP<TOpt>}` | `${GetUrlSource<TContent>}${UrlPort<TOpt>}${_Path<TContent>}${_QP<TOpt>}` | `${GetUrlSource<TContent>}${UrlPort<TOpt>}${AddUrlPathSegment<_Path<TContent>, `${string}`>}` : `${_Proto<TOpt>}${GetUrlSource<TContent>}${UrlPort<TOpt>}${AddUrlPathSegment<_Path<TContent>, `${string}`>}` | `${_Proto<TOpt>}${GetUrlSource<TContent>}${UrlPort<TOpt>}${_Path<TContent>}${_QP<TOpt>}`;
|
|
201
|
+
/**
|
|
202
|
+
* **UrlsFrom**`<T, [TOpt]>`
|
|
203
|
+
*
|
|
204
|
+
* Utility which generates a type for all valid URLs in the given
|
|
205
|
+
* partial URL.
|
|
206
|
+
*
|
|
207
|
+
* - you can configure whether the protocol should be _optional_
|
|
208
|
+
* and whether _insecure_ URL's should be allowed with `TOpt`
|
|
209
|
+
* - you can also switch the protocol between `http`,`ws`, or `both`
|
|
210
|
+
* - the default protocol is `http`
|
|
211
|
+
*/
|
|
212
|
+
export type UrlsFrom<T extends string | readonly string[], TOpt extends ProtocolOptions & PortSpecifierOptions & UrlOptions = EmptyObject> = T extends string ? ExpandUnion<_UrlsFrom<T, TOpt>> : T extends readonly string[] ? TupleToUnion<{
|
|
213
|
+
[K in keyof T]: IsStringLiteral<T[K]> extends true ? ExpandUnion<_UrlsFrom<AsString<T[K]>, TOpt>> : never;
|
|
214
|
+
}> : never;
|
|
215
|
+
export {};
|
|
14
216
|
//# sourceMappingURL=Url.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Url.d.ts","sourceRoot":"","sources":["../../../../src/types/string-literals/character-sets/Url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Url.d.ts","sourceRoot":"","sources":["../../../../src/types/string-literals/character-sets/Url.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { AsString, Contains, HasQueryParameter, IsEqual, IsUnion, Last, Split, TupleToUnion, UnionToTuple, AnyQueryParams, GetUrlPath, UrlsFrom, Optional } from "../../index";
|
|
2
|
+
/**
|
|
3
|
+
* **YouTubePageType**
|
|
4
|
+
*
|
|
5
|
+
* A union type enumeration of the _types_ of pages on YouTube.
|
|
6
|
+
*/
|
|
7
|
+
export type YouTubePageType = "home" | "play::video::solo" | "play::video::solo::share-link" | "play::video::solo::share-link::with-timestamp" | "play::video::in-list" | "play::video::in-list::share-link" | "play::video::in-list::share-link::with-timestamp" | "playlist::show" | "creator::featured" | "creator::videos" | "creator::playlists" | "creator::other" | "feed::history" | "feed::playlists" | "feed::liked" | "feed::subscriptions" | "feed::trending" | "feed::other" | "other";
|
|
8
|
+
export type YouTubeFeedType = "history" | "playlists" | "liked" | "subscriptions" | "trending" | "other";
|
|
9
|
+
/**
|
|
10
|
+
* **YouTubeUrl**
|
|
11
|
+
*
|
|
12
|
+
* A type which should match all URL's pointing to YouTube
|
|
13
|
+
*/
|
|
14
|
+
export type YouTubeUrl = UrlsFrom<["www.youtube.com", "youtube.com", "youtu.be"]>;
|
|
15
|
+
/**
|
|
16
|
+
* **YouTubeHome**
|
|
17
|
+
*
|
|
18
|
+
* The URLs representing the home page of YouTube
|
|
19
|
+
*/
|
|
20
|
+
export type YouTubeHome = `https://www.youtube.com${AnyQueryParams}` | `https://youtube.com${AnyQueryParams}`;
|
|
21
|
+
/**
|
|
22
|
+
* **YouTubeShareUrl**
|
|
23
|
+
*
|
|
24
|
+
* a URL which comes from YouTube's _URL shortened_ `https://youtu.be` site.
|
|
25
|
+
*/
|
|
26
|
+
export type YouTubeShareUrl = UrlsFrom<"youtu.be">;
|
|
27
|
+
/**
|
|
28
|
+
* **YouTubeVideo**
|
|
29
|
+
*
|
|
30
|
+
* Type pattern which will match all URL's which relate to
|
|
31
|
+
* a YouTubeVideo.
|
|
32
|
+
*
|
|
33
|
+
* **Note:** there can be some _false positives_ when the query parameters
|
|
34
|
+
* may state that this is a video to watch in a list of videos. You can avoid
|
|
35
|
+
* this ambiguity with the `IsYouTubeVideo` and `IsYouTubeList` operators.
|
|
36
|
+
*/
|
|
37
|
+
export type YouTubeVideoUrl = UrlsFrom<[
|
|
38
|
+
"www.youtube.com/watch",
|
|
39
|
+
"youtube.com/watch"
|
|
40
|
+
]> | YouTubeShareUrl;
|
|
41
|
+
/**
|
|
42
|
+
* **YouTubeCreatorUrl**
|
|
43
|
+
*
|
|
44
|
+
* Pages associated with a YouTube creator. This can include your own
|
|
45
|
+
* pages even if you don't consider yourself a full creator (yet).
|
|
46
|
+
*/
|
|
47
|
+
export type YouTubeCreatorUrl = UrlsFrom<[
|
|
48
|
+
`www.youtube.com/channel/${string}`,
|
|
49
|
+
`youtube.com/channel/${string}`
|
|
50
|
+
]> | `https://www.youtube.com/@${string}${Optional<"/featured" | "/videos" | "/playlists">}`;
|
|
51
|
+
/**
|
|
52
|
+
* **YouTubePlaylistUrl**
|
|
53
|
+
*
|
|
54
|
+
* A URL pattern which should match all playlist URL's on YouTube.
|
|
55
|
+
* That includes both the logged in user's as well as other peoples.
|
|
56
|
+
*
|
|
57
|
+
* **Related:** `YouTubeUsersPlaylistUrl`
|
|
58
|
+
*/
|
|
59
|
+
export type YouTubePlaylistUrl = UrlsFrom<[
|
|
60
|
+
`www.youtube.com/channel/playlists`,
|
|
61
|
+
`www.youtube.com/@${string}/playlists`,
|
|
62
|
+
`youtube.com/channel/playlists`,
|
|
63
|
+
`youtube.com/@${string}/playlists`
|
|
64
|
+
]> | YouTubeUsersPlaylistUrl;
|
|
65
|
+
type _FeedMap<T extends YouTubeFeedType> = IsEqual<T, YouTubeFeedType> extends true ? `feed` : T extends "liked" ? `playlist?list=LL` : Contains<["history", "playlists", "trending", "subscriptions"], T> extends true ? `feed/${T}` : `feed/${string}`;
|
|
66
|
+
/**
|
|
67
|
+
* Maps the feed type to a URL path
|
|
68
|
+
*/
|
|
69
|
+
type FeedMap<T extends YouTubeFeedType> = IsUnion<T> extends true ? TupleToUnion<{
|
|
70
|
+
[K in keyof UnionToTuple<T>]: UnionToTuple<T>[K] extends YouTubeFeedType ? _FeedMap<UnionToTuple<T>[K]> : never;
|
|
71
|
+
}> : _FeedMap<T>;
|
|
72
|
+
/**
|
|
73
|
+
* **YouTubeFeedUrl**`<[T]>`
|
|
74
|
+
*
|
|
75
|
+
* A URL pattern which matches all "feeds" on YouTube where
|
|
76
|
+
* "feeds" are pages that organize videos/content for a logged
|
|
77
|
+
* in user based on their configuration.
|
|
78
|
+
*
|
|
79
|
+
* By default, all feed URLs are matched but you can narrow
|
|
80
|
+
* this matching down by choosing a value for `T` in the
|
|
81
|
+
* `YouTubeFeedType` union.
|
|
82
|
+
*/
|
|
83
|
+
export type YouTubeFeedUrl<T extends YouTubeFeedType = YouTubeFeedType> = `https://www.youtube.com/${AsString<FeedMap<T>>}${string}` | `https://youtube.com/${AsString<FeedMap<T>>}${string}`;
|
|
84
|
+
/**
|
|
85
|
+
* **YouTubeUsersPlaylistUrl**
|
|
86
|
+
*
|
|
87
|
+
* The URL which brings a logged in user to their own playlists.
|
|
88
|
+
*
|
|
89
|
+
* **Related:** `YouTubePlaylistUrl`
|
|
90
|
+
*/
|
|
91
|
+
export type YouTubeUsersPlaylistUrl = `https://www.youtube.com/feed/playlists${AnyQueryParams}`;
|
|
92
|
+
/**
|
|
93
|
+
* **YouTubeLikedPlaylistUrl**
|
|
94
|
+
*
|
|
95
|
+
* The URL which brings a logged in user to a playlist of their _liked_
|
|
96
|
+
* videos.
|
|
97
|
+
*/
|
|
98
|
+
export type YouTubeLikedPlaylistUrl = `https://www.youtube.com/playlist?${string}list=LL${string}`;
|
|
99
|
+
/**
|
|
100
|
+
* **YouTubeVideosInPlaylist**
|
|
101
|
+
*
|
|
102
|
+
* A URL which shows all the videos in a given playlist
|
|
103
|
+
*/
|
|
104
|
+
export type YouTubeVideosInPlaylist = `https://www.youtube.com/playlist?${string}list=${string}`;
|
|
105
|
+
/**
|
|
106
|
+
* **YouTubeHistoryUrl**
|
|
107
|
+
*
|
|
108
|
+
* The URL which brings a logged in user to a list of their previously watched
|
|
109
|
+
* videos.
|
|
110
|
+
*/
|
|
111
|
+
export type YouTubeHistoryUrl = `https://www.youtube.com/feed/history${AnyQueryParams}`;
|
|
112
|
+
/**
|
|
113
|
+
* **YouTubeSubscriptionsUrl**
|
|
114
|
+
*
|
|
115
|
+
* The URL which brings a logged in user to their list of subscriptions.
|
|
116
|
+
*/
|
|
117
|
+
export type YouTubeSubscriptionsUrl = `https://www.youtube.com/feed/subscriptions${AnyQueryParams}`;
|
|
118
|
+
/**
|
|
119
|
+
* **GetYouTubePageType**`<T>`
|
|
120
|
+
*
|
|
121
|
+
* Given a URL passed into `T`, this utility will give you an indication
|
|
122
|
+
* of what type of YouTube content you'll find at this location (or return
|
|
123
|
+
* _never_ if it's not a YouTube URL).
|
|
124
|
+
*/
|
|
125
|
+
export type GetYouTubePageType<T> = T extends YouTubeUrl ? T extends YouTubeHome ? "home" : T extends YouTubeVideoUrl ? HasQueryParameter<T, "list"> extends true ? T extends YouTubeShareUrl ? HasQueryParameter<T, "t"> extends true ? "play::video::in-list::share-link::with-timestamp" : "play::video::in-list::share-link" : "play::video::in-list" : T extends YouTubeShareUrl ? HasQueryParameter<T, "t"> extends true ? "play::video::solo::share-link::with-timestamp" : "play::video::solo::share-link" : "play::video::solo" : T extends YouTubeCreatorUrl ? GetUrlPath<T> extends `${string}/videos` ? "creator::videos" : GetUrlPath<T> extends `${string}/playlists` ? "creator::playlists" : Last<Split<GetUrlPath<T>, "/">> extends `@${string}` ? "creator::featured" : GetUrlPath<T> extends `${string}/featured` ? "creator::featured" : "creator::other" : T extends YouTubeFeedUrl ? T extends YouTubeFeedUrl<"history"> ? "feed::history" : T extends YouTubeFeedUrl<"playlists"> ? "feed::playlists" : T extends YouTubeFeedUrl<"liked"> ? "feed::liked" : T extends YouTubeFeedUrl<"subscriptions"> ? "feed::subscriptions" : T extends YouTubeFeedUrl<"trending"> ? "feed::trending" : "feed::other" : T extends YouTubeVideosInPlaylist ? "playlist::show" : "other" : never;
|
|
126
|
+
export {};
|
|
127
|
+
//# sourceMappingURL=YouTube.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YouTube.d.ts","sourceRoot":"","sources":["../../../../src/types/string-literals/character-sets/YouTube.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -23,6 +23,10 @@ export * from "./Consonants";
|
|
|
23
23
|
export * from "./PlusMinus";
|
|
24
24
|
export * from "./CSS";
|
|
25
25
|
export * from "./InlineSvg";
|
|
26
|
+
export * from "./Repos";
|
|
27
|
+
export * from "./Variable";
|
|
28
|
+
export * from "./Optional";
|
|
29
|
+
export * from "./YouTube";
|
|
26
30
|
export * from "./brackets/index";
|
|
27
31
|
export * from "./quotation-marks/index";
|
|
28
32
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/string-literals/character-sets/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/string-literals/character-sets/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAE1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC"}
|
|
@@ -23,5 +23,9 @@ export * from "./Consonants.js";
|
|
|
23
23
|
export * from "./PlusMinus.js";
|
|
24
24
|
export * from "./CSS.js";
|
|
25
25
|
export * from "./InlineSvg.js";
|
|
26
|
+
export * from "./Repos.js";
|
|
27
|
+
export * from "./Variable.js";
|
|
28
|
+
export * from "./Optional.js";
|
|
29
|
+
export * from "./YouTube.js";
|
|
26
30
|
export * from "./brackets/index.js";
|
|
27
31
|
export * from "./quotation-marks/index.js";
|
|
@@ -31,6 +31,8 @@ export * from "./StrLen";
|
|
|
31
31
|
export * from "./Surround";
|
|
32
32
|
export * from "./Time";
|
|
33
33
|
export * from "./Truncate";
|
|
34
|
+
export * from "./RetainUntil";
|
|
35
|
+
export * from "./StripUntil";
|
|
34
36
|
export * from "./character-sets/index";
|
|
35
37
|
export * from "./casing/index";
|
|
36
38
|
export * from "./options/index";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/string-literals/index.ts"],"names":[],"mappings":"AAMA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/string-literals/index.ts"],"names":[],"mappings":"AAMA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAE7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
|
|
@@ -36,6 +36,8 @@ export * from "./StrLen.js";
|
|
|
36
36
|
export * from "./Surround.js";
|
|
37
37
|
export * from "./Time.js";
|
|
38
38
|
export * from "./Truncate.js";
|
|
39
|
+
export * from "./RetainUntil.js";
|
|
40
|
+
export * from "./StripUntil.js";
|
|
39
41
|
export * from "./character-sets/index.js";
|
|
40
42
|
export * from "./casing/index.js";
|
|
41
43
|
export * from "./options/index.js";
|