inferred-types 0.44.0 → 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.
Files changed (134) hide show
  1. package/dist/constants/NetworkConstants.d.ts +29 -0
  2. package/dist/constants/NetworkConstants.d.ts.map +1 -0
  3. package/dist/constants/NetworkConstants.js +83 -0
  4. package/dist/constants/index.d.ts +1 -1
  5. package/dist/constants/index.d.ts.map +1 -1
  6. package/dist/constants/index.js +1 -1
  7. package/dist/constants/tsconfig.tsbuildinfo +1 -1
  8. package/dist/inferred-types/index.cjs +571 -301
  9. package/dist/inferred-types/tsconfig.tsbuildinfo +1 -1
  10. package/dist/runtime/dictionary/withKeys.d.ts +1 -1
  11. package/dist/runtime/index.d.ts +1 -0
  12. package/dist/runtime/index.d.ts.map +1 -1
  13. package/dist/runtime/index.js +1 -0
  14. package/dist/runtime/literals/index.d.ts +1 -0
  15. package/dist/runtime/literals/index.d.ts.map +1 -1
  16. package/dist/runtime/literals/index.js +1 -0
  17. package/dist/runtime/literals/takeNumericCharacters.d.ts +9 -0
  18. package/dist/runtime/literals/takeNumericCharacters.d.ts.map +1 -0
  19. package/dist/runtime/literals/takeNumericCharacters.js +12 -0
  20. package/dist/runtime/meta/index.d.ts +3 -0
  21. package/dist/runtime/meta/index.d.ts.map +1 -0
  22. package/dist/runtime/meta/index.js +2 -0
  23. package/dist/runtime/meta/urlMeta.d.ts +52 -0
  24. package/dist/runtime/meta/urlMeta.d.ts.map +1 -0
  25. package/dist/runtime/meta/urlMeta.js +57 -0
  26. package/dist/runtime/meta/youtube-meta.d.ts +31 -0
  27. package/dist/runtime/meta/youtube-meta.d.ts.map +1 -0
  28. package/dist/runtime/meta/youtube-meta.js +19 -0
  29. package/dist/runtime/runtime-types/parse.d.ts +1 -1
  30. package/dist/runtime/runtime-types/shape-helpers/getTokenData.d.ts +1 -1
  31. package/dist/runtime/runtime-types/shape-helpers/getTokenName.d.ts +1 -1
  32. package/dist/runtime/runtime-types/shape-helpers/singletons.d.ts.map +1 -1
  33. package/dist/runtime/runtime-types/shape-helpers/singletons.js +1 -1
  34. package/dist/runtime/runtime-types/shape.d.ts +1 -1
  35. package/dist/runtime/tsconfig.tsbuildinfo +1 -1
  36. package/dist/runtime/type-conversion/asChars.d.ts +8 -0
  37. package/dist/runtime/type-conversion/asChars.d.ts.map +1 -0
  38. package/dist/runtime/type-conversion/asChars.js +8 -0
  39. package/dist/runtime/type-conversion/index.d.ts +2 -0
  40. package/dist/runtime/type-conversion/index.d.ts.map +1 -1
  41. package/dist/runtime/type-conversion/index.js +2 -0
  42. package/dist/runtime/type-conversion/ip6GroupExpansion.d.ts +14 -0
  43. package/dist/runtime/type-conversion/ip6GroupExpansion.d.ts.map +1 -0
  44. package/dist/runtime/type-conversion/ip6GroupExpansion.js +15 -0
  45. package/dist/runtime/type-guards/index.d.ts +4 -0
  46. package/dist/runtime/type-guards/index.d.ts.map +1 -1
  47. package/dist/runtime/type-guards/index.js +4 -0
  48. package/dist/runtime/type-guards/isHexadecimal.d.ts +8 -0
  49. package/dist/runtime/type-guards/isHexadecimal.d.ts.map +1 -0
  50. package/dist/runtime/type-guards/isHexadecimal.js +13 -0
  51. package/dist/runtime/type-guards/isUrl.d.ts +1 -3
  52. package/dist/runtime/type-guards/isUrl.d.ts.map +1 -1
  53. package/dist/runtime/type-guards/isUrl.js +2 -3
  54. package/dist/runtime/type-guards/network-tg.d.ts +48 -0
  55. package/dist/runtime/type-guards/network-tg.d.ts.map +1 -0
  56. package/dist/runtime/type-guards/network-tg.js +85 -0
  57. package/dist/runtime/type-guards/repos.d.ts +4 -4
  58. package/dist/runtime/type-guards/repos.d.ts.map +1 -1
  59. package/dist/runtime/type-guards/youtube.d.ts +42 -0
  60. package/dist/runtime/type-guards/youtube.d.ts.map +1 -0
  61. package/dist/runtime/type-guards/youtube.js +74 -0
  62. package/dist/types/boolean-logic/combinators/And.d.ts +1 -1
  63. package/dist/types/boolean-logic/combinators/And.d.ts.map +1 -1
  64. package/dist/types/boolean-logic/combinators/Not.d.ts +5 -6
  65. package/dist/types/boolean-logic/combinators/Not.d.ts.map +1 -1
  66. package/dist/types/boolean-logic/operators/Extends.d.ts +2 -1
  67. package/dist/types/boolean-logic/operators/Extends.d.ts.map +1 -1
  68. package/dist/types/boolean-logic/operators/IsBoolean.d.ts +2 -1
  69. package/dist/types/boolean-logic/operators/IsBoolean.d.ts.map +1 -1
  70. package/dist/types/boolean-logic/operators/IsCssHexadecimal.d.ts +9 -0
  71. package/dist/types/boolean-logic/operators/IsCssHexadecimal.d.ts.map +1 -0
  72. package/dist/types/boolean-logic/operators/IsEqual.d.ts +7 -1
  73. package/dist/types/boolean-logic/operators/IsEqual.d.ts.map +1 -1
  74. package/dist/types/boolean-logic/operators/IsLessThan.d.ts +13 -0
  75. package/dist/types/boolean-logic/operators/IsLessThan.d.ts.map +1 -0
  76. package/dist/types/boolean-logic/operators/IsLessThan.js +1 -0
  77. package/dist/types/boolean-logic/operators/IsNever.d.ts +2 -1
  78. package/dist/types/boolean-logic/operators/IsNever.d.ts.map +1 -1
  79. package/dist/types/boolean-logic/operators/IsNumber.d.ts +2 -2
  80. package/dist/types/boolean-logic/operators/IsNumber.d.ts.map +1 -1
  81. package/dist/types/boolean-logic/operators/IsString.d.ts +2 -2
  82. package/dist/types/boolean-logic/operators/IsString.d.ts.map +1 -1
  83. package/dist/types/boolean-logic/operators/IsUrl.d.ts +35 -0
  84. package/dist/types/boolean-logic/operators/IsUrl.d.ts.map +1 -0
  85. package/dist/types/boolean-logic/operators/IsUrl.js +1 -0
  86. package/dist/types/boolean-logic/operators/Network-operators.d.ts +71 -0
  87. package/dist/types/boolean-logic/operators/Network-operators.d.ts.map +1 -0
  88. package/dist/types/boolean-logic/operators/Network-operators.js +1 -0
  89. package/dist/types/boolean-logic/operators/YouTube-operators.d.ts +32 -0
  90. package/dist/types/boolean-logic/operators/YouTube-operators.d.ts.map +1 -0
  91. package/dist/types/boolean-logic/operators/YouTube-operators.js +1 -0
  92. package/dist/types/boolean-logic/operators/index.d.ts +4 -1
  93. package/dist/types/boolean-logic/operators/index.d.ts.map +1 -1
  94. package/dist/types/boolean-logic/operators/index.js +4 -1
  95. package/dist/types/string-literals/RetainUntil.d.ts +33 -0
  96. package/dist/types/string-literals/RetainUntil.d.ts.map +1 -0
  97. package/dist/types/string-literals/RetainUntil.js +1 -0
  98. package/dist/types/string-literals/Split.d.ts +3 -3
  99. package/dist/types/string-literals/Split.d.ts.map +1 -1
  100. package/dist/types/string-literals/StripAfter.d.ts +2 -2
  101. package/dist/types/string-literals/StripAfter.d.ts.map +1 -1
  102. package/dist/types/string-literals/StripBefore.d.ts +2 -2
  103. package/dist/types/string-literals/StripBefore.d.ts.map +1 -1
  104. package/dist/types/string-literals/StripUntil.d.ts +6 -0
  105. package/dist/types/string-literals/StripUntil.d.ts.map +1 -0
  106. package/dist/types/string-literals/StripUntil.js +1 -0
  107. package/dist/types/string-literals/character-sets/DomainName.d.ts +17 -18
  108. package/dist/types/string-literals/character-sets/DomainName.d.ts.map +1 -1
  109. package/dist/types/string-literals/character-sets/IpAddress.d.ts +28 -4
  110. package/dist/types/string-literals/character-sets/IpAddress.d.ts.map +1 -1
  111. package/dist/types/string-literals/character-sets/Optional.d.ts +14 -0
  112. package/dist/types/string-literals/character-sets/Optional.d.ts.map +1 -0
  113. package/dist/types/string-literals/character-sets/Optional.js +1 -0
  114. package/dist/types/string-literals/character-sets/Repos.d.ts.map +1 -1
  115. package/dist/types/string-literals/character-sets/Url.d.ts +85 -37
  116. package/dist/types/string-literals/character-sets/Url.d.ts.map +1 -1
  117. package/dist/types/string-literals/character-sets/Url.js +1 -0
  118. package/dist/types/string-literals/character-sets/YouTube.d.ts +127 -0
  119. package/dist/types/string-literals/character-sets/YouTube.d.ts.map +1 -0
  120. package/dist/types/string-literals/character-sets/YouTube.js +1 -0
  121. package/dist/types/string-literals/character-sets/index.d.ts +2 -0
  122. package/dist/types/string-literals/character-sets/index.d.ts.map +1 -1
  123. package/dist/types/string-literals/character-sets/index.js +2 -0
  124. package/dist/types/string-literals/index.d.ts +2 -0
  125. package/dist/types/string-literals/index.d.ts.map +1 -1
  126. package/dist/types/string-literals/index.js +2 -0
  127. package/dist/types/tsconfig.tsbuildinfo +1 -1
  128. package/package.json +1 -1
  129. package/dist/constants/Network.d.ts +0 -22
  130. package/dist/constants/Network.d.ts.map +0 -1
  131. package/dist/constants/Network.js +0 -21
  132. package/dist/types/boolean-logic/operators/IsHexadecimal.d.ts +0 -9
  133. package/dist/types/boolean-logic/operators/IsHexadecimal.d.ts.map +0 -1
  134. /package/dist/types/boolean-logic/operators/{IsHexadecimal.js → IsCssHexadecimal.js} +0 -0
