@machine202502/types 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,473 @@
1
+ interface NumberUintZarrMap {
2
+ "0": [];
3
+ "1": ["0"];
4
+ "2": ["0", "0"];
5
+ "3": ["0", "0", "0"];
6
+ "4": ["0", "0", "0", "0"];
7
+ "5": ["0", "0", "0", "0", "0"];
8
+ "6": ["0", "0", "0", "0", "0", "0"];
9
+ "7": ["0", "0", "0", "0", "0", "0", "0"];
10
+ "8": ["0", "0", "0", "0", "0", "0", "0", "0"];
11
+ "9": ["0", "0", "0", "0", "0", "0", "0", "0", "0"];
12
+ }
13
+ interface NumberUintZarrTenMap {
14
+ "0": [];
15
+ "1": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0"];
16
+ "2": [
17
+ "0",
18
+ "0",
19
+ "0",
20
+ "0",
21
+ "0",
22
+ "0",
23
+ "0",
24
+ "0",
25
+ "0",
26
+ "0",
27
+ "0",
28
+ "0",
29
+ "0",
30
+ "0",
31
+ "0",
32
+ "0",
33
+ "0",
34
+ "0",
35
+ "0",
36
+ "0"
37
+ ];
38
+ "3": [
39
+ "0",
40
+ "0",
41
+ "0",
42
+ "0",
43
+ "0",
44
+ "0",
45
+ "0",
46
+ "0",
47
+ "0",
48
+ "0",
49
+ "0",
50
+ "0",
51
+ "0",
52
+ "0",
53
+ "0",
54
+ "0",
55
+ "0",
56
+ "0",
57
+ "0",
58
+ "0",
59
+ "0",
60
+ "0",
61
+ "0",
62
+ "0",
63
+ "0",
64
+ "0",
65
+ "0",
66
+ "0",
67
+ "0",
68
+ "0"
69
+ ];
70
+ "4": [
71
+ "0",
72
+ "0",
73
+ "0",
74
+ "0",
75
+ "0",
76
+ "0",
77
+ "0",
78
+ "0",
79
+ "0",
80
+ "0",
81
+ "0",
82
+ "0",
83
+ "0",
84
+ "0",
85
+ "0",
86
+ "0",
87
+ "0",
88
+ "0",
89
+ "0",
90
+ "0",
91
+ "0",
92
+ "0",
93
+ "0",
94
+ "0",
95
+ "0",
96
+ "0",
97
+ "0",
98
+ "0",
99
+ "0",
100
+ "0",
101
+ "0",
102
+ "0",
103
+ "0",
104
+ "0",
105
+ "0",
106
+ "0",
107
+ "0",
108
+ "0",
109
+ "0",
110
+ "0"
111
+ ];
112
+ "5": [
113
+ "0",
114
+ "0",
115
+ "0",
116
+ "0",
117
+ "0",
118
+ "0",
119
+ "0",
120
+ "0",
121
+ "0",
122
+ "0",
123
+ "0",
124
+ "0",
125
+ "0",
126
+ "0",
127
+ "0",
128
+ "0",
129
+ "0",
130
+ "0",
131
+ "0",
132
+ "0",
133
+ "0",
134
+ "0",
135
+ "0",
136
+ "0",
137
+ "0",
138
+ "0",
139
+ "0",
140
+ "0",
141
+ "0",
142
+ "0",
143
+ "0",
144
+ "0",
145
+ "0",
146
+ "0",
147
+ "0",
148
+ "0",
149
+ "0",
150
+ "0",
151
+ "0",
152
+ "0",
153
+ "0",
154
+ "0",
155
+ "0",
156
+ "0",
157
+ "0",
158
+ "0",
159
+ "0",
160
+ "0",
161
+ "0",
162
+ "0"
163
+ ];
164
+ "6": [
165
+ "0",
166
+ "0",
167
+ "0",
168
+ "0",
169
+ "0",
170
+ "0",
171
+ "0",
172
+ "0",
173
+ "0",
174
+ "0",
175
+ "0",
176
+ "0",
177
+ "0",
178
+ "0",
179
+ "0",
180
+ "0",
181
+ "0",
182
+ "0",
183
+ "0",
184
+ "0",
185
+ "0",
186
+ "0",
187
+ "0",
188
+ "0",
189
+ "0",
190
+ "0",
191
+ "0",
192
+ "0",
193
+ "0",
194
+ "0",
195
+ "0",
196
+ "0",
197
+ "0",
198
+ "0",
199
+ "0",
200
+ "0",
201
+ "0",
202
+ "0",
203
+ "0",
204
+ "0",
205
+ "0",
206
+ "0",
207
+ "0",
208
+ "0",
209
+ "0",
210
+ "0",
211
+ "0",
212
+ "0",
213
+ "0",
214
+ "0",
215
+ "0",
216
+ "0",
217
+ "0",
218
+ "0",
219
+ "0",
220
+ "0",
221
+ "0",
222
+ "0",
223
+ "0",
224
+ "0"
225
+ ];
226
+ "7": [
227
+ "0",
228
+ "0",
229
+ "0",
230
+ "0",
231
+ "0",
232
+ "0",
233
+ "0",
234
+ "0",
235
+ "0",
236
+ "0",
237
+ "0",
238
+ "0",
239
+ "0",
240
+ "0",
241
+ "0",
242
+ "0",
243
+ "0",
244
+ "0",
245
+ "0",
246
+ "0",
247
+ "0",
248
+ "0",
249
+ "0",
250
+ "0",
251
+ "0",
252
+ "0",
253
+ "0",
254
+ "0",
255
+ "0",
256
+ "0",
257
+ "0",
258
+ "0",
259
+ "0",
260
+ "0",
261
+ "0",
262
+ "0",
263
+ "0",
264
+ "0",
265
+ "0",
266
+ "0",
267
+ "0",
268
+ "0",
269
+ "0",
270
+ "0",
271
+ "0",
272
+ "0",
273
+ "0",
274
+ "0",
275
+ "0",
276
+ "0",
277
+ "0",
278
+ "0",
279
+ "0",
280
+ "0",
281
+ "0",
282
+ "0",
283
+ "0",
284
+ "0",
285
+ "0",
286
+ "0",
287
+ "0",
288
+ "0",
289
+ "0",
290
+ "0",
291
+ "0",
292
+ "0",
293
+ "0",
294
+ "0",
295
+ "0",
296
+ "0"
297
+ ];
298
+ "8": [
299
+ "0",
300
+ "0",
301
+ "0",
302
+ "0",
303
+ "0",
304
+ "0",
305
+ "0",
306
+ "0",
307
+ "0",
308
+ "0",
309
+ "0",
310
+ "0",
311
+ "0",
312
+ "0",
313
+ "0",
314
+ "0",
315
+ "0",
316
+ "0",
317
+ "0",
318
+ "0",
319
+ "0",
320
+ "0",
321
+ "0",
322
+ "0",
323
+ "0",
324
+ "0",
325
+ "0",
326
+ "0",
327
+ "0",
328
+ "0",
329
+ "0",
330
+ "0",
331
+ "0",
332
+ "0",
333
+ "0",
334
+ "0",
335
+ "0",
336
+ "0",
337
+ "0",
338
+ "0",
339
+ "0",
340
+ "0",
341
+ "0",
342
+ "0",
343
+ "0",
344
+ "0",
345
+ "0",
346
+ "0",
347
+ "0",
348
+ "0",
349
+ "0",
350
+ "0",
351
+ "0",
352
+ "0",
353
+ "0",
354
+ "0",
355
+ "0",
356
+ "0",
357
+ "0",
358
+ "0",
359
+ "0",
360
+ "0",
361
+ "0",
362
+ "0",
363
+ "0",
364
+ "0",
365
+ "0",
366
+ "0",
367
+ "0",
368
+ "0",
369
+ "0",
370
+ "0",
371
+ "0",
372
+ "0",
373
+ "0",
374
+ "0",
375
+ "0",
376
+ "0",
377
+ "0",
378
+ "0"
379
+ ];
380
+ "9": [
381
+ "0",
382
+ "0",
383
+ "0",
384
+ "0",
385
+ "0",
386
+ "0",
387
+ "0",
388
+ "0",
389
+ "0",
390
+ "0",
391
+ "0",
392
+ "0",
393
+ "0",
394
+ "0",
395
+ "0",
396
+ "0",
397
+ "0",
398
+ "0",
399
+ "0",
400
+ "0",
401
+ "0",
402
+ "0",
403
+ "0",
404
+ "0",
405
+ "0",
406
+ "0",
407
+ "0",
408
+ "0",
409
+ "0",
410
+ "0",
411
+ "0",
412
+ "0",
413
+ "0",
414
+ "0",
415
+ "0",
416
+ "0",
417
+ "0",
418
+ "0",
419
+ "0",
420
+ "0",
421
+ "0",
422
+ "0",
423
+ "0",
424
+ "0",
425
+ "0",
426
+ "0",
427
+ "0",
428
+ "0",
429
+ "0",
430
+ "0",
431
+ "0",
432
+ "0",
433
+ "0",
434
+ "0",
435
+ "0",
436
+ "0",
437
+ "0",
438
+ "0",
439
+ "0",
440
+ "0",
441
+ "0",
442
+ "0",
443
+ "0",
444
+ "0",
445
+ "0",
446
+ "0",
447
+ "0",
448
+ "0",
449
+ "0",
450
+ "0",
451
+ "0",
452
+ "0",
453
+ "0",
454
+ "0",
455
+ "0",
456
+ "0",
457
+ "0",
458
+ "0",
459
+ "0",
460
+ "0",
461
+ "0",
462
+ "0",
463
+ "0",
464
+ "0",
465
+ "0",
466
+ "0",
467
+ "0",
468
+ "0",
469
+ "0",
470
+ "0"
471
+ ];
472
+ }
473
+ export { NumberUintZarrMap, NumberUintZarrTenMap };
@@ -0,0 +1,19 @@
1
+ import { NumericalDigitChar, NumericalUintStringTuple } from "../common/types";
2
+ import { NumberUintStringTupleCompare } from "./number-uint-string-compare";
3
+ import { NumberUintStringTupleSubtract } from "./number-uint-string-arithmetic-subtract";
4
+ import { NumberUintZarrMap, NumberUintZarrTenMap } from "./number-uint-string-zarr-maps";
5
+ type _NumberUintStringZarrIterationMethod<NT extends NumericalUintStringTuple, ZR extends "0"[] = []> = NumberUintStringTupleCompare<NT, ["0"]> extends 1 ? _NumberUintStringZarrIterationMethod<NumberUintStringTupleSubtract<NT, ["1"]>, [
6
+ "0",
7
+ ...ZR
8
+ ]> : ZR;
9
+ type NumberUintStringZarrIterationMethod<NT extends NumericalUintStringTuple> = _NumberUintStringZarrIterationMethod<NT, []>;
10
+ type NumberUintStringZarrFixedMethod<NT extends NumericalUintStringTuple> = [
11
+ ...["0", "0"],
12
+ ...NT
13
+ ] extends [
14
+ ...NumericalUintStringTuple,
15
+ infer Tm extends NumericalDigitChar,
16
+ infer Um extends NumericalDigitChar
17
+ ] ? [...NumberUintZarrTenMap[Tm], ...NumberUintZarrMap[Um]] : [];
18
+ type NumberUintStringZarr<NT extends NumericalUintStringTuple> = NumberUintStringTupleCompare<NT, ["9", "9"]> extends 1 ? NumberUintStringZarrIterationMethod<NT> : NumberUintStringZarrFixedMethod<NT>;
19
+ export { NumberUintStringZarrIterationMethod, NumberUintStringZarrFixedMethod, NumberUintStringZarr, };
@@ -0,0 +1,4 @@
1
+ type StringLength<S extends string> = _StringToTuple<S, []>["length"];
2
+ type _StringToTuple<S extends string, Tuple extends string[]> = S extends `${infer _Head extends string}${infer Tail extends string}` ? _StringToTuple<Tail, [...Tuple, _Head]> : Tuple;
3
+ type StringToTuple<S extends string> = _StringToTuple<S, []>;
4
+ export { StringLength, StringToTuple };
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "@machine202502/types",
3
+ "version": "1.0.0",
4
+ "description": "Type-level integer math and number utilities for TypeScript",
5
+ "license": "ISC",
6
+ "sideEffects": false,
7
+ "types": "./dist/math/index.d.ts",
8
+ "exports": {
9
+ "./math": {
10
+ "types": "./dist/math/index.d.ts",
11
+ "default": "./dist/math/index.d.ts"
12
+ },
13
+ "./math/internal": {
14
+ "types": "./dist/math/internal.d.ts",
15
+ "default": "./dist/math/internal.d.ts"
16
+ }
17
+ },
18
+ "typesVersions": {
19
+ "*": {
20
+ "math": [
21
+ "./dist/math/index.d.ts"
22
+ ],
23
+ "math/internal": [
24
+ "./dist/math/internal.d.ts"
25
+ ]
26
+ }
27
+ },
28
+ "files": [
29
+ "dist",
30
+ "README.md"
31
+ ],
32
+ "scripts": {
33
+ "build": "tsc -p tsconfig.build.json",
34
+ "clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
35
+ "prepublishOnly": "npm run clean && npm run build",
36
+ "example": "ts-node --compiler-options \"{\\\"module\\\":\\\"CommonJS\\\"}\" examples/example.ts"
37
+ },
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "git+https://github.com/machine202502/ts-math.git"
41
+ },
42
+ "keywords": [
43
+ "typescript",
44
+ "types",
45
+ "type-level",
46
+ "math",
47
+ "integer",
48
+ "arithmetic"
49
+ ],
50
+ "author": "machine202502",
51
+ "publishConfig": {
52
+ "access": "public"
53
+ },
54
+ "bugs": {
55
+ "url": "https://github.com/machine202502/ts-math/issues"
56
+ },
57
+ "homepage": "https://github.com/machine202502/ts-math#readme",
58
+ "devDependencies": {
59
+ "ts-node": "^10.9.2",
60
+ "typescript": "^5.9.3"
61
+ }
62
+ }