@layerzerolabs/typescript-utils 0.0.30 → 0.0.32

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.
@@ -2,7 +2,7 @@
2
2
  > @layerzerolabs/typescript-utils@0.0.0 build /home/runner/work/monorepo-internal/monorepo-internal/packages/typescript-utils
3
3
  > tsup
4
4
 
5
- CLI Building entry: src/advancedRecord.ts, src/branded.ts, src/constructor.ts, src/deep.ts, src/disallowedAny.ts, src/index.ts, src/lastOf.ts, src/merge.ts, src/methodOf.ts, src/removeNever.ts, src/strings.test-d.ts, src/strings.ts, src/tuples.ts, src/valueOf.ts, src/viem.ts, src/withRequired.ts
5
+ CLI Building entry: src/advancedRecord.ts, src/branded.ts, src/constructor.ts, src/deep.ts, src/disallowedAny.ts, src/identity.ts, src/index.ts, src/lastOf.ts, src/merge.ts, src/methodOf.ts, src/removeNever.ts, src/strings.test-d.ts, src/strings.ts, src/tuples.ts, src/valueOf.ts, src/viem.ts, src/withRequired.ts
6
6
  CLI Using tsconfig: tsconfig.json
7
7
  CLI tsup v8.4.0
8
8
  CLI Using tsup config: /home/runner/work/monorepo-internal/monorepo-internal/packages/typescript-utils/tsup.config.ts
@@ -11,133 +11,141 @@
11
11
  CJS Build start
12
12
  ESM Build start
13
13
  Entry module "dist/TFOJQQVJ.cjs" is using named and default exports together. Consumers of your bundle will have to use `chunk.default` to access the default export, which may not be what you want. Use `output.exports: "named"` to disable this warning.
14
+ CJS dist/withRequired.cjs 153.00 B
15
+ CJS dist/removeNever.cjs 151.00 B
16
+ CJS dist/merge.cjs 139.00 B
17
+ CJS dist/methodOf.cjs 145.00 B
18
+ CJS dist/strings.cjs 143.00 B
19
+ CJS dist/tuples.cjs 141.00 B
20
+ CJS dist/TFOJQQVJ.cjs 42.03 KB
21
+ CJS dist/valueOf.cjs 143.00 B
22
+ CJS dist/advancedRecord.cjs 157.00 B
23
+ CJS dist/viem.cjs 137.00 B
24
+ CJS dist/branded.cjs 143.00 B
25
+ CJS dist/constructor.cjs 151.00 B
26
+ CJS dist/disallowedAny.cjs 155.00 B
27
+ CJS dist/deep.cjs 137.00 B
28
+ CJS dist/identity.cjs 145.00 B
29
+ CJS dist/index.cjs 583.00 B
30
+ CJS dist/U3NSVXKY.cjs 191.00 B
31
+ CJS dist/FQTDMGIM.cjs 187.00 B
32
+ CJS dist/Y53SFKBY.cjs 184.00 B
33
+ CJS dist/OQCEYCFE.cjs 186.00 B
34
+ CJS dist/CEQAD5SY.cjs 185.00 B
35
+ CJS dist/JRGCWPQC.cjs 190.00 B
36
+ CJS dist/M2FMGCRF.cjs 186.00 B
37
+ CJS dist/ATSF4XM5.cjs 183.00 B
38
+ CJS dist/KGYIWVDZ.cjs 193.00 B
39
+ CJS dist/44IBECAR.cjs 186.00 B
40
+ CJS dist/PUPSLF67.cjs 183.00 B
41
+ CJS dist/BPWNPHCG.cjs 190.00 B
42
+ CJS dist/3JF2BSTM.cjs 192.00 B
43
+ CJS dist/ZLF3Y44J.cjs 187.00 B
44
+ CJS dist/lastOf.cjs 141.00 B
45
+ CJS dist/Q74ZLWCL.cjs 185.00 B
46
+ CJS dist/U7VZULNU.cjs 2.46 KB
47
+ CJS dist/strings.test-d.cjs 298.98 KB
48
+ CJS dist/withRequired.cjs.map 77.00 B
49
+ CJS dist/removeNever.cjs.map 76.00 B
50
+ CJS dist/merge.cjs.map 70.00 B
51
+ CJS dist/methodOf.cjs.map 73.00 B
52
+ CJS dist/strings.cjs.map 72.00 B
53
+ CJS dist/tuples.cjs.map 71.00 B
54
+ CJS dist/valueOf.cjs.map 72.00 B
55
+ CJS dist/branded.cjs.map 72.00 B
56
+ CJS dist/advancedRecord.cjs.map 79.00 B
57
+ CJS dist/viem.cjs.map 69.00 B
58
+ CJS dist/disallowedAny.cjs.map 78.00 B
59
+ CJS dist/TFOJQQVJ.cjs.map 99.18 KB
60
+ CJS dist/identity.cjs.map 73.00 B
61
+ CJS dist/constructor.cjs.map 76.00 B
62
+ CJS dist/index.cjs.map 599.00 B
63
+ CJS dist/U3NSVXKY.cjs.map 232.00 B
64
+ CJS dist/deep.cjs.map 69.00 B
65
+ CJS dist/FQTDMGIM.cjs.map 399.00 B
66
+ CJS dist/OQCEYCFE.cjs.map 1.43 KB
67
+ CJS dist/Y53SFKBY.cjs.map 469.00 B
68
+ CJS dist/CEQAD5SY.cjs.map 2.05 KB
69
+ CJS dist/ATSF4XM5.cjs.map 8.25 KB
70
+ CJS dist/M2FMGCRF.cjs.map 538.00 B
71
+ CJS dist/JRGCWPQC.cjs.map 252.00 B
72
+ CJS dist/PUPSLF67.cjs.map 307.00 B
73
+ CJS dist/KGYIWVDZ.cjs.map 788.00 B
74
+ CJS dist/44IBECAR.cjs.map 719.00 B
75
+ CJS dist/BPWNPHCG.cjs.map 214.00 B
76
+ CJS dist/3JF2BSTM.cjs.map 378.00 B
77
+ CJS dist/Q74ZLWCL.cjs.map 659.00 B
78
+ CJS dist/U7VZULNU.cjs.map 842.00 B
79
+ CJS dist/lastOf.cjs.map 71.00 B
80
+ CJS dist/ZLF3Y44J.cjs.map 265.00 B
81
+ CJS dist/strings.test-d.cjs.map 762.63 KB
82
+ CJS ⚡️ Build success in 1149ms
14
83
  ESM dist/methodOf.js 121.00 B
