inferred-types 0.53.12 → 0.54.1

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.
@@ -147,14 +147,15 @@ __export(src_exports, {
147
147
  TEMPERATURE_METRICS_LOOKUP: () => TEMPERATURE_METRICS_LOOKUP,
148
148
  TIME_METRICS_LOOKUP: () => TIME_METRICS_LOOKUP,
149
149
  TOP_LEVEL_DOMAINS: () => TOP_LEVEL_DOMAINS,
150
- TT_Atomics: () => TT_Atomics,
151
- TT_Containers: () => TT_Containers,
152
- TT_Functions: () => TT_Functions,
153
- TT_SEP: () => TT_SEP,
150
+ TT_ATOMICS: () => TT_ATOMICS,
151
+ TT_CONTAINERS: () => TT_CONTAINERS,
152
+ TT_DELIMITER: () => TT_DELIMITER,
153
+ TT_FUNCTIONS: () => TT_FUNCTIONS,
154
+ TT_KIND_VARIANTS: () => TT_KIND_VARIANTS,
155
+ TT_SETS: () => TT_SETS,
156
+ TT_SINGLETONS: () => TT_SINGLETONS,
154
157
  TT_START: () => TT_START,
155
158
  TT_STOP: () => TT_STOP,
156
- TT_Sets: () => TT_Sets,
157
- TT_Singletons: () => TT_Singletons,
158
159
  TURKISH_NEWS: () => TURKISH_NEWS,
159
160
  TW_CHROMA: () => TW_CHROMA,
160
161
  TW_CHROMA_100: () => TW_CHROMA_100,
@@ -193,13 +194,10 @@ __export(src_exports, {
193
194
  TYPE_COMPARISONS: () => TYPE_COMPARISONS,
194
195
  TYPE_KINDS: () => TYPE_KINDS,
195
196
  TYPE_OF: () => TYPE_OF,
196
- TYPE_TOKEN_ALL: () => TYPE_TOKEN_ALL,
197
- TYPE_TOKEN_IDENTITIES: () => TYPE_TOKEN_IDENTITIES,
198
- TYPE_TOKEN_PARAM_CSV: () => TYPE_TOKEN_PARAM_CSV,
199
- TYPE_TOKEN_PARAM_DATE: () => TYPE_TOKEN_PARAM_DATE,
200
- TYPE_TOKEN_PARAM_DATETIME: () => TYPE_TOKEN_PARAM_DATETIME,
201
- TYPE_TOKEN_PARAM_STR: () => TYPE_TOKEN_PARAM_STR,
202
- TYPE_TOKEN_PARAM_TIME: () => TYPE_TOKEN_PARAM_TIME,
197
+ TYPE_TOKEN_REC_KEY_VARIANTS: () => TYPE_TOKEN_REC_KEY_VARIANTS,
198
+ TYPE_TOKEN_REC_VARIANTS: () => TYPE_TOKEN_REC_VARIANTS,
199
+ TYPE_TOKEN_STRING_SET_VARIANTS: () => TYPE_TOKEN_STRING_SET_VARIANTS,
200
+ TYPE_TOKEN_UNION_SET_VARIANTS: () => TYPE_TOKEN_UNION_SET_VARIANTS,
203
201
  TYPE_TRANSFORMS: () => TYPE_TRANSFORMS,
204
202
  UK_NEWS: () => UK_NEWS,
205
203
  UPPER_ALPHA_CHARS: () => UPPER_ALPHA_CHARS,
@@ -246,6 +244,7 @@ __export(src_exports, {
246
244
  createCssSelector: () => createCssSelector,
247
245
  createErrorCondition: () => createErrorCondition,
248
246
  createFifoQueue: () => createFifoQueue,
247
+ createFixedLengthArray: () => createFixedLengthArray,
249
248
  createFnWithProps: () => createFnWithProps,
250
249
  createFnWithPropsExplicit: () => createFnWithPropsExplicit,
251
250
  createLifoQueue: () => createLifoQueue,
@@ -271,6 +270,7 @@ __export(src_exports, {
271
270
  getPhoneCountryCode: () => getPhoneCountryCode,
272
271
  getTailwindModifiers: () => getTailwindModifiers,
273
272
  getToday: () => getToday,
273
+ getTokenKind: () => getTokenKind,
274
274
  getTomorrow: () => getTomorrow,
275
275
  getUrlPath: () => getUrlPath,
276
276
  getUrlPort: () => getUrlPort,
@@ -312,6 +312,7 @@ __export(src_exports, {
312
312
  ifUndefined: () => ifUndefined,
313
313
  ifUppercaseChar: () => ifUppercaseChar,
314
314
  indexOf: () => indexOf,
315
+ infer: () => infer,
315
316
  intersect: () => intersect,
316
317
  intersection: () => intersection,
317
318
  ip6GroupExpansion: () => ip6GroupExpansion,
@@ -327,6 +328,7 @@ __export(src_exports, {
327
328
  isAreaUom: () => isAreaUom,
328
329
  isArray: () => isArray,
329
330
  isArrayToken: () => isArrayToken,
331
+ isAtomicKind: () => isAtomicKind,
330
332
  isAtomicToken: () => isAtomicToken,
331
333
  isAustralianNewsUrl: () => isAustralianNewsUrl,
332
334
  isBelgiumNewsUrl: () => isBelgiumNewsUrl,
@@ -370,13 +372,13 @@ __export(src_exports, {
370
372
  isEtsyUrl: () => isEtsyUrl,
371
373
  isFalse: () => isFalse,
372
374
  isFalsy: () => isFalsy,
373
- isFnToken: () => isFnToken,
375
+ isFnBasedKind: () => isFnBasedKind,
376
+ isFnBasedToken: () => isFnBasedToken,
374
377
  isFnWithParams: () => isFnWithParams,
375
378
  isFrenchNewsUrl: () => isFrenchNewsUrl,
376
379
  isFrequencyMetric: () => isFrequencyMetric,
377
380
  isFrequencyUom: () => isFrequencyUom,
378
381
  isFunction: () => isFunction,
379
- isGeneratorToken: () => isGeneratorToken,
380
382
  isGermanNewsUrl: () => isGermanNewsUrl,
381
383
  isGithubIssueUrl: () => isGithubIssueUrl,
382
384
  isGithubIssuesListUrl: () => isGithubIssuesListUrl,
@@ -461,6 +463,8 @@ __export(src_exports, {
461
463
  isScalar: () => isScalar,
462
464
  isSemanticVersion: () => isSemanticVersion,
463
465
  isSet: () => isSet,
466
+ isSetBasedKind: () => isSetBasedKind,
467
+ isSetBasedToken: () => isSetBasedToken,
464
468
  isSetToken: () => isSetToken,
465
469
  isShape: () => isShape,
466
470
  isShapeCallback: () => isShapeCallback,
@@ -470,6 +474,7 @@ __export(src_exports, {
470
474
  isSimpleScalarTokenTuple: () => isSimpleScalarTokenTuple,
471
475
  isSimpleToken: () => isSimpleToken,
472
476
  isSimpleTokenTuple: () => isSimpleTokenTuple,
477
+ isSingletonKind: () => isSingletonKind,
473
478
  isSingletonToken: () => isSingletonToken,
474
479
  isSocialMediaProfileUrl: () => isSocialMediaProfileUrl,
475
480
  isSocialMediaUrl: () => isSocialMediaUrl,
@@ -508,11 +513,10 @@ __export(src_exports, {
508
513
  isTurkishNewsUrl: () => isTurkishNewsUrl,
509
514
  isTypeOf: () => isTypeOf,
510
515
  isTypeToken: () => isTypeToken,
516
+ isTypeTokenKind: () => isTypeTokenKind,
511
517
  isTypeTuple: () => isTypeTuple,
512
518
  isUkNewsUrl: () => isUkNewsUrl,
513
519
  isUndefined: () => isUndefined,
514
- isUnionSetToken: () => isUnionSetToken,
515
- isUnionToken: () => isUnionToken,
516
520
  isUnset: () => isUnset,
517
521
  isUom: () => isUom,
518
522
  isUri: () => isUri,
@@ -529,7 +533,6 @@ __export(src_exports, {
529
533
  isWalgreensUrl: () => isWalgreensUrl,
530
534
  isWalmartUrl: () => isWalmartUrl,
531
535
  isWayfairUrl: () => isWayfairUrl,
532
- isWeakMapToken: () => isWeakMapToken,
533
536
  isWholeFoodsUrl: () => isWholeFoodsUrl,
534
537
  isYesterday: () => isYesterday,
535
538
  isYouTubeCreatorUrl: () => isYouTubeCreatorUrl,
@@ -636,6 +639,7 @@ __export(src_exports, {
636
639
  unionize: () => unionize,
637
640
  unique: () => unique,
638
641
  uniqueKeys: () => uniqueKeys,
642
+ unset: () => unset,
639
643
  uppercase: () => uppercase,
640
644
  urlMeta: () => urlMeta,
641
645
  valuesOf: () => valuesOf,
@@ -2517,6 +2521,133 @@ var SHAPE_PREFIXES = [
2517
2521
  "record::"
2518
2522
  ];
2519
2523
  var SHAPE_DELIMITER = "||,||";
2524
+ var SIMPLE_DICT_VALUES = [
2525
+ "string",
2526
+ "number",
2527
+ "boolean",
2528
+ "unknown",
2529
+ "Opt<string>",
2530
+ "Opt<number>",
2531
+ "Opt<boolean>",
2532
+ "Opt<unknown>"
2533
+ ];
2534
+ var SIMPLE_SET_TYPES = [
2535
+ "string",
2536
+ "number",
2537
+ "boolean",
2538
+ "unknown",
2539
+ "Opt<string>",
2540
+ "Opt<number>",
2541
+ "Opt<boolean>",
2542
+ "Opt<unknown>"
2543
+ ];
2544
+ var SIMPLE_SCALAR_TOKENS = [
2545
+ "string",
2546
+ "number",
2547
+ `string(TOKEN)`,
2548
+ `number(TOKEN)`,
2549
+ "boolean",
2550
+ "true",
2551
+ "false",
2552
+ "null",
2553
+ "undefined",
2554
+ "unknown",
2555
+ "any",
2556
+ "never"
2557
+ ];
2558
+ var SIMPLE_OPT_SCALAR_TOKENS = [
2559
+ "Opt<string>",
2560
+ "Opt<number>",
2561
+ "Opt<boolean>",
2562
+ "Opt<true>",
2563
+ "Opt<false>",
2564
+ "Opt<null>",
2565
+ "Opt<undefined>",
2566
+ "Opt<unknown>",
2567
+ "Opt<any>",
2568
+ "Opt<string(TOKEN)>",
2569
+ "Opt<number(TOKEN)>",
2570
+ "Opt<undefined>"
2571
+ ];
2572
+ var SIMPLE_FN_TOKENS = [
2573
+ "Fn<none> => Unknown",
2574
+ "Fn<string> => Unknown",
2575
+ "Fn<number> => Unknown",
2576
+ "Fn<boolean> => Unknown"
2577
+ ];
2578
+ var SIMPLE_UNION_TOKENS = [
2579
+ `Union(TOKEN)`
2580
+ ];
2581
+ var SIMPLE_MAP_KEYS = [
2582
+ "string",
2583
+ "number",
2584
+ "Dict",
2585
+ "Dict<string, string>",
2586
+ "Dict<string, number>",
2587
+ "Dict<string, boolean>",
2588
+ "Dict<string, unknown>",
2589
+ "Dict<string, Opt<string>>",
2590
+ "Dict<string, Opt<number>>",
2591
+ "Dict<string, Opt<boolean>>"
2592
+ ];
2593
+ var SIMPLE_MAP_VALUES = [
2594
+ ...SIMPLE_MAP_KEYS,
2595
+ "boolean",
2596
+ "unknown",
2597
+ "undefined",
2598
+ "Dict",
2599
+ "Array",
2600
+ "Dict<string, Opt<string>>",
2601
+ "Dict<string, Opt<number>>",
2602
+ "Dict<string, Opt<boolean>>",
2603
+ "Dict<string, Opt<unknown>>"
2604
+ ];
2605
+ var SIMPLE_DICT_TOKENS = [
2606
+ "Dict",
2607
+ "Dict<string, string>",
2608
+ "Dict<string, number>",
2609
+ "Dict<string, boolean>",
2610
+ "Dict<string, unknown>",
2611
+ "Dict<string, Opt<string>>",
2612
+ "Dict<string, Opt<number>>",
2613
+ "Dict<string, Opt<boolean>>",
2614
+ "Dict<string, Opt<unknown>>",
2615
+ "Dict<{TOKEN: TOKEN}>",
2616
+ "Dict<{TOKEN: TOKEN, TOKEN: TOKEN}>"
2617
+ ];
2618
+ var SIMPLE_ARRAY_TOKENS = [
2619
+ "Array",
2620
+ "Array<string>",
2621
+ "Array<string(TOKEN)>",
2622
+ "Array<number>",
2623
+ "Array<number(TOKEN)>",
2624
+ "Array<boolean>",
2625
+ "Array<unknown>",
2626
+ `Array<Dict>`,
2627
+ `Array<Set>`,
2628
+ `Array<Map>`
2629
+ ];
2630
+ var SIMPLE_MAP_TOKENS = [
2631
+ "Map",
2632
+ "Map<TOKEN, TOKEN>",
2633
+ "WeakMap"
2634
+ ];
2635
+ var SIMPLE_SET_TOKENS = [
2636
+ "Set",
2637
+ "Set<TOKEN>"
2638
+ ];
2639
+ var SIMPLE_CONTAINER_TOKENS = [
2640
+ ...SIMPLE_DICT_TOKENS,
2641
+ ...SIMPLE_ARRAY_TOKENS,
2642
+ ...SIMPLE_MAP_TOKENS,
2643
+ ...SIMPLE_SET_TOKENS
2644
+ ];
2645
+ var SIMPLE_TOKENS = [
2646
+ ...SIMPLE_SCALAR_TOKENS,
2647
+ ...SIMPLE_OPT_SCALAR_TOKENS,
2648
+ ...SIMPLE_CONTAINER_TOKENS,
2649
+ ...SIMPLE_UNION_TOKENS
2650
+ ];
2520
2651
  var SINGULAR_NOUN_ENDINGS = [
2521
2652
  "s",
2522
2653
  "sh",
@@ -2890,154 +3021,28 @@ var TYPE_KINDS = [
2890
3021
  ...NARROW_CONTAINER_TYPE_KINDS,
2891
3022
  ...WIDE_CONTAINER_TYPE_KINDS
2892
3023
  ];
2893
- var SIMPLE_DICT_VALUES = [
2894
- "string",
2895
- "number",
2896
- "boolean",
2897
- "unknown",
2898
- "Opt<string>",
2899
- "Opt<number>",
2900
- "Opt<boolean>",
2901
- "Opt<unknown>"
2902
- ];
2903
- var SIMPLE_SET_TYPES = [
2904
- "string",
2905
- "number",
2906
- "boolean",
2907
- "unknown",
2908
- "Opt<string>",
2909
- "Opt<number>",
2910
- "Opt<boolean>",
2911
- "Opt<unknown>"
2912
- ];
2913
- var SIMPLE_SCALAR_TOKENS = [
2914
- "string",
2915
- "number",
2916
- `string(TOKEN)`,
2917
- `number(TOKEN)`,
2918
- "boolean",
2919
- "true",
2920
- "false",
2921
- "null",
2922
- "undefined",
2923
- "unknown",
2924
- "any",
2925
- "never"
2926
- ];
2927
- var SIMPLE_OPT_SCALAR_TOKENS = [
2928
- "Opt<string>",
2929
- "Opt<number>",
2930
- "Opt<boolean>",
2931
- "Opt<true>",
2932
- "Opt<false>",
2933
- "Opt<null>",
2934
- "Opt<undefined>",
2935
- "Opt<unknown>",
2936
- "Opt<any>",
2937
- "Opt<string(TOKEN)>",
2938
- "Opt<number(TOKEN)>",
2939
- "Opt<undefined>"
2940
- ];
2941
- var SIMPLE_FN_TOKENS = [
2942
- "Fn<none> => Unknown",
2943
- "Fn<string> => Unknown",
2944
- "Fn<number> => Unknown",
2945
- "Fn<boolean> => Unknown"
2946
- ];
2947
- var SIMPLE_UNION_TOKENS = [
2948
- `Union(TOKEN)`
2949
- ];
2950
- var SIMPLE_MAP_KEYS = [
2951
- "string",
2952
- "number",
2953
- "Dict",
2954
- "Dict<string, string>",
2955
- "Dict<string, number>",
2956
- "Dict<string, boolean>",
2957
- "Dict<string, unknown>",
2958
- "Dict<string, Opt<string>>",
2959
- "Dict<string, Opt<number>>",
2960
- "Dict<string, Opt<boolean>>"
2961
- ];
2962
- var SIMPLE_MAP_VALUES = [
2963
- ...SIMPLE_MAP_KEYS,
2964
- "boolean",
2965
- "unknown",
2966
- "undefined",
2967
- "Dict",
2968
- "Array",
2969
- "Dict<string, Opt<string>>",
2970
- "Dict<string, Opt<number>>",
2971
- "Dict<string, Opt<boolean>>",
2972
- "Dict<string, Opt<unknown>>"
2973
- ];
2974
- var SIMPLE_DICT_TOKENS = [
2975
- "Dict",
2976
- "Dict<string, string>",
2977
- "Dict<string, number>",
2978
- "Dict<string, boolean>",
2979
- "Dict<string, unknown>",
2980
- "Dict<string, Opt<string>>",
2981
- "Dict<string, Opt<number>>",
2982
- "Dict<string, Opt<boolean>>",
2983
- "Dict<string, Opt<unknown>>",
2984
- "Dict<{TOKEN: TOKEN}>",
2985
- "Dict<{TOKEN: TOKEN, TOKEN: TOKEN}>"
2986
- ];
2987
- var SIMPLE_ARRAY_TOKENS = [
2988
- "Array",
2989
- "Array<string>",
2990
- "Array<string(TOKEN)>",
2991
- "Array<number>",
2992
- "Array<number(TOKEN)>",
2993
- "Array<boolean>",
2994
- "Array<unknown>",
2995
- `Array<Dict>`,
2996
- `Array<Set>`,
2997
- `Array<Map>`
2998
- ];
2999
- var SIMPLE_MAP_TOKENS = [
3000
- "Map",
3001
- "Map<TOKEN, TOKEN>",
3002
- "WeakMap"
3003
- ];
3004
- var SIMPLE_SET_TOKENS = [
3005
- "Set",
3006
- "Set<TOKEN>"
3007
- ];
3008
- var SIMPLE_CONTAINER_TOKENS = [
3009
- ...SIMPLE_DICT_TOKENS,
3010
- ...SIMPLE_ARRAY_TOKENS,
3011
- ...SIMPLE_MAP_TOKENS,
3012
- ...SIMPLE_SET_TOKENS
3013
- ];
3014
- var SIMPLE_TOKENS = [
3015
- ...SIMPLE_SCALAR_TOKENS,
3016
- ...SIMPLE_OPT_SCALAR_TOKENS,
3017
- ...SIMPLE_CONTAINER_TOKENS,
3018
- ...SIMPLE_UNION_TOKENS
3019
- ];
3020
- var TT_Atomics = [
3024
+ var TT_ATOMICS = [
3021
3025
  "undefined",
3022
3026
  "null",
3023
3027
  "boolean",
3024
3028
  "true",
3025
3029
  "false"
3026
3030
  ];
3027
- var TT_Singletons = [
3031
+ var TT_SINGLETONS = [
3028
3032
  "string",
3029
3033
  "number"
3030
3034
  ];
3031
- var TT_Sets = [
3035
+ var TT_SETS = [
3032
3036
  "string-set",
3033
3037
  "numeric-set",
3038
+ "fn-set",
3034
3039
  "union-set"
3035
3040
  ];
3036
- var TT_Functions = [
3041
+ var TT_FUNCTIONS = [
3037
3042
  "fn",
3038
3043
  "gen"
3039
3044
  ];
3040
- var TT_Containers = [
3045
+ var TT_CONTAINERS = [
3041
3046
  "rec",
3042
3047
  "arr",
3043
3048
  "set",
@@ -3046,70 +3051,71 @@ var TT_Containers = [
3046
3051
  "obj",
3047
3052
  "tuple"
3048
3053
  ];
3054
+ var TT_KIND_VARIANTS = [
3055
+ ...TT_ATOMICS,
3056
+ ...TT_CONTAINERS,
3057
+ ...TT_FUNCTIONS,
3058
+ ...TT_SETS,
3059
+ ...TT_SINGLETONS
3060
+ ];
3049
3061
  var TT_START = "<<";
3050
3062
  var TT_STOP = ">>";
3051
- var TT_SEP = "::";
3052
- var TYPE_TOKEN_IDENTITIES = [
3063
+ var TT_DELIMITER = "::";
3064
+ var TYPE_TOKEN_REC_VARIANTS = [
3065
+ "object-key",
3066
+ "string-key"
3067
+ ];
3068
+ var TYPE_TOKEN_REC_KEY_VARIANTS = [
3069
+ "unknown",
3070
+ "any",
3053
3071
  "string",
3054
3072
  "number",
3055
- "numericString",
3056
- "booleanString",
3057
- "null",
3058
- "undefined",
3059
3073
  "boolean",
3060
- "true",
3061
- "false",
3062
- "space",
3063
- "whitespace",
3074
+ "truthy",
3075
+ "numberlike",
3076
+ "scalar",
3064
3077
  "object",
3065
- "emptyObject",
3066
- "function",
3067
- "array"
3068
- ];
3069
- var TYPE_TOKEN_PARAM_STR = [
3070
- "explicitClass",
3071
- "startsWith",
3072
- "endsWith",
3073
- "ensureLeading",
3074
- "stripLeading",
3075
- "ensureTrailing",
3076
- "stripTrailing",
3077
- "camelCase",
3078
- "pascalCase",
3079
- "snakeCase",
3080
- "kebabCase",
3081
- "explicitType"
3082
- ];
3083
- var TYPE_TOKEN_PARAM_CSV = [
3084
- "stringLiteral",
3085
- "numericLiteral",
3086
- "objectLiteral",
3087
- "tuple",
3088
- "union"
3089
- ];
3090
- var TYPE_TOKEN_PARAM_DATETIME = [
3091
- "datetime"
3092
- ];
3093
- var TYPE_TOKEN_PARAM_DATE = [
3094
- "ymd",
3095
- "monthThenDate",
3096
- "dateThenMonth"
3097
- ];
3098
- var TYPE_TOKEN_PARAM_TIME = [
3099
- "timeInMinutes",
3100
- "timeInSeconds",
3101
- "militaryTimeInMinutes",
3102
- "militaryTimeInSeconds",
3103
- "militaryTimeInMilliseconds",
3104
- "civilianTimeInMinutes"
3105
- ];
3106
- var TYPE_TOKEN_ALL = [
3107
- ...TYPE_TOKEN_IDENTITIES,
3108
- ...TYPE_TOKEN_PARAM_CSV,
3109
- ...TYPE_TOKEN_PARAM_DATE,
3110
- ...TYPE_TOKEN_PARAM_DATETIME,
3111
- ...TYPE_TOKEN_PARAM_STR,
3112
- ...TYPE_TOKEN_PARAM_TIME
3078
+ "string|undefined",
3079
+ "number|undefined",
3080
+ "boolean|undefined",
3081
+ "object|undefined",
3082
+ "unknown[]",
3083
+ "any[]",
3084
+ "string[]",
3085
+ "number[]",
3086
+ "boolean[]"
3087
+ ];
3088
+ var TYPE_TOKEN_STRING_SET_VARIANTS = [
3089
+ "endsWith::${string}",
3090
+ "startsWith::${string}",
3091
+ "contains::${string}",
3092
+ "civilianTime",
3093
+ "militaryTime",
3094
+ "ipv4Address",
3095
+ "ipv4Address::tight",
3096
+ "ipv4Address::loose",
3097
+ "ipv6Address",
3098
+ "ipv6Address::${string}",
3099
+ "numericString",
3100
+ "zipCode5",
3101
+ "zipCode5+4",
3102
+ "countryCode2",
3103
+ "countryCode3",
3104
+ "countryName",
3105
+ "capitalized",
3106
+ "url",
3107
+ "url::${string}",
3108
+ "isoDate",
3109
+ "isoDateTime",
3110
+ "usStateAbbrev",
3111
+ "usCitySuggestions",
3112
+ "metricCategory",
3113
+ "metric",
3114
+ "metric::${Metric}"
3115
+ ];
3116
+ var TYPE_TOKEN_UNION_SET_VARIANTS = [
3117
+ "numberLike",
3118
+ "scalar"
3113
3119
  ];
3114
3120
  var t_unknown = "<<unknown>>";
3115
3121
  var t_string = "<<string>>";
@@ -4303,35 +4309,136 @@ var DELL_DNS2 = [
4303
4309
  var HM_DNS2 = [
4304
4310
  "www2.hm.com"
4305
4311
  ];
4306
- var ZARA_DNS2 = [
4307
- "www.zara.com"
4312
+ var ZARA_DNS2 = [
4313
+ "www.zara.com"
4314
+ ];
4315
+ var KROGER_DNS2 = [
4316
+ "www.kroger.com"
4317
+ ];
4318
+ var WALGREENS_DNS2 = [
4319
+ "www.walgreens.com"
4320
+ ];
4321
+ var CVS_DNS2 = [
4322
+ "www.cvs.com"
4323
+ ];
4324
+ var WHOLE_FOODS_DNS2 = [
4325
+ "www.wholefoodsmarket.com",
4326
+ "www.wholefoodsmarket.co.uk"
4327
+ ];
4328
+ var SHAPE_PREFIXES2 = [
4329
+ "string",
4330
+ "number",
4331
+ "boolean",
4332
+ "null",
4333
+ "undefined",
4334
+ "unknown",
4335
+ "opt::",
4336
+ "union::",
4337
+ "tuple::",
4338
+ "array::",
4339
+ "object",
4340
+ "record::"
4341
+ ];
4342
+ var SIMPLE_SCALAR_TOKENS2 = [
4343
+ "string",
4344
+ "number",
4345
+ `string(TOKEN)`,
4346
+ `number(TOKEN)`,
4347
+ "boolean",
4348
+ "true",
4349
+ "false",
4350
+ "null",
4351
+ "undefined",
4352
+ "unknown",
4353
+ "any",
4354
+ "never"
4355
+ ];
4356
+ var SIMPLE_OPT_SCALAR_TOKENS2 = [
4357
+ "Opt<string>",
4358
+ "Opt<number>",
4359
+ "Opt<boolean>",
4360
+ "Opt<true>",
4361
+ "Opt<false>",
4362
+ "Opt<null>",
4363
+ "Opt<undefined>",
4364
+ "Opt<unknown>",
4365
+ "Opt<any>",
4366
+ "Opt<string(TOKEN)>",
4367
+ "Opt<number(TOKEN)>",
4368
+ "Opt<undefined>"
4369
+ ];
4370
+ var SIMPLE_UNION_TOKENS2 = [
4371
+ `Union(TOKEN)`
4372
+ ];
4373
+ var SIMPLE_MAP_KEYS2 = [
4374
+ "string",
4375
+ "number",
4376
+ "Dict",
4377
+ "Dict<string, string>",
4378
+ "Dict<string, number>",
4379
+ "Dict<string, boolean>",
4380
+ "Dict<string, unknown>",
4381
+ "Dict<string, Opt<string>>",
4382
+ "Dict<string, Opt<number>>",
4383
+ "Dict<string, Opt<boolean>>"
4384
+ ];
4385
+ var SIMPLE_MAP_VALUES2 = [
4386
+ ...SIMPLE_MAP_KEYS2,
4387
+ "boolean",
4388
+ "unknown",
4389
+ "undefined",
4390
+ "Dict",
4391
+ "Array",
4392
+ "Dict<string, Opt<string>>",
4393
+ "Dict<string, Opt<number>>",
4394
+ "Dict<string, Opt<boolean>>",
4395
+ "Dict<string, Opt<unknown>>"
4396
+ ];
4397
+ var SIMPLE_DICT_TOKENS2 = [
4398
+ "Dict",
4399
+ "Dict<string, string>",
4400
+ "Dict<string, number>",
4401
+ "Dict<string, boolean>",
4402
+ "Dict<string, unknown>",
4403
+ "Dict<string, Opt<string>>",
4404
+ "Dict<string, Opt<number>>",
4405
+ "Dict<string, Opt<boolean>>",
4406
+ "Dict<string, Opt<unknown>>",
4407
+ "Dict<{TOKEN: TOKEN}>",
4408
+ "Dict<{TOKEN: TOKEN, TOKEN: TOKEN}>"
4308
4409
  ];
4309
- var KROGER_DNS2 = [
4310
- "www.kroger.com"
4410
+ var SIMPLE_ARRAY_TOKENS2 = [
4411
+ "Array",
4412
+ "Array<string>",
4413
+ "Array<string(TOKEN)>",
4414
+ "Array<number>",
4415
+ "Array<number(TOKEN)>",
4416
+ "Array<boolean>",
4417
+ "Array<unknown>",
4418
+ `Array<Dict>`,
4419
+ `Array<Set>`,
4420
+ `Array<Map>`
4311
4421
  ];
4312
- var WALGREENS_DNS2 = [
4313
- "www.walgreens.com"
4422
+ var SIMPLE_MAP_TOKENS2 = [
4423
+ "Map",
4424
+ "Map<TOKEN, TOKEN>",
4425
+ "WeakMap"
4314
4426
  ];
4315
- var CVS_DNS2 = [
4316
- "www.cvs.com"
4427
+ var SIMPLE_SET_TOKENS2 = [
4428
+ "Set",
4429
+ "Set<TOKEN>"
4317
4430
  ];
4318
- var WHOLE_FOODS_DNS2 = [
4319
- "www.wholefoodsmarket.com",
4320
- "www.wholefoodsmarket.co.uk"
4431
+ var SIMPLE_CONTAINER_TOKENS2 = [
4432
+ ...SIMPLE_DICT_TOKENS2,
4433
+ ...SIMPLE_ARRAY_TOKENS2,
4434
+ ...SIMPLE_MAP_TOKENS2,
4435
+ ...SIMPLE_SET_TOKENS2
4321
4436
  ];
4322
- var SHAPE_PREFIXES2 = [
4323
- "string",
4324
- "number",
4325
- "boolean",
4326
- "null",
4327
- "undefined",
4328
- "unknown",
4329
- "opt::",
4330
- "union::",
4331
- "tuple::",
4332
- "array::",
4333
- "object",
4334
- "record::"
4437
+ var SIMPLE_TOKENS2 = [
4438
+ ...SIMPLE_SCALAR_TOKENS2,
4439
+ ...SIMPLE_OPT_SCALAR_TOKENS2,
4440
+ ...SIMPLE_CONTAINER_TOKENS2,
4441
+ ...SIMPLE_UNION_TOKENS2
4335
4442
  ];
4336
4443
  var SINGULAR_NOUN_ENDINGS2 = [
4337
4444
  "s",
@@ -4705,128 +4812,28 @@ var TYPE_KINDS2 = [
4705
4812
  ...NARROW_CONTAINER_TYPE_KINDS2,
4706
4813
  ...WIDE_CONTAINER_TYPE_KINDS2
4707
4814
  ];
4708
- var SIMPLE_SCALAR_TOKENS2 = [
4709
- "string",
4710
- "number",
4711
- `string(TOKEN)`,
4712
- `number(TOKEN)`,
4713
- "boolean",
4714
- "true",
4715
- "false",
4716
- "null",
4717
- "undefined",
4718
- "unknown",
4719
- "any",
4720
- "never"
4721
- ];
4722
- var SIMPLE_OPT_SCALAR_TOKENS2 = [
4723
- "Opt<string>",
4724
- "Opt<number>",
4725
- "Opt<boolean>",
4726
- "Opt<true>",
4727
- "Opt<false>",
4728
- "Opt<null>",
4729
- "Opt<undefined>",
4730
- "Opt<unknown>",
4731
- "Opt<any>",
4732
- "Opt<string(TOKEN)>",
4733
- "Opt<number(TOKEN)>",
4734
- "Opt<undefined>"
4735
- ];
4736
- var SIMPLE_UNION_TOKENS2 = [
4737
- `Union(TOKEN)`
4738
- ];
4739
- var SIMPLE_MAP_KEYS2 = [
4740
- "string",
4741
- "number",
4742
- "Dict",
4743
- "Dict<string, string>",
4744
- "Dict<string, number>",
4745
- "Dict<string, boolean>",
4746
- "Dict<string, unknown>",
4747
- "Dict<string, Opt<string>>",
4748
- "Dict<string, Opt<number>>",
4749
- "Dict<string, Opt<boolean>>"
4750
- ];
4751
- var SIMPLE_MAP_VALUES2 = [
4752
- ...SIMPLE_MAP_KEYS2,
4753
- "boolean",
4754
- "unknown",
4755
- "undefined",
4756
- "Dict",
4757
- "Array",
4758
- "Dict<string, Opt<string>>",
4759
- "Dict<string, Opt<number>>",
4760
- "Dict<string, Opt<boolean>>",
4761
- "Dict<string, Opt<unknown>>"
4762
- ];
4763
- var SIMPLE_DICT_TOKENS2 = [
4764
- "Dict",
4765
- "Dict<string, string>",
4766
- "Dict<string, number>",
4767
- "Dict<string, boolean>",
4768
- "Dict<string, unknown>",
4769
- "Dict<string, Opt<string>>",
4770
- "Dict<string, Opt<number>>",
4771
- "Dict<string, Opt<boolean>>",
4772
- "Dict<string, Opt<unknown>>",
4773
- "Dict<{TOKEN: TOKEN}>",
4774
- "Dict<{TOKEN: TOKEN, TOKEN: TOKEN}>"
4775
- ];
4776
- var SIMPLE_ARRAY_TOKENS2 = [
4777
- "Array",
4778
- "Array<string>",
4779
- "Array<string(TOKEN)>",
4780
- "Array<number>",
4781
- "Array<number(TOKEN)>",
4782
- "Array<boolean>",
4783
- "Array<unknown>",
4784
- `Array<Dict>`,
4785
- `Array<Set>`,
4786
- `Array<Map>`
4787
- ];
4788
- var SIMPLE_MAP_TOKENS2 = [
4789
- "Map",
4790
- "Map<TOKEN, TOKEN>",
4791
- "WeakMap"
4792
- ];
4793
- var SIMPLE_SET_TOKENS2 = [
4794
- "Set",
4795
- "Set<TOKEN>"
4796
- ];
4797
- var SIMPLE_CONTAINER_TOKENS2 = [
4798
- ...SIMPLE_DICT_TOKENS2,
4799
- ...SIMPLE_ARRAY_TOKENS2,
4800
- ...SIMPLE_MAP_TOKENS2,
4801
- ...SIMPLE_SET_TOKENS2
4802
- ];
4803
- var SIMPLE_TOKENS2 = [
4804
- ...SIMPLE_SCALAR_TOKENS2,
4805
- ...SIMPLE_OPT_SCALAR_TOKENS2,
4806
- ...SIMPLE_CONTAINER_TOKENS2,
4807
- ...SIMPLE_UNION_TOKENS2
4808
- ];
4809
- var TT_Atomics2 = [
4815
+ var TT_ATOMICS2 = [
4810
4816
  "undefined",
4811
4817
  "null",
4812
4818
  "boolean",
4813
4819
  "true",
4814
4820
  "false"
4815
4821
  ];
4816
- var TT_Singletons2 = [
4822
+ var TT_SINGLETONS2 = [
4817
4823
  "string",
4818
4824
  "number"
4819
4825
  ];
4820
- var TT_Sets2 = [
4826
+ var TT_SETS2 = [
4821
4827
  "string-set",
4822
4828
  "numeric-set",
4829
+ "fn-set",
4823
4830
  "union-set"
4824
4831
  ];
4825
- var TT_Functions2 = [
4832
+ var TT_FUNCTIONS2 = [
4826
4833
  "fn",
4827
4834
  "gen"
4828
4835
  ];
4829
- var TT_Containers2 = [
4836
+ var TT_CONTAINERS2 = [
4830
4837
  "rec",
4831
4838
  "arr",
4832
4839
  "set",
@@ -4835,68 +4842,15 @@ var TT_Containers2 = [
4835
4842
  "obj",
4836
4843
  "tuple"
4837
4844
  ];
4838
- var TYPE_TOKEN_IDENTITIES2 = [
4839
- "string",
4840
- "number",
4841
- "numericString",
4842
- "booleanString",
4843
- "null",
4844
- "undefined",
4845
- "boolean",
4846
- "true",
4847
- "false",
4848
- "space",
4849
- "whitespace",
4850
- "object",
4851
- "emptyObject",
4852
- "function",
4853
- "array"
4854
- ];
4855
- var TYPE_TOKEN_PARAM_STR2 = [
4856
- "explicitClass",
4857
- "startsWith",
4858
- "endsWith",
4859
- "ensureLeading",
4860
- "stripLeading",
4861
- "ensureTrailing",
4862
- "stripTrailing",
4863
- "camelCase",
4864
- "pascalCase",
4865
- "snakeCase",
4866
- "kebabCase",
4867
- "explicitType"
4868
- ];
4869
- var TYPE_TOKEN_PARAM_CSV2 = [
4870
- "stringLiteral",
4871
- "numericLiteral",
4872
- "objectLiteral",
4873
- "tuple",
4874
- "union"
4875
- ];
4876
- var TYPE_TOKEN_PARAM_DATETIME2 = [
4877
- "datetime"
4878
- ];
4879
- var TYPE_TOKEN_PARAM_DATE2 = [
4880
- "ymd",
4881
- "monthThenDate",
4882
- "dateThenMonth"
4883
- ];
4884
- var TYPE_TOKEN_PARAM_TIME2 = [
4885
- "timeInMinutes",
4886
- "timeInSeconds",
4887
- "militaryTimeInMinutes",
4888
- "militaryTimeInSeconds",
4889
- "militaryTimeInMilliseconds",
4890
- "civilianTimeInMinutes"
4891
- ];
4892
- var TYPE_TOKEN_ALL2 = [
4893
- ...TYPE_TOKEN_IDENTITIES2,
4894
- ...TYPE_TOKEN_PARAM_CSV2,
4895
- ...TYPE_TOKEN_PARAM_DATE2,
4896
- ...TYPE_TOKEN_PARAM_DATETIME2,
4897
- ...TYPE_TOKEN_PARAM_STR2,
4898
- ...TYPE_TOKEN_PARAM_TIME2
4845
+ var TT_KIND_VARIANTS2 = [
4846
+ ...TT_ATOMICS2,
4847
+ ...TT_CONTAINERS2,
4848
+ ...TT_FUNCTIONS2,
4849
+ ...TT_SETS2,
4850
+ ...TT_SINGLETONS2
4899
4851
  ];
4852
+ var TT_START2 = "<<";
4853
+ var TT_STOP2 = ">>";
4900
4854
  var def_if = (v) => v;
4901
4855
  var def_else = () => Never2;
4902
4856
  function ifChar(ch, callback_if_match = def_if, callback_not_match = def_else) {
@@ -4938,15 +4892,15 @@ function ifSameType(value, comparator, same, notSame) {
4938
4892
  function isNull(value) {
4939
4893
  return value === null;
4940
4894
  }
4941
- function isNumber(value) {
4942
- return typeof value === "number";
4943
- }
4944
4895
  function isString(value) {
4945
4896
  return typeof value === "string";
4946
4897
  }
4947
4898
  function isSymbol(value) {
4948
4899
  return typeof value === "symbol";
4949
4900
  }
4901
+ function isNumber(value) {
4902
+ return typeof value === "number";
4903
+ }
4950
4904
  function isScalar(value) {
4951
4905
  return isString(value) || isNumber(value) || isSymbol(value) || isNull(value);
4952
4906
  }
@@ -5338,6 +5292,9 @@ function createConverter(mapper) {
5338
5292
  return result2;
5339
5293
  };
5340
5294
  }
5295
+ function createFixedLengthArray(content, quantity) {
5296
+ return Array.from({ length: quantity }, () => content);
5297
+ }
5341
5298
  var filter = "NOT READY";
5342
5299
  function find(list2, deref = null) {
5343
5300
  return (comparator) => {
@@ -5503,6 +5460,90 @@ function ifUppercaseChar(ch, callbackForMatch, callbackForNoMatch) {
5503
5460
  }
5504
5461
  return LOWER_ALPHA_CHARS2.includes(ch) ? callbackForMatch(ch) : callbackForNoMatch(ch);
5505
5462
  }
5463
+ function parseTemplate(template) {
5464
+ const pattern = /\{\{\s*infer\s+([A-Za-z_]\w*)\s*(?:as\s+(string|number|boolean)\s*)?\}\}/g;
5465
+ let lastIndex = 0;
5466
+ let match;
5467
+ const segments = [];
5468
+ do {
5469
+ match = pattern.exec(template);
5470
+ if (match) {
5471
+ const [fullMatch, varName, asType2] = match;
5472
+ const staticPart = template.slice(lastIndex, match.index);
5473
+ if (staticPart) {
5474
+ segments.push({ dynamic: false, text: staticPart });
5475
+ }
5476
+ segments.push({
5477
+ dynamic: true,
5478
+ varName,
5479
+ type: asType2 ? asType2 : "string"
5480
+ });
5481
+ lastIndex = match.index + fullMatch.length;
5482
+ }
5483
+ } while (match);
5484
+ const remainder = template.slice(lastIndex);
5485
+ if (remainder) {
5486
+ segments.push({ dynamic: false, text: remainder });
5487
+ }
5488
+ return segments;
5489
+ }
5490
+ function escapeRegex(str) {
5491
+ return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
5492
+ }
5493
+ function buildRegexPattern(segments) {
5494
+ let regexStr = "^";
5495
+ for (const seg of segments) {
5496
+ if (!seg.dynamic) {
5497
+ regexStr += escapeRegex(seg.text);
5498
+ } else {
5499
+ switch (seg.type) {
5500
+ case "string":
5501
+ regexStr += `(?<${seg.varName}>.*?)`;
5502
+ break;
5503
+ case "number":
5504
+ regexStr += `(?<${seg.varName}>\\d+)`;
5505
+ break;
5506
+ case "boolean":
5507
+ regexStr += `(?<${seg.varName}>(?:true|false))`;
5508
+ break;
5509
+ }
5510
+ }
5511
+ }
5512
+ regexStr += "$";
5513
+ return new RegExp(regexStr, "s");
5514
+ }
5515
+ function convertValue(type, value) {
5516
+ switch (type) {
5517
+ case "string":
5518
+ return value;
5519
+ case "number":
5520
+ return Number(value);
5521
+ case "boolean":
5522
+ return value === "true";
5523
+ }
5524
+ }
5525
+ function matchTemplate(inference, test) {
5526
+ const segments = parseTemplate(inference);
5527
+ const regex = buildRegexPattern(segments);
5528
+ const match = test.match(regex);
5529
+ if (!match)
5530
+ return false;
5531
+ const result2 = {};
5532
+ for (const seg of segments) {
5533
+ if (seg.dynamic) {
5534
+ const rawVal = match.groups?.[seg.varName];
5535
+ if (rawVal === void 0)
5536
+ return false;
5537
+ result2[seg.varName.toLowerCase()] = convertValue(seg.type, rawVal);
5538
+ }
5539
+ }
5540
+ return result2;
5541
+ }
5542
+ function infer(inference) {
5543
+ return (test) => {
5544
+ return matchTemplate(inference, test);
5545
+ };
5546
+ }
5506
5547
  function idLiteral(o) {
5507
5548
  return { ...o, id: o.id };
5508
5549
  }
@@ -5995,9 +6036,6 @@ function isNothing(val) {
5995
6036
  function isNotNull(value) {
5996
6037
  return value === null;
5997
6038
  }
5998
- function isNumericArray(val) {
5999
- return Array.isArray(val) && val.every((i) => isNumber(i));
6000
- }
6001
6039
  function isPhoneNumber(val) {
6002
6040
  const svelte = String(val).trim();
6003
6041
  const chars = svelte.split("");
@@ -6052,13 +6090,6 @@ function isTrue(value) {
6052
6090
  function isTruthy(val) {
6053
6091
  return !FALSY_VALUES2.includes(val);
6054
6092
  }
6055
- function isTypeToken(val) {
6056
- if (isString(val) && startsWith("<<")(val) && endsWith(">>")(val)) {
6057
- return true;
6058
- } else {
6059
- return false;
6060
- }
6061
- }
6062
6093
  function isTypeTuple(value) {
6063
6094
  return Array.isArray(value) && value.length === 3 && typeof value[1] === "function";
6064
6095
  }
@@ -6214,48 +6245,68 @@ function isUrlSource(val) {
6214
6245
  function hasUrlQueryParameter(val, prop) {
6215
6246
  return isString(getUrlQueryParams(val, prop));
6216
6247
  }
6248
+ function isNumericArray(val) {
6249
+ return Array.isArray(val) && val.every((i) => isNumber(i));
6250
+ }
6251
+ function isTypeToken(val, kind) {
6252
+ if (isString(val) && val.startsWith("<<") && val.endsWith(">>")) {
6253
+ const stripped = stripSurround("<<", ">>")(val);
6254
+ if (TT_KIND_VARIANTS2.some((k) => stripped.startsWith(k))) {
6255
+ if (kind) {
6256
+ if (isAtomicKind(kind)) {
6257
+ return val === `<<${kind}>>`;
6258
+ } else if (isSetBasedKind(kind)) {
6259
+ return val.startsWith(`<<${kind}::`);
6260
+ } else {
6261
+ return val === `<<${kind}>>` || val.startsWith(`<<${kind}::`);
6262
+ }
6263
+ } else {
6264
+ return true;
6265
+ }
6266
+ }
6267
+ return false;
6268
+ }
6269
+ return false;
6270
+ }
6271
+ function isTypeTokenKind(val) {
6272
+ return !!(isString(val) && TT_KIND_VARIANTS2.includes(val));
6273
+ }
6217
6274
  function isAtomicToken(val) {
6218
- return isString(val) && TT_Atomics2.some((v) => val === `<<${v}>>`);
6275
+ return isString(val) && TT_ATOMICS2.some((i) => val.startsWith(`<<${i}`));
6276
+ }
6277
+ function isAtomicKind(val) {
6278
+ return isString(val) && TT_ATOMICS2.includes(val);
6219
6279
  }
6220
6280
  function isObjectToken(val) {
6221
- return isString(val) && val.startsWith("<<obj::");
6281
+ return isTypeToken(val, "obj");
6222
6282
  }
6223
6283
  function isRecordToken(val) {
6224
- return isString(val) && val.startsWith("<<rec::") && val.endsWith(">>");
6284
+ return isTypeToken(val, "rec");
6225
6285
  }
6226
6286
  function isTupleToken(val) {
6227
- return isString(val) && val.startsWith("<<tuple::");
6287
+ return isTypeToken(val, "tuple");
6228
6288
  }
6229
6289
  function isArrayToken(val) {
6230
- return isString(val) && val.startsWith("<<arr::");
6290
+ return isTypeToken(val, "arr");
6231
6291
  }
6232
6292
  function isMapToken(val) {
6233
- return isString(val) && val.startsWith("<<map::");
6293
+ return isTypeToken(val, "map");
6234
6294
  }
6235
6295
  function isSetToken(val) {
6236
- return isString(val) && val.startsWith("<<set::");
6237
- }
6238
- function isWeakMapToken(val) {
6239
- return isString(val) && val.startsWith("<<weak::");
6240
- }
6241
- function isUnionToken(val) {
6242
- return isString(val) && val.startsWith("<<union::[ ");
6243
- }
6244
- function isUnionSetToken(val) {
6245
- return isString(val) && val.startsWith("<<union-set::");
6296
+ return isTypeToken(val, "set");
6246
6297
  }
6247
6298
  function isContainerToken(val) {
6248
- return isString(val) && (isObjectToken(val) || isRecordToken(val) || isTupleToken(val) || isArrayToken(val) || isMapToken(val) || isSetToken(val) || isWeakMapToken(val) || isUnionSetToken(val) || isUnionToken(val));
6299
+ return isObjectToken(val) || isRecordToken(val) || isTupleToken(val) || isArrayToken(val) || isMapToken(val) || isSetToken(val);
6249
6300
  }
6250
6301
  function isShapeCallback(val) {
6251
6302
  return isFunction(val) && val.kind === "shape";
6252
6303
  }
6253
6304
  var token_types = [
6254
- ...TT_Atomics2,
6255
- ...TT_Containers2,
6256
- ...TT_Functions2,
6257
- ...TT_Sets2,
6258
- ...TT_Singletons2
6305
+ ...TT_ATOMICS2,
6306
+ ...TT_CONTAINERS2,
6307
+ ...TT_FUNCTIONS2,
6308
+ ...TT_SETS2,
6309
+ ...TT_SINGLETONS2
6259
6310
  ];
6260
6311
  function isShapeToken(val) {
6261
6312
  return isString(val) && val.startsWith("<<") && val.endsWith(">>") && token_types.some((t) => val.startsWith(`<<${t}`));
@@ -6291,14 +6342,34 @@ function isDefineObject(val) {
6291
6342
  (key) => isSimpleToken(val[key]) || isShapeToken(val) || isShapeCallback(val)
6292
6343
  );
6293
6344
  }
6294
- function isFnToken(val) {
6295
- return isString(val) && val.startsWith("<<fn::");
6345
+ function isFnBasedToken(val) {
6346
+ if (isString(val) && val.startsWith(TT_START2) && val.endsWith(TT_STOP2)) {
6347
+ const stripped = stripSurround(TT_START2, TT_STOP2)(val);
6348
+ return TT_FUNCTIONS2.some((i) => stripped.startsWith(i));
6349
+ }
6350
+ }
6351
+ function isFnBasedKind(val) {
6352
+ if (isString(val) && isTypeTokenKind(val)) {
6353
+ const stripped = stripSurround(TT_START2, TT_STOP2)(val);
6354
+ return TT_FUNCTIONS2.some((i) => stripped.startsWith(i));
6355
+ }
6356
+ return false;
6357
+ }
6358
+ function isSetBasedToken(val) {
6359
+ if (isTypeToken(val)) {
6360
+ const kind = getTokenKind(val);
6361
+ return kind.endsWith(`-set`);
6362
+ }
6363
+ return false;
6364
+ }
6365
+ function isSetBasedKind(val) {
6366
+ return isString(val) && val.endsWith(`-set`);
6296
6367
  }
6297
- function isGeneratorToken(val) {
6298
- return isString(val) && val.startsWith("<<gen::");
6368
+ function isSingletonKind(val) {
6369
+ return isString(val) && TT_SINGLETONS2.some((i) => val.startsWith(`<<${i}`));
6299
6370
  }
6300
6371
  function isSingletonToken(val) {
6301
- return isString(val) && TT_Atomics2.some((v) => val === `<<${v}>>`);
6372
+ return isString(val) && TT_SINGLETONS2.some((i) => val.startsWith(`<<${i}`));
6302
6373
  }
6303
6374
  function isTailwindColorName(val) {
6304
6375
  return isString(val) && Object.keys(TW_HUE2).includes(val);
@@ -6871,6 +6942,7 @@ function tuple(...values) {
6871
6942
  function uncapitalize(str) {
6872
6943
  return `${str?.slice(0, 1).toLowerCase()}${str?.slice(1)}`;
6873
6944
  }
6945
+ var unset = "<<unset>>";
6874
6946
  function uppercase(str) {
6875
6947
  return str.toUpperCase();
6876
6948
  }
@@ -7267,17 +7339,43 @@ function createProxy(...initialize) {
7267
7339
  function list(...init) {
7268
7340
  return init.length === 1 && isArray(init[0]) ? createProxy(...init[0]) : createProxy(...init);
7269
7341
  }
7270
- function unionToken(...els) {
7271
- return `<<union::[${jsonValues(els)}]>>`;
7342
+ function singletonApi(kind) {
7343
+ return {
7344
+ wide: () => `<<${kind}>>`,
7345
+ literal: (val) => `<<${kind}::${val}>>`
7346
+ };
7347
+ }
7348
+ function setApi(_variant) {
7349
+ return null;
7350
+ }
7351
+ function fnReturnsApi(variant, _params, returns) {
7352
+ return isSet(returns) ? null : (_rtn) => {
7353
+ return isSet(returns) ? `<<${variant}::>>` : null;
7354
+ };
7355
+ }
7356
+ function fnParamsApi(variant, params, _returns) {
7357
+ return isSet(params) ? null : (params2) => {
7358
+ return isSet(params2) ? `<<${variant}::>>` : null;
7359
+ };
7360
+ }
7361
+ function fnDoneApi(variant, params, returns) {
7362
+ return isUnset(params) && isUnset(returns) ? `<<` : ``;
7272
7363
  }
7273
- function singletonApi(base) {
7274
- const handler = (...lits) => {
7275
- 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)}>>`;
7364
+ function fnTokenClosure(kind, params, returns) {
7365
+ return {
7366
+ done: fnDoneApi(kind, params, returns),
7367
+ params: fnParamsApi(kind, params, returns),
7368
+ returns: fnReturnsApi(kind, params, returns)
7276
7369
  };
7277
- return handler;
7278
7370
  }
7279
- function createTypeToken(base) {
7280
- return isAtomicToken(base) ? `<<${base}>>` : isSingletonToken(base) ? singletonApi(base) : "";
7371
+ function createTypeToken(kind) {
7372
+ return isAtomicKind(kind) ? `<<${kind}>>` : isSingletonKind(kind) ? singletonApi(kind) : isSetBasedKind(kind) ? setApi(kind) : isFnBasedKind(kind) ? handleDoneFn(fnTokenClosure(kind, unset, unset)) : "<<never>>";
7373
+ }
7374
+ function getTokenKind(token) {
7375
+ const bare = stripSurround("<<", ">>")(token);
7376
+ const parts = bare.split("::");
7377
+ const kind = parts.pop();
7378
+ return kind;
7281
7379
  }
7282
7380
  var simpleToken = (token) => token;
7283
7381
  var simpleScalarToken = (token) => token;
@@ -7636,14 +7734,15 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
7636
7734
  TEMPERATURE_METRICS_LOOKUP,
7637
7735
  TIME_METRICS_LOOKUP,
7638
7736
  TOP_LEVEL_DOMAINS,
7639
- TT_Atomics,
7640
- TT_Containers,
7641
- TT_Functions,
7642
- TT_SEP,
7737
+ TT_ATOMICS,
7738
+ TT_CONTAINERS,
7739
+ TT_DELIMITER,
7740
+ TT_FUNCTIONS,
7741
+ TT_KIND_VARIANTS,
7742
+ TT_SETS,
7743
+ TT_SINGLETONS,
7643
7744
  TT_START,
7644
7745
  TT_STOP,
7645
- TT_Sets,
7646
- TT_Singletons,
7647
7746
  TURKISH_NEWS,
7648
7747
  TW_CHROMA,
7649
7748
  TW_CHROMA_100,
@@ -7682,13 +7781,10 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
7682
7781
  TYPE_COMPARISONS,
7683
7782
  TYPE_KINDS,
7684
7783
  TYPE_OF,
7685
- TYPE_TOKEN_ALL,
7686
- TYPE_TOKEN_IDENTITIES,
7687
- TYPE_TOKEN_PARAM_CSV,
7688
- TYPE_TOKEN_PARAM_DATE,
7689
- TYPE_TOKEN_PARAM_DATETIME,
7690
- TYPE_TOKEN_PARAM_STR,
7691
- TYPE_TOKEN_PARAM_TIME,
7784
+ TYPE_TOKEN_REC_KEY_VARIANTS,
7785
+ TYPE_TOKEN_REC_VARIANTS,
7786
+ TYPE_TOKEN_STRING_SET_VARIANTS,
7787
+ TYPE_TOKEN_UNION_SET_VARIANTS,
7692
7788
  TYPE_TRANSFORMS,
7693
7789
  UK_NEWS,
7694
7790
  UPPER_ALPHA_CHARS,
@@ -7735,6 +7831,7 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
7735
7831
  createCssSelector,
7736
7832
  createErrorCondition,
7737
7833
  createFifoQueue,
7834
+ createFixedLengthArray,
7738
7835
  createFnWithProps,
7739
7836
  createFnWithPropsExplicit,
7740
7837
  createLifoQueue,
@@ -7760,6 +7857,7 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
7760
7857
  getPhoneCountryCode,
7761
7858
  getTailwindModifiers,
7762
7859
  getToday,
7860
+ getTokenKind,
7763
7861
  getTomorrow,
7764
7862
  getUrlPath,
7765
7863
  getUrlPort,
@@ -7801,6 +7899,7 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
7801
7899
  ifUndefined,
7802
7900
  ifUppercaseChar,
7803
7901
  indexOf,
7902
+ infer,
7804
7903
  intersect,
7805
7904
  intersection,
7806
7905
  ip6GroupExpansion,
@@ -7816,6 +7915,7 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
7816
7915
  isAreaUom,
7817
7916
  isArray,
7818
7917
  isArrayToken,
7918
+ isAtomicKind,
7819
7919
  isAtomicToken,
7820
7920
  isAustralianNewsUrl,
7821
7921
  isBelgiumNewsUrl,
@@ -7859,13 +7959,13 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
7859
7959
  isEtsyUrl,
7860
7960
  isFalse,
7861
7961
  isFalsy,
7862
- isFnToken,
7962
+ isFnBasedKind,
7963
+ isFnBasedToken,
7863
7964
  isFnWithParams,
7864
7965
  isFrenchNewsUrl,
7865
7966
  isFrequencyMetric,
7866
7967
  isFrequencyUom,
7867
7968
  isFunction,
7868
- isGeneratorToken,
7869
7969
  isGermanNewsUrl,
7870
7970
  isGithubIssueUrl,
7871
7971
  isGithubIssuesListUrl,
@@ -7950,6 +8050,8 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
7950
8050
  isScalar,
7951
8051
  isSemanticVersion,
7952
8052
  isSet,
8053
+ isSetBasedKind,
8054
+ isSetBasedToken,
7953
8055
  isSetToken,
7954
8056
  isShape,
7955
8057
  isShapeCallback,
@@ -7959,6 +8061,7 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
7959
8061
  isSimpleScalarTokenTuple,
7960
8062
  isSimpleToken,
7961
8063
  isSimpleTokenTuple,
8064
+ isSingletonKind,
7962
8065
  isSingletonToken,
7963
8066
  isSocialMediaProfileUrl,
7964
8067
  isSocialMediaUrl,
@@ -7997,11 +8100,10 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
7997
8100
  isTurkishNewsUrl,
7998
8101
  isTypeOf,
7999
8102
  isTypeToken,
8103
+ isTypeTokenKind,
8000
8104
  isTypeTuple,
8001
8105
  isUkNewsUrl,
8002
8106
  isUndefined,
8003
- isUnionSetToken,
8004
- isUnionToken,
8005
8107
  isUnset,
8006
8108
  isUom,
8007
8109
  isUri,
@@ -8018,7 +8120,6 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
8018
8120
  isWalgreensUrl,
8019
8121
  isWalmartUrl,
8020
8122
  isWayfairUrl,
8021
- isWeakMapToken,
8022
8123
  isWholeFoodsUrl,
8023
8124
  isYesterday,
8024
8125
  isYouTubeCreatorUrl,
@@ -8125,6 +8226,7 @@ var ExifSaturation = /* @__PURE__ */ ((ExifSaturation2) => {
8125
8226
  unionize,
8126
8227
  unique,
8127
8228
  uniqueKeys,
8229
+ unset,
8128
8230
  uppercase,
8129
8231
  urlMeta,
8130
8232
  valuesOf,