@@ -1,4 +1,4 @@
1
- import { AlphaNumericChar, As, AsString, ExpandUnion, IsStringLiteral, IsTrue, StripAfter, StripBefore, StripChars, StripLeading, StripTrailing, TupleToUnion, DnsName, DomainName, Ip4Address, Mutable, Values, Flatten, EmptyObject } from "../../index";
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
2
  import { NETWORK_PROTOCOL_LOOKUP } from "../../../constants/index";
3
3
  export type NetworkProtocol = Exclude<TupleToUnion<Mutable<Flatten<Values<typeof NETWORK_PROTOCOL_LOOKUP>>>>, "">;
4
4
  /**
@@ -20,9 +20,22 @@ export type PortSpecifierOptions = {
20
20
  portRequirement?: "optional" | "required" | "not-allowed";
21
21
  ports?: number;
22
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>> : "" : "";
23
36
  type _Ports<TOpt extends PortSpecifierOptions> = TOpt["ports"] extends number ? `${TOpt["ports"]}` : `${number}`;
24
37
  /**
25
- * **PortSpecifier**`<TOpt>`
38
+ * **UrlPort**`<TOpt>`
26
39
  *
27
40
  * Produces a string literal for the _port_ designation of
28
41
  * many protocols. Basically just a `:${number}` and
@@ -33,49 +46,55 @@ type _Ports<TOpt extends PortSpecifierOptions> = TOpt["ports"] extends number ?
33
46
  * - `required`
34
47
  * - or `not-allowed`
35
48
  */