84
+ ESM dist/merge.js 115.00 B
85
+ ESM dist/withRequired.js 129.00 B
15
86
  ESM dist/removeNever.js 127.00 B
87
+ ESM dist/tuples.js 117.00 B
16
88
  ESM dist/6EIKSOH2.js 41.68 KB
17
89
  ESM dist/strings.js 119.00 B
18
- ESM dist/tuples.js 117.00 B
19
90
  ESM dist/valueOf.js 119.00 B
20
- ESM dist/withRequired.js 129.00 B
21
91
  ESM dist/advancedRecord.js 133.00 B
22
92
  ESM dist/viem.js 113.00 B
23
93
  ESM dist/branded.js 119.00 B
24
94
  ESM dist/constructor.js 127.00 B
25
- ESM dist/deep.js 113.00 B
26
95
  ESM dist/disallowedAny.js 131.00 B
27
- ESM dist/index.js 486.00 B
96
+ ESM dist/identity.js 121.00 B
97
+ ESM dist/deep.js 113.00 B
98
+ ESM dist/index.js 510.00 B
99
+ ESM dist/HVKBLL5V.js 156.00 B
100
+ ESM dist/ARHO375T.js 163.00 B
101
+ ESM dist/C2AO2CD6.js 159.00 B
28
102
  ESM dist/EXZ6DAVW.js 158.00 B
29
103
  ESM dist/FPWOFXCL.js 162.00 B
30
- ESM dist/YICPCKYH.js 157.00 B
104
+ ESM dist/KUQBG2D5.js 157.00 B
31
105
  ESM dist/ZPWIEOJR.js 158.00 B
32
106
  ESM dist/GHCFU27L.js 155.00 B
33
- ESM dist/ARHO375T.js 163.00 B
107
+ ESM dist/Q3ZAC463.js 165.00 B
34
108
  ESM dist/3OBHE7MG.js 162.00 B
