inferred-types 0.50.11 → 0.50.13

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 (74) hide show
  1. package/dist/constants/TypeTokens.d.ts +1 -0
  2. package/dist/constants/TypeTokens.d.ts.map +1 -1
  3. package/dist/constants/TypeTokens.js +6 -0
  4. package/dist/constants/tsconfig.tsbuildinfo +1 -1
  5. package/dist/index.cjs +133 -14
  6. package/dist/index.js +120 -13
  7. package/dist/inferred-types/tsconfig.tsbuildinfo +1 -1
  8. package/dist/runtime/literals/identity.d.ts +2 -1
  9. package/dist/runtime/literals/identity.d.ts.map +1 -1
  10. package/dist/runtime/literals/identity.js +5 -1
  11. package/dist/runtime/literals/stripChars.js +1 -1
  12. package/dist/runtime/literals/stripSurround.d.ts +2 -2
  13. package/dist/runtime/literals/stripSurround.d.ts.map +1 -1
  14. package/dist/runtime/literals/stripSurround.js +1 -1
  15. package/dist/runtime/runtime-types/asDefineObject.d.ts +4 -0
  16. package/dist/runtime/runtime-types/asDefineObject.d.ts.map +1 -0
  17. package/dist/runtime/runtime-types/asDefineObject.js +20 -0
  18. package/dist/runtime/runtime-types/asToken.d.ts +2 -3
  19. package/dist/runtime/runtime-types/asToken.d.ts.map +1 -1
  20. package/dist/runtime/runtime-types/asToken.js +18 -14
  21. package/dist/runtime/runtime-types/asType.d.ts +11 -2
  22. package/dist/runtime/runtime-types/asType.d.ts.map +1 -1
  23. package/dist/runtime/runtime-types/asType.js +22 -2
  24. package/dist/runtime/runtime-types/shape-helpers/singletons.d.ts.map +1 -1
  25. package/dist/runtime/runtime-types/shape-helpers/singletons.js +2 -0
  26. package/dist/runtime/runtime-types/tokens/createTypeToken.d.ts +1 -1
  27. package/dist/runtime/runtime-types/tokens/createTypeToken.d.ts.map +1 -1
  28. package/dist/runtime/runtime-types/tokens/createTypeToken.js +2 -2
  29. package/dist/runtime/tsconfig.tsbuildinfo +1 -1
  30. package/dist/runtime/type-guards/geo/index.d.ts +4 -0
  31. package/dist/runtime/type-guards/geo/index.d.ts.map +1 -0
  32. package/dist/runtime/type-guards/geo/index.js +3 -0
  33. package/dist/runtime/type-guards/geo/isIso3166Alpha2.d.ts +46 -0
  34. package/dist/runtime/type-guards/geo/isIso3166Alpha2.d.ts.map +1 -0
  35. package/dist/runtime/type-guards/{countries → geo}/isIso3166Alpha2.js +36 -0
  36. package/dist/runtime/type-guards/geo/isUsState.d.ts +4 -0
  37. package/dist/runtime/type-guards/geo/isUsState.d.ts.map +1 -0
  38. package/dist/runtime/type-guards/geo/isUsState.js +10 -0
  39. package/dist/runtime/type-guards/geo/isZipCode.d.ts +23 -0
  40. package/dist/runtime/type-guards/geo/isZipCode.d.ts.map +1 -0
  41. package/dist/runtime/type-guards/geo/isZipCode.js +40 -0
  42. package/dist/runtime/type-guards/index.d.ts +1 -1
  43. package/dist/runtime/type-guards/index.d.ts.map +1 -1
  44. package/dist/runtime/type-guards/index.js +1 -1
  45. package/dist/runtime/type-guards/retail.d.ts +6 -1
  46. package/dist/runtime/type-guards/retail.d.ts.map +1 -1
  47. package/dist/runtime/type-guards/retail.js +7 -0
  48. package/dist/runtime/type-guards/tokens/index.d.ts +2 -0
  49. package/dist/runtime/type-guards/tokens/index.d.ts.map +1 -1
  50. package/dist/runtime/type-guards/tokens/index.js +2 -0
  51. package/dist/runtime/type-guards/tokens/isDefineObject.d.ts +6 -0
  52. package/dist/runtime/type-guards/tokens/isDefineObject.d.ts.map +1 -0
  53. package/dist/runtime/type-guards/tokens/isDefineObject.js +12 -0
  54. package/dist/runtime/type-guards/tokens/isShapeCallback.d.ts +6 -0
  55. package/dist/runtime/type-guards/tokens/isShapeCallback.d.ts.map +1 -0
  56. package/dist/runtime/type-guards/tokens/isShapeCallback.js +7 -0
  57. package/dist/runtime/type-guards/tokens/isSimpleToken.d.ts.map +1 -1
  58. package/dist/types/literals/FromDefn.d.ts +1 -1
  59. package/dist/types/literals/FromDefn.d.ts.map +1 -1
  60. package/dist/types/runtime-types/Shape.d.ts +20 -4
  61. package/dist/types/runtime-types/Shape.d.ts.map +1 -1
  62. package/dist/types/runtime-types/TypeToken.d.ts +2 -7
  63. package/dist/types/runtime-types/TypeToken.d.ts.map +1 -1
  64. package/dist/types/string-literals/character-sets/retail-urls.d.ts +4 -0
  65. package/dist/types/string-literals/character-sets/retail-urls.d.ts.map +1 -1
  66. package/dist/types/string-literals/geo/zip.d.ts +3 -3
  67. package/dist/types/string-literals/geo/zip.d.ts.map +1 -1
  68. package/dist/types/tsconfig.tsbuildinfo +1 -1
  69. package/package.json +1 -1
  70. package/dist/runtime/type-guards/countries/index.d.ts +0 -2
  71. package/dist/runtime/type-guards/countries/index.d.ts.map +0 -1
  72. package/dist/runtime/type-guards/countries/index.js +0 -1
  73. package/dist/runtime/type-guards/countries/isIso3166Alpha2.d.ts +0 -21
  74. package/dist/runtime/type-guards/countries/isIso3166Alpha2.d.ts.map +0 -1
