inferred-types 0.54.9 → 0.55.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.
@@ -93,11 +93,15 @@ __export(src_exports, {
93
93
  MARKED: () => MARKED,
94
94
  MASS_METRICS_LOOKUP: () => MASS_METRICS_LOOKUP,
95
95
  MEXICAN_NEWS: () => MEXICAN_NEWS,
96
+ MIME_TYPES: () => MIME_TYPES,
96
97
  MONTH_ABBR: () => MONTH_ABBR,
97
98
  MONTH_NAME: () => MONTH_NAME,
98
99
  MapCardinality: () => MapCardinality,
99
100
  NARROW_CONTAINER_TYPE_KINDS: () => NARROW_CONTAINER_TYPE_KINDS,
101
+ NETWORK_PROTOCOL: () => NETWORK_PROTOCOL,
102
+ NETWORK_PROTOCOL_INSECURE: () => NETWORK_PROTOCOL_INSECURE,
100
103
  NETWORK_PROTOCOL_LOOKUP: () => NETWORK_PROTOCOL_LOOKUP,
104
+ NETWORK_PROTOCOL_SECURE: () => NETWORK_PROTOCOL_SECURE,
101
105
  NIKE_DNS: () => NIKE_DNS,
102
106
  NON_ZERO_NUMERIC_CHAR: () => NON_ZERO_NUMERIC_CHAR,
103
107
  NORWEGIAN_NEWS: () => NORWEGIAN_NEWS,
@@ -114,6 +118,7 @@ __export(src_exports, {
114
118
  PLURAL_EXCEPTIONS_OLD: () => PLURAL_EXCEPTIONS_OLD,
115
119
  POWER_METRICS_LOOKUP: () => POWER_METRICS_LOOKUP,
116
120
  PRESSURE_METRICS_LOOKUP: () => PRESSURE_METRICS_LOOKUP,
121
+ PROTOCOL_DEFAULT_PORTS: () => PROTOCOL_DEFAULT_PORTS,
117
122
  PROXMOX_CT_STATE: () => PROXMOX_CT_STATE,
118
123
  REPO_PAGE_TYPES: () => REPO_PAGE_TYPES,
119
124
  REPO_SOURCES: () => REPO_SOURCES,
@@ -277,6 +282,9 @@ __export(src_exports, {
277
282
  getTokenKind: () => getTokenKind,
278
283
  getTomorrow: () => getTomorrow,
279
284
  getTypeSubtype: () => getTypeSubtype,
285
+ getUrlBase: () => getUrlBase,
286
+ getUrlDefaultPort: () => getUrlDefaultPort,
287
+ getUrlDynamics: () => getUrlDynamics,
280
288
  getUrlPath: () => getUrlPath,
281
289
  getUrlPort: () => getUrlPort,
282
290
  getUrlProtocol: () => getUrlProtocol,
@@ -289,6 +297,9 @@ __export(src_exports, {
289
297
  hasDefaultValue: () => hasDefaultValue,
290
298
  hasIndexOf: () => hasIndexOf,
291
299
  hasKeys: () => hasKeys,
300
+ hasOverlappingKeys: () => hasOverlappingKeys,
301
+ hasProtocol: () => hasProtocol,
302
+ hasProtocolPrefix: () => hasProtocolPrefix,
292
303
  hasUrlPort: () => hasUrlPort,
293
304
  hasUrlQueryParameter: () => hasUrlQueryParameter,
294
305
  hasWhiteSpace: () => hasWhiteSpace,
@@ -354,6 +365,7 @@ __export(src_exports, {
354
365
  isCountryCode3: () => isCountryCode3,
355
366
  isCountryName: () => isCountryName,
356
367
  isCssAspectRatio: () => isCssAspectRatio,
368
+ isCsv: () => isCsv,
357
369
  isCurrentMetric: () => isCurrentMetric,
358
370
  isCurrentUom: () => isCurrentUom,
359
371
  isCvsUrl: () => isCvsUrl,
@@ -457,6 +469,8 @@ __export(src_exports, {
457
469
  isPowerUom: () => isPowerUom,
458
470
  isPressureMetric: () => isPressureMetric,
459
471
  isPressureUom: () => isPressureUom,
472
+ isProtocol: () => isProtocol,
473
+ isProtocolPrefix: () => isProtocolPrefix,
460
474
  isReadonlyArray: () => isReadonlyArray,
461
475
  isRecordToken: () => isRecordToken,
462
476
  isRef: () => isRef,
@@ -535,6 +549,7 @@ __export(src_exports, {
535
549
  isUsNewsUrl: () => isUsNewsUrl,
536
550
  isUsStateAbbreviation: () => isUsStateAbbreviation,
537
551
  isUsStateName: () => isUsStateName,
552
+ isVariable: () => isVariable,
538
553
  isVoltageMetric: () => isVoltageMetric,
539
554
  isVoltageUom: () => isVoltageUom,
540
555
  isVolumeMetric: () => isVolumeMetric,
@@ -1178,6 +1193,73 @@ var HASH_TABLE_CHAR = {
1178
1193
  ...HASH_TABLE_SPECIAL
1179
1194
  };
1180
1195
  var HASH_TABLE_OTHER = "999";
1196
+ var MIME_TYPES = [
1197
+ // Application MIME Types
1198
+ "application/json",
1199
+ "application/xml",
1200
+ "application/javascript",
1201
+ "application/pdf",
1202
+ "application/ld+json",
1203
+ "application/octet-stream",
1204
+ "application/x-www-form-urlencoded",
1205
+ "application/vnd.api+json",
1206
+ "application/msword",
1207
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
1208
+ "application/vnd.ms-excel",
1209
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
1210
+ "application/vnd.ms-powerpoint",
1211
+ "application/vnd.openxmlformats-officedocument.presentationml.presentation",
1212
+ // Text MIME Types
1213
+ "text/plain",
1214
+ "text/html",
1215
+ "text/css",
1216
+ "text/csv",
1217
+ "text/javascript",
1218
+ "text/markdown",
1219
+ // Image MIME Types
1220
+ "image/jpeg",
1221
+ "image/png",
1222
+ "image/gif",
1223
+ "image/bmp",
1224
+ "image/webp",
1225
+ "image/svg+xml",
1226
+ "image/tiff",
1227
+ // Audio MIME Types
1228
+ "audio/mpeg",
1229
+ "audio/ogg",
1230
+ "audio/wav",
1231
+ "audio/webm",
1232
+ "audio/flac",
1233
+ // Video MIME Types
1234
+ "video/mp4",
1235
+ "video/mpeg",
1236
+ "video/ogg",
1237
+ "video/webm",
1238
+ "video/quicktime",
1239
+ // Multipart MIME Types
1240
+ "multipart/form-data",
1241
+ "multipart/mixed",
1242
+ "multipart/alternative",
1243
+ "multipart/related",
1244
+ // Font MIME Types
1245
+ "font/woff",
1246
+ "font/woff2",
1247
+ "font/ttf",
1248
+ "font/otf",
1249
+ // Other Common MIME Types
1250
+ "application/rss+xml",
1251
+ "application/atom+xml",
1252
+ "application/x-pkcs12",
1253
+ "application/x-shockwave-flash",
1254
+ "application/x-www-form-urlencoded",
1255
+ "application/x-font-ttf",
1256
+ "application/x-font-opentype",
1257
+ "application/x-font-woff",
1258
+ "application/x-font-woff2",
1259
+ "application/vnd.rar",
1260
+ "application/zip",
1261
+ "application/x-7z-compressed"
1262
+ ];
1181
1263
  var IMAGE_FORMAT_LOOKUP = [
1182
1264
  { ext: "jpg", webFormat: true, other_ext: ["jpeg"] },
1183
1265
  { ext: "png", webFormat: true, other_ext: [] },
@@ -1518,13 +1600,51 @@ var IPv6 = {
1518
1600
  var IPv4 = {
1519
1601
  Loopback: "127.0.0.1"
1520
1602
  };
1603
+ var NETWORK_PROTOCOL_INSECURE = [
1604
+ "http",
1605
+ "ftp",
1606
+ "ws",
1607
+ "dns",
1608
+ "telnet",
1609
+ "imap",
1610
+ "pop3",
1611
+ "smtp"
1612
+ ];
1613
+ var NETWORK_PROTOCOL_SECURE = [
1614
+ "https",
1615
+ "sftp",
1616
+ "wss",
1617
+ "sdns",
1618
+ "ssh"
1619
+ ];
1620
+ var NETWORK_PROTOCOL = [
1621
+ ...NETWORK_PROTOCOL_INSECURE,
1622
+ ...NETWORK_PROTOCOL_SECURE
1623
+ ];
1521
1624
  var NETWORK_PROTOCOL_LOOKUP = {
1522
1625
  http: ["http", "https"],
1523
1626
  ftp: ["ftp", "sftp"],
1524
1627
  file: ["", "file"],
1525
1628
  ws: ["ws", "wss"],
1526
1629
  ssh: ["", "ssh"],
1527
- scp: ["", "scp"]
1630
+ scp: ["", "scp"],
1631
+ telnet: ["telnet", ""],
1632
+ dns: ["dns", "sdns"]
1633
+ };
1634
+ var PROTOCOL_DEFAULT_PORTS = {
1635
+ http: 80,
1636
+ https: 443,
1637
+ ws: 80,
1638
+ wss: 443,
1639
+ ssh: 22,
1640
+ telnet: 23,
1641
+ dns: 53,
1642
+ sdns: 853,
1643
+ smtp: 25,
1644
+ imap: 142,
1645
+ pop3: 110,
1646
+ ftp: 21,
1647
+ sftp: 22
1528
1648
  };
1529
1649
  var TOP_LEVEL_DOMAINS = [
1530
1650
  "com",
@@ -3826,13 +3946,51 @@ var AREA_METRICS_LOOKUP2 = [
3826
3946
  { abbrev: "acre", name: "acre" },
3827
3947
  { abbrev: "ha", name: "hectare" }
3828
3948
  ];
3949
+ var NETWORK_PROTOCOL_INSECURE2 = [
3950
+ "http",
3951
+ "ftp",
3952
+ "ws",
3953
+ "dns",
3954
+ "telnet",
3955
+ "imap",
3956
+ "pop3",
3957
+ "smtp"
3958
+ ];
3959
+ var NETWORK_PROTOCOL_SECURE2 = [
3960
+ "https",
3961
+ "sftp",
3962
+ "wss",
3963
+ "sdns",
3964
+ "ssh"
3965
+ ];
3966
+ var NETWORK_PROTOCOL2 = [
3967
+ ...NETWORK_PROTOCOL_INSECURE2,
3968
+ ...NETWORK_PROTOCOL_SECURE2
3969
+ ];
3829
3970
  var NETWORK_PROTOCOL_LOOKUP2 = {
3830
3971
  http: ["http", "https"],
3831
3972
  ftp: ["ftp", "sftp"],
3832
3973
  file: ["", "file"],
3833
3974
  ws: ["ws", "wss"],
3834
3975
  ssh: ["", "ssh"],
3835
- scp: ["", "scp"]
3976
+ scp: ["", "scp"],
3977
+ telnet: ["telnet", ""],
3978
+ dns: ["dns", "sdns"]
3979
+ };
3980
+ var PROTOCOL_DEFAULT_PORTS2 = {
3981
+ http: 80,
3982
+ https: 443,
3983
+ ws: 80,
3984
+ wss: 443,
3985
+ ssh: 22,
3986
+ telnet: 23,
3987
+ dns: 53,
3988
+ sdns: 853,
3989
+ smtp: 25,
3990
+ imap: 142,
3991
+ pop3: 110,
3992
+ ftp: 21,
3993
+ sftp: 22
3836
3994
  };
3837
3995
  var Never2 = createConstant2("never");
3838
3996
  var US_NEWS2 = [
@@ -5493,7 +5651,7 @@ var filter = "NOT READY";
5493
5651
  function find(list2, deref = null) {
5494
5652
  return (comparator) => {
5495
5653
  return list2.find((i) => {
5496
- const val = deref ? isContainer(i) ? deref in i ? i[deref] : void 0 : i : i;
5654
+ const val = deref ? isObject(i) || isArray(i) ? deref in i ? i[deref] : void 0 : i : i;
5497
5655
  return val === comparator;
5498
5656
  });
5499
5657
  };
@@ -6167,6 +6325,9 @@ var isRatio = (val) => /\d{1,4}\s*\/\s*\d{1,4}/.test(val);
6167
6325
  function isCssAspectRatio(val) {
6168
6326
  return isString(val) && val.split(/\s+/).every((i) => tokens.includes(i) || isRatio(i));
6169
6327
  }
6328
+ function isCsv(val) {
6329
+ return isString(val) && val.includes(",") && !val.startsWith(",");
6330
+ }
6170
6331
  function isDefined(value) {
6171
6332
  return typeof value !== "undefined";
6172
6333
  }
@@ -6220,7 +6381,7 @@ function isPhoneNumber(val) {
6220
6381
  const svelte = String(val).trim();
6221
6382
  const chars = svelte.split("");
6222
6383
  const numeric = retainChars(svelte, ...NUMERIC_CHAR2);
6223
- const valid = ["+", "(", ...NUMERIC_CHAR2];
6384
+ const valid2 = ["+", "(", ...NUMERIC_CHAR2];
6224
6385
  const nothing = stripChars(svelte, ...[
6225
6386
  ...NUMERIC_CHAR2,
6226
6387
  ...WHITESPACE_CHARS2,
@@ -6230,7 +6391,7 @@ function isPhoneNumber(val) {
6230
6391
  ".",
6231
6392
  "-"
6232
6393
  ]);
6233
- return chars.every((i) => valid.includes(i)) && svelte.startsWith(`+`) ? numeric.length >= 8 : svelte.startsWith(`00`) ? numeric.length >= 10 : numeric.length >= 7 && nothing === "";
6394
+ return chars.every((i) => valid2.includes(i)) && svelte.startsWith(`+`) ? numeric.length >= 8 : svelte.startsWith(`00`) ? numeric.length >= 10 : numeric.length >= 7 && nothing === "";
6234
6395
  }
6235
6396
  function isReadonlyArray(value) {
6236
6397
  return Array.isArray(value) === true;
@@ -6293,6 +6454,19 @@ function isUrl(val, ...protocols) {
6293
6454
  const p = protocols.length === 0 ? ["http", "https"] : protocols;
6294
6455
  return isString(val) && p.some((i) => val.startsWith(`${i}://`));
6295
6456
  }
6457
+ var VALID = [
6458
+ ...ALPHA_CHARS2,
6459
+ ...NUMERIC_CHAR2,
6460
+ "_",
6461
+ "."
6462
+ ];
6463
+ var alpha = null;
6464
+ function valid(chars) {
6465
+ return chars.every((i) => VALID.includes(i));
6466
+ }
6467
+ function isVariable(val) {
6468
+ return isString(val) && startsWith(alpha)(val) && valid(asChars(val));
6469
+ }
6296
6470
  function separate(s) {
6297
6471
  return stripWhile(s.toLowerCase(), ...NUMERIC_CHAR2).trim();
6298
6472
  }
@@ -6431,6 +6605,18 @@ function hasUrlQueryParameter(val, prop) {
6431
6605
  function isNumericArray(val) {
6432
6606
  return Array.isArray(val) && val.every((i) => isNumber(i));
6433
6607
  }
6608
+ function hasProtocol(val, ...protocols) {
6609
+ return isString(val) && protocols.length === 0 ? NETWORK_PROTOCOL2.some((i) => val.startsWith(i)) : protocols.some((i) => val.startsWith(i));
6610
+ }
6611
+ function isProtocol(val, ...protocols) {
6612
+ return isString(val) && protocols.length === 0 ? NETWORK_PROTOCOL2.includes(val) : protocols.includes(val);
6613
+ }
6614
+ function hasProtocolPrefix(val, ...protocols) {
6615
+ return isString(val) && protocols.length === 0 ? NETWORK_PROTOCOL2.map((i) => `${i}://`).some((i) => val.startsWith(i)) : protocols.map((i) => `${i}://`).some((i) => val.startsWith(i));
6616
+ }
6617
+ function isProtocolPrefix(val, ...protocols) {
6618
+ return isString(val) && protocols.length === 0 ? NETWORK_PROTOCOL2.map((i) => `${i}://`).includes(val) : protocols.map((i) => `${i}://`).includes(val);
6619
+ }
6434
6620
  function isTypeToken(val, kind) {
6435
6621
  if (isString(val) && val.startsWith("<<") && val.endsWith(">>")) {
6436
6622
  const stripped = stripSurround("<<", ">>")(val);
@@ -6662,24 +6848,24 @@ function isNewsUrl(val) {
6662
6848
  return isAustralianNewsUrl(val) || isBelgiumNewsUrl(val) || isCanadianNewsUrl(val) || isDanishNewsUrl(val) || isDutchNewsUrl(val) || isFrenchNewsUrl(val) || isGermanNewsUrl(val) || isIndianNewsUrl(val) || isItalianNewsUrl(val) || isJapaneseNewsUrl(val) || isMexicanNewsUrl(val) || isNorwegianNewsUrl(val) || isSouthKoreanNewsUrl(val) || isSpanishNewsUrl(val) || isSwissNewsUrl(val) || isTurkishNewsUrl(val) || isUkNewsUrl(val) || isUsNewsUrl(val);
6663
6849
  }
6664
6850
  function isBitbucketUrl(val) {
6665
- const valid = REPO_SOURCE_LOOKUP2.bitbucket;
6666
- return isString(val) && valid.some(
6851
+ const valid2 = REPO_SOURCE_LOOKUP2.bitbucket;
6852
+ return isString(val) && valid2.some(
6667
6853
  (i) => val === i || val.startsWith(`${i}/`) || val.startsWith(`${i}?`)
6668
6854
  );
6669
6855
  }
6670
6856
  function isCodeCommitUrl(val) {
6671
- const valid = REPO_SOURCE_LOOKUP2.codecommit;
6672
- return isString(val) && valid.some(
6857
+ const valid2 = REPO_SOURCE_LOOKUP2.codecommit;
6858
+ return isString(val) && valid2.some(
6673
6859
  (i) => val === i || val.startsWith(`${i}/`) || val.startsWith(`${i}?`)
6674
6860
  );
6675
6861
  }
6676
6862
  function isGithubUrl(val) {
6677
- const valid = [
6863
+ const valid2 = [
6678
6864
  "https://github.com",
6679
6865
  "https://www.github.com",
6680
6866
  "https://github.io"
6681
6867
  ];
6682
- return isString(val) && valid.some(
6868
+ return isString(val) && valid2.some(
6683
6869
  (i) => val === i || val.startsWith(`${i}/`) || val.startsWith(`${i}?`)
6684
6870
  );
6685
6871
  }
@@ -7223,16 +7409,77 @@ function getUrlQueryParams(url, specific = void 0) {
7223
7409
  }
7224
7410
  return qp === "" ? qp : `?${qp}`;
7225
7411
  }
7226
- function getUrlPort(url) {
7227
- const candidate = takeNumericCharacters(
7228
- stripBefore(removeUrlProtocol(url), ":")
7229
- );
7230
- return candidate === "" ? "default" : Number(candidate);
7412
+ function getUrlDefaultPort(url) {
7413
+ const proto = getUrlProtocol(url);
7414
+ return proto in PROTOCOL_DEFAULT_PORTS2 ? PROTOCOL_DEFAULT_PORTS2[proto] : null;
7415
+ }
7416
+ function getUrlPort(url, resolve = false) {
7417
+ const re = /.*:(\d{2,3})/;
7418
+ const match = url.match(re);
7419
+ return re.test(url) && match && isNumberLike(Array.from(match)[1]) ? Number(Array.from(match)[1]) : resolve ? getUrlDefaultPort(url) : hasProtocol(url) ? `default` : null;
7231
7420
  }
7232
7421
  function getUrlSource(url) {
7233
7422
  const candidate = stripAfter(stripAfter(stripAfter(removeUrlProtocol(url), "/"), "?"), ":");
7234
7423
  return isIpAddress(candidate) || isDomainName(candidate) ? candidate : Never2;
7235
7424
  }
7425
+ function getUrlBase(url) {
7426
+ const path = getUrlPath(url);
7427
+ const remaining = stripAfter(url, path);
7428
+ return remaining;
7429
+ }
7430
+ function getUrlDynamics(url) {
7431
+ const path = getUrlPath(url);
7432
+ const qp = getUrlQueryParams(url);
7433
+ const pathParts = path.startsWith("<") ? path.split("<").map((i) => ensureLeading(i, "<")) : path.split("<").map((i) => ensureLeading(i, "<")).slice(1);
7434
+ const segmentTypes = [
7435
+ "string",
7436
+ "number",
7437
+ "boolean",
7438
+ "Opt<string>",
7439
+ "Opt<number>",
7440
+ "Opt<boolean>"
7441
+ ];
7442
+ const pathVars = {};
7443
+ const findPathTyped = infer(`<{{infer name}} as {{infer type}}>`);
7444
+ const findPathUnion = infer(`<{{infer name}} as string({{infer union}})>`);
7445
+ const findPathNamed = infer(`<{{infer name}}>`);
7446
+ for (const part of pathParts) {
7447
+ const union4 = findPathUnion(part);
7448
+ const typed = findPathTyped(part);
7449
+ const named = findPathNamed(part);
7450
+ if (union4) {
7451
+ if (isVariable(union4.name) && isCsv(union4.union)) {
7452
+ pathVars[union4.name] = `string(${union4.union})`;
7453
+ }
7454
+ } else if (typed && segmentTypes.includes(typed.type) && isVariable(typed.name)) {
7455
+ pathVars[typed.name] = typed.type;
7456
+ } else if (named && isVariable(named.name)) {
7457
+ pathVars[named.name] = "string";
7458
+ }
7459
+ }
7460
+ const qpVars = {};
7461
+ const qpParts = stripLeading(qp, "?").split("&");
7462
+ for (const p of qpParts) {
7463
+ const union4 = infer(`{{infer var}}=<string({{infer params}})>`)(p);
7464
+ const dynamic = infer(`{{infer var}}=<{{infer val}}>`)(p);
7465
+ const fixed = infer(`{{infer var}}={{infer val}}`)(p);
7466
+ if (union4 && isVariable(union4.var) && isCsv(union4.params)) {
7467
+ qpVars[union4.var] = `string(${union4.params})`;
7468
+ } else if (dynamic && isVariable(dynamic.var) && segmentTypes.includes(dynamic.val)) {
7469
+ qpVars[dynamic.var] = dynamic.val;
7470
+ } else if (fixed && isVariable(fixed.var)) {
7471
+ qpVars[fixed.var] = fixed.val;
7472
+ }
7473
+ }
7474
+ return {
7475
+ pathVars,
7476
+ qpVars,
7477
+ allVars: hasOverlappingKeys(pathVars, qpVars) ? null : {
7478
+ ...pathVars,
7479
+ ...qpVars
7480
+ }
7481
+ };
7482
+ }
7236
7483
  function urlMeta(url) {
7237
7484
  return {
7238
7485
  url,
@@ -7240,6 +7487,7 @@ function urlMeta(url) {
7240
7487
  protocol: getUrlProtocol(url),
7241
7488
  path: getUrlPath(url),
7242
7489
  queryParameters: getUrlQueryParams(url),
7490
+ params: getUrlDynamics,
7243
7491
  port: getUrlPort(url),
7244
7492
  source: getUrlSource(url),
7245
7493
  isIpAddress: isIpAddress(getUrlSource(url)),
@@ -7640,6 +7888,15 @@ function simpleType(token) {
7640
7888
  const value = isSimpleScalarToken(token) ? simpleScalarType(token) : isSimpleContainerToken(token) ? simpleContainerToken(token) : Never2;
7641
7889
  return value;
7642
7890
  }
7891
+ function hasOverlappingKeys(a, b) {
7892
+ const keys = Object.keys(a);
7893
+ for (const k of keys) {
7894
+ if (k in b) {
7895
+ return true;
7896
+ }
7897
+ }
7898
+ return false;
7899
+ }
7643
7900
  function uniqueKeys(left, right) {
7644
7901
  const isNumeric = !!(isArray(left) && isArray(right));
7645
7902
  if (isArray(left) && !isArray(right) || isArray(right) && !isArray(left)) {
@@ -7928,11 +8185,15 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
7928
8185
  MARKED,
7929
8186
  MASS_METRICS_LOOKUP,
7930
8187
  MEXICAN_NEWS,
8188
+ MIME_TYPES,
7931
8189
  MONTH_ABBR,
7932
8190
  MONTH_NAME,
7933
8191
  MapCardinality,
7934
8192
  NARROW_CONTAINER_TYPE_KINDS,
8193
+ NETWORK_PROTOCOL,
8194
+ NETWORK_PROTOCOL_INSECURE,
7935
8195
  NETWORK_PROTOCOL_LOOKUP,
8196
+ NETWORK_PROTOCOL_SECURE,
7936
8197
  NIKE_DNS,
7937
8198
  NON_ZERO_NUMERIC_CHAR,
7938
8199
  NORWEGIAN_NEWS,
@@ -7949,6 +8210,7 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
7949
8210
  PLURAL_EXCEPTIONS_OLD,
7950
8211
  POWER_METRICS_LOOKUP,
7951
8212
  PRESSURE_METRICS_LOOKUP,
8213
+ PROTOCOL_DEFAULT_PORTS,
7952
8214
  PROXMOX_CT_STATE,
7953
8215
  REPO_PAGE_TYPES,
7954
8216
  REPO_SOURCES,
@@ -8112,6 +8374,9 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
8112
8374
  getTokenKind,
8113
8375
  getTomorrow,
8114
8376
  getTypeSubtype,
8377
+ getUrlBase,
8378
+ getUrlDefaultPort,
8379
+ getUrlDynamics,
8115
8380
  getUrlPath,
8116
8381
  getUrlPort,
8117
8382
  getUrlProtocol,
@@ -8124,6 +8389,9 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
8124
8389
  hasDefaultValue,
8125
8390
  hasIndexOf,
8126
8391
  hasKeys,
8392
+ hasOverlappingKeys,
8393
+ hasProtocol,
8394
+ hasProtocolPrefix,
8127
8395
  hasUrlPort,
8128
8396
  hasUrlQueryParameter,
8129
8397
  hasWhiteSpace,
@@ -8189,6 +8457,7 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
8189
8457
  isCountryCode3,
8190
8458
  isCountryName,
8191
8459
  isCssAspectRatio,
8460
+ isCsv,
8192
8461
  isCurrentMetric,
8193
8462
  isCurrentUom,
8194
8463
  isCvsUrl,
@@ -8292,6 +8561,8 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
8292
8561
  isPowerUom,
8293
8562
  isPressureMetric,
8294
8563
  isPressureUom,
8564
+ isProtocol,
8565
+ isProtocolPrefix,
8295
8566
  isReadonlyArray,
8296
8567
  isRecordToken,
8297
8568
  isRef,
@@ -8370,6 +8641,7 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
8370
8641
  isUsNewsUrl,
8371
8642
  isUsStateAbbreviation,
8372
8643
  isUsStateName,
8644
+ isVariable,
8373
8645
  isVoltageMetric,
8374
8646
  isVoltageUom,
8375
8647
  isVolumeMetric,