109
+ ESM dist/H4XPUNCM.js 155.00 B
35
110
  ESM dist/DXU6T5SS.js 158.00 B
36
- ESM dist/C2AO2CD6.js 159.00 B
37
111
  ESM dist/HBKMB3K6.js 164.00 B
112
+ ESM dist/MNZ3MKHF.js 159.00 B
38
113
  ESM dist/lastOf.js 117.00 B
39
- ESM dist/TDMZOP4J.js 157.00 B
40
- ESM dist/Q3ZAC463.js 165.00 B
41
- ESM dist/merge.js 115.00 B
42
- ESM dist/H4XPUNCM.js 155.00 B
43
- ESM dist/HVKBLL5V.js 156.00 B
44
114
  ESM dist/4RNWLMHM.js 2.36 KB
115
+ ESM dist/TDMZOP4J.js 157.00 B
45
116
  ESM dist/strings.test-d.js 293.27 KB
117
+ ESM dist/withRequired.js.map 76.00 B
118
+ ESM dist/merge.js.map 69.00 B
46
119
  ESM dist/methodOf.js.map 72.00 B
47
120
  ESM dist/removeNever.js.map 75.00 B
48
- ESM dist/strings.js.map 71.00 B
49
- ESM dist/6EIKSOH2.js.map 99.15 KB
50
- ESM dist/withRequired.js.map 76.00 B
51
- ESM dist/valueOf.js.map 71.00 B
121
+ ESM dist/tuples.js.map 70.00 B
52
122
  ESM dist/advancedRecord.js.map 78.00 B
123
+ ESM dist/strings.js.map 71.00 B
53
124
  ESM dist/viem.js.map 68.00 B
54
- ESM dist/tuples.js.map 70.00 B
55
125
  ESM dist/branded.js.map 71.00 B
126
+ ESM dist/valueOf.js.map 71.00 B
127
+ ESM dist/6EIKSOH2.js.map 99.15 KB
128
+ ESM dist/constructor.js.map 75.00 B
129
+ ESM dist/identity.js.map 72.00 B
56
130
  ESM dist/deep.js.map 68.00 B
131
+ ESM dist/index.js.map 578.00 B
57
132
  ESM dist/disallowedAny.js.map 77.00 B
58
- ESM dist/constructor.js.map 75.00 B
59
- ESM dist/index.js.map 548.00 B
133
+ ESM dist/ARHO375T.js.map 211.00 B
134
+ ESM dist/HVKBLL5V.js.map 448.00 B
135
+ ESM dist/C2AO2CD6.js.map 378.00 B
60
136
  ESM dist/EXZ6DAVW.js.map 1.41 KB
61
- ESM dist/YICPCKYH.js.map 1.44 KB
62
137
  ESM dist/FPWOFXCL.js.map 231.00 B
138
+ ESM dist/KUQBG2D5.js.map 2.03 KB
63
139
  ESM dist/ZPWIEOJR.js.map 517.00 B
64
- ESM dist/GHCFU27L.js.map 8.23 KB
140
+ ESM dist/Q3ZAC463.js.map 767.00 B
65
141
  ESM dist/3OBHE7MG.js.map 193.00 B
66
- ESM dist/ARHO375T.js.map 211.00 B
142
+ ESM dist/GHCFU27L.js.map 8.23 KB
67
143
  ESM dist/DXU6T5SS.js.map 698.00 B
68
- ESM dist/C2AO2CD6.js.map 378.00 B
69
- ESM dist/lastOf.js.map 70.00 B
144
+ ESM dist/H4XPUNCM.js.map 286.00 B
70
145
  ESM dist/HBKMB3K6.js.map 357.00 B
71
- ESM dist/TDMZOP4J.js.map 638.00 B
72
- ESM dist/Q3ZAC463.js.map 767.00 B
146
+ ESM dist/MNZ3MKHF.js.map 244.00 B
147
+ ESM dist/lastOf.js.map 70.00 B
73
148
  ESM dist/4RNWLMHM.js.map 650.00 B