package/dist/index.cjs CHANGED
@@ -111,6 +111,7 @@ __export(inferred_types_exports, {
111
111
  SIMPLE_CONTAINER_TOKENS: () => SIMPLE_CONTAINER_TOKENS,
112
112
  SIMPLE_DICT_TOKENS: () => SIMPLE_DICT_TOKENS,
113
113
  SIMPLE_DICT_VALUES: () => SIMPLE_DICT_VALUES,
114
+ SIMPLE_FN_TOKENS: () => SIMPLE_FN_TOKENS,
114
115
  SIMPLE_MAP_KEYS: () => SIMPLE_MAP_KEYS,
115
116
  SIMPLE_MAP_TOKENS: () => SIMPLE_MAP_TOKENS,
116
117
  SIMPLE_MAP_VALUES: () => SIMPLE_MAP_VALUES,
@@ -197,7 +198,6 @@ __export(inferred_types_exports, {
197
198
  asOptionalParamFunction: () => asOptionalParamFunction,
198
199
  asPhoneFormat: () => asPhoneFormat,
199
200
  asRecord: () => asRecord,
200
- asSimpleToken: () => asSimpleToken,
201
201
  asString: () => asString,
202
202
  asStringLiteral: () => asStringLiteral,
203
203
  asType: () => asType,
@@ -295,10 +295,15 @@ __export(inferred_types_exports, {
295
295
  isContainer: () => isContainer,
296
296
  isContainerToken: () => isContainerToken,
297
297
  isCostCoUrl: () => isCostCoUrl,
298
+ isCountryAbbrev: () => isCountryAbbrev,
299
+ isCountryCode2: () => isCountryCode2,
300
+ isCountryCode3: () => isCountryCode3,
301
+ isCountryName: () => isCountryName,
298
302
  isCssAspectRatio: () => isCssAspectRatio,
299
303
  isCurrentMetric: () => isCurrentMetric,
300
304
  isCurrentUom: () => isCurrentUom,
301
305
  isCvsUrl: () => isCvsUrl,
306
+ isDefineObject: () => isDefineObject,
302
307
  isDefined: () => isDefined,
303
308
  isDellUrl: () => isDellUrl,
304
309
  isDistanceMetric: () => isDistanceMetric,
@@ -381,12 +386,14 @@ __export(inferred_types_exports, {
381
386
  isRepoUrl: () => isRepoUrl,
382
387
  isResistance: () => isResistance,
383
388
  isResistanceUom: () => isResistanceUom,
389
+ isRetailUrl: () => isRetailUrl,
384
390
  isSameTypeOf: () => isSameTypeOf,
385
391
  isScalar: () => isScalar,
386
392
  isSemanticVersion: () => isSemanticVersion,
387
393
  isSet: () => isSet,
388
394
  isSetToken: () => isSetToken,
389
395
  isShape: () => isShape,
396
+ isShapeCallback: () => isShapeCallback,
390
397
  isSimpleContainerToken: () => isSimpleContainerToken,
391
398
  isSimpleContainerTokenTuple: () => isSimpleContainerTokenTuple,
392
399
  isSimpleScalarToken: () => isSimpleScalarToken,
@@ -422,6 +429,8 @@ __export(inferred_types_exports, {
422
429
  isUrl: () => isUrl,
423
430
  isUrlPath: () => isUrlPath,
424
431
  isUrlSource: () => isUrlSource,
432
+ isUsStateAbbreviation: () => isUsStateAbbreviation,
433
+ isUsStateName: () => isUsStateName,
425
434
  isVoltageMetric: () => isVoltageMetric,
426
435
  isVoltageUom: () => isVoltageUom,
427
436
  isVolumeMetric: () => isVolumeMetric,
@@ -443,6 +452,9 @@ __export(inferred_types_exports, {
443
452
  isYouTubeVideoUrl: () => isYouTubeVideoUrl,
444
453
  isYouTubeVideosInPlaylist: () => isYouTubeVideosInPlaylist,
445
454
  isZaraUrl: () => isZaraUrl,
455
+ isZipCode: () => isZipCode,
456
+ isZipCode5: () => isZipCode5,
457
+ isZipPlus4: () => isZipPlus4,
446
458
  joinWith: () => joinWith,
447
459
  jsonValue: () => jsonValue,
448
460
  jsonValues: () => jsonValues,
@@ -1061,6 +1073,12 @@ var SIMPLE_OPT_SCALAR_TOKENS = [
1061
1073
  "Opt<number(TOKEN)>",
1062
1074
  "Opt<undefined>"
1063
1075
  ];
1076
+ var SIMPLE_FN_TOKENS = [
1077
+ "Fn<none> => Unknown",
1078
+ "Fn<string> => Unknown",
1079
+ "Fn<number> => Unknown",
1080
+ "Fn<boolean> => Unknown"
1081
+ ];
1064
1082
  var SIMPLE_UNION_TOKENS = [
1065
1083
  `Union(TOKEN)`
1066
1084
  ];
@@ -2842,7 +2860,7 @@ function unbox(val) {
2842
2860
  }
2843
2861
 
2844
2862
  // src/runtime/literals/identity.ts
2845
- var identity = (v) => v;
2863
+ var identity = (...values) => values.length === 1 ? values[0] : values.length === 0 ? void 0 : values;
2846
2864
 
2847
2865
  // src/runtime/literals/literal.ts
2848
2866
  function idLiteral(o) {
@@ -3510,6 +3528,9 @@ var isWalmartUrl = (val) => {
3510
3528
  var isAmazonUrl = (val) => {
3511
3529
  return isString(val) && AMAZON_DNS.some((i) => val.startsWith(`https://${i}`));
3512
3530
  };
3531
+ var isRetailUrl = (val) => {
3532
+ return isAmazonUrl(val) || isWalgreensUrl(val) || isAppleUrl(val) || isMacysUrl(val) || isEbayUrl(val) || isHomeDepotUrl(val) || isTargetUrl(val) || isEtsyUrl(val) || isCostCoUrl(val) || isBestBuyUrl(val) || isWayfairUrl(val) || isNikeUrl(val) || isLowesUrl(val) || isIkeaUrl(val) || isDellUrl(val) || isHmUrl(val) || isZaraUrl(val) || isKrogersUrl(val) || isWalgreensUrl(val) || isCvsUrl(val) || isWholeFoodsUrl(val);
3533
+ };
3513
3534
 
3514
3535
  // src/runtime/type-guards/tokens/isAtomicToken.ts
3515
3536
  var isAtomicToken = (val) => {
@@ -3589,6 +3610,30 @@ var isSimpleContainerTokenTuple = (val) => {
3589
3610
  return isArray(val) && val.length !== 0 && val.every(isSimpleContainerToken);
3590
3611
  };
3591
3612
 
3613
+ // src/runtime/type-guards/tokens/isShapeCallback.ts
3614
+ var isShapeCallback = (val) => {
3615
+ return isFunction(val) && val.kind === "shape";
3616
+ };
3617
+
3618
+ // src/runtime/type-guards/tokens/isShapeToken.ts
3619
+ var token_types = [
3620
+ ...TT_Atomics,
3621
+ ...TT_Containers,
3622
+ ...TT_Functions,
3623
+ ...TT_Sets,
3624
+ ...TT_Singletons
3625
+ ];
3626
+ var isShapeToken = (val) => {
3627
+ return isString(val) && val.startsWith("<<") && val.endsWith(">>") && token_types.some((t) => val.startsWith(`<<${t}`));
3628
+ };
3629
+
3630
+ // src/runtime/type-guards/tokens/isDefineObject.ts
3631
+ var isDefineObject = (val) => {
3632
+ return isObject(val) && Object.keys(val).some(
3633
+ (key) => isSimpleToken(val[key]) || isShapeToken(val) || isShapeCallback(val)
3634
+ );
3635
+ };
3636
+
3592
3637
  // src/runtime/type-guards/higher-order/endsWith.ts
3593
3638
  var endsWith = (endingIn2) => (val) => {
3594
3639
  return isString(val) ? val.endsWith(endingIn2) ? true : false : isNumber(val) ? String(val).endsWith(endingIn2) ? true : false : false;
@@ -3630,23 +3675,67 @@ var isHtmlElement = (val) => {
3630
3675
  return isObject(val) && "attributes" in val && "firstElementChild" in val && "innerHTML" in val;
3631
3676
  };
3632
3677
 
3633
- // src/runtime/type-guards/countries/isIso3166Alpha2.ts
3678
+ // src/runtime/type-guards/geo/isIso3166Alpha2.ts
3634
3679
  var isIso3166Alpha2 = (val) => {
3635
3680
  const codes = ISO3166_1.map((i) => i["alpha2"]);
3636
3681
  return isString(val) && codes.includes(val);
3637
3682
  };
3683
+ var isCountryCode2 = (val) => {
3684
+ const codes = ISO3166_1.map((i) => i["alpha2"]);
3685
+ return isString(val) && codes.includes(val);
3686
+ };
3638
3687
  var isIso3166Alpha3 = (val) => {
3639
3688
  const codes = ISO3166_1.map((i) => i["alpha3"]);
3640
3689
  return isString(val) && codes.includes(val);
3641
3690
  };
3691
+ var isCountryCode3 = (val) => {
3692
+ const codes = ISO3166_1.map((i) => i["alpha3"]);
3693
+ return isString(val) && codes.includes(val);
3694
+ };
3642
3695
  var isIso3166CountryCode = (val) => {
3643
3696
  const codes = ISO3166_1.map((i) => i["countryCode"]);
3644
3697
  return isString(val) && codes.includes(val);
3645
3698
  };
3699
+ var isCountryAbbrev = (val) => {
3700
+ return isCountryCode2(val) || isCountryCode3(val);
3701
+ };
3646
3702
  var isIso3166CountryName = (val) => {
3647
3703
  const codes = ISO3166_1.map((i) => i["name"]);
3648
3704
  return isString(val) && codes.includes(val);
3649
3705
  };
3706
+ var isCountryName = (val) => {
3707
+ const codes = ISO3166_1.map((i) => i["name"]);
3708
+ return isString(val) && codes.includes(val);
3709
+ };
3710
+
3711
+ // src/runtime/type-guards/geo/isZipCode.ts
3712
+ var isZipCode5 = (val) => {
3713
+ if (isNumber(val)) {
3714
+ return isZipCode5(`${val}`);
3715
+ }
3716
+ return isString(val) && val.trim().length === 5 && isNumberLike(val.trim());
3717
+ };
3718
+ var isZipPlus4 = (val) => {
3719
+ if (isString(val)) {
3720
+ const first = retainWhile(val.trim(), ...NUMERIC_CHAR);
3721
+ const next = stripChars(val.trim().replace(first, "").trim(), "-");
3722
+ return first.length === 5 && next.length === 4 && isNumberLike(next);
3723
+ }
3724
+ return false;
3725
+ };
3726
+ var isZipCode = (val) => {
3727
+ return isZipCode5(val) || isZipPlus4(val);
3728
+ };
3729
+
3730
+ // src/runtime/type-guards/geo/isUsState.ts
3731
+ var ABBREV = US_STATE_LOOKUP.map((i) => i.abbrev);
3732
+ var NAME = US_STATE_LOOKUP.map((i) => i.name);
3733
+ var isUsStateAbbreviation = (val) => {
3734
+ return isString(val) && ABBREV.includes(val);
3735
+ };
3736
+ var isUsStateName = (val) => {
3737
+ return isString(val) && NAME.includes(val);
3738
+ };
3650
3739
 
3651
3740
  // src/runtime/type-guards/metrics/isUom.ts
3652
3741
  var isAreaUom = (val) => {
@@ -4557,6 +4646,8 @@ var addSingleton = (token, api) => (...literals) => {
4557
4646
  );
4558
4647
  };
4559
4648
  var stringApi = {
4649
+ startsWith: (startsWith2) => addToken(`string-set`, `startsWith::${startsWith2}`),
4650
+ endsWith: (endsWith2) => addToken(`string-set`, `endsWith::${endsWith2}`),
4560
4651
  zip: () => addToken("string-set", "Zip5"),
4561
4652
  zipPlus4: () => addToken("string-set", "Zip5_4"),
4562
4653
  zipCode: () => addToken("string-set", "ZipCode"),
@@ -4700,19 +4791,31 @@ var ip6Prefix = (...groups) => {
4700
4791
  ].join("");
4701
4792
  };
4702
4793
 
4794
+ // src/runtime/runtime-types/asDefineObject.ts
4795
+ var asDefineObject = (defn) => {
4796
+ const result2 = Object.keys(defn).reduce(
4797
+ (acc, i) => isSimpleToken(defn[i]) ? { ...acc, [i]: asType(defn[i]) } : isDoneFn(defn[i]) ? {
4798
+ ...acc,
4799
+ [i]: handleDoneFn(defn[i](ShapeApiImplementation))
4800
+ } : isFunction(defn[i]) ? {
4801
+ ...acc,
4802
+ [i]: handleDoneFn(defn[i](ShapeApiImplementation))
4803
+ } : Never,
4804
+ {}
4805
+ );
4806
+ return result2;
4807
+ };
4808
+
4703
4809
  // src/runtime/runtime-types/asType.ts
4704
- var asType = (token) => {
4705
- return token;
4810
+ var asType = (...token) => {
4811
+ return isFunction(token) ? token(ShapeApiImplementation) : token.length === 1 ? isFunction(token[0]) ? handleDoneFn(token[0](ShapeApiImplementation)) : isDefineObject(token[0]) ? asDefineObject(token[0]) : token[0] : token.map((i) => isFunction(i) ? handleDoneFn(i(ShapeApiImplementation)) : i);
4706
4812
  };
4707
4813
  var asStringLiteral = (...values) => {
4708
4814
  return values.map((i) => i);
4709
4815
  };
4710
4816
 
4711
4817
  // src/runtime/runtime-types/asToken.ts
4712
- var asSimpleToken = (_val) => {
4713
- return "not ready";
4714
- };
4715
- var scalarToToken = {
4818
+ var scalarToToken = identity({
4716
4819
  string: "<<string>>",
4717
4820
  number: "<<number>>",
4718
4821
  boolean: "<<boolean>>",
@@ -4723,15 +4826,19 @@ var scalarToToken = {
4723
4826
  unknown: "<<unknown>>",
4724
4827
  any: "<<any>>",
4725
4828
  never: "<<never>>"
4726
- };
4829
+ });
4727
4830
  var stringLiteral = (str) => {
4728
4831
  return stripAfter(stripBefore(str, "string("), ")");
4729
4832
  };
4730
4833
  var numericLiteral = (str) => {
4731
4834
  return stripAfter(stripBefore(str, "number("), ")");
4732
4835
  };
4836
+ var handleOptional = (token) => {
4837
+ const bare = stripTrailing(stripLeading(token, "Opt<"), ">");
4838
+ return bare.startsWith("string") ? `<<union::[ <<string>>, <<undefined>> ]>>` : bare.startsWith("number") ? `<<union::[ <<number>>, <<undefined>> ]>>` : bare.startsWith("boolean") ? `<<union::[ <<boolean>>, <<undefined>> ]>>` : bare.startsWith("unknown") ? `<<union::[ <<unknown>>, <<undefined>> ]>>` : `<<never>>`;
4839
+ };
4733
4840
  var simpleScalarTokenToTypeToken = (val) => {
4734
- return val in scalarToToken ? scalarToToken[val] : val.startsWith("string(") ? stringLiteral(val).includes(",") ? `<<union::[ ${stringLiteral(val).split(/,\s{0,1}/).map((i) => `"${i}"`).join(", ")} ]>>` : `<<string::${stringLiteral(val)}>>` : val.startsWith("number(") ? numericLiteral(val).includes(",") ? `<<union::[ ${numericLiteral(val).split(/,\s{0,1}/).join(", ")} ]>>` : `<<number::${numericLiteral(val)}>>` : `<<never>>`;
4841
+ return val in scalarToToken ? scalarToToken[val] : val.startsWith("string(") ? stringLiteral(val).includes(",") ? `<<union::[ ${stringLiteral(val).split(/,\s{0,1}/).map((i) => `"${i}"`).join(", ")} ]>>` : `<<string::${stringLiteral(val)}>>` : val.startsWith("number(") ? numericLiteral(val).includes(",") ? `<<union::[ ${numericLiteral(val).split(/,\s{0,1}/).join(", ")} ]>>` : `<<number::${numericLiteral(val)}>>` : val.startsWith("Opt<") ? handleOptional(val) : `<<never>>`;
4735
4842
  };
4736
4843
  var unionNode = (node) => {
4737
4844
  return isNumberLike(node) ? `<<number::${node}>>` : isBooleanLike(node) ? `<<${node}>>` : isSimpleContainerToken(node) ? simpleContainerTokenToTypeToken(node) : isSimpleScalarToken(node) ? simpleScalarToken(node) : `<<string::${node}>>`;
@@ -4770,14 +4877,14 @@ var simpleType = (token) => {
4770
4877
  var unionToken = (...els) => {
4771
4878
  return `<<union::[${jsonValues(els)}]>>`;
4772
4879
  };
4773
- var singleton = (base) => {
4880
+ var singletonApi = (base) => {
4774
4881
  const handler = (...lits) => {
4775
4882
  return lits.length === 0 ? base === "string" ? `<<string>>` : `<<number>>` : lits.length === 1 ? base === "string" ? `<<string::${lits[0]}>>` : `<<number::${lits[0]}>>` : base === "string" ? `<<string::${unionToken(...lits)}>>` : `<<number::${unionToken(...lits)}>>`;
4776
4883
  };
4777
4884
  return handler;
4778
4885
  };
4779
4886
  var createTypeToken = (base) => {
4780
- return isAtomicToken(base) ? `<<${base}>>` : isSingletonToken(base) ? singleton(base) : "";
4887
+ return isAtomicToken(base) ? `<<${base}>>` : isSingletonToken(base) ? singletonApi(base) : "";
4781
4888
  };
4782
4889
 
4783
4890
  // src/runtime/sets/uniqueKeys.ts
@@ -4898,6 +5005,7 @@ var asVueRef = (value) => ({
4898
5005
  SIMPLE_CONTAINER_TOKENS,
4899
5006
  SIMPLE_DICT_TOKENS,
4900
5007
  SIMPLE_DICT_VALUES,
5008
+ SIMPLE_FN_TOKENS,
4901
5009
  SIMPLE_MAP_KEYS,
4902
5010
  SIMPLE_MAP_TOKENS,
4903
5011
  SIMPLE_MAP_VALUES,
@@ -4984,7 +5092,6 @@ var asVueRef = (value) => ({
4984
5092
  asOptionalParamFunction,
4985
5093
  asPhoneFormat,
4986
5094
  asRecord,
4987
- asSimpleToken,
4988
5095
  asString,
4989
5096
  asStringLiteral,
4990
5097
  asType,
@@ -5082,10 +5189,15 @@ var asVueRef = (value) => ({
5082
5189
  isContainer,
5083
5190
  isContainerToken,
5084
5191
  isCostCoUrl,
5192
+ isCountryAbbrev,
5193
+ isCountryCode2,
5194
+ isCountryCode3,
5195
+ isCountryName,
5085
5196
  isCssAspectRatio,
5086
5197
  isCurrentMetric,
5087
5198
  isCurrentUom,
5088
5199
  isCvsUrl,
5200
+ isDefineObject,
5089
5201
  isDefined,
5090
5202
  isDellUrl,
5091
5203
  isDistanceMetric,
@@ -5168,12 +5280,14 @@ var asVueRef = (value) => ({
5168
5280
  isRepoUrl,
5169
5281
  isResistance,
5170
5282
  isResistanceUom,
5283
+ isRetailUrl,
5171
5284
  isSameTypeOf,
5172
5285
  isScalar,
5173
5286
  isSemanticVersion,
5174
5287
  isSet,
5175
5288
  isSetToken,
5176
5289
  isShape,
5290
+ isShapeCallback,
5177
5291
  isSimpleContainerToken,
5178
5292
  isSimpleContainerTokenTuple,
5179
5293
  isSimpleScalarToken,
@@ -5209,6 +5323,8 @@ var asVueRef = (value) => ({
5209
5323
  isUrl,
5210
5324
  isUrlPath,
5211
5325
  isUrlSource,
5326
+ isUsStateAbbreviation,
5327
+ isUsStateName,
5212
5328
  isVoltageMetric,
5213
5329
  isVoltageUom,
5214
5330
  isVolumeMetric,
@@ -5230,6 +5346,9 @@ var asVueRef = (value) => ({
5230
5346
  isYouTubeVideoUrl,
5231
5347
  isYouTubeVideosInPlaylist,
5232
5348
  isZaraUrl,
5349
+ isZipCode,
5350
+ isZipCode5,
5351
+ isZipPlus4,
5233
5352
  joinWith,
5234
5353
  jsonValue,
5235
5354
  jsonValues,
package/dist/index.js CHANGED
@@ -515,6 +515,12 @@ var SIMPLE_OPT_SCALAR_TOKENS = [
515
515
  "Opt<number(TOKEN)>",
516
516
  "Opt<undefined>"
517
517
  ];
518
+ var SIMPLE_FN_TOKENS = [
519
+ "Fn<none> => Unknown",
520
+ "Fn<string> => Unknown",
521
+ "Fn<number> => Unknown",
522
+ "Fn<boolean> => Unknown"
523
+ ];
518
524
  var SIMPLE_UNION_TOKENS = [
519
525
  `Union(TOKEN)`
520
526
  ];
@@ -2296,7 +2302,7 @@ function unbox(val) {
2296
2302
  }
2297
2303
 
2298
2304
  // src/runtime/literals/identity.ts
2299
- var identity = (v) => v;
2305
+ var identity = (...values) => values.length === 1 ? values[0] : values.length === 0 ? void 0 : values;
2300
2306
 
2301
2307
  // src/runtime/literals/literal.ts
2302
2308
  function idLiteral(o) {
@@ -2964,6 +2970,9 @@ var isWalmartUrl = (val) => {
2964
2970
  var isAmazonUrl = (val) => {
2965
2971
  return isString(val) && AMAZON_DNS.some((i) => val.startsWith(`https://${i}`));
2966
2972
  };
2973
+ var isRetailUrl = (val) => {
2974
+ return isAmazonUrl(val) || isWalgreensUrl(val) || isAppleUrl(val) || isMacysUrl(val) || isEbayUrl(val) || isHomeDepotUrl(val) || isTargetUrl(val) || isEtsyUrl(val) || isCostCoUrl(val) || isBestBuyUrl(val) || isWayfairUrl(val) || isNikeUrl(val) || isLowesUrl(val) || isIkeaUrl(val) || isDellUrl(val) || isHmUrl(val) || isZaraUrl(val) || isKrogersUrl(val) || isWalgreensUrl(val) || isCvsUrl(val) || isWholeFoodsUrl(val);
2975
+ };
2967
2976
 
2968
2977
  // src/runtime/type-guards/tokens/isAtomicToken.ts
2969
2978
  var isAtomicToken = (val) => {
@@ -3043,6 +3052,30 @@ var isSimpleContainerTokenTuple = (val) => {
3043
3052
  return isArray(val) && val.length !== 0 && val.every(isSimpleContainerToken);
3044
3053
  };
3045
3054
 
3055
+ // src/runtime/type-guards/tokens/isShapeCallback.ts
3056
+ var isShapeCallback = (val) => {
3057
+ return isFunction(val) && val.kind === "shape";
3058
+ };
3059
+
3060
+ // src/runtime/type-guards/tokens/isShapeToken.ts
3061
+ var token_types = [
3062
+ ...TT_Atomics,
3063
+ ...TT_Containers,
3064
+ ...TT_Functions,
3065
+ ...TT_Sets,
3066
+ ...TT_Singletons
3067
+ ];
3068
+ var isShapeToken = (val) => {
3069
+ return isString(val) && val.startsWith("<<") && val.endsWith(">>") && token_types.some((t) => val.startsWith(`<<${t}`));
3070
+ };
3071
+
3072
+ // src/runtime/type-guards/tokens/isDefineObject.ts
3073
+ var isDefineObject = (val) => {
3074
+ return isObject(val) && Object.keys(val).some(
3075
+ (key) => isSimpleToken(val[key]) || isShapeToken(val) || isShapeCallback(val)
3076
+ );
3077
+ };
3078
+
3046
3079
  // src/runtime/type-guards/higher-order/endsWith.ts
3047
3080
  var endsWith = (endingIn2) => (val) => {
3048
3081
  return isString(val) ? val.endsWith(endingIn2) ? true : false : isNumber(val) ? String(val).endsWith(endingIn2) ? true : false : false;
@@ -3084,23 +3117,67 @@ var isHtmlElement = (val) => {
3084
3117
  return isObject(val) && "attributes" in val && "firstElementChild" in val && "innerHTML" in val;
3085
3118
  };
3086
3119
 
3087
- // src/runtime/type-guards/countries/isIso3166Alpha2.ts
3120
+ // src/runtime/type-guards/geo/isIso3166Alpha2.ts
3088
3121
  var isIso3166Alpha2 = (val) => {
3089
3122
  const codes = ISO3166_1.map((i) => i["alpha2"]);
3090
3123
  return isString(val) && codes.includes(val);
3091
3124
  };
3125
+ var isCountryCode2 = (val) => {
3126
+ const codes = ISO3166_1.map((i) => i["alpha2"]);
3127
+ return isString(val) && codes.includes(val);
3128
+ };
3092
3129
  var isIso3166Alpha3 = (val) => {
3093
3130
  const codes = ISO3166_1.map((i) => i["alpha3"]);
3094
3131
  return isString(val) && codes.includes(val);
3095
3132
  };
3133
+ var isCountryCode3 = (val) => {
3134
+ const codes = ISO3166_1.map((i) => i["alpha3"]);
3135
+ return isString(val) && codes.includes(val);
3136
+ };
3096
3137
  var isIso3166CountryCode = (val) => {
3097
3138
  const codes = ISO3166_1.map((i) => i["countryCode"]);
3098
3139
  return isString(val) && codes.includes(val);
3099
3140
  };
3141
+ var isCountryAbbrev = (val) => {
3142
+ return isCountryCode2(val) || isCountryCode3(val);
3143
+ };
3100
3144
  var isIso3166CountryName = (val) => {
3101
3145
  const codes = ISO3166_1.map((i) => i["name"]);
3102
3146
  return isString(val) && codes.includes(val);
3103
3147
  };
3148
+ var isCountryName = (val) => {
3149
+ const codes = ISO3166_1.map((i) => i["name"]);
3150
+ return isString(val) && codes.includes(val);
3151
+ };
3152
+
3153
+ // src/runtime/type-guards/geo/isZipCode.ts
3154
+ var isZipCode5 = (val) => {
3155
+ if (isNumber(val)) {
3156
+ return isZipCode5(`${val}`);
3157
+ }
3158
+ return isString(val) && val.trim().length === 5 && isNumberLike(val.trim());
3159
+ };
3160
+ var isZipPlus4 = (val) => {
3161
+ if (isString(val)) {
3162
+ const first = retainWhile(val.trim(), ...NUMERIC_CHAR);
3163
+ const next = stripChars(val.trim().replace(first, "").trim(), "-");
3164
+ return first.length === 5 && next.length === 4 && isNumberLike(next);
3165
+ }
3166
+ return false;
3167
+ };
3168
+ var isZipCode = (val) => {
3169
+ return isZipCode5(val) || isZipPlus4(val);
3170
+ };
3171
+
3172
+ // src/runtime/type-guards/geo/isUsState.ts
3173
+ var ABBREV = US_STATE_LOOKUP.map((i) => i.abbrev);
3174
+ var NAME = US_STATE_LOOKUP.map((i) => i.name);
3175
+ var isUsStateAbbreviation = (val) => {
3176
+ return isString(val) && ABBREV.includes(val);
3177
+ };
3178
+ var isUsStateName = (val) => {
3179
+ return isString(val) && NAME.includes(val);
3180
+ };
3104
3181
 
3105
3182
  // src/runtime/type-guards/metrics/isUom.ts
3106
3183
  var isAreaUom = (val) => {
@@ -4011,6 +4088,8 @@ var addSingleton = (token, api) => (...literals) => {
4011
4088
  );
4012
4089
  };
4013
4090
  var stringApi = {
4091
+ startsWith: (startsWith2) => addToken(`string-set`, `startsWith::${startsWith2}`),
4092
+ endsWith: (endsWith2) => addToken(`string-set`, `endsWith::${endsWith2}`),
4014
4093
  zip: () => addToken("string-set", "Zip5"),
4015
4094
  zipPlus4: () => addToken("string-set", "Zip5_4"),
4016
4095
  zipCode: () => addToken("string-set", "ZipCode"),
@@ -4154,19 +4233,31 @@ var ip6Prefix = (...groups) => {
4154
4233
  ].join("");
4155
4234
  };
4156
4235
 
4236
+ // src/runtime/runtime-types/asDefineObject.ts
4237
+ var asDefineObject = (defn) => {
4238
+ const result2 = Object.keys(defn).reduce(
4239
+ (acc, i) => isSimpleToken(defn[i]) ? { ...acc, [i]: asType(defn[i]) } : isDoneFn(defn[i]) ? {
4240
+ ...acc,
4241
+ [i]: handleDoneFn(defn[i](ShapeApiImplementation))
4242
+ } : isFunction(defn[i]) ? {
4243
+ ...acc,
4244
+ [i]: handleDoneFn(defn[i](ShapeApiImplementation))
4245
+ } : Never,
4246
+ {}
4247
+ );
4248
+ return result2;
4249
+ };
4250
+
4157
4251
  // src/runtime/runtime-types/asType.ts
4158
- var asType = (token) => {
4159
- return token;
4252
+ var asType = (...token) => {
4253
+ return isFunction(token) ? token(ShapeApiImplementation) : token.length === 1 ? isFunction(token[0]) ? handleDoneFn(token[0](ShapeApiImplementation)) : isDefineObject(token[0]) ? asDefineObject(token[0]) : token[0] : token.map((i) => isFunction(i) ? handleDoneFn(i(ShapeApiImplementation)) : i);
4160
4254
  };
4161
4255
  var asStringLiteral = (...values) => {
4162
4256
  return values.map((i) => i);
4163
4257
  };
4164
4258
 
4165
4259
  // src/runtime/runtime-types/asToken.ts
4166
- var asSimpleToken = (_val) => {
4167
- return "not ready";
4168
- };
4169
- var scalarToToken = {
4260
+ var scalarToToken = identity({
4170
4261
  string: "<<string>>",
4171
4262
  number: "<<number>>",
4172
4263
  boolean: "<<boolean>>",
@@ -4177,15 +4268,19 @@ var scalarToToken = {
4177
4268
  unknown: "<<unknown>>",
4178
4269
  any: "<<any>>",
4179
4270
  never: "<<never>>"
4180
- };
4271
+ });
4181
4272
  var stringLiteral = (str) => {
4182
4273
  return stripAfter(stripBefore(str, "string("), ")");
4183
4274
  };
4184
4275
  var numericLiteral = (str) => {
4185
4276
  return stripAfter(stripBefore(str, "number("), ")");
4186
4277
  };
4278
+ var handleOptional = (token) => {
4279
+ const bare = stripTrailing(stripLeading(token, "Opt<"), ">");
4280
+ return bare.startsWith("string") ? `<<union::[ <<string>>, <<undefined>> ]>>` : bare.startsWith("number") ? `<<union::[ <<number>>, <<undefined>> ]>>` : bare.startsWith("boolean") ? `<<union::[ <<boolean>>, <<undefined>> ]>>` : bare.startsWith("unknown") ? `<<union::[ <<unknown>>, <<undefined>> ]>>` : `<<never>>`;
4281
+ };
4187
4282
  var simpleScalarTokenToTypeToken = (val) => {
4188
- return val in scalarToToken ? scalarToToken[val] : val.startsWith("string(") ? stringLiteral(val).includes(",") ? `<<union::[ ${stringLiteral(val).split(/,\s{0,1}/).map((i) => `"${i}"`).join(", ")} ]>>` : `<<string::${stringLiteral(val)}>>` : val.startsWith("number(") ? numericLiteral(val).includes(",") ? `<<union::[ ${numericLiteral(val).split(/,\s{0,1}/).join(", ")} ]>>` : `<<number::${numericLiteral(val)}>>` : `<<never>>`;
4283
+ return val in scalarToToken ? scalarToToken[val] : val.startsWith("string(") ? stringLiteral(val).includes(",") ? `<<union::[ ${stringLiteral(val).split(/,\s{0,1}/).map((i) => `"${i}"`).join(", ")} ]>>` : `<<string::${stringLiteral(val)}>>` : val.startsWith("number(") ? numericLiteral(val).includes(",") ? `<<union::[ ${numericLiteral(val).split(/,\s{0,1}/).join(", ")} ]>>` : `<<number::${numericLiteral(val)}>>` : val.startsWith("Opt<") ? handleOptional(val) : `<<never>>`;
4189
4284
  };
4190
4285
  var unionNode = (node) => {
4191
4286
  return isNumberLike(node) ? `<<number::${node}>>` : isBooleanLike(node) ? `<<${node}>>` : isSimpleContainerToken(node) ? simpleContainerTokenToTypeToken(node) : isSimpleScalarToken(node) ? simpleScalarToken(node) : `<<string::${node}>>`;
@@ -4224,14 +4319,14 @@ var simpleType = (token) => {
4224
4319
  var unionToken = (...els) => {
4225
4320
  return `<<union::[${jsonValues(els)}]>>`;
4226
4321
  };
4227
- var singleton = (base) => {
4322
+ var singletonApi = (base) => {
4228
4323
  const handler = (...lits) => {
4229
4324
  return lits.length === 0 ? base === "string" ? `<<string>>` : `<<number>>` : lits.length === 1 ? base === "string" ? `<<string::${lits[0]}>>` : `<<number::${lits[0]}>>` : base === "string" ? `<<string::${unionToken(...lits)}>>` : `<<number::${unionToken(...lits)}>>`;
4230
4325
  };
4231
4326
  return handler;
4232
4327
  };
4233
4328
  var createTypeToken = (base) => {
4234
- return isAtomicToken(base) ? `<<${base}>>` : isSingletonToken(base) ? singleton(base) : "";
4329
+ return isAtomicToken(base) ? `<<${base}>>` : isSingletonToken(base) ? singletonApi(base) : "";
4235
4330
  };
4236
4331
 
4237
4332
  // src/runtime/sets/uniqueKeys.ts
@@ -4351,6 +4446,7 @@ export {
4351
4446
  SIMPLE_CONTAINER_TOKENS,
4352
4447
  SIMPLE_DICT_TOKENS,
4353
4448
  SIMPLE_DICT_VALUES,
4449
+ SIMPLE_FN_TOKENS,
4354
4450
  SIMPLE_MAP_KEYS,
4355
4451
  SIMPLE_MAP_TOKENS,
4356
4452
  SIMPLE_MAP_VALUES,
@@ -4437,7 +4533,6 @@ export {
4437
4533
  asOptionalParamFunction,
4438
4534
  asPhoneFormat,
4439
4535
  asRecord,
4440
- asSimpleToken,
4441
4536
  asString,
4442
4537
  asStringLiteral,
4443
4538
  asType,
@@ -4535,10 +4630,15 @@ export {
4535
4630
  isContainer,
4536
4631
  isContainerToken,
4537
4632
  isCostCoUrl,
4633
+ isCountryAbbrev,
4634
+ isCountryCode2,
4635
+ isCountryCode3,
4636
+ isCountryName,
4538
4637
  isCssAspectRatio,
4539
4638
  isCurrentMetric,
4540
4639
  isCurrentUom,
4541
4640
  isCvsUrl,
4641
+ isDefineObject,
4542
4642
  isDefined,
4543
4643
  isDellUrl,
4544
4644
  isDistanceMetric,
@@ -4621,12 +4721,14 @@ export {
4621
4721
  isRepoUrl,
4622
4722
  isResistance,
4623
4723
  isResistanceUom,
4724
+ isRetailUrl,
4624
4725
  isSameTypeOf,
4625
4726
  isScalar,
4626
4727
  isSemanticVersion,
4627
4728
  isSet,
4628
4729
  isSetToken,
4629
4730
  isShape,
4731
+ isShapeCallback,
4630
4732
  isSimpleContainerToken,
4631
4733
  isSimpleContainerTokenTuple,
4632
4734
  isSimpleScalarToken,
@@ -4662,6 +4764,8 @@ export {
4662
4764
  isUrl,
4663
4765
  isUrlPath,
4664
4766
  isUrlSource,
4767
+ isUsStateAbbreviation,
4768
+ isUsStateName,
4665
4769
  isVoltageMetric,
4666
4770
  isVoltageUom,
4667
4771
  isVolumeMetric,
@@ -4683,6 +4787,9 @@ export {
4683
4787
  isYouTubeVideoUrl,
4684
4788
  isYouTubeVideosInPlaylist,
4685
4789
  isZaraUrl,
4790
+ isZipCode,
4791
+ isZipCode5,
4792
+ isZipPlus4,
4686
4793
  joinWith,
4687
4794
  jsonValue,
4688
4795
  jsonValues,