@layerzerolabs/typescript-utils 1.2.13 → 1.2.15

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 (84) hide show
  1. package/dist/{ZVSZ2LTA.js → 3GUONMA5.js} +3 -3
  2. package/dist/{ZVSZ2LTA.js.map → 3GUONMA5.js.map} +1 -1
  3. package/dist/3STZQAJN.js +6 -0
  4. package/dist/{NXYWT3FC.js.map → 3STZQAJN.js.map} +1 -1
  5. package/dist/7K72QQNK.js +6 -0
  6. package/dist/{HA75XVBD.js.map → 7K72QQNK.js.map} +1 -1
  7. package/dist/{LBOSJOZV.js → 7Y67XUZE.js} +3 -3
  8. package/dist/{LBOSJOZV.js.map → 7Y67XUZE.js.map} +1 -1
  9. package/dist/BSNK5L7B.js +6 -0
  10. package/dist/{6QUS2SE6.js.map → BSNK5L7B.js.map} +1 -1
  11. package/dist/CYM4JWQD.js +6 -0
  12. package/dist/{TLUYOTQ3.js.map → CYM4JWQD.js.map} +1 -1
  13. package/dist/EHNXTLTB.js +6 -0
  14. package/dist/{RI75XMZ2.js.map → EHNXTLTB.js.map} +1 -1
  15. package/dist/K3OTXOMP.js +6 -0
  16. package/dist/{XL6YBUOB.js.map → K3OTXOMP.js.map} +1 -1
  17. package/dist/KDSQYXCE.js +6 -0
  18. package/dist/{S6NNED46.js.map → KDSQYXCE.js.map} +1 -1
  19. package/dist/MRRG35V3.js +6 -0
  20. package/dist/{NAAXLSE5.js.map → MRRG35V3.js.map} +1 -1
  21. package/dist/{ED5YIHCO.js → NT6KQXHL.js} +5 -5
  22. package/dist/{ED5YIHCO.js.map → NT6KQXHL.js.map} +1 -1
  23. package/dist/O6LUWQ7J.js +6 -0
  24. package/dist/{PNLZD2U2.js.map → O6LUWQ7J.js.map} +1 -1
  25. package/dist/{WUFNODVY.js → OBTB4CGS.js} +3 -3
  26. package/dist/{WUFNODVY.js.map → OBTB4CGS.js.map} +1 -1
  27. package/dist/P24OJW5S.js +6 -0
  28. package/dist/{FPYLH7RK.js.map → P24OJW5S.js.map} +1 -1
  29. package/dist/S3ZGPGBK.js +6 -0
  30. package/dist/{WQZJ7V44.js.map → S3ZGPGBK.js.map} +1 -1
  31. package/dist/SHJX4QBF.js +6 -0
  32. package/dist/{3LHZ7V3Z.js.map → SHJX4QBF.js.map} +1 -1
  33. package/dist/TM6TNTA7.js +6 -0
  34. package/dist/{QUJUTVP6.js.map → TM6TNTA7.js.map} +1 -1
  35. package/dist/VX6CBFIJ.js +6 -0
  36. package/dist/{I3HQPZG3.js.map → VX6CBFIJ.js.map} +1 -1
  37. package/dist/W24EH7Y4.js +6 -0
  38. package/dist/{VKIXMBVF.js.map → W24EH7Y4.js.map} +1 -1
  39. package/dist/WWLYEH6F.js +6 -0
  40. package/dist/{S7O2EBBN.js.map → WWLYEH6F.js.map} +1 -1
  41. package/dist/{SCG5YUF6.js → YG2Y6NOL.js} +3 -3
  42. package/dist/{SCG5YUF6.js.map → YG2Y6NOL.js.map} +1 -1
  43. package/dist/YUACM4JG.js +6 -0
  44. package/dist/{MUP2ZWKH.js.map → YUACM4JG.js.map} +1 -1
  45. package/dist/advancedRecord.js +2 -2
  46. package/dist/asyncify.js +2 -2
  47. package/dist/branded.js +2 -2
  48. package/dist/constructor.js +2 -2
  49. package/dist/deep.js +2 -2
  50. package/dist/deep.test-d.js +2 -2
  51. package/dist/disallowedAny.js +2 -2
  52. package/dist/functionalUtils.js +2 -2
  53. package/dist/identity.js +2 -2
  54. package/dist/index.js +20 -20
  55. package/dist/lastOf.js +2 -2
  56. package/dist/maybeUndefined.js +2 -2
  57. package/dist/merge.js +2 -2
  58. package/dist/methodOf.js +2 -2
  59. package/dist/promise.js +2 -2
  60. package/dist/removeNever.js +2 -2
  61. package/dist/strings.js +2 -2
  62. package/dist/strings.test-d.js +2 -2
  63. package/dist/tuples.js +2 -2
  64. package/dist/valueOf.js +2 -2
  65. package/dist/viem.js +2 -2
  66. package/dist/withRequired.js +2 -2
  67. package/package.json +3 -3
  68. package/dist/3LHZ7V3Z.js +0 -6
  69. package/dist/6QUS2SE6.js +0 -6
  70. package/dist/FPYLH7RK.js +0 -6
  71. package/dist/HA75XVBD.js +0 -6
  72. package/dist/I3HQPZG3.js +0 -6
  73. package/dist/MUP2ZWKH.js +0 -6
  74. package/dist/NAAXLSE5.js +0 -6
  75. package/dist/NXYWT3FC.js +0 -6
  76. package/dist/PNLZD2U2.js +0 -6
  77. package/dist/QUJUTVP6.js +0 -6
  78. package/dist/RI75XMZ2.js +0 -6
  79. package/dist/S6NNED46.js +0 -6
  80. package/dist/S7O2EBBN.js +0 -6
  81. package/dist/TLUYOTQ3.js +0 -6
  82. package/dist/VKIXMBVF.js +0 -6
  83. package/dist/WQZJ7V44.js +0 -6
  84. package/dist/XL6YBUOB.js +0 -6