74
- ESM dist/merge.js.map 69.00 B
75
- ESM dist/H4XPUNCM.js.map 286.00 B
76
- ESM dist/HVKBLL5V.js.map 448.00 B
149
+ ESM dist/TDMZOP4J.js.map 638.00 B
77
150
  ESM dist/strings.test-d.js.map 761.83 KB
78
- ESM ⚡️ Build success in 2271ms
79
- CJS dist/methodOf.cjs 145.00 B
80
- CJS dist/removeNever.cjs 151.00 B
81
- CJS dist/TFOJQQVJ.cjs 42.03 KB
82
- CJS dist/tuples.cjs 141.00 B
83
- CJS dist/strings.cjs 143.00 B
84
- CJS dist/valueOf.cjs 143.00 B
85
- CJS dist/withRequired.cjs 153.00 B
86
- CJS dist/viem.cjs 137.00 B
87
- CJS dist/advancedRecord.cjs 157.00 B
88
- CJS dist/constructor.cjs 151.00 B
89
- CJS dist/deep.cjs 137.00 B
90
- CJS dist/disallowedAny.cjs 155.00 B
91
- CJS dist/index.cjs 556.00 B
92
- CJS dist/FQTDMGIM.cjs 187.00 B
93
- CJS dist/JRGCWPQC.cjs 190.00 B
94
- CJS dist/OQCEYCFE.cjs 186.00 B
95
- CJS dist/LSUYSAW6.cjs 185.00 B
96
- CJS dist/ATSF4XM5.cjs 183.00 B
97
- CJS dist/U3NSVXKY.cjs 191.00 B
98
- CJS dist/M2FMGCRF.cjs 186.00 B
99
- CJS dist/branded.cjs 143.00 B
100
- CJS dist/44IBECAR.cjs 186.00 B
101
- CJS dist/KGYIWVDZ.cjs 193.00 B
102
- CJS dist/BPWNPHCG.cjs 190.00 B
103
- CJS dist/PUPSLF67.cjs 183.00 B
104
- CJS dist/3JF2BSTM.cjs 192.00 B
105
- CJS dist/lastOf.cjs 141.00 B
106
- CJS dist/merge.cjs 139.00 B
107
- CJS dist/Q74ZLWCL.cjs 185.00 B
108
- CJS dist/Y53SFKBY.cjs 184.00 B
109
- CJS dist/U7VZULNU.cjs 2.46 KB
110
- CJS dist/strings.test-d.cjs 298.98 KB
111
- CJS dist/methodOf.cjs.map 73.00 B
112
- CJS dist/removeNever.cjs.map 76.00 B
113
- CJS dist/tuples.cjs.map 71.00 B
114
- CJS dist/strings.cjs.map 72.00 B
115
- CJS dist/TFOJQQVJ.cjs.map 99.18 KB
116
- CJS dist/valueOf.cjs.map 72.00 B
117
- CJS dist/withRequired.cjs.map 77.00 B
118
- CJS dist/viem.cjs.map 69.00 B
119
- CJS dist/advancedRecord.cjs.map 79.00 B
120
- CJS dist/constructor.cjs.map 76.00 B
121
- CJS dist/disallowedAny.cjs.map 78.00 B
122
- CJS dist/deep.cjs.map 69.00 B
123
- CJS dist/index.cjs.map 569.00 B
124
- CJS dist/FQTDMGIM.cjs.map 399.00 B
125
- CJS dist/OQCEYCFE.cjs.map 1.43 KB
126
- CJS dist/JRGCWPQC.cjs.map 252.00 B
127
- CJS dist/LSUYSAW6.cjs.map 1.46 KB
128
- CJS dist/ATSF4XM5.cjs.map 8.25 KB
129
- CJS dist/U3NSVXKY.cjs.map 232.00 B
130
- CJS dist/M2FMGCRF.cjs.map 538.00 B
131
- CJS dist/branded.cjs.map 72.00 B
132
- CJS dist/44IBECAR.cjs.map 719.00 B
133
- CJS dist/KGYIWVDZ.cjs.map 788.00 B
134
- CJS dist/BPWNPHCG.cjs.map 214.00 B
135
- CJS dist/PUPSLF67.cjs.map 307.00 B
136
- CJS dist/3JF2BSTM.cjs.map 378.00 B
137
- CJS dist/merge.cjs.map 70.00 B
138
- CJS dist/Q74ZLWCL.cjs.map 659.00 B
139
- CJS dist/Y53SFKBY.cjs.map 469.00 B
140
- CJS dist/lastOf.cjs.map 71.00 B
141
- CJS dist/U7VZULNU.cjs.map 842.00 B
142
- CJS dist/strings.test-d.cjs.map 762.63 KB
143
- CJS ⚡️ Build success in 2275ms
151
+ ESM ⚡️ Build success in 1150ms
@@ -1,8 +1,8 @@
1
1
 