36
- export type PortSpecifier<TOpt extends PortSpecifierOptions = {
49
+ export type UrlPort<TOpt extends PortSpecifierOptions = {
37
50
  portRequirement: "not-allowed";
38
51
  ports: number;
39
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;
40
70
  export type ProtocolOptions = {
41
71
  /**
42
72
  * whether the protocol prefix should be optional
43
73
  * @default false
44
74
  */
45
- optional?: boolean;
75
+ protocolOptional?: boolean;
46
76
  /**
47
- * whether to allow for `http://` along with `https://`
48
- * @default false
77
+ * The Network Protocols to use.
49
78
  */
50
- allowInsecure?: boolean;
51
- protocol?: "http" | "ws" | "both";
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";
52
91
  };
53
- /**
54
- * **HttpProtocol**`<[TOpt]>`
55
- *
56
- * A utility which provides different ways of
57
- * requiring an **HTTP** based protocol string.
58
- *
59
- * - by default this only allows `https://`
60
- * - you can choose to make the protocol _optional_
61
- * or enable insure `http://` too.
62
- */
63
- export type WebsocketProtocol<TOpt extends ProtocolOptions = EmptyObject> = IsTrue<TOpt["allowInsecure"]> extends true ? IsTrue<TOpt["optional"]> extends true ? `wss://` | `ws://` | "" : `wss://` | `ws://` : IsTrue<TOpt["optional"]> extends true ? `wss://` | "" : `wss://`;
64
- /**
65
- * **HttpProtocol**`<[TOpt]>`
66
- *
67
- * A utility which provides different ways of
68
- * requiring an **HTTP** based protocol string.
69
- *
70
- * - by default this only allows `https://`
71
- * - you can choose to make the protocol _optional_
72
- * or enable insure `http://` too.
73
- */
74
- export type HttpProtocol<TOpt extends ProtocolOptions = EmptyObject> = IsTrue<TOpt["allowInsecure"]> extends true ? IsTrue<TOpt["optional"]> extends true ? `https://` | `http://` | "" : `https://` | `http://` : IsTrue<TOpt["optional"]> extends true ? `https://` | "" : `https://`;
75
92
  /**
76
93
  * **RemoveHttpProtocol**`<T>`
77
94
  *
78
95
  * Removes both `http://` and `https://` prefixes to a string.
96
+ *
97
+ * **Related:** `RemoveNetworkProtocol`
79
98
  */
80
99
  export type RemoveHttpProtocol<T extends string> = T extends `http://${infer Insecure}` ? Insecure : T extends `https://${infer Secure}` ? Secure : T;
81
100
  /**
@@ -88,6 +107,7 @@ export type RemoveHttpProtocol<T extends string> = T extends `http://${infer Ins
88
107
  * `TProtocol`
89
108
  */
90
109
  export type RemoveNetworkProtocol<TContent extends string, TProtocol extends NetworkProtocol = NetworkProtocol> = TContent extends `${NetworkProtocolPrefix<TProtocol>}${infer Rest}` ? Rest : TContent;
110
+ type UrlPathChars = AlphaNumericChar | "_" | "@" | "." | "-";
91
111
  /**
92
112
  * **UrlPath**`<T>`
93
113
  *
@@ -101,7 +121,7 @@ export type RemoveNetworkProtocol<TContent extends string, TProtocol extends Net
101
121
  * pass in a string to `T` and it will be validated and return
102
122
  * `never` when an invalid character is used.
103
123
  */
104
- export type UrlPath<T extends string | null = null> = T extends null ? "" | `/${AlphaNumericChar | "_"}${string}` : T extends string ? IsStringLiteral<T> extends true ? T extends `${string}/` ? never : StripChars<T, AlphaNumericChar | "/" | "_" | "." | "-"> extends "" ? T : never : never : never;
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;
105
125
  /**
106
126
  * **GetUrlSource**`<T>`
107
127
  *
@@ -110,8 +130,17 @@ export type UrlPath<T extends string | null = null> = T extends null ? "" | `/${
110
130
  * - if _not_ a string literal then just proxies through `string`
111
131
  * - if not able to find it then it returns the literal ''
112
132
  */
113
- export type GetUrlSource<T extends string> = IsStringLiteral<T> extends true ? RemoveNetworkProtocol<T> extends `${infer Domain extends DnsName | Ip4Address}${"" | `/${string}`}` ? StripAfter<Domain, "/"> : "" : string;
114
- type _GetUrlPath<T extends string> = StripAfter<As<StripBefore<RemoveNetworkProtocol<T>, "/">, string>, "?"> extends string ? StripAfter<As<StripBefore<RemoveNetworkProtocol<T>, "/">, string>, "?"> : never;
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;
115
144
  /**
116
145
  * **GetUrlPath**`<T>`
117
146
  *
@@ -121,7 +150,25 @@ type _GetUrlPath<T extends string> = StripAfter<As<StripBefore<RemoveNetworkProt
121
150
  * - removes the domain name or IP address
122
151
  * - removes any trailing query parameters
123
152
  */
124
- export type GetUrlPath<T extends string> = IsStringLiteral<T> extends true ? RemoveNetworkProtocol<T> extends `${string}/${string}` ? _GetUrlPath<RemoveNetworkProtocol<T>> extends "" ? "" : `/${_GetUrlPath<RemoveNetworkProtocol<T>>}` : "" : string;
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}` | "";
125
172
  type RelativeStart = `../` | `./`;
126
173
  /**
127
174
  * **RelativeUrl**
@@ -148,8 +195,9 @@ export type Uri<T extends NetworkProtocol = NetworkProtocol> = `${T}://${string}
148
195
  */
149
196
  export type AddUrlPathSegment<TExisting extends string, TAdd extends string> = TExisting extends `${string}/` ? `${TExisting}${StripTrailing<StripLeading<TAdd, "/">, "/">}` : `${TExisting}/${StripTrailing<StripLeading<TAdd, "/">, "/">}`;
150
197
  type _Path<T extends string> = GetUrlPath<T> extends UrlPath ? GetUrlPath<T> : never;
151
- type _UrlsFromProtocol<TContent extends string, TProto extends WebsocketProtocol<TOpt> | HttpProtocol<TOpt>, TOpt extends ProtocolOptions & PortSpecifierOptions> = `${TProto}${GetUrlSource<TContent>}${PortSpecifier<TOpt>}${AddUrlPathSegment<_Path<TContent>, `${string}`>}` | `${TProto}${GetUrlSource<TContent>}${PortSpecifier<TOpt>}${_Path<TContent>}`;
152
- type _UrlsFrom<T extends string, TOpt extends ProtocolOptions & PortSpecifierOptions = EmptyObject> = TOpt["protocol"] extends "ws" ? _UrlsFromProtocol<T, WebsocketProtocol<TOpt>, TOpt> : TOpt["protocol"] extends "both" ? _UrlsFromProtocol<T, WebsocketProtocol<TOpt>, TOpt> | _UrlsFromProtocol<T, HttpProtocol<TOpt>, TOpt> : _UrlsFromProtocol<T, HttpProtocol<TOpt>, TOpt>;
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>}`;
153
201
  /**
154
202
  * **UrlsFrom**`<T, [TOpt]>`
155
203
  *
@@ -161,7 +209,7 @@ type _UrlsFrom<T extends string, TOpt extends ProtocolOptions & PortSpecifierOpt
161
209
  * - you can also switch the protocol between `http`,`ws`, or `both`
162
210
  * - the default protocol is `http`
163
211
  */
164
- export type UrlsFrom<T extends string | readonly string[], TOpt extends ProtocolOptions & PortSpecifierOptions = EmptyObject> = T extends string ? ExpandUnion<_UrlsFrom<T, TOpt>> : T extends readonly string[] ? TupleToUnion<{
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<{
165
213
  [K in keyof T]: IsStringLiteral<T[K]> extends true ? ExpandUnion<_UrlsFrom<AsString<T[K]>, TOpt>> : never;
166
214
  }> : never;
167
215
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Url.d.ts","sourceRoot":"","sources":["../../../../src/types/string-literals/character-sets/Url.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Url.d.ts","sourceRoot":"","sources":["../../../../src/types/string-literals/character-sets/Url.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
+ ;
1
2
  export {};
@@ -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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"}
@@ -25,6 +25,8 @@ export * from "./CSS";
25
25
  export * from "./InlineSvg";
26
26
  export * from "./Repos";
27
27
  export * from "./Variable";
28
+ export * from "./Optional";
29
+ export * from "./YouTube";
28
30
  export * from "./brackets/index";
29
31
  export * from "./quotation-marks/index";
30
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;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAE3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,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"}
@@ -25,5 +25,7 @@ export * from "./CSS.js";
25
25
  export * from "./InlineSvg.js";
26
26
  export * from "./Repos.js";
27
27
  export * from "./Variable.js";
28
+ export * from "./Optional.js";
29
+ export * from "./YouTube.js";
28
30
  export * from "./brackets/index.js";
29
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;AAE3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,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";