inferred-types 0.55.15 → 0.55.17

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.
@@ -8129,6 +8129,160 @@ type FrequencyUom = {
8129
8129
  */
8130
8130
  type Frequency = `${number}${OptSpace}${FrequencyUom}`;
8131
8131
 
8132
+ /**
8133
+ * **MetricCategory**
8134
+ *
8135
+ * A valid "category" for a `Metric` or `Uom`.
8136
+ *
8137
+ * **Related:** `Uom`, `Metric`
8138
+ */
8139
+ type MetricCategory = "Acceleration" | "Area" | "Current" | "Distance" | "Frequency" | "Luminosity" | "Mass" | "Power" | "Pressure" | "Resistance" | "Speed" | "Temperature" | "Time" | "Voltage" | "Volume";
8140
+ type UnitsByCategory<T extends string, M extends readonly [string, string][], R extends string = never> = [] extends M ? R : UnitsByCategory<T, AfterFirst<M>, T extends First<M>[0] ? R | First<M>[1] : R>;
8141
+ /**
8142
+ * **Uom**`<[T]>`
8143
+ *
8144
+ * A _unit of measure_ for a **metric**.
8145
+ *
8146
+ * - you may filter down to only units of a certain category(s) of `MetricCategory`
8147
+ * by adjusting `T`.
8148
+ *
8149
+ * **Related:** `Metric`, `MetricCategory`, `AreaUom`, `SpeedUom`, ...
8150
+ */
8151
+ type Uom<T extends MetricCategory = MetricCategory> = UnitsByCategory<T, [
8152
+ [
8153
+ "Acceleration",
8154
+ AccelerationUom
8155
+ ],
8156
+ [
8157
+ "Area",
8158
+ AreaUom
8159
+ ],
8160
+ [
8161
+ "Current",
8162
+ CurrentUom
8163
+ ],
8164
+ [
8165
+ "Distance",
8166
+ DistanceUom
8167
+ ],
8168
+ [
8169
+ "Frequency",
8170
+ FrequencyUom
8171
+ ],
8172
+ [
8173
+ "Luminosity",
8174
+ LuminosityUom
8175
+ ],
8176
+ [
8177
+ "Mass",
8178
+ MassUom
8179
+ ],
8180
+ [
8181
+ "Power",
8182
+ PowerUom
8183
+ ],
8184
+ [
8185
+ "Pressure",
8186
+ PressureUom
8187
+ ],
8188
+ [
8189
+ "Resistance",
8190
+ ResistanceUom
8191
+ ],
8192
+ [
8193
+ "Speed",
8194
+ SpeedUom
8195
+ ],
8196
+ [
8197
+ "Temperature",
8198
+ TemperatureUom
8199
+ ],
8200
+ [
8201
+ "Time",
8202
+ TimeUom
8203
+ ],
8204
+ [
8205
+ "Volume",
8206
+ VoltageUom
8207
+ ],
8208
+ [
8209
+ "Voltage",
8210
+ VolumeUom
8211
+ ]
8212
+ ]>;
8213
+ /**
8214
+ * **Metric**`<T>`
8215
+ *
8216
+ * A measurement which includes a numeric value plus the Unit of Measure (UOM).
8217
+ *
8218
+ * - you may filter down to only metrics of a certain category(s) of `MetricCategory`
8219
+ * by adjusting `T`.
8220
+ *
8221
+ * **Related:** `Uom`, `MetricCategory`
8222
+ */
8223
+ type Metric<T extends MetricCategory = MetricCategory> = UnitsByCategory<T, [
8224
+ [
8225
+ "Acceleration",
8226
+ Acceleration
8227
+ ],
8228
+ [
8229
+ "Area",
8230
+ Area
8231
+ ],
8232
+ [
8233
+ "Current",
8234
+ Current
8235
+ ],
8236
+ [
8237
+ "Distance",
8238
+ Distance
8239
+ ],
8240
+ [
8241
+ "Frequency",
8242
+ Frequency
8243
+ ],
8244
+ [
8245
+ "Luminosity",
8246
+ Luminosity
8247
+ ],
8248
+ [
8249
+ "Mass",
8250
+ Mass
8251
+ ],
8252
+ [
8253
+ "Power",
8254
+ Power
8255
+ ],
8256
+ [
8257
+ "Pressure",
8258
+ Pressure
8259
+ ],
8260
+ [
8261
+ "Resistance",
8262
+ Resistance
8263
+ ],
8264
+ [
8265
+ "Speed",
8266
+ Speed
8267
+ ],
8268
+ [
8269
+ "Temperature",
8270
+ Temperature
8271
+ ],
8272
+ [
8273
+ "TimeMetric",
8274
+ TimeMetric
8275
+ ],
8276
+ [
8277
+ "Voltage",
8278
+ Voltage
8279
+ ],
8280
+ [
8281
+ "Volume",
8282
+ Volume
8283
+ ]
8284
+ ]>;
8285
+
8132
8286
  type LuminosityMetricsLookup = typeof LUMINOSITY_METRICS_LOOKUP;
8133
8287
  /**
8134
8288
  * Unit of measure for metrics associated with **Luminosity**.
@@ -8297,22 +8451,6 @@ type VolumeUom = {
8297
8451
  */
8298
8452
  type Volume = `${number}${OptSpace}${VolumeUom}`;
8299
8453
 
8300
- /**
8301
- * A measurement which includes a numeric value plus the Unit of Measure (UOM).
8302
- *
8303
- * **Related:** `Uom`
8304
- */
8305
- type Metric = Acceleration | Area | Current | Distance | Frequency | Luminosity | Mass | Power | Pressure | Resistance | Speed | Temperature | TimeMetric | Voltage | Volume;
8306
- type MetricCategory = "Acceleration" | "Area" | "Current" | "Distance" | "Frequency" | "Luminosity" | "Mass" | "Power" | "Pressure" | "Resistance" | "Speed" | "Temperature" | "Time" | "Voltage" | "Volume";
8307
- /**
8308
- * **Uom**
8309
- *
8310
- * A _unit of measure_ for a **metric**.
8311
- *
8312
- * **Related:** `Metric`, `AreaUom`, `SpeedUom`,`MassUom`, `DistanceUom`, ...
8313
- */
8314
- type Uom = AccelerationUom | AreaUom | CurrentUom | DistanceUom | FrequencyUom | LuminosityUom | MassUom | PowerUom | PressureUom | ResistanceUom | SpeedUom | TemperatureUom | TimeUom | VoltageUom | VolumeUom;
8315
-
8316
8454
  /**
8317
8455
  * **TypeRequired**
8318
8456
  *
@@ -8843,33 +8981,6 @@ type JsonValues<T extends Tuple> = {
8843
8981
  [K in keyof T]: JsonValue<T[K]>;
8844
8982
  };
8845
8983
 
8846
- /**
8847
- * **Replace**`<TText,TFind,TReplace>`
8848
- *
8849
- * Type utility which takes a string `TText` and finds the first instance of
8850
- * `TFind` and replaces it with `TReplace`.
8851
- *
8852
- * ```ts
8853
- * const fooy = "fooy";
8854
- * // "Foo"
8855
- * type Foo = Replace<typeof fooy, "y", "">;
8856
- * ```
8857
- *
8858
- * **Related:** `ReplaceAll`
8859
- */
8860
- type Replace<TText extends string, TFind extends string, TReplace extends string> = TText extends "" ? If<IsEqual<TFind, "">, TReplace, ""> : TFind extends "" ? TText : TText extends `${infer F}${TFind}${infer E}` ? `${F}${TReplace}${E}` : TText;
8861
-
8862
- /**
8863
- * Trims off whitespace on left of string
8864
- * ```ts
8865
- * // "foobar "
8866
- * type T = TrimLeft<"\n\t foobar ">;
8867
- * // string
8868
- * type T = TrimLeft<string>;
8869
- * ```
8870
- */
8871
- type TrimLeft<S extends string> = string extends S ? string : S extends `${Whitespace}${infer Right}` ? TrimLeft<Right> : S;
8872
-
8873
8984
  /**
8874
8985
  * Provides the _left_ whitespace of a string
8875
8986
  * ```ts
@@ -8995,6 +9106,22 @@ type RemoveIndex<T extends Record<any, any>> = {
8995
9106
  [P in keyof T as string extends P ? never : number extends P ? never : symbol extends P ? never : P]: T[P];
8996
9107
  };
8997
9108
 
9109
+ /**
9110
+ * **Replace**`<TText,TFind,TReplace>`
9111
+ *
9112
+ * Type utility which takes a string `TText` and finds the first instance of
9113
+ * `TFind` and replaces it with `TReplace`.
9114
+ *
9115
+ * ```ts
9116
+ * const fooy = "fooy";
9117
+ * // "Foo"
9118
+ * type Foo = Replace<typeof fooy, "y", "">;
9119
+ * ```
9120
+ *
9121
+ * **Related:** `ReplaceAll`
9122
+ */
9123
+ type Replace<TText extends string, TFind extends string, TReplace extends string> = TText extends "" ? If<IsEqual<TFind, "">, TReplace, ""> : TFind extends "" ? TText : TText extends `${infer F}${TFind}${infer E}` ? `${F}${TReplace}${E}` : TText;
9124
+
8998
9125
  type Process$J<TText extends string, TFind extends string, TReplace extends string> = Replace<TText, TFind, TReplace> extends `${string}${TFind}${string}` ? Process$J<Replace<TText, TFind, TReplace>, TFind, TReplace> : Replace<TText, TFind, TReplace>;
8999
9126
  type Iterate$2<TText extends string, TFind extends readonly string[], TReplace extends string> = [] extends TFind ? TText : Iterate$2<Process$J<TText, First<TFind>, TReplace>, AfterFirst<TFind>, TReplace>;
9000
9127
  type Singular<TText extends string, TFind extends string, TReplace extends string> = IsStringLiteral<TText> extends true ? IsStringLiteral<TFind> extends true ? IsUnion<TFind> extends true ? UnionToTuple$1<TFind> extends readonly string[] ? Iterate$2<TText, UnionToTuple$1<TFind>, TReplace> : never : Process$J<TText, TFind, TReplace> : string : string;
@@ -9033,17 +9160,6 @@ type Process$I<TChars extends readonly string[], TRetain extends string> = Remov
9033
9160
  */
9034
9161
  type RetainChars<TContent extends string, TRetain extends string> = Or<[IsWideType<TContent>, IsWideType<TRetain>]> extends true ? string : Process$I<Chars<TContent>, TRetain> extends readonly string[] ? Join<Process$I<Chars<TContent>, TRetain>> : never;
9035
9162
 
9036
- /**
9037
- * Trims off whitespace on left of string
9038
- * ```ts
9039
- * // "\n foobar"
9040
- * type T = TrimRight<"\n foobar \t">;
9041
- * // string
9042
- * type T = TrimRight<string>;
9043
- * ```
9044
- */
9045
- type TrimRight<S extends string> = string extends S ? string : S extends `${infer Right}${Whitespace}` ? TrimRight<Right> : S;
9046
-
9047
9163
  /**
9048
9164
  * Provides the _left_ whitespace of a string
9049
9165
  * ```ts
@@ -9122,6 +9238,28 @@ type Process$G<S extends string> = string extends S ? string : S extends `${Whit
9122
9238
  */
9123
9239
  type Trim<S extends string> = Process$G<S> extends string ? Process$G<S> : never;
9124
9240
 
9241
+ /**
9242
+ * Trims off whitespace on left of string
9243
+ * ```ts
9244
+ * // "foobar "
9245
+ * type T = TrimLeft<"\n\t foobar ">;
9246
+ * // string
9247
+ * type T = TrimLeft<string>;
9248
+ * ```
9249
+ */
9250
+ type TrimLeft<S extends string> = string extends S ? string : S extends `${Whitespace}${infer Right}` ? TrimLeft<Right> : S;
9251
+
9252
+ /**
9253
+ * Trims off whitespace on left of string
9254
+ * ```ts
9255
+ * // "\n foobar"
9256
+ * type T = TrimRight<"\n foobar \t">;
9257
+ * // string
9258
+ * type T = TrimRight<string>;
9259
+ * ```
9260
+ */
9261
+ type TrimRight<S extends string> = string extends S ? string : S extends `${infer Right}${Whitespace}` ? TrimRight<Right> : S;
9262
+
9125
9263
  /**
9126
9264
  * **ElementOf**`<T>`
9127
9265
  *
@@ -14849,7 +14987,7 @@ declare function isVariable(val: unknown): val is Variable;
14849
14987
 
14850
14988
  declare function isAreaMetric(val: unknown): val is Area;
14851
14989
  declare function isLuminosityMetric(val: unknown): val is Luminosity;
14852
- declare function isResistance(val: unknown): val is Resistance;
14990
+ declare function isResistanceMetric(val: unknown): val is Resistance;
14853
14991
  declare function isCurrentMetric(val: unknown): val is Current;
14854
14992
  declare function isVoltageMetric(val: unknown): val is Voltage;
14855
14993
  declare function isFrequencyMetric(val: unknown): val is Frequency;
@@ -14868,6 +15006,19 @@ declare function isDistanceMetric(val: unknown): val is Distance;
14868
15006
  * of measure).
14869
15007
  */
14870
15008
  declare function isMetric(val: unknown): val is Metric;
15009
+ type MetricTypeGuard<TCat extends readonly MetricCategory[]> = ((val: unknown) => boolean) & {
15010
+ categories: TCat;
15011
+ kind: "MetricTypeGuard";
15012
+ };
15013
+ /**
15014
+ * **isMetricCategory**`(...categories) => (val) => val is Uom<T>`
15015
+ *
15016
+ * A higher order type guard which validates that a value is a metric
15017
+ * with the specified category(s) UOM's.
15018
+ *
15019
+ * **Related:** `isMetric()`, `isAreaMetric()`, `isSpeedMetric()`, ...
15020
+ */
15021
+ declare function isMetricCategory<TCat extends readonly [MetricCategory, ...MetricCategory[]]>(...categories: TCat): MetricTypeGuard<TCat>;
14871
15022
 
14872
15023
  declare function isAreaUom(val: unknown): val is AreaUom;
14873
15024
  declare function isLuminosityUom(val: unknown): val is LuminosityUom;
@@ -14888,8 +15039,25 @@ declare function isDistanceUom(val: unknown): val is DistanceUom;
14888
15039
  /**
14889
15040
  * Type guard which validates the passed in `val` is a `Uom` (unit
14890
15041
  * of measure).
15042
+ *
15043
+ * **Related:**
15044
+ * - `isUomCategory(c)(v)`
15045
+ * - `isSpeedUom(v)`, `isMassUom(v)`, ...
14891
15046
  */
14892
15047
  declare function isUom(val: unknown): val is Uom;
15048
+ type UomTypeGuard<TCat extends readonly MetricCategory[]> = ((val: unknown) => boolean) & {
15049
+ categories: TCat;
15050
+ kind: "UomTypeGuard";
15051
+ };
15052
+ /**
15053
+ * **isUomCategory**`(...categories) => (val) => val is Uom<T>`
15054
+ *
15055
+ * A higher order type guard which validates that a value is of
15056
+ * the specified metric category or categories.
15057
+ *
15058
+ * **Related:** `isUom()`, `isAreaUom()`, `isSpeedUom()`, ...
15059
+ */
15060
+ declare function isUomCategory<TCat extends readonly [MetricCategory, ...MetricCategory[]]>(...categories: TCat): UomTypeGuard<TCat>;
14893
15061
 
14894
15062
  /**
14895
15063
  * **isIp4Address**`(val)`
@@ -15637,4 +15805,4 @@ declare function isVueRef(val: unknown): val is VueRef;
15637
15805
  */
15638
15806
  declare function asVueRef<T extends Narrowable>(value: T): VueRef<T>;
15639
15807
 
15640
- export { type AsClassSelector, type AsList, type BoxValue, type BoxedFnParams, type ConfigRestApi, type CssFromDefnOption, type CssKeyframeCallback, type CssSelectorOptions, type CsvFormat, type DictionaryWithValueFilter, type DictionaryWithoutValueFilter, type DoesExtendTypeguard, type EndingWithTypeGuard, type EndpointGenerator, type EqualTo, type Finder, type FnParam, type FnParams, type GenParam, type GenParams, type GetEachOptions, type GetInference, type GetInferenceProps, type GetOptions, type Joiner, type KeyframeApi, type Mapper, type Rtn, ShapeApiImplementation, type SingletonClosure, type StartingWithTypeGuard, type StripSurroundConfigured, type SurroundWith, type ToKeyValueSort, type TokenContainerClosure, type TokenFunctionClosure, type TokenSetClosure, type TypeOfTypeGuard, type Unbox, type UndefinedArrayIsUnknown, type UnionClosure, type UrlMeta, type YouTubeMeta, addFnToProps, addPropsToFn, and, asApi, asArray, asChars, asDate, asEscapeFunction, asIsoDate, asOptionalParamFunction, asPhoneFormat, asRecord, asString, asStringLiteral, asType, asTypeToken, asVueRef, box, boxDictionaryValues, capitalize, cardType, choices, createConverter, createCssKeyframe, createCssSelector, createErrorCondition, createFifoQueue, createFixedLengthArray, createFnWithProps, createFnWithPropsExplicit, createLifoQueue, createMapper, createObjectMap, createTypeToken, cssColor, cssFromDefinition, csv, defineCss, defineObj, defineObject, defineObjectApi, defineTuple, doesExtend, endsWith, ensureLeading, ensureSurround, ensureTrailing, entries, errCondition, filter, filterEmpty, filterUndefined, find, fnMeta, fromDefineObject, fromKeyValue, get, getDaysBetween, getEach, getPhoneCountryCode, getTailwindModifiers, getToday, getTokenKind, getTomorrow, getTypeSubtype, getUrlBase, getUrlDefaultPort, getUrlDynamics, getUrlPath, getUrlPort, getUrlProtocol, getUrlQueryParams, getUrlSource, getWeekNumber, getYesterday, getYouTubePageType, handleDoneFn, hasCountryCode, hasDefaultValue, hasIndexOf, hasKeys, hasOverlappingKeys, hasProtocol, hasProtocolPrefix, hasUrlPort, hasUrlQueryParameter, hasWhiteSpace, idLiteral, idTypeGuard, identity, ifArray, ifArrayPartial, ifBoolean, ifChar, ifContainer, ifDefined, ifFalse, ifFunction, ifHasKey, ifLength, ifLowercaseChar, ifNotNull, ifNull, ifNumber, ifObject, ifSameType, ifScalar, ifString, ifTrue, ifUndefined, ifUppercaseChar, indexOf, infer, intersect, intersection, ip6GroupExpansion, ip6Prefix, isAccelerationMetric, isAccelerationUom, isAlpha, isAmazonUrl, isAmericanExpress, isApi, isApiSurface, isAppleUrl, isAreaMetric, isAreaUom, isArray, isArrayToken, isAtomicKind, isAtomicToken, isAustralianNewsUrl, isBelgiumNewsUrl, isBestBuyUrl, isBitbucketUrl, isBoolean, isBooleanLike, isBox, isCanadianNewsUrl, isChineseNewsUrl, isCodeCommitUrl, isConstant, isContainer, isContainerToken, isCostCoUrl, isCountryAbbrev, isCountryCode2, isCountryCode3, isCountryName, isCreditCard, isCssAspectRatio, isCsv, isCurrentMetric, isCurrentUom, isCvsUrl, isDanishNewsUrl, isDate, isDefineObject, isDefined, isDellUrl, isDistanceMetric, isDistanceUom, isDomainName, isDoneFn, isDutchNewsUrl, isEbayUrl, isEmail, isEmpty, isEnergyMetric, isEnergyUom, isEqual, isErrorCondition, isEscapeFunction, isEtsyUrl, isFalse, isFalsy, isFnBasedKind, isFnBasedToken, isFnWithParams, isFrenchNewsUrl, isFrequencyMetric, isFrequencyUom, isFunction, isGermanNewsUrl, isGithubIssueUrl, isGithubIssuesListUrl, isGithubOrgUrl, isGithubProjectUrl, isGithubProjectsListUrl, isGithubReleaseTagUrl, isGithubReleasesListUrl, isGithubRepoReleaseTagUrl, isGithubRepoReleasesUrl, isGithubRepoUrl, isGithubUrl, isHexadecimal, isHmUrl, isHomeDepotUrl, isHtmlElement, isIkeaUrl, isIndexable, isIndianNewsUrl, isInlineSvg, isIp4Address, isIp6Address, isIpAddress, isIso3166Alpha2, isIso3166Alpha3, isIso3166CountryCode, isIso3166CountryName, isIsoDate, isIsoDateTime, isIsoExplicitDate, isIsoExplicitTime, isIsoImplicitDate, isIsoImplicitTime, isIsoTime, isIsoYear, isItalianNewsUrl, isJapaneseNewsUrl, isKrogersUrl, isLeapYear, isLength, isLikeRegExp, isLowesUrl, isLuminosityMetric, isLuminosityUom, isLuxonDateTime, isMacysUrl, isMap, isMapToken, isMassMetric, isMassUom, isMastercard, isMetric, isMexicanNewsUrl, isMoment, isNarrowableObject, isNever, isNewsUrl, isNikeUrl, isNorwegianNewsUrl, isNotEmpty, isNotNull, isNothing, isNull, isNumber, isNumberLike, isNumericArray, isNumericString, isObject, isObjectToken, isOptionalParamFunction, isPhoneNumber, isPowerMetric, isPowerUom, isPressureMetric, isPressureUom, isProtocol, isProtocolPrefix, isReadonlyArray, isRecordToken, isRef, isRegExp, isRepoSource, isRepoUrl, isResistance, isResistanceUom, isRetailUrl, isSameTypeOf, isScalar, isSemanticVersion, isSet, isSetBasedKind, isSetBasedToken, isSetContainer, isSetToken, isShape, isShapeCallback, isSimpleContainerToken, isSimpleContainerTokenTuple, isSimpleScalarToken, isSimpleScalarTokenTuple, isSimpleToken, isSimpleTokenTuple, isSingletonKind, isSingletonToken, isSocialMediaProfileUrl, isSocialMediaUrl, isSouthKoreanNewsUrl, isSpanishNewsUrl, isSpecificConstant, isSpeedMetric, isSpeedUom, isString, isStringArray, isSwissNewsUrl, isSymbol, isTailwindColor, isTailwindColorClass, isTailwindColorName, isTailwindColorTarget, isTailwindColorWithLuminosity, isTailwindColorWithLuminosityAndOpacity, isTailwindModifier, isTargetUrl, isTemperatureMetric, isTemperatureUom, isThenable, isThisMonth, isThisWeek, isThisYear, isTimeMetric, isTimeUom, isToday, isTomorrow, isTrimable, isTrue, isTruthy, isTuple, isTupleToken, isTurkishNewsUrl, isTypeOf, isTypeSubtype, isTypeToken, isTypeTokenKind, isTypeTuple, isUkNewsUrl, isUndefined, isUnset, isUom, isUri, isUrl, isUrlPath, isUrlSource, isUsNewsUrl, isUsPhoneNumber, isUsStateAbbreviation, isUsStateName, isVariable, isVisa, isVisaMastercard, isVoltageMetric, isVoltageUom, isVolumeMetric, isVolumeUom, isVueRef, isWalgreensUrl, isWalmartUrl, isWayfairUrl, isWholeFoodsUrl, isYesterday, isYouTubeCreatorUrl, isYouTubeFeedHistoryUrl, isYouTubeFeedUrl, isYouTubePlaylistUrl, isYouTubePlaylistsUrl, isYouTubeShareUrl, isYouTubeSubscriptionsUrl, isYouTubeTrendingUrl, isYouTubeUrl, isYouTubeVideoUrl, isYouTubeVideosInPlaylist, isZaraUrl, isZipCode, isZipCode5, isZipPlus4, joinWith, jsonValue, jsonValues, keysOf, kindLiteral, last, list, literal, logicalReturns, lookupCountryAlpha2, lookupCountryAlpha3, lookupCountryCode, lookupCountryName, lowercase, maybePhoneNumber, mergeObjects, mergeScalars, mergeTuples, nameLiteral, narrow, narrowObjectTo, narrowObjectToType, never, objectToApi, objectValues, omit, optional, optionalOrNull, or, orNull, pathJoin, pluralize, removePhoneCountryCode, removeTailwindModifiers, removeUrlProtocol, result, retain, retainAfter, retainAfterInclusive, retainChars, retainUntil, retainUntilInclusive, retainWhile, reverse, rightWhitespace, shape, sharedKeys, shift, simpleContainerToken, simpleContainerTokenToTypeToken, simpleContainerType, simpleScalarToken, simpleScalarTokenToTypeToken, simpleScalarType, simpleToken, simpleType, simpleUnionTokenToTypeToken, slice, split, startsWith, stripAfter, stripBefore, stripChars, stripLeading, stripParenthesis, stripSurround, stripTrailing, stripUntil, stripWhile, surround, takeNumericCharacters, takeProp, toCamelCase, toKebabCase, toKeyValue, toNumber, toNumericArray, toPascalCase, toSnakeCase, toString, toUppercase, trim, trimEnd, trimLeft, trimRight, trimStart, truncate, tuple, twColor, unbox, uncapitalize, union, unionize, unique, uniqueKeys, unset, uppercase, urlMeta, valuesOf, widen, withDefaults, withKeys, withValue, withoutKeys, withoutValue, wrapFn, youtubeEmbed, youtubeMeta };
15808
+ export { type AsClassSelector, type AsList, type BoxValue, type BoxedFnParams, type ConfigRestApi, type CssFromDefnOption, type CssKeyframeCallback, type CssSelectorOptions, type CsvFormat, type DictionaryWithValueFilter, type DictionaryWithoutValueFilter, type DoesExtendTypeguard, type EndingWithTypeGuard, type EndpointGenerator, type EqualTo, type Finder, type FnParam, type FnParams, type GenParam, type GenParams, type GetEachOptions, type GetInference, type GetInferenceProps, type GetOptions, type Joiner, type KeyframeApi, type Mapper, type MetricTypeGuard, type Rtn, ShapeApiImplementation, type SingletonClosure, type StartingWithTypeGuard, type StripSurroundConfigured, type SurroundWith, type ToKeyValueSort, type TokenContainerClosure, type TokenFunctionClosure, type TokenSetClosure, type TypeOfTypeGuard, type Unbox, type UndefinedArrayIsUnknown, type UnionClosure, type UomTypeGuard, type UrlMeta, type YouTubeMeta, addFnToProps, addPropsToFn, and, asApi, asArray, asChars, asDate, asEscapeFunction, asIsoDate, asOptionalParamFunction, asPhoneFormat, asRecord, asString, asStringLiteral, asType, asTypeToken, asVueRef, box, boxDictionaryValues, capitalize, cardType, choices, createConverter, createCssKeyframe, createCssSelector, createErrorCondition, createFifoQueue, createFixedLengthArray, createFnWithProps, createFnWithPropsExplicit, createLifoQueue, createMapper, createObjectMap, createTypeToken, cssColor, cssFromDefinition, csv, defineCss, defineObj, defineObject, defineObjectApi, defineTuple, doesExtend, endsWith, ensureLeading, ensureSurround, ensureTrailing, entries, errCondition, filter, filterEmpty, filterUndefined, find, fnMeta, fromDefineObject, fromKeyValue, get, getDaysBetween, getEach, getPhoneCountryCode, getTailwindModifiers, getToday, getTokenKind, getTomorrow, getTypeSubtype, getUrlBase, getUrlDefaultPort, getUrlDynamics, getUrlPath, getUrlPort, getUrlProtocol, getUrlQueryParams, getUrlSource, getWeekNumber, getYesterday, getYouTubePageType, handleDoneFn, hasCountryCode, hasDefaultValue, hasIndexOf, hasKeys, hasOverlappingKeys, hasProtocol, hasProtocolPrefix, hasUrlPort, hasUrlQueryParameter, hasWhiteSpace, idLiteral, idTypeGuard, identity, ifArray, ifArrayPartial, ifBoolean, ifChar, ifContainer, ifDefined, ifFalse, ifFunction, ifHasKey, ifLength, ifLowercaseChar, ifNotNull, ifNull, ifNumber, ifObject, ifSameType, ifScalar, ifString, ifTrue, ifUndefined, ifUppercaseChar, indexOf, infer, intersect, intersection, ip6GroupExpansion, ip6Prefix, isAccelerationMetric, isAccelerationUom, isAlpha, isAmazonUrl, isAmericanExpress, isApi, isApiSurface, isAppleUrl, isAreaMetric, isAreaUom, isArray, isArrayToken, isAtomicKind, isAtomicToken, isAustralianNewsUrl, isBelgiumNewsUrl, isBestBuyUrl, isBitbucketUrl, isBoolean, isBooleanLike, isBox, isCanadianNewsUrl, isChineseNewsUrl, isCodeCommitUrl, isConstant, isContainer, isContainerToken, isCostCoUrl, isCountryAbbrev, isCountryCode2, isCountryCode3, isCountryName, isCreditCard, isCssAspectRatio, isCsv, isCurrentMetric, isCurrentUom, isCvsUrl, isDanishNewsUrl, isDate, isDefineObject, isDefined, isDellUrl, isDistanceMetric, isDistanceUom, isDomainName, isDoneFn, isDutchNewsUrl, isEbayUrl, isEmail, isEmpty, isEnergyMetric, isEnergyUom, isEqual, isErrorCondition, isEscapeFunction, isEtsyUrl, isFalse, isFalsy, isFnBasedKind, isFnBasedToken, isFnWithParams, isFrenchNewsUrl, isFrequencyMetric, isFrequencyUom, isFunction, isGermanNewsUrl, isGithubIssueUrl, isGithubIssuesListUrl, isGithubOrgUrl, isGithubProjectUrl, isGithubProjectsListUrl, isGithubReleaseTagUrl, isGithubReleasesListUrl, isGithubRepoReleaseTagUrl, isGithubRepoReleasesUrl, isGithubRepoUrl, isGithubUrl, isHexadecimal, isHmUrl, isHomeDepotUrl, isHtmlElement, isIkeaUrl, isIndexable, isIndianNewsUrl, isInlineSvg, isIp4Address, isIp6Address, isIpAddress, isIso3166Alpha2, isIso3166Alpha3, isIso3166CountryCode, isIso3166CountryName, isIsoDate, isIsoDateTime, isIsoExplicitDate, isIsoExplicitTime, isIsoImplicitDate, isIsoImplicitTime, isIsoTime, isIsoYear, isItalianNewsUrl, isJapaneseNewsUrl, isKrogersUrl, isLeapYear, isLength, isLikeRegExp, isLowesUrl, isLuminosityMetric, isLuminosityUom, isLuxonDateTime, isMacysUrl, isMap, isMapToken, isMassMetric, isMassUom, isMastercard, isMetric, isMetricCategory, isMexicanNewsUrl, isMoment, isNarrowableObject, isNever, isNewsUrl, isNikeUrl, isNorwegianNewsUrl, isNotEmpty, isNotNull, isNothing, isNull, isNumber, isNumberLike, isNumericArray, isNumericString, isObject, isObjectToken, isOptionalParamFunction, isPhoneNumber, isPowerMetric, isPowerUom, isPressureMetric, isPressureUom, isProtocol, isProtocolPrefix, isReadonlyArray, isRecordToken, isRef, isRegExp, isRepoSource, isRepoUrl, isResistanceMetric, isResistanceUom, isRetailUrl, isSameTypeOf, isScalar, isSemanticVersion, isSet, isSetBasedKind, isSetBasedToken, isSetContainer, isSetToken, isShape, isShapeCallback, isSimpleContainerToken, isSimpleContainerTokenTuple, isSimpleScalarToken, isSimpleScalarTokenTuple, isSimpleToken, isSimpleTokenTuple, isSingletonKind, isSingletonToken, isSocialMediaProfileUrl, isSocialMediaUrl, isSouthKoreanNewsUrl, isSpanishNewsUrl, isSpecificConstant, isSpeedMetric, isSpeedUom, isString, isStringArray, isSwissNewsUrl, isSymbol, isTailwindColor, isTailwindColorClass, isTailwindColorName, isTailwindColorTarget, isTailwindColorWithLuminosity, isTailwindColorWithLuminosityAndOpacity, isTailwindModifier, isTargetUrl, isTemperatureMetric, isTemperatureUom, isThenable, isThisMonth, isThisWeek, isThisYear, isTimeMetric, isTimeUom, isToday, isTomorrow, isTrimable, isTrue, isTruthy, isTuple, isTupleToken, isTurkishNewsUrl, isTypeOf, isTypeSubtype, isTypeToken, isTypeTokenKind, isTypeTuple, isUkNewsUrl, isUndefined, isUnset, isUom, isUomCategory, isUri, isUrl, isUrlPath, isUrlSource, isUsNewsUrl, isUsPhoneNumber, isUsStateAbbreviation, isUsStateName, isVariable, isVisa, isVisaMastercard, isVoltageMetric, isVoltageUom, isVolumeMetric, isVolumeUom, isVueRef, isWalgreensUrl, isWalmartUrl, isWayfairUrl, isWholeFoodsUrl, isYesterday, isYouTubeCreatorUrl, isYouTubeFeedHistoryUrl, isYouTubeFeedUrl, isYouTubePlaylistUrl, isYouTubePlaylistsUrl, isYouTubeShareUrl, isYouTubeSubscriptionsUrl, isYouTubeTrendingUrl, isYouTubeUrl, isYouTubeVideoUrl, isYouTubeVideosInPlaylist, isZaraUrl, isZipCode, isZipCode5, isZipPlus4, joinWith, jsonValue, jsonValues, keysOf, kindLiteral, last, list, literal, logicalReturns, lookupCountryAlpha2, lookupCountryAlpha3, lookupCountryCode, lookupCountryName, lowercase, maybePhoneNumber, mergeObjects, mergeScalars, mergeTuples, nameLiteral, narrow, narrowObjectTo, narrowObjectToType, never, objectToApi, objectValues, omit, optional, optionalOrNull, or, orNull, pathJoin, pluralize, removePhoneCountryCode, removeTailwindModifiers, removeUrlProtocol, result, retain, retainAfter, retainAfterInclusive, retainChars, retainUntil, retainUntilInclusive, retainWhile, reverse, rightWhitespace, shape, sharedKeys, shift, simpleContainerToken, simpleContainerTokenToTypeToken, simpleContainerType, simpleScalarToken, simpleScalarTokenToTypeToken, simpleScalarType, simpleToken, simpleType, simpleUnionTokenToTypeToken, slice, split, startsWith, stripAfter, stripBefore, stripChars, stripLeading, stripParenthesis, stripSurround, stripTrailing, stripUntil, stripWhile, surround, takeNumericCharacters, takeProp, toCamelCase, toKebabCase, toKeyValue, toNumber, toNumericArray, toPascalCase, toSnakeCase, toString, toUppercase, trim, trimEnd, trimLeft, trimRight, trimStart, truncate, tuple, twColor, unbox, uncapitalize, union, unionize, unique, uniqueKeys, unset, uppercase, urlMeta, valuesOf, widen, withDefaults, withKeys, withValue, withoutKeys, withoutValue, wrapFn, youtubeEmbed, youtubeMeta };
@@ -3688,58 +3688,107 @@ function isVariable(val) {
3688
3688
  function separate(s) {
3689
3689
  return stripWhile(s.toLowerCase(), ...NUMERIC_CHAR).trim();
3690
3690
  }
3691
+ function startsWithNumber(val) {
3692
+ return isString(val) && isNumberLike(val.slice(0, 1));
3693
+ }
3691
3694
  function isAreaMetric(val) {
3692
- return isString(val) && AREA_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3695
+ return isString(val) && startsWithNumber(val) && AREA_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3693
3696
  }
3694
3697
  function isLuminosityMetric(val) {
3695
- return isString(val) && LUMINOSITY_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3698
+ return isString(val) && startsWithNumber(val) && LUMINOSITY_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3696
3699
  }
3697
- function isResistance(val) {
3698
- return isString(val) && RESISTANCE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3700
+ function isResistanceMetric(val) {
3701
+ return isString(val) && startsWithNumber(val) && RESISTANCE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3699
3702
  }
3700
3703
  function isCurrentMetric(val) {
3701
- return isString(val) && CURRENT_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3704
+ return isString(val) && startsWithNumber(val) && CURRENT_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3702
3705
  }
3703
3706
  function isVoltageMetric(val) {
3704
- return isString(val) && VOLTAGE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3707
+ return isString(val) && startsWithNumber(val) && VOLTAGE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3705
3708
  }
3706
3709
  function isFrequencyMetric(val) {
3707
- return isString(val) && FREQUENCY_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3710
+ return isString(val) && startsWithNumber(val) && FREQUENCY_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3708
3711
  }
3709
3712
  function isPowerMetric(val) {
3710
- return isString(val) && POWER_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3713
+ return isString(val) && startsWithNumber(val) && POWER_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3711
3714
  }
3712
3715
  function isTimeMetric(val) {
3713
- return isString(val) && TIME_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3716
+ return isString(val) && startsWithNumber(val) && TIME_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3714
3717
  }
3715
3718
  function isEnergyMetric(val) {
3716
- return isString(val) && ENERGY_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3719
+ return isString(val) && startsWithNumber(val) && ENERGY_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3717
3720
  }
3718
3721
  function isPressureMetric(val) {
3719
- return isString(val) && PRESSURE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3722
+ return isString(val) && startsWithNumber(val) && PRESSURE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3720
3723
  }
3721
3724
  function isTemperatureMetric(val) {
3722
- return isString(val) && TEMPERATURE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3725
+ return isString(val) && startsWithNumber(val) && TEMPERATURE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3723
3726
  }
3724
3727
  function isVolumeMetric(val) {
3725
- return isString(val) && VOLUME_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3728
+ return isString(val) && startsWithNumber(val) && VOLUME_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3726
3729
  }
3727
3730
  function isAccelerationMetric(val) {
3728
- return isString(val) && ACCELERATION_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3731
+ return isString(val) && startsWithNumber(val) && ACCELERATION_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3729
3732
  }
3730
3733
  function isSpeedMetric(val) {
3731
3734
  const speed = SPEED_METRICS_LOOKUP.map((i) => i.abbrev);
3732
- return isString(val) && speed.includes(separate(val));
3735
+ return isString(val) && startsWithNumber(val) && speed.includes(separate(val));
3733
3736
  }
3734
3737
  function isMassMetric(val) {
3735
- return isString(val) && MASS_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3738
+ return isString(val) && startsWithNumber(val) && MASS_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3736
3739
  }
3737
3740
  function isDistanceMetric(val) {
3738
- return isString(val) && DISTANCE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3741
+ return isString(val) && startsWithNumber(val) && DISTANCE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));
3739
3742
  }
3740
3743
  function isMetric(val) {
3741
3744
  return isDistanceMetric(val) || isMassMetric(val) || isSpeedMetric(val) || isAccelerationMetric(val) || isVoltageMetric(val) || isTemperatureMetric(val) || isPressureMetric(val) || isEnergyMetric(val) || isTimeMetric(val) || isPowerMetric(val) || isFrequencyMetric(val) || isVoltageMetric(val) || isCurrentMetric(val) || isLuminosityMetric(val) || isAreaMetric(val);
3742
3745
  }
3746
+ function getCategories(c) {
3747
+ return c.map(
3748
+ (i) => {
3749
+ switch (i) {
3750
+ case "Acceleration":
3751
+ return isAccelerationMetric;
3752
+ case "Area":
3753
+ return isAreaMetric;
3754
+ case "Current":
3755
+ return isCurrentMetric;
3756
+ case "Distance":
3757
+ return isDistanceMetric;
3758
+ case "Frequency":
3759
+ return isFrequencyMetric;
3760
+ case "Luminosity":
3761
+ return isLuminosityMetric;
3762
+ case "Mass":
3763
+ return isMassMetric;
3764
+ case "Power":
3765
+ return isPowerMetric;
3766
+ case "Pressure":
3767
+ return isPressureMetric;
3768
+ case "Resistance":
3769
+ return isResistanceMetric;
3770
+ case "Speed":
3771
+ return isSpeedMetric;
3772
+ case "Temperature":
3773
+ return isTemperatureMetric;
3774
+ case "Time":
3775
+ return isTimeMetric;
3776
+ case "Voltage":
3777
+ return isVoltageMetric;
3778
+ case "Volume":
3779
+ return isVoltageMetric;
3780
+ }
3781
+ }
3782
+ );
3783
+ }
3784
+ function isMetricCategory(...categories) {
3785
+ const fn2 = (val) => {
3786
+ const tests = getCategories(categories);
3787
+ return tests.some((i) => i(val));
3788
+ };
3789
+ const props = { categories, kind: "MetricTypeGuard" };
3790
+ return createFnWithProps(fn2, props);
3791
+ }
3743
3792
 
3744
3793
  // src/type-guards/metrics/isUom.ts
3745
3794
  function isAreaUom(val) {
@@ -3793,6 +3842,52 @@ function isDistanceUom(val) {
3793
3842
  function isUom(val) {
3794
3843
  return isDistanceUom(val) || isMassUom(val) || isSpeedUom(val) || isAccelerationUom(val) || isVoltageUom(val) || isTemperatureUom(val) || isPressureUom(val) || isEnergyUom(val) || isTimeUom(val) || isPowerUom(val) || isFrequencyUom(val) || isVoltageUom(val) || isCurrentUom(val) || isLuminosityUom(val) || isAreaUom(val);
3795
3844
  }
3845
+ function getCategories2(c) {
3846
+ return c.map(
3847
+ (i) => {
3848
+ switch (i) {
3849
+ case "Acceleration":
3850
+ return isAccelerationUom;
3851
+ case "Area":
3852
+ return isAreaUom;
3853
+ case "Current":
3854
+ return isCurrentUom;
3855
+ case "Distance":
3856
+ return isDistanceUom;
3857
+ case "Frequency":
3858
+ return isFrequencyUom;
3859
+ case "Luminosity":
3860
+ return isLuminosityUom;
3861
+ case "Mass":
3862
+ return isMassUom;
3863
+ case "Power":
3864
+ return isPowerUom;
3865
+ case "Pressure":
3866
+ return isPressureUom;
3867
+ case "Resistance":
3868
+ return isResistanceUom;
3869
+ case "Speed":
3870
+ return isSpeedUom;
3871
+ case "Temperature":
3872
+ return isTemperatureUom;
3873
+ case "Time":
3874
+ return isTimeUom;
3875
+ case "Voltage":
3876
+ return isVoltageUom;
3877
+ case "Volume":
3878
+ return isVoltageUom;
3879
+ }
3880
+ }
3881
+ );
3882
+ }
3883
+ function isUomCategory(...categories) {
3884
+ const fn2 = (val) => {
3885
+ const tests = getCategories2(categories);
3886
+ return tests.some((i) => i(val));
3887
+ };
3888
+ const prop = { categories, kind: "UomTypeGuard" };
3889
+ return createFnWithProps(fn2, prop);
3890
+ }
3796
3891
 
3797
3892
  // src/type-guards/network-tg.ts
3798
3893
  function isIp4Address(val) {
@@ -5901,6 +5996,7 @@ export {
5901
5996
  isMassUom,
5902
5997
  isMastercard,
5903
5998
  isMetric,
5999
+ isMetricCategory,
5904
6000
  isMexicanNewsUrl,
5905
6001
  isMoment,
5906
6002
  isNarrowableObject,
@@ -5932,7 +6028,7 @@ export {
5932
6028
  isRegExp,
5933
6029
  isRepoSource,
5934
6030
  isRepoUrl,
5935
- isResistance,
6031
+ isResistanceMetric,
5936
6032
  isResistanceUom,
5937
6033
  isRetailUrl,
5938
6034
  isSameTypeOf,
@@ -5997,6 +6093,7 @@ export {
5997
6093
  isUndefined,
5998
6094
  isUnset,
5999
6095
  isUom,
6096
+ isUomCategory,
6000
6097
  isUri,
6001
6098
  isUrl,
6002
6099
  isUrlPath,