2
2
  > @layerzerolabs/typescript-utils@0.0.0 checkdeps /home/runner/work/monorepo-internal/monorepo-internal/packages/typescript-utils
3
- > pnpm --filter @layerzerolabs/depcheck run depcheck validate --missing-dependencies --only $npm_package_name
3
+ > pnpm --filter @layerzerolabs/depcheck run depcheck validate --catalog --missing-dependencies --only $npm_package_name
4
4
 
5
5
 
6
6
  > @layerzerolabs/depcheck@1.0.1 depcheck /home/runner/work/monorepo-internal/monorepo-internal/tools/repo/depcheck
7
- > tsx ./src/index.ts "validate" "--missing-dependencies" "--only" "@layerzerolabs/typescript-utils"
7
+ > tsx ./src/index.ts "validate" "--catalog" "--missing-dependencies" "--only" "@layerzerolabs/typescript-utils"
8
8
 
@@ -4,5 +4,5 @@ var U7VZULNU_cjs = require('./U7VZULNU.cjs');
4
4
 
5
5
  // src/tuples.ts
6
6
  U7VZULNU_cjs.init_cjs_shims();
7
- //# sourceMappingURL=LSUYSAW6.cjs.map
8
- //# sourceMappingURL=LSUYSAW6.cjs.map
7
+ //# sourceMappingURL=CEQAD5SY.cjs.map
8
+ //# sourceMappingURL=CEQAD5SY.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tuples.ts"],"names":["init_cjs_shims"],"mappings":";;;;;AAqBAA,2BAAA,EAAA","file":"LSUYSAW6.cjs","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"]}
1
+ {"version":3,"sources":["../src/tuples.ts"],"names":["init_cjs_shims"],"mappings":";;;;;AAyCAA,2BAAA,EAAA","file":"CEQAD5SY.cjs","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"]}
@@ -2,5 +2,5 @@ import { init_esm_shims } from './4RNWLMHM.js';
2
2
 
3
3
  // src/tuples.ts
4
4
  init_esm_shims();
5
- //# sourceMappingURL=YICPCKYH.js.map
6
- //# sourceMappingURL=YICPCKYH.js.map
5
+ //# sourceMappingURL=KUQBG2D5.js.map
6
+ //# sourceMappingURL=KUQBG2D5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tuples.ts"],"names":[],"mappings":";;;AAqBA,cAAA,EAAA","file":"YICPCKYH.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"]}
1
+ {"version":3,"sources":["../src/tuples.ts"],"names":[],"mappings":";;;AAyCA,cAAA,EAAA","file":"KUQBG2D5.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"]}
@@ -0,0 +1,6 @@
1
+ import { init_esm_shims } from './4RNWLMHM.js';
2
+
3
+ // src/identity.ts
4
+ init_esm_shims();
5
+ //# sourceMappingURL=MNZ3MKHF.js.map
6
+ //# sourceMappingURL=MNZ3MKHF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/identity.ts"],"names":[],"mappings":";;;AAAA,cAAA,EAAA","file":"MNZ3MKHF.js","sourcesContent":["// Wraps types and property access with 1-arity which enables creating interfaces\nexport type Identity<T> = T;\n"]}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var U7VZULNU_cjs = require('./U7VZULNU.cjs');
4
+
5
+ // src/identity.ts
6
+ U7VZULNU_cjs.init_cjs_shims();
7
+ //# sourceMappingURL=ZLF3Y44J.cjs.map
8
+ //# sourceMappingURL=ZLF3Y44J.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/identity.ts"],"names":["init_cjs_shims"],"mappings":";;;;;AAAAA,2BAAA,EAAA","file":"ZLF3Y44J.cjs","sourcesContent":["// Wraps types and property access with 1-arity which enables creating interfaces\nexport type Identity<T> = T;\n"]}
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ require('./ZLF3Y44J.cjs');
4
+ require('./U7VZULNU.cjs');
5
+
6
+ //# sourceMappingURL=identity.cjs.map
7
+ //# sourceMappingURL=identity.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"identity.cjs"}
@@ -0,0 +1,2 @@
1
+ export type Identity<T> = T;
2
+ //# sourceMappingURL=identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import './MNZ3MKHF.js';
2
+ import './4RNWLMHM.js';
3
+ //# sourceMappingURL=identity.js.map
4
+ //# sourceMappingURL=identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"identity.js"}
package/dist/index.cjs CHANGED
@@ -1,19 +1,20 @@
1
1
  'use strict';