@@ -31,10 +31,10 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
31
31
  mod
32
32
  ));
33
33
  var init_esm_shims = __esm({
34
- "../../node_modules/.pnpm/tsup@8.5.1_@swc+core@1.15.2_@swc+helpers@0.5.17__jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.8.2_yaml@2.8.2/node_modules/tsup/assets/esm_shims.js"() {
34
+ "../../node_modules/.pnpm/tsup@8.5.1_@swc+core@1.15.2_@swc+helpers@0.5.17__jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@6.0.3_yaml@2.8.2/node_modules/tsup/assets/esm_shims.js"() {
35
35
  }
36
36
  });
37
37
 
38
38
  export { __commonJS, __name, __toESM, init_esm_shims };
39
- //# sourceMappingURL=ZVSZ2LTA.js.map
40
- //# sourceMappingURL=ZVSZ2LTA.js.map
39
+ //# sourceMappingURL=3GUONMA5.js.map
40
+ //# sourceMappingURL=3GUONMA5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/tsup@8.5.1_@swc+core@1.15.2_@swc+helpers@0.5.17__jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.8.2_yaml@2.8.2/node_modules/tsup/assets/esm_shims.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,cAAA,GAAA,KAAA,CAAA","file":"ZVSZ2LTA.js","sourcesContent":["// Shim globals in esm bundle\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n"]}
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/tsup@8.5.1_@swc+core@1.15.2_@swc+helpers@0.5.17__jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@6.0.3_yaml@2.8.2/node_modules/tsup/assets/esm_shims.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,cAAA,GAAA,KAAA,CAAA","file":"3GUONMA5.js","sourcesContent":["// Shim globals in esm bundle\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n"]}
@@ -0,0 +1,6 @@
1
+ import { init_esm_shims } from './3GUONMA5.js';
2
+
3
+ // src/disallowedAny.ts
4
+ init_esm_shims();
5
+ //# sourceMappingURL=3STZQAJN.js.map
6
+ //# sourceMappingURL=3STZQAJN.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/disallowedAny.ts"],"names":[],"mappings":";;;AAIA,cAAA,EAAA","file":"NXYWT3FC.js","sourcesContent":["type IsAnyInner<T> = T extends never ? true : false;\n\nexport type IsAny<T> =\n IsAnyInner<T> extends true ? false : IsAnyInner<T> extends false ? false : true;\nexport type DisallowedAny<T> = IsAny<T> extends true ? never : T;\n"]}
1
+ {"version":3,"sources":["../src/disallowedAny.ts"],"names":[],"mappings":";;;AAIA,cAAA,EAAA","file":"3STZQAJN.js","sourcesContent":["type IsAnyInner<T> = T extends never ? true : false;\n\nexport type IsAny<T> =\n IsAnyInner<T> extends true ? false : IsAnyInner<T> extends false ? false : true;\nexport type DisallowedAny<T> = IsAny<T> extends true ? never : T;\n"]}
@@ -0,0 +1,6 @@
1
+ import { init_esm_shims } from './3GUONMA5.js';
2
+
3
+ // src/strings.ts
4
+ init_esm_shims();
5
+ //# sourceMappingURL=7K72QQNK.js.map
6
+ //# sourceMappingURL=7K72QQNK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/strings.ts"],"names":[],"mappings":";;;AAyCA,cAAA,EAAA","file":"HA75XVBD.js","sourcesContent":["import type { Branded } from './branded';\n\n/**\n * Guarantees that a string does not end with a suffix.\n * You can remove multiple suffixes by using a union.\n *\n * @example\n * type A = StringWithoutSuffix<'hello', 'world'>; // 'hello'\n * type B = StringWithoutSuffix<'hello', 'lo'>; // never\n * type C = StringWithoutSuffix<'hello world', 'lo' | 'world'>; // never\n */\nexport type StringWithoutSuffix<\n T extends string,\n Suffix extends string,\n> = T extends `${infer _}${Suffix}` ? never : T;\n\nexport type HexString = `0x${string}`;\n\nexport declare const _NormalizedHexString: unique symbol;\n\nexport type NormalizedHexString = Branded<typeof _NormalizedHexString, 'NormalizedHexString'>;\n\n/**\n * Guarantees that a hex string is trimmed.\n *\n * @example\n * type A = HexStringIsTrimmed<'0x0'>; // true\n * type B = HexStringIsTrimmed<'0x00'>; // false\n * type C = HexStringIsTrimmed<'0x'>; // false\n * type D = HexStringIsTrimmed<'0x100'>; // true\n */\nexport type HexStringIsTrimmed<T extends HexString> = T extends '0x0'\n ? true\n : T extends '0x'\n ? false\n : T extends `0x0${string}`\n ? false\n : true;\n\nexport declare const _NumberString: unique symbol;\n\nexport type DecimalString = Branded<typeof _NumberString, 'DecimalString'>;\n"]}
1
+ {"version":3,"sources":["../src/strings.ts"],"names":[],"mappings":";;;AAyCA,cAAA,EAAA","file":"7K72QQNK.js","sourcesContent":["import type { Branded } from './branded';\n\n/**\n * Guarantees that a string does not end with a suffix.\n * You can remove multiple suffixes by using a union.\n *\n * @example\n * type A = StringWithoutSuffix<'hello', 'world'>; // 'hello'\n * type B = StringWithoutSuffix<'hello', 'lo'>; // never\n * type C = StringWithoutSuffix<'hello world', 'lo' | 'world'>; // never\n */\nexport type StringWithoutSuffix<\n T extends string,\n Suffix extends string,\n> = T extends `${infer _}${Suffix}` ? never : T;\n\nexport type HexString = `0x${string}`;\n\nexport declare const _NormalizedHexString: unique symbol;\n\nexport type NormalizedHexString = Branded<typeof _NormalizedHexString, 'NormalizedHexString'>;\n\n/**\n * Guarantees that a hex string is trimmed.\n *\n * @example\n * type A = HexStringIsTrimmed<'0x0'>; // true\n * type B = HexStringIsTrimmed<'0x00'>; // false\n * type C = HexStringIsTrimmed<'0x'>; // false\n * type D = HexStringIsTrimmed<'0x100'>; // true\n */\nexport type HexStringIsTrimmed<T extends HexString> = T extends '0x0'\n ? true\n : T extends '0x'\n ? false\n : T extends `0x0${string}`\n ? false\n : true;\n\nexport declare const _NumberString: unique symbol;\n\nexport type DecimalString = Branded<typeof _NumberString, 'DecimalString'>;\n"]}
@@ -1,4 +1,4 @@
1
- import { init_esm_shims, __name } from './ZVSZ2LTA.js';
1
+ import { init_esm_shims, __name } from './3GUONMA5.js';
2
2
 
3
3
  // src/functionalUtils.ts
4
4
  init_esm_shims();
@@ -11,5 +11,5 @@ var partiallyApply = /* @__PURE__ */ __name((fn, args) => (...argsInner) => fn(.
11
11
  var uncurry = /* @__PURE__ */ __name((fn) => (argsOuter, argsInner) => fn(...argsOuter)(...argsInner), "uncurry");
12
12
 
13
13
  export { curry, partiallyApply, uncurry };
14
- //# sourceMappingURL=LBOSJOZV.js.map
15
- //# sourceMappingURL=LBOSJOZV.js.map
14
+ //# sourceMappingURL=7Y67XUZE.js.map
15
+ //# sourceMappingURL=7Y67XUZE.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/functionalUtils.ts"],"names":["_curry","fn","args","remaining","arg","curry","arity","partiallyApply","argsInner","uncurry","argsOuter"],"mappings":";;;AAgBA,cAAA,EAAA;AAAA,IAAMA,MAAAA,mBAAS,MAAA,CAAA,CAACC,EAAAA,EAA6BC,IAAAA,EAAaC,cACtD,CAACA,SAAAA,GAAYF,EAAAA,CAAAA,GAAMC,IAAAA,CAAAA,GAAQ,CAACE,GAAAA,KAAaJ,OAAOC,EAAAA,EAAI;AAAIC,EAAAA,GAAAA,IAAAA;AAAME,EAAAA;AAAMD,CAAAA,EAAAA,SAAAA,GAAY,CAAA,CAAA,EADrE,QAAA,CAAA;AAGR,IAAME,KAAAA,2BACTJ,EAAAA,EACAK,KAAAA,KACaN,OAAOC,EAAAA,EAAI,EAAA,EAAIK,KAAAA,CAAAA,EAHX,OAAA;AAKd,IAAMC,cAAAA,mBACT,MAAA,CAAA,CACIN,EAAAA,EACAC,IAAAA,KAEJ,CAAA,GAAIM,SAAAA,KACAP,EAAAA,CAAAA,GAAMC,IAAAA,EAAAA,GAASM,SAAAA,CAAAA,EALnB,gBAAA;AAaG,IAAMC,OAAAA,mBAAU,MAAA,CAAA,CACnBR,EAAAA,KAEC,CAACS,SAAAA,EAAkBF,SAAAA,KAAqBP,EAAAA,CAAAA,GAAMS,SAAAA,CAAAA,CAAAA,GAAcF,SAAAA,CAAAA,EAH1C,SAAA","file":"LBOSJOZV.js","sourcesContent":["import type { SubtractTuple, TuplePrefixUnion } from './tuples';\n\n// functional programming utils\n\ntype ParametersLength<T extends (...args: any[]) => any> = Parameters<T>['length'];\n\ntype BuildFn<T extends any[], R> = T extends [infer Head, ...infer Tail]\n ? (arg: Head) => BuildFn<Tail, R>\n : R;\n\nexport type Curried<T> = T extends (...args: infer Args) => infer Ret\n ? Args extends any[]\n ? BuildFn<Args, Ret>\n : T\n : T;\n\nconst _curry = (fn: (...args: any[]) => any, args: any[], remaining: number) =>\n !remaining ? fn(...args) : (arg: any) => _curry(fn, [...args, arg], remaining - 1);\n\nexport const curry = <T extends (...args: any[]) => any>(\n fn: T,\n arity: ParametersLength<T>,\n): Curried<T> => _curry(fn, [], arity);\n\nexport const partiallyApply =\n <T extends (...args: any[]) => any, Args extends TuplePrefixUnion<Parameters<T>>>(\n fn: T,\n args: Args,\n ): ((...argsInner: SubtractTuple<Parameters<T>, Args>) => ReturnType<T>) =>\n (...argsInner: any[]) =>\n fn(...args, ...argsInner);\n\nexport type Uncurried<T> = T extends (...argsOuter: infer ArgsOuter) => infer RetOuter\n ? RetOuter extends (...argsInner: infer ArgsInner) => infer RetInner\n ? (argsOuter: ArgsOuter, argsInner: ArgsInner) => RetInner\n : T\n : T;\n\nexport const uncurry = <T extends (...args: any[]) => (...args: any[]) => any>(\n fn: T,\n): Uncurried<T> =>\n ((argsOuter: any[], argsInner: any[]) => fn(...argsOuter)(...argsInner)) as Uncurried<T>;\n"]}
1
+ {"version":3,"sources":["../src/functionalUtils.ts"],"names":["_curry","fn","args","remaining","arg","curry","arity","partiallyApply","argsInner","uncurry","argsOuter"],"mappings":";;;AAgBA,cAAA,EAAA;AAAA,IAAMA,MAAAA,mBAAS,MAAA,CAAA,CAACC,EAAAA,EAA6BC,IAAAA,EAAaC,cACtD,CAACA,SAAAA,GAAYF,EAAAA,CAAAA,GAAMC,IAAAA,CAAAA,GAAQ,CAACE,GAAAA,KAAaJ,OAAOC,EAAAA,EAAI;AAAIC,EAAAA,GAAAA,IAAAA;AAAME,EAAAA;AAAMD,CAAAA,EAAAA,SAAAA,GAAY,CAAA,CAAA,EADrE,QAAA,CAAA;AAGR,IAAME,KAAAA,2BACTJ,EAAAA,EACAK,KAAAA,KACaN,OAAOC,EAAAA,EAAI,EAAA,EAAIK,KAAAA,CAAAA,EAHX,OAAA;AAKd,IAAMC,cAAAA,mBACT,MAAA,CAAA,CACIN,EAAAA,EACAC,IAAAA,KAEJ,CAAA,GAAIM,SAAAA,KACAP,EAAAA,CAAAA,GAAMC,IAAAA,EAAAA,GAASM,SAAAA,CAAAA,EALnB,gBAAA;AAaG,IAAMC,OAAAA,mBAAU,MAAA,CAAA,CACnBR,EAAAA,KAEC,CAACS,SAAAA,EAAkBF,SAAAA,KAAqBP,EAAAA,CAAAA,GAAMS,SAAAA,CAAAA,CAAAA,GAAcF,SAAAA,CAAAA,EAH1C,SAAA","file":"7Y67XUZE.js","sourcesContent":["import type { SubtractTuple, TuplePrefixUnion } from './tuples';\n\n// functional programming utils\n\ntype ParametersLength<T extends (...args: any[]) => any> = Parameters<T>['length'];\n\ntype BuildFn<T extends any[], R> = T extends [infer Head, ...infer Tail]\n ? (arg: Head) => BuildFn<Tail, R>\n : R;\n\nexport type Curried<T> = T extends (...args: infer Args) => infer Ret\n ? Args extends any[]\n ? BuildFn<Args, Ret>\n : T\n : T;\n\nconst _curry = (fn: (...args: any[]) => any, args: any[], remaining: number) =>\n !remaining ? fn(...args) : (arg: any) => _curry(fn, [...args, arg], remaining - 1);\n\nexport const curry = <T extends (...args: any[]) => any>(\n fn: T,\n arity: ParametersLength<T>,\n): Curried<T> => _curry(fn, [], arity);\n\nexport const partiallyApply =\n <T extends (...args: any[]) => any, Args extends TuplePrefixUnion<Parameters<T>>>(\n fn: T,\n args: Args,\n ): ((...argsInner: SubtractTuple<Parameters<T>, Args>) => ReturnType<T>) =>\n (...argsInner: any[]) =>\n fn(...args, ...argsInner);\n\nexport type Uncurried<T> = T extends (...argsOuter: infer ArgsOuter) => infer RetOuter\n ? RetOuter extends (...argsInner: infer ArgsInner) => infer RetInner\n ? (argsOuter: ArgsOuter, argsInner: ArgsInner) => RetInner\n : T\n : T;\n\nexport const uncurry = <T extends (...args: any[]) => (...args: any[]) => any>(\n fn: T,\n): Uncurried<T> =>\n ((argsOuter: any[], argsInner: any[]) => fn(...argsOuter)(...argsInner)) as Uncurried<T>;\n"]}
@@ -0,0 +1,6 @@
1
+ import { init_esm_shims } from './3GUONMA5.js';
2
+
3
+ // src/maybeUndefined.ts
4
+ init_esm_shims();
5
+ //# sourceMappingURL=BSNK5L7B.js.map
6
+ //# sourceMappingURL=BSNK5L7B.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/maybeUndefined.ts"],"names":[],"mappings":";;;AAAA,cAAA,EAAA","file":"6QUS2SE6.js","sourcesContent":["/**\n * @description Maps the result type `R` to `R | undefined` when the input type `T` includes `undefined`,\n * preserving the undefined-ness of the input in the output type.\n *\n * @example\n * MaybeUndefinedMapped<string | undefined, number>\n * => number | undefined\n *\n * MaybeUndefinedMapped<string, number>\n * => number\n */\nexport type MaybeUndefinedMapped<T, R> = undefined extends T\n ? T extends undefined\n ? undefined\n : R | undefined\n : R;\n"]}
1
+ {"version":3,"sources":["../src/maybeUndefined.ts"],"names":[],"mappings":";;;AAAA,cAAA,EAAA","file":"BSNK5L7B.js","sourcesContent":["/**\n * @description Maps the result type `R` to `R | undefined` when the input type `T` includes `undefined`,\n * preserving the undefined-ness of the input in the output type.\n *\n * @example\n * MaybeUndefinedMapped<string | undefined, number>\n * => number | undefined\n *\n * MaybeUndefinedMapped<string, number>\n * => number\n */\nexport type MaybeUndefinedMapped<T, R> = undefined extends T\n ? T extends undefined\n ? undefined\n : R | undefined\n : R;\n"]}
@@ -0,0 +1,6 @@
1
+ import { init_esm_shims } from './3GUONMA5.js';
2
+
3
+ // src/tuples.ts
4
+ init_esm_shims();
5
+ //# sourceMappingURL=CYM4JWQD.js.map
6
+ //# sourceMappingURL=CYM4JWQD.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tuples.ts"],"names":[],"mappings":";;;AAsDA,cAAA,EAAA","file":"TLUYOTQ3.js","sourcesContent":["import type { BrandedError } from './branded';\n\n//check that the tuple T uses every type in the union K at least once\nexport type IsComplete<\n T extends readonly (string | number | symbol)[],\n K extends string | number | symbol,\n> = Exclude<K, T[number]> extends never ? true : false;\n\nexport type TryGetDuplicate<\n T extends readonly (string | number | symbol)[],\n Seen extends (string | number | symbol)[] = [],\n> = T extends [infer Head, ...infer Tail]\n ? Head extends Seen[number]\n ? Head\n : Head extends string | number | symbol\n ? Tail extends readonly (string | number | symbol)[]\n ? TryGetDuplicate<Tail, [...Seen, Head]>\n : false\n : false\n : false;\n\n//check that the tuple T is a valid ordering of AllKeys, using IsComplete and TryGetDuplicate\n//returns a branded error if there are missing keys or duplicates\nexport type AssertUniqueCompleteSet<\n T extends readonly (string | number | symbol)[],\n AllKeys extends string | number | symbol,\n> =\n IsComplete<T, AllKeys> extends false\n ? BrandedError<`Missing key: ${Exclude<AllKeys extends Symbol ? 'ERR' : AllKeys, T[number]>}`>\n : TryGetDuplicate<T> extends false\n ? T\n : BrandedError<`Duplicate key found: ${TryGetDuplicate<T>}`>;\n\ntype BuildTupleHelper<\n Element,\n Length extends number,\n Rest extends Element[],\n> = Rest['length'] extends Length\n ? readonly [...Rest] // Terminate with readonly array (aka tuple)\n : BuildTupleHelper<Element, Length, [Element, ...Rest]>;\n\nexport type BuildTuple<Element, Length extends number> = number extends Length\n ? // Because `Length extends number` and `number extends Length`, then `Length` is not a specific finite number.\n readonly Element[] // It's not fixed length.\n : BuildTupleHelper<Element, Length, []>; // Otherwise it is a fixed length tuple.\n\nexport type TuplesToObject<T extends readonly (readonly [PropertyKey, any])[]> = {\n [K in T[number] as K[0]]: K[1];\n};\n\nexport type TuplePrefixUnion<T extends any[]> =\n | []\n | (Required<T> extends [...infer Init, any] ? Required<T> | TuplePrefixUnion<Init> : never);\n\nexport type SubtractTuple<Minuend extends any[], Subtrahend extends any[]> = Subtrahend extends [\n any,\n ...infer S,\n]\n ? Minuend extends [any, ...infer M]\n ? // keep subtracting\n SubtractTuple<M, S>\n : // subtrahend has a cardinality less than minuend\n never\n : // we fully subtracted already\n Minuend;\n"]}
1
+ {"version":3,"sources":["../src/tuples.ts"],"names":[],"mappings":";;;AAsDA,cAAA,EAAA","file":"CYM4JWQD.js","sourcesContent":["import type { BrandedError } from './branded';\n\n//check that the tuple T uses every type in the union K at least once\nexport type IsComplete<\n T extends readonly (string | number | symbol)[],\n K extends string | number | symbol,\n> = Exclude<K, T[number]> extends never ? true : false;\n\nexport type TryGetDuplicate<\n T extends readonly (string | number | symbol)[],\n Seen extends (string | number | symbol)[] = [],\n> = T extends [infer Head, ...infer Tail]\n ? Head extends Seen[number]\n ? Head\n : Head extends string | number | symbol\n ? Tail extends readonly (string | number | symbol)[]\n ? TryGetDuplicate<Tail, [...Seen, Head]>\n : false\n : false\n : false;\n\n//check that the tuple T is a valid ordering of AllKeys, using IsComplete and TryGetDuplicate\n//returns a branded error if there are missing keys or duplicates\nexport type AssertUniqueCompleteSet<\n T extends readonly (string | number | symbol)[],\n AllKeys extends string | number | symbol,\n> =\n IsComplete<T, AllKeys> extends false\n ? BrandedError<`Missing key: ${Exclude<AllKeys extends Symbol ? 'ERR' : AllKeys, T[number]>}`>\n : TryGetDuplicate<T> extends false\n ? T\n : BrandedError<`Duplicate key found: ${TryGetDuplicate<T>}`>;\n\ntype BuildTupleHelper<\n Element,\n Length extends number,\n Rest extends Element[],\n> = Rest['length'] extends Length\n ? readonly [...Rest] // Terminate with readonly array (aka tuple)\n : BuildTupleHelper<Element, Length, [Element, ...Rest]>;\n\nexport type BuildTuple<Element, Length extends number> = number extends Length\n ? // Because `Length extends number` and `number extends Length`, then `Length` is not a specific finite number.\n readonly Element[] // It's not fixed length.\n : BuildTupleHelper<Element, Length, []>; // Otherwise it is a fixed length tuple.\n\nexport type TuplesToObject<T extends readonly (readonly [PropertyKey, any])[]> = {\n [K in T[number] as K[0]]: K[1];\n};\n\nexport type TuplePrefixUnion<T extends any[]> =\n | []\n | (Required<T> extends [...infer Init, any] ? Required<T> | TuplePrefixUnion<Init> : never);\n\nexport type SubtractTuple<Minuend extends any[], Subtrahend extends any[]> = Subtrahend extends [\n any,\n ...infer S,\n]\n ? Minuend extends [any, ...infer M]\n ? // keep subtracting\n SubtractTuple<M, S>\n : // subtrahend has a cardinality less than minuend\n never\n : // we fully subtracted already\n Minuend;\n"]}
@@ -0,0 +1,6 @@
1
+ import { init_esm_shims } from './3GUONMA5.js';
2
+
3
+ // src/branded.ts
4
+ init_esm_shims();
5
+ //# sourceMappingURL=EHNXTLTB.js.map
6
+ //# sourceMappingURL=EHNXTLTB.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/branded.ts"],"names":[],"mappings":";;;AAAA,cAAA,EAAA","file":"RI75XMZ2.js","sourcesContent":["const tag = '___tag___';\n/**\n * Creates a branded type of {@link T} with the brand {@link U}.\n *\n * @param T - Type to brand\n * @param U - Label\n * @returns Branded type\n *\n * @example\n * type Result = Branded<string, 'foo'>\n * // ^? type Result = string & { [symbol]: 'foo' }\n */\nexport type Branded<T, U> = T & { [tag]: U };\n/**\n * Represents a percentage as a decimal value. For example, 25% is represented as 0.25\n */\nexport type Percent = number; // Branded<number, 'percent'>\n\nexport type BrandedError<T extends string> = Branded<Error, T>;\n"]}
1
+ {"version":3,"sources":["../src/branded.ts"],"names":[],"mappings":";;;AAAA,cAAA,EAAA","file":"EHNXTLTB.js","sourcesContent":["const tag = '___tag___';\n/**\n * Creates a branded type of {@link T} with the brand {@link U}.\n *\n * @param T - Type to brand\n * @param U - Label\n * @returns Branded type\n *\n * @example\n * type Result = Branded<string, 'foo'>\n * // ^? type Result = string & { [symbol]: 'foo' }\n */\nexport type Branded<T, U> = T & { [tag]: U };\n/**\n * Represents a percentage as a decimal value. For example, 25% is represented as 0.25\n */\nexport type Percent = number; // Branded<number, 'percent'>\n\nexport type BrandedError<T extends string> = Branded<Error, T>;\n"]}
@@ -0,0 +1,6 @@
1
+ import { init_esm_shims } from './3GUONMA5.js';
2
+
3
+ // src/deep.ts
4
+ init_esm_shims();
5
+ //# sourceMappingURL=K3OTXOMP.js.map
6
+ //# sourceMappingURL=K3OTXOMP.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/deep.ts"],"names":[],"mappings":";;;AAEA,cAAA,EAAA","file":"XL6YBUOB.js","sourcesContent":["import type { Prettify } from './viem';\n\n/**\n * Copy the brand tag from the branded.ts file, can't import it to keep it hidden from library users\n */\nconst brandTag = '___tag___';\n\nexport type DeepRequire<T> = {\n [P in keyof T]-?: DeepRequire<T[P]>;\n};\n\nexport type DeepOptional<T> = T extends { [brandTag]: infer V }\n ? Prettify<\n { [brandTag]: V } & {\n [P in keyof T]?: DeepOptional<T[P]>;\n }\n >\n : {\n [P in keyof T]?: DeepOptional<T[P]>;\n };\n\nexport type DeepUnion<T, U> =\n | {\n [P in keyof T]: DeepUnion<T[P], U>;\n }\n | U;\n"]}
1
+ {"version":3,"sources":["../src/deep.ts"],"names":[],"mappings":";;;AAEA,cAAA,EAAA","file":"K3OTXOMP.js","sourcesContent":["import type { Prettify } from './viem';\n\n/**\n * Copy the brand tag from the branded.ts file, can't import it to keep it hidden from library users\n */\nconst brandTag = '___tag___';\n\nexport type DeepRequire<T> = {\n [P in keyof T]-?: DeepRequire<T[P]>;\n};\n\nexport type DeepOptional<T> = T extends { [brandTag]: infer V }\n ? Prettify<\n { [brandTag]: V } & {\n [P in keyof T]?: DeepOptional<T[P]>;\n }\n >\n : {\n [P in keyof T]?: DeepOptional<T[P]>;\n };\n\nexport type DeepUnion<T, U> =\n | {\n [P in keyof T]: DeepUnion<T[P], U>;\n }\n | U;\n"]}
@@ -0,0 +1,6 @@
1
+ import { init_esm_shims } from './3GUONMA5.js';
2
+
3
+ // src/asyncify.ts
4
+ init_esm_shims();
5
+ //# sourceMappingURL=KDSQYXCE.js.map
6
+ //# sourceMappingURL=KDSQYXCE.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/asyncify.ts"],"names":[],"mappings":";;;AAAA,cAAA,EAAA","file":"S6NNED46.js","sourcesContent":["export type AsyncifyDeep<T> = T extends (...args: infer A) => infer R\n ? (...args: A) => Promise<R>\n : T extends object\n ? { [K in keyof T]: AsyncifyDeep<T[K]> }\n : T;\n"]}
1
+ {"version":3,"sources":["../src/asyncify.ts"],"names":[],"mappings":";;;AAAA,cAAA,EAAA","file":"KDSQYXCE.js","sourcesContent":["export type AsyncifyDeep<T> = T extends (...args: infer A) => infer R\n ? (...args: A) => Promise<R>\n : T extends object\n ? { [K in keyof T]: AsyncifyDeep<T[K]> }\n : T;\n"]}
@@ -0,0 +1,6 @@
1
+ import { init_esm_shims } from './3GUONMA5.js';
2
+
3
+ // src/removeNever.ts
4
+ init_esm_shims();
5
+ //# sourceMappingURL=MRRG35V3.js.map
6
+ //# sourceMappingURL=MRRG35V3.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/removeNever.ts"],"names":[],"mappings":";;;AAAA,cAAA,EAAA","file":"NAAXLSE5.js","sourcesContent":["export type RemoveNever<T> = {\n [K in keyof T as T[K] extends never ? never : K]: T[K];\n};\n"]}
1
+ {"version":3,"sources":["../src/removeNever.ts"],"names":[],"mappings":";;;AAAA,cAAA,EAAA","file":"MRRG35V3.js","sourcesContent":["export type RemoveNever<T> = {\n [K in keyof T as T[K] extends never ? never : K]: T[K];\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { __commonJS, init_esm_shims, __name, __toESM } from './ZVSZ2LTA.js';
1
+ import { __commonJS, init_esm_shims, __name, __toESM } from './3GUONMA5.js';
2
2
  import { isatty } from 'tty';
3
3
 
4
4
  // ../../node_modules/.pnpm/js-tokens@9.0.1/node_modules/js-tokens/index.js
@@ -4455,7 +4455,7 @@ __name(createTestHook, "createTestHook");
4455
4455
  // ../../node_modules/.pnpm/@vitest+runner@3.2.6/node_modules/@vitest/runner/dist/index.js
4456
4456
  init_esm_shims();
4457
4457
 
4458
- // ../../node_modules/.pnpm/vitest@3.2.6_@types+debug@4.1.12_@types+node@25.5.0_@vitest+ui@3.2.6_jiti@2.6.1_jsdom@2_1580c2ba05103524c721ffd327fca1a4/node_modules/vitest/dist/index.js
4458
+ // ../../node_modules/.pnpm/vitest@3.2.6_@types+debug@4.1.12_@types+node@25.5.0_@vitest+ui@3.2.6_jiti@2.6.1_jsdom@2_e8f2a21d95ff4b08cccb4c421fe1c387/node_modules/vitest/dist/index.js
4459
4459
  init_esm_shims();
4460
4460
 
4461
4461
  // ../../node_modules/.pnpm/chai@5.3.3/node_modules/chai/index.js
@@ -8218,7 +8218,7 @@ __name2(use, "use");
8218
8218
  // ../../node_modules/.pnpm/@vitest+runner@3.2.6/node_modules/@vitest/runner/dist/utils.js
8219
8219
  init_esm_shims();
8220
8220
 
8221
- // ../../node_modules/.pnpm/vitest@3.2.6_@types+debug@4.1.12_@types+node@25.5.0_@vitest+ui@3.2.6_jiti@2.6.1_jsdom@2_1580c2ba05103524c721ffd327fca1a4/node_modules/vitest/dist/index.js
8221
+ // ../../node_modules/.pnpm/vitest@3.2.6_@types+debug@4.1.12_@types+node@25.5.0_@vitest+ui@3.2.6_jiti@2.6.1_jsdom@2_e8f2a21d95ff4b08cccb4c421fe1c387/node_modules/vitest/dist/index.js
8222
8222
  var import_expect_type = __toESM(require_dist(), 1);
8223
8223
  /*! Bundled license information:
8224
8224
 
@@ -8504,5 +8504,5 @@ chai/index.js:
8504
8504
  */
8505
8505
 
8506
8506
  export { import_expect_type, test2 as test };
8507
- //# sourceMappingURL=ED5YIHCO.js.map
8508
- //# sourceMappingURL=ED5YIHCO.js.map
8507
+ //# sourceMappingURL=NT6KQXHL.js.map
8508
+ //# sourceMappingURL=NT6KQXHL.js.map