2
2
 
3
+ require('./U3NSVXKY.cjs');
4
+ require('./Y53SFKBY.cjs');
3
5
  require('./FQTDMGIM.cjs');
4
6
  require('./JRGCWPQC.cjs');
5
7
  require('./OQCEYCFE.cjs');
6
- require('./LSUYSAW6.cjs');
8
+ require('./CEQAD5SY.cjs');
7
9
  require('./M2FMGCRF.cjs');
8
10
  require('./ATSF4XM5.cjs');
9
- require('./U3NSVXKY.cjs');
10
11
  require('./KGYIWVDZ.cjs');
11
12
  require('./44IBECAR.cjs');
12
13
  require('./BPWNPHCG.cjs');
13
14
  require('./PUPSLF67.cjs');
14
15
  require('./3JF2BSTM.cjs');
16
+ require('./ZLF3Y44J.cjs');
15
17
  require('./Q74ZLWCL.cjs');
16
- require('./Y53SFKBY.cjs');
17
18
  var U7VZULNU_cjs = require('./U7VZULNU.cjs');
18
19
 
19
20
  // src/index.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["init_cjs_shims"],"mappings":";;;;;;;;;;;;;;;;;;;AAAAA,2BAAA,EAAA","file":"index.cjs","sourcesContent":["export * from './advancedRecord';\nexport * from './branded';\nexport * from './constructor';\nexport * from './deep';\nexport * from './disallowedAny';\nexport * from './lastOf';\nexport * from './merge';\nexport * from './methodOf';\nexport * from './removeNever';\nexport * from './strings';\nexport * from './tuples';\nexport * from './valueOf';\nexport * from './viem';\nexport * from './withRequired';\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["init_cjs_shims"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAAA,2BAAA,EAAA","file":"index.cjs","sourcesContent":["export * from './advancedRecord';\nexport * from './branded';\nexport * from './constructor';\nexport * from './deep';\nexport * from './disallowedAny';\nexport * from './identity';\nexport * from './lastOf';\nexport * from './merge';\nexport * from './methodOf';\nexport * from './removeNever';\nexport * from './strings';\nexport * from './tuples';\nexport * from './valueOf';\nexport * from './viem';\nexport * from './withRequired';\n"]}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@ export * from './branded';
3
3
  export * from './constructor';
4
4
  export * from './deep';
5
5
  export * from './disallowedAny';
6
+ export * from './identity';
6
7
  export * from './lastOf';
7
8
  export * from './merge';
8
9
  export * from './methodOf';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -1,17 +1,18 @@
1
+ import './ARHO375T.js';
2
+ import './HVKBLL5V.js';
1
3
  import './C2AO2CD6.js';
2
4
  import './FPWOFXCL.js';
3
5
  import './EXZ6DAVW.js';
4
- import './YICPCKYH.js';
6
+ import './KUQBG2D5.js';
5
7
  import './ZPWIEOJR.js';
6
8
  import './GHCFU27L.js';
7
- import './ARHO375T.js';
8
9
  import './Q3ZAC463.js';
9
10
  import './DXU6T5SS.js';
10
11
  import './3OBHE7MG.js';
11
12
  import './H4XPUNCM.js';
12
13
  import './HBKMB3K6.js';
14
+ import './MNZ3MKHF.js';
13
15
  import './TDMZOP4J.js';
14
- import './HVKBLL5V.js';
15
16
  import { init_esm_shims } from './4RNWLMHM.js';
16
17
 
17
18
  // src/index.ts
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,cAAA,EAAA","file":"index.js","sourcesContent":["export * from './advancedRecord';\nexport * from './branded';\nexport * from './constructor';\nexport * from './deep';\nexport * from './disallowedAny';\nexport * from './lastOf';\nexport * from './merge';\nexport * from './methodOf';\nexport * from './removeNever';\nexport * from './strings';\nexport * from './tuples';\nexport * from './valueOf';\nexport * from './viem';\nexport * from './withRequired';\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,cAAA,EAAA","file":"index.js","sourcesContent":["export * from './advancedRecord';\nexport * from './branded';\nexport * from './constructor';\nexport * from './deep';\nexport * from './disallowedAny';\nexport * from './identity';\nexport * from './lastOf';\nexport * from './merge';\nexport * from './methodOf';\nexport * from './removeNever';\nexport * from './strings';\nexport * from './tuples';\nexport * from './valueOf';\nexport * from './viem';\nexport * from './withRequired';\n"]}
package/dist/tuples.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- require('./LSUYSAW6.cjs');
3
+ require('./CEQAD5SY.cjs');
4
4
  require('./U7VZULNU.cjs');
5
5
 
6
6
  //# sourceMappingURL=tuples.cjs.map
package/dist/tuples.d.ts CHANGED
@@ -2,4 +2,7 @@ import type { BrandedError } from './branded';
2
2
  export type IsComplete<T extends readonly (string | number | symbol)[], K extends string | number | symbol> = Exclude<K, T[number]> extends never ? true : false;
3
3
  export type TryGetDuplicate<T extends readonly (string | number | symbol)[], Seen extends (string | number | symbol)[] = []> = T extends [infer Head, ...infer Tail] ? Head extends Seen[number] ? Head : Head extends string | number | symbol ? Tail extends readonly (string | number | symbol)[] ? TryGetDuplicate<Tail, [...Seen, Head]> : false : false : false;
4
4
  export type AssertUniqueCompleteSet<T extends readonly (string | number | symbol)[], AllKeys extends string | number | symbol> = IsComplete<T, AllKeys> extends false ? BrandedError<`Missing key: ${Exclude<AllKeys extends Symbol ? 'ERR' : AllKeys, T[number]>}`> : TryGetDuplicate<T> extends false ? T : BrandedError<`Duplicate key found: ${TryGetDuplicate<T>}`>;
5
+ type BuildTupleHelper<Element, Length extends number, Rest extends Element[]> = Rest['length'] extends Length ? readonly [...Rest] : BuildTupleHelper<Element, Length, [Element, ...Rest]>;
6
+ export type BuildTuple<Element, Length extends number> = number extends Length ? readonly Element[] : BuildTupleHelper<Element, Length, []>;
7
+ export {};
5
8
  //# sourceMappingURL=tuples.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tuples.d.ts","sourceRoot":"","sources":["../src/tuples.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAG9C,MAAM,MAAM,UAAU,CAClB,CAAC,SAAS,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,EAC/C,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAClC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;AAEvD,MAAM,MAAM,eAAe,CACvB,CAAC,SAAS,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,EAC/C,IAAI,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,IAC9C,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GACnC,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,GACrB,IAAI,GACJ,IAAI,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GACnC,IAAI,SAAS,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GAC9C,eAAe,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,GACtC,KAAK,GACT,KAAK,GACX,KAAK,CAAC;AAIZ,MAAM,MAAM,uBAAuB,CAC/B,CAAC,SAAS,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,EAC/C,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAExC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,KAAK,GAC9B,YAAY,CAAC,gBAAgB,OAAO,CAAC,OAAO,SAAS,MAAM,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAC5F,eAAe,CAAC,CAAC,CAAC,SAAS,KAAK,GAC9B,CAAC,GACD,YAAY,CAAC,wBAAwB,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"tuples.d.ts","sourceRoot":"","sources":["../src/tuples.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAG9C,MAAM,MAAM,UAAU,CAClB,CAAC,SAAS,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,EAC/C,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAClC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;AAEvD,MAAM,MAAM,eAAe,CACvB,CAAC,SAAS,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,EAC/C,IAAI,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,IAC9C,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GACnC,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,GACrB,IAAI,GACJ,IAAI,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GACnC,IAAI,SAAS,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GAC9C,eAAe,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,GACtC,KAAK,GACT,KAAK,GACX,KAAK,CAAC;AAIZ,MAAM,MAAM,uBAAuB,CAC/B,CAAC,SAAS,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,EAC/C,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAExC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,KAAK,GAC9B,YAAY,CAAC,gBAAgB,OAAO,CAAC,OAAO,SAAS,MAAM,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAC5F,eAAe,CAAC,CAAC,CAAC,SAAS,KAAK,GAC9B,CAAC,GACD,YAAY,CAAC,wBAAwB,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAEvE,KAAK,gBAAgB,CACjB,OAAO,EACP,MAAM,SAAS,MAAM,EACrB,IAAI,SAAS,OAAO,EAAE,IACtB,IAAI,CAAC,QAAQ,CAAC,SAAS,MAAM,GAC3B,SAAS,CAAC,GAAG,IAAI,CAAC,GAClB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AAE5D,MAAM,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,SAAS,MAAM,IAAI,MAAM,SAAS,MAAM,GAExE,SAAS,OAAO,EAAE,GAClB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC"}
package/dist/tuples.js CHANGED
@@ -1,4 +1,4 @@
1
- import './YICPCKYH.js';
1
+ import './KUQBG2D5.js';
2
2
  import './4RNWLMHM.js';
3
3
  //# sourceMappingURL=tuples.js.map
4
4
  //# sourceMappingURL=tuples.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@layerzerolabs/typescript-utils",
3
- "version": "0.0.30",
3
+ "version": "0.0.32",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -16,8 +16,8 @@
16
16
  "devDependencies": {
17
17
  "tsup": "^8.4.0",
18
18
  "vitest": "^3.2.3",
19
- "@layerzerolabs/tsup-configuration": "0.0.30",
20
- "@layerzerolabs/typescript-configuration": "0.0.30"
19
+ "@layerzerolabs/tsup-configuration": "0.0.32",
20
+ "@layerzerolabs/typescript-configuration": "0.0.32"
21
21
  },
22
22
  "publishConfig": {
23
23
  "access": "restricted",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "scripts": {
27
27
  "build": "tsup",
28
- "checkdeps": "pnpm --filter @layerzerolabs/depcheck run depcheck validate --missing-dependencies --only $npm_package_name",
28
+ "checkdeps": "pnpm --filter @layerzerolabs/depcheck run depcheck validate --catalog --missing-dependencies --only $npm_package_name",
29
29
  "clean": "rm -rf ./node_modules .turbo ./dist",
30
30
  "dev": "tsup --watch",
31
31
  "lint": "eslint . --max-warnings 0 || (eslint . --fix --max-warnings 0 && false)"
@@ -0,0 +1,2 @@
1
+ // Wraps types and property access with 1-arity which enables creating interfaces
2
+ export type Identity<T> = T;
package/src/index.ts CHANGED
@@ -3,6 +3,7 @@ export * from './branded';
3
3
  export * from './constructor';
4
4
  export * from './deep';
5
5
  export * from './disallowedAny';
6
+ export * from './identity';
6
7
  export * from './lastOf';
7
8
  export * from './merge';
8
9
  export * from './methodOf';
package/src/tuples.ts CHANGED
@@ -30,3 +30,16 @@ export type AssertUniqueCompleteSet<
30
30
  : TryGetDuplicate<T> extends false
31
31
  ? T
32
32
  : BrandedError<`Duplicate key found: ${TryGetDuplicate<T>}`>;
33
+
34
+ type BuildTupleHelper<
35
+ Element,
36
+ Length extends number,
37
+ Rest extends Element[],
38
+ > = Rest['length'] extends Length
39
+ ? readonly [...Rest] // Terminate with readonly array (aka tuple)
40
+ : BuildTupleHelper<Element, Length, [Element, ...Rest]>;
41
+
42
+ export type BuildTuple<Element, Length extends number> = number extends Length
43
+ ? // Because `Length extends number` and `number extends Length`, then `Length` is not a specific finite number.
44
+ readonly Element[] // It's not fixed length.
45
+ : BuildTupleHelper<Element, Length, []>; // Otherwise it is a fixed length tuple.