numpy-ts 0.12.0 → 0.13.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.
Files changed (144) hide show
  1. package/README.md +18 -14
  2. package/dist/esm/common/broadcasting.js +1 -0
  3. package/dist/esm/common/complex.js +1 -0
  4. package/dist/esm/common/dtype.js +1 -0
  5. package/dist/esm/common/internal/compute.js +1 -0
  6. package/dist/esm/common/internal/indexing.js +1 -0
  7. package/dist/esm/common/ndarray-core.js +1 -0
  8. package/dist/esm/common/ops/advanced.js +1 -0
  9. package/dist/esm/common/ops/arithmetic.js +1 -0
  10. package/dist/esm/common/ops/bitwise.js +1 -0
  11. package/dist/esm/common/ops/comparison.js +1 -0
  12. package/dist/esm/common/ops/complex.js +1 -0
  13. package/dist/esm/common/ops/exponential.js +1 -0
  14. package/dist/esm/common/ops/fft.js +1 -0
  15. package/dist/esm/common/ops/formatting.js +2 -0
  16. package/dist/esm/common/ops/gradient.js +1 -0
  17. package/dist/esm/common/ops/hyperbolic.js +1 -0
  18. package/dist/esm/common/ops/linalg.js +2 -0
  19. package/dist/esm/common/ops/logic.js +1 -0
  20. package/dist/esm/common/ops/random.js +1 -0
  21. package/dist/esm/common/ops/reduction.js +1 -0
  22. package/dist/esm/common/ops/rounding.js +1 -0
  23. package/dist/esm/common/ops/sets.js +1 -0
  24. package/dist/esm/common/ops/shape.js +1 -0
  25. package/dist/esm/common/ops/sorting.js +1 -0
  26. package/dist/esm/common/ops/statistics.js +1 -0
  27. package/dist/esm/common/ops/trig.js +1 -0
  28. package/dist/esm/common/slicing.js +1 -0
  29. package/dist/esm/common/storage.js +1 -0
  30. package/dist/esm/core/advanced.js +1 -0
  31. package/dist/esm/core/arithmetic.js +1 -0
  32. package/dist/esm/core/bitwise.js +1 -0
  33. package/dist/esm/core/complex.js +1 -0
  34. package/dist/esm/core/creation.js +1 -0
  35. package/dist/esm/core/formatting.js +1 -0
  36. package/dist/esm/core/gradient.js +1 -0
  37. package/dist/esm/core/index.js +1 -0
  38. package/dist/esm/core/linalg.js +1 -0
  39. package/dist/esm/core/logic.js +1 -0
  40. package/dist/esm/core/polynomial.js +1 -0
  41. package/dist/esm/core/reduction.js +1 -0
  42. package/dist/esm/core/rounding.js +1 -0
  43. package/dist/esm/core/sets.js +1 -0
  44. package/dist/esm/core/shape-extra.js +1 -0
  45. package/dist/esm/core/shape.js +1 -0
  46. package/dist/esm/core/sorting.js +1 -0
  47. package/dist/esm/core/statistics.js +1 -0
  48. package/dist/esm/core/trig.js +1 -0
  49. package/dist/esm/core/typechecking.js +1 -0
  50. package/dist/esm/core/types.js +1 -0
  51. package/dist/esm/core/utility.js +1 -0
  52. package/dist/esm/core.js +1 -0
  53. package/dist/esm/full/index.js +1 -0
  54. package/dist/esm/full/ndarray.js +1 -0
  55. package/dist/esm/index.js +1 -0
  56. package/dist/esm/io/index.js +1 -0
  57. package/dist/esm/io/npy/format.js +1 -0
  58. package/dist/esm/io/npy/index.js +1 -0
  59. package/dist/esm/io/npy/parser.js +1 -0
  60. package/dist/esm/io/npy/serializer.js +2 -0
  61. package/dist/esm/io/npz/index.js +1 -0
  62. package/dist/esm/io/npz/parser.js +1 -0
  63. package/dist/esm/io/npz/serializer.js +1 -0
  64. package/dist/esm/io/txt/index.js +1 -0
  65. package/dist/esm/io/txt/parser.js +1 -0
  66. package/dist/esm/io/txt/serializer.js +2 -0
  67. package/dist/esm/io/zip/index.js +1 -0
  68. package/dist/esm/io/zip/reader.js +1 -0
  69. package/dist/esm/io/zip/types.js +1 -0
  70. package/dist/esm/io/zip/writer.js +1 -0
  71. package/dist/esm/node.js +1 -0
  72. package/dist/numpy-ts.browser.js +5 -2
  73. package/dist/numpy-ts.node-io.cjs +5 -3
  74. package/dist/numpy-ts.node-io.cjs.map +4 -4
  75. package/dist/numpy-ts.node-io.mjs +5 -3
  76. package/dist/numpy-ts.node-io.mjs.map +4 -4
  77. package/dist/numpy-ts.node.cjs +5 -2
  78. package/dist/numpy-ts.node.cjs.map +4 -4
  79. package/dist/types/common/complex.d.ts +94 -0
  80. package/dist/types/{internal → common/internal}/compute.d.ts +1 -1
  81. package/dist/types/{internal → common/internal}/indexing.d.ts +6 -0
  82. package/dist/types/common/ndarray-core.d.ts +126 -0
  83. package/dist/types/{ops → common/ops}/advanced.d.ts +2 -2
  84. package/dist/types/{ops → common/ops}/arithmetic.d.ts +1 -1
  85. package/dist/types/{ops → common/ops}/bitwise.d.ts +1 -1
  86. package/dist/types/{ops → common/ops}/comparison.d.ts +1 -1
  87. package/dist/types/{ops → common/ops}/complex.d.ts +1 -1
  88. package/dist/types/{ops → common/ops}/exponential.d.ts +1 -1
  89. package/dist/types/common/ops/fft.d.ts +166 -0
  90. package/dist/types/common/ops/formatting.d.ts +229 -0
  91. package/dist/types/{ops → common/ops}/gradient.d.ts +1 -1
  92. package/dist/types/{ops → common/ops}/hyperbolic.d.ts +1 -1
  93. package/dist/types/{ops → common/ops}/linalg.d.ts +24 -3
  94. package/dist/types/{ops → common/ops}/logic.d.ts +2 -2
  95. package/dist/types/common/ops/random.d.ts +376 -0
  96. package/dist/types/{ops → common/ops}/reduction.d.ts +2 -2
  97. package/dist/types/{ops → common/ops}/rounding.d.ts +1 -1
  98. package/dist/types/{ops → common/ops}/sets.d.ts +1 -1
  99. package/dist/types/{ops → common/ops}/shape.d.ts +1 -1
  100. package/dist/types/{ops → common/ops}/sorting.d.ts +1 -1
  101. package/dist/types/{ops → common/ops}/statistics.d.ts +1 -1
  102. package/dist/types/{ops → common/ops}/trig.d.ts +1 -1
  103. package/dist/types/{core → common}/storage.d.ts +1 -0
  104. package/dist/types/core/advanced.d.ts +54 -0
  105. package/dist/types/core/arithmetic.d.ts +110 -0
  106. package/dist/types/core/bitwise.d.ts +34 -0
  107. package/dist/types/core/complex.d.ts +15 -90
  108. package/dist/types/core/creation.d.ts +98 -0
  109. package/dist/types/core/formatting.d.ts +29 -0
  110. package/dist/types/core/gradient.d.ts +14 -0
  111. package/dist/types/core/index.d.ts +40 -0
  112. package/dist/types/core/linalg.d.ts +141 -0
  113. package/dist/types/core/logic.d.ts +72 -0
  114. package/dist/types/core/polynomial.d.ts +50 -0
  115. package/dist/types/core/reduction.d.ts +82 -0
  116. package/dist/types/core/rounding.d.ts +24 -0
  117. package/dist/types/core/sets.d.ts +48 -0
  118. package/dist/types/core/shape-extra.d.ts +24 -0
  119. package/dist/types/core/shape.d.ts +77 -0
  120. package/dist/types/core/sorting.d.ts +34 -0
  121. package/dist/types/core/statistics.d.ts +32 -0
  122. package/dist/types/core/trig.d.ts +58 -0
  123. package/dist/types/core/typechecking.d.ts +50 -0
  124. package/dist/types/core/types.d.ts +43 -0
  125. package/dist/types/core/utility.d.ts +30 -0
  126. package/dist/types/core.d.ts +30 -0
  127. package/dist/types/full/index.d.ts +603 -0
  128. package/dist/types/full/ndarray.d.ts +880 -0
  129. package/dist/types/index.d.ts +140 -26
  130. package/dist/types/io/npy/format.d.ts +1 -1
  131. package/dist/types/io/npy/parser.d.ts +3 -3
  132. package/dist/types/io/npy/serializer.d.ts +2 -2
  133. package/dist/types/io/npz/parser.d.ts +4 -4
  134. package/dist/types/io/npz/serializer.d.ts +6 -6
  135. package/dist/types/io/txt/parser.d.ts +5 -5
  136. package/dist/types/io/txt/serializer.d.ts +2 -2
  137. package/dist/types/node.d.ts +12 -8
  138. package/package.json +30 -29
  139. package/dist/numpy-ts.esm.js +0 -2
  140. package/dist/types/core/ndarray.d.ts +0 -3923
  141. package/dist/types/ops/random.d.ts +0 -136
  142. /package/dist/types/{core → common}/broadcasting.d.ts +0 -0
  143. /package/dist/types/{core → common}/dtype.d.ts +0 -0
  144. /package/dist/types/{core → common}/slicing.d.ts +0 -0
@@ -1,49 +1,163 @@
1
1
  /**
2
2
  * numpy-ts - Complete NumPy implementation for TypeScript and JavaScript
3
3
  *
4
+ * This is the main entry point with full method chaining support.
5
+ * Functions return NDArray which has methods like .add(), .reshape(), etc.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { array, zeros } from 'numpy-ts';
10
+ *
11
+ * const a = array([1, 2, 3, 4]);
12
+ * const b = a.add(10).reshape([2, 2]).T; // Method chaining works!
13
+ * ```
14
+ *
15
+ * For tree-shakeable imports (smaller bundles, no method chaining), use:
16
+ * ```typescript
17
+ * import { array, add, reshape } from 'numpy-ts/core';
18
+ * ```
19
+ *
4
20
  * @module numpy-ts
5
21
  */
6
- export { Complex, type ComplexInput } from './core/complex';
7
- export { NDArray, zeros, ones, array, arange, linspace, logspace, geomspace, eye, empty, full, identity, asarray, copy, zeros_like, ones_like, empty_like, full_like, asanyarray, asarray_chkfinite, ascontiguousarray, asfortranarray, require, diag, diagflat, frombuffer, fromfile, fromfunction, fromiter, fromstring, meshgrid, tri, tril, triu, vander, sqrt, power, pow, // alias for power
8
- exp, exp2, expm1, log, log2, log10, log1p, logaddexp, logaddexp2, absolute, abs, // alias for absolute
9
- negative, sign, mod, divide, true_divide, // alias for divide
10
- floor_divide, positive, reciprocal, cbrt, fabs, divmod, square, remainder, heaviside, float_power, fmod, frexp, gcd, lcm, ldexp, modf, clip, maximum, minimum, fmax, fmin, nan_to_num, interp, unwrap, sinc, i0, dot, trace, diagonal, kron, transpose, inner, outer, tensordot, einsum, vdot, vecdot, matrix_transpose, permute_dims, matvec, vecmat, linalg, sin, cos, tan, arcsin, asin, // alias for arcsin
11
- arccos, acos, // alias for arccos
12
- arctan, atan, // alias for arctan
13
- arctan2, atan2, // alias for arctan2
14
- hypot, degrees, radians, deg2rad, rad2deg, sinh, cosh, tanh, arcsinh, asinh, // alias for arcsinh
15
- arccosh, acosh, // alias for arccosh
16
- arctanh, atanh, // alias for arctanh
17
- swapaxes, moveaxis, concatenate, stack, vstack, hstack, dstack, concat, unstack, block, split, array_split, vsplit, hsplit, tile, repeat, ravel, flatten, fill, item, tolist, tobytes, byteswap, view, tofile, reshape, squeeze, expand_dims, flip, fliplr, flipud, rot90, roll, rollaxis, atleast_1d, atleast_2d, atleast_3d, dsplit, column_stack, row_stack, resize, append, delete_ as delete, insert, pad, broadcast_to, broadcast_arrays, broadcast_shapes, take, put, iindex, bindex, copyto, choose, array_equal, array_equiv, take_along_axis, put_along_axis, putmask, compress, select, place, fill_diagonal, diag_indices, diag_indices_from, tril_indices, tril_indices_from, triu_indices, triu_indices_from, mask_indices, indices, ix_, ravel_multi_index, unravel_index, cumsum, cumulative_sum, // alias for cumsum
18
- cumprod, cumulative_prod, // alias for cumprod
19
- max, amax, // alias for max
20
- min, amin, // alias for min
21
- ptp, median, percentile, quantile, average, nansum, nanprod, nanmean, nanvar, nanstd, nanmin, nanmax, nanargmin, nanargmax, nancumsum, nancumprod, nanmedian, nanquantile, nanpercentile, bitwise_and, bitwise_or, bitwise_xor, bitwise_not, invert, left_shift, right_shift, packbits, unpackbits, bitwise_count, bitwise_invert, bitwise_left_shift, bitwise_right_shift, logical_and, logical_or, logical_not, logical_xor, isfinite, isinf, isnan, isnat, iscomplex, iscomplexobj, isreal, isrealobj, real, imag, conj, conjugate, angle, isneginf, isposinf, isfortran, real_if_close, isscalar, iterable, isdtype, promote_types, copysign, signbit, nextafter, spacing, sort, argsort, lexsort, partition, argpartition, sort_complex, nonzero, argwhere, flatnonzero, where, searchsorted, extract, count_nonzero, around, round_, // alias for around
22
- ceil, fix, floor, rint, round, trunc, unique, in1d, intersect1d, isin, setdiff1d, setxor1d, union1d, trim_zeros, unique_all, unique_counts, unique_inverse, unique_values, diff, ediff1d, gradient, cross, bincount, digitize, histogram, histogram2d, histogramdd, correlate, convolve, cov, corrcoef, histogram_bin_edges, trapezoid, apply_along_axis, apply_over_axes, may_share_memory, shares_memory, ndim, shape, size, geterr, seterr, can_cast, common_type, result_type, min_scalar_type, issubdtype, typename, mintypecode, poly, polyadd, polyder, polydiv, polyfit, polyint, polymul, polysub, polyval, roots, } from './core/ndarray';
23
- export { parseNpy, serializeNpy, parseNpyHeader, parseNpyData, UnsupportedDTypeError, InvalidNpyError, SUPPORTED_DTYPES, DTYPE_TO_DESCR, type NpyHeader, type NpyMetadata, type NpyVersion, parseNpz, parseNpzSync, loadNpz, loadNpzSync, serializeNpz, serializeNpzSync, type NpzParseOptions, type NpzParseResult, type NpzSerializeOptions, } from './io';
24
- import * as randomOps from './ops/random';
25
- import { ArrayStorage } from './core/storage';
26
- import { NDArray as NDArrayClass } from './core/ndarray';
27
- import { DType } from './core/dtype';
22
+ export { Complex, type ComplexInput } from './common/complex';
23
+ export { NDArray } from './full';
24
+ export { NDArrayCore } from './common/ndarray-core';
25
+ export { zeros, ones, empty, full, array, arange, linspace, logspace, geomspace, eye, identity, asarray, zeros_like, ones_like, empty_like, full_like, copy, asanyarray, asarray_chkfinite, ascontiguousarray, asfortranarray, require, diag, diagflat, frombuffer, fromfile, fromfunction, fromiter, fromstring, meshgrid, tri, tril, triu, vander, } from './full';
26
+ export { add, subtract, multiply, divide, true_divide, floor_divide, mod, sqrt, power, exp, exp2, expm1, log, log2, log10, log1p, logaddexp, logaddexp2, absolute, negative, sign, positive, reciprocal, cbrt, fabs, divmod, square, remainder, heaviside, float_power, fmod, frexp, gcd, lcm, ldexp, modf, clip, maximum, minimum, fmax, fmin, nan_to_num, interp, unwrap, sinc, i0, } from './full';
27
+ export { power as pow, absolute as abs } from './full';
28
+ export { sin, cos, tan, arcsin, arccos, arctan, arctan2, hypot, degrees, radians, deg2rad, rad2deg, sinh, cosh, tanh, arcsinh, arccosh, arctanh, } from './full';
29
+ export { arcsin as asin, arccos as acos, arctan as atan, arctan2 as atan2, arcsinh as asinh, arccosh as acosh, arctanh as atanh, } from './full';
30
+ export { dot, trace, diagonal, kron, transpose, inner, outer, tensordot, einsum, einsum_path, vdot, vecdot, matrix_transpose, permute_dims, matvec, vecmat, cross, matmul, linalg, } from './full';
31
+ export { reshape, flatten, ravel, squeeze, expand_dims, swapaxes, moveaxis, rollaxis, concatenate, stack, vstack, hstack, dstack, column_stack, row_stack, block, split, array_split, vsplit, hsplit, dsplit, unstack, tile, repeat, flip, fliplr, flipud, rot90, roll, resize, atleast_1d, atleast_2d, atleast_3d, append, delete_, delete_ as delete, insert, pad, } from './full';
32
+ export { concatenate as concat } from './full';
33
+ export { sum, mean, prod, amax, amin, ptp, argmin, argmax, std, variance, var_ as var, median, percentile, quantile, average, all, any, cumsum, cumprod, nansum, nanprod, nanmean, nanvar, nanstd, nanmin, nanmax, nanargmin, nanargmax, nancumsum, nancumprod, nanmedian, nanquantile, nanpercentile, } from './full';
34
+ export { amax as max, amin as min, cumsum as cumulative_sum, cumprod as cumulative_prod, } from './full';
35
+ export { logical_and, logical_or, logical_not, logical_xor, isfinite, isinf, isnan, isnat, isneginf, isposinf, iscomplex, iscomplexobj, isreal, isrealobj, real_if_close, isfortran, isscalar, iterable, isdtype, promote_types, copysign, signbit, nextafter, spacing, greater, greater_equal, less, less_equal, equal, not_equal, isclose, allclose, } from './full';
36
+ export { sort, argsort, lexsort, partition, argpartition, sort_complex, nonzero, argwhere, flatnonzero, where, searchsorted, extract, count_nonzero, } from './full';
37
+ export { bitwise_and, bitwise_or, bitwise_xor, bitwise_not, invert, left_shift, right_shift, packbits, unpackbits, bitwise_count, } from './full';
38
+ export { bitwise_not as bitwise_invert, left_shift as bitwise_left_shift, right_shift as bitwise_right_shift, } from './full';
39
+ export { around, round_, ceil, fix, floor, rint, trunc } from './full';
40
+ export { around as round } from './full';
41
+ export { unique, in1d, intersect1d, isin, setdiff1d, setxor1d, union1d, trim_zeros, unique_all, unique_counts, unique_inverse, unique_values, } from './full';
42
+ export { bincount, digitize, histogram, histogram2d, histogramdd, correlate, convolve, cov, corrcoef, histogram_bin_edges, trapezoid, } from './full';
43
+ export { diff, ediff1d, gradient } from './full';
44
+ export { real, imag, conj, angle } from './full';
45
+ export { conj as conjugate } from './full';
46
+ export { broadcast_to, broadcast_arrays, broadcast_shapes, take, put, iindex, bindex, copyto, choose, array_equal, array_equiv, take_along_axis, put_along_axis, putmask, compress, select, place, fill_diagonal, diag_indices, diag_indices_from, tril_indices, tril_indices_from, triu_indices, triu_indices_from, mask_indices, indices, ix_, ravel_multi_index, unravel_index, fill, item, tolist, tobytes, byteswap, view, tofile, } from './full';
47
+ export { apply_along_axis, apply_over_axes, may_share_memory, shares_memory, ndim, shape, size, geterr, seterr, } from './full';
48
+ export { array2string, array_repr, array_str, base_repr, binary_repr, format_float_positional, format_float_scientific, get_printoptions, set_printoptions, printoptions, } from './full';
49
+ export { can_cast, common_type, result_type, min_scalar_type, issubdtype, typename, mintypecode, } from './full';
50
+ export { poly, polyadd, polyder, polydiv, polyfit, polyint, polymul, polysub, polyval, roots, } from './full';
51
+ export { UnsupportedDTypeError, InvalidNpyError, SUPPORTED_DTYPES, DTYPE_TO_DESCR, type NpyHeader, type NpyMetadata, type NpyVersion, } from './io/npy/format';
52
+ export type { NpzParseOptions } from './io/npz/parser';
53
+ export type { NpzSerializeOptions } from './io/npz/serializer';
54
+ export type { ParseTxtOptions } from './io/txt/parser';
55
+ export type { SerializeTxtOptions } from './io/txt/serializer';
56
+ export { serializeNpy } from './io/npy/serializer';
57
+ export { serializeNpz, serializeNpzSync } from './io/npz/serializer';
58
+ export { serializeTxt } from './io/txt/serializer';
59
+ import { parseNpyHeader as parseNpyHeaderCore } from './io/npy/parser';
60
+ import type { NpyMetadata as NpyMetadataType } from './io/npy/format';
61
+ import type { NpzParseOptions as NpzParseOptionsType } from './io/npz/parser';
62
+ import type { ParseTxtOptions as ParseTxtOptionsType } from './io/txt/parser';
63
+ import type { DType as DTypeIO } from './common/dtype';
64
+ export type NpzArraysInput = NDArrayClass[] | Map<string, NDArrayClass> | Record<string, NDArrayClass>;
65
+ export interface NpzParseResult {
66
+ arrays: Map<string, NDArrayClass>;
67
+ skipped: string[];
68
+ errors: Map<string, string>;
69
+ }
70
+ export declare function parseNpy(buffer: ArrayBuffer | Uint8Array): NDArrayClass;
71
+ export declare const parseNpyHeader: typeof parseNpyHeaderCore;
72
+ export declare function parseNpyData(bytes: Uint8Array, metadata: NpyMetadataType): NDArrayClass;
73
+ export declare function parseNpz(buffer: ArrayBuffer | Uint8Array, options?: NpzParseOptionsType): Promise<NpzParseResult>;
74
+ export declare function parseNpzSync(buffer: ArrayBuffer | Uint8Array, options?: NpzParseOptionsType): NpzParseResult;
75
+ export declare function loadNpz(buffer: ArrayBuffer | Uint8Array, options?: NpzParseOptionsType): Promise<Record<string, NDArrayClass>>;
76
+ export declare function loadNpzSync(buffer: ArrayBuffer | Uint8Array, options?: NpzParseOptionsType): Record<string, NDArrayClass>;
77
+ export declare function parseTxt(text: string, options?: ParseTxtOptionsType): NDArrayClass;
78
+ export declare function genfromtxt(text: string, options?: ParseTxtOptionsType): NDArrayClass;
79
+ export declare function fromregex(text: string, regexp: RegExp | string, dtype?: DTypeIO): NDArrayClass;
80
+ import * as randomOps from './common/ops/random';
81
+ import { ArrayStorage } from './common/storage';
82
+ import { NDArray as NDArrayClass } from './full';
83
+ import { DType } from './common/dtype';
28
84
  export declare const random: {
29
85
  seed: typeof randomOps.seed;
86
+ get_state: typeof randomOps.get_state;
87
+ set_state: typeof randomOps.set_state;
88
+ get_bit_generator: typeof randomOps.get_bit_generator;
89
+ set_bit_generator: typeof randomOps.set_bit_generator;
90
+ default_rng: typeof randomOps.default_rng;
91
+ Generator: typeof randomOps.Generator;
30
92
  random: (size?: number | number[]) => number | ArrayStorage | NDArrayClass;
31
93
  rand: (...shape: number[]) => number | ArrayStorage | NDArrayClass;
32
94
  randn: (...shape: number[]) => number | ArrayStorage | NDArrayClass;
33
95
  randint: (low: number, high?: number | null, size?: number | number[], dtype?: DType) => number | ArrayStorage | NDArrayClass;
96
+ random_sample: (size?: number | number[]) => number | ArrayStorage | NDArrayClass;
97
+ ranf: (size?: number | number[]) => number | ArrayStorage | NDArrayClass;
98
+ sample: (size?: number | number[]) => number | ArrayStorage | NDArrayClass;
99
+ random_integers: (low: number, high?: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
100
+ bytes: typeof randomOps.bytes;
34
101
  uniform: (low?: number, high?: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
35
102
  normal: (loc?: number, scale?: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
36
103
  standard_normal: (size?: number | number[]) => number | ArrayStorage | NDArrayClass;
37
104
  exponential: (scale?: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
105
+ standard_exponential: (size?: number | number[]) => number | ArrayStorage | NDArrayClass;
106
+ gamma: (shape: number, scale?: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
107
+ standard_gamma: (shape: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
108
+ beta: (a: number, b: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
109
+ chisquare: (df: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
110
+ noncentral_chisquare: (df: number, nonc: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
111
+ f: (dfnum: number, dfden: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
112
+ noncentral_f: (dfnum: number, dfden: number, nonc: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
113
+ standard_cauchy: (size?: number | number[]) => number | ArrayStorage | NDArrayClass;
114
+ standard_t: (df: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
115
+ laplace: (loc?: number, scale?: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
116
+ logistic: (loc?: number, scale?: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
117
+ lognormal: (mean?: number, sigma?: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
118
+ gumbel: (loc?: number, scale?: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
119
+ pareto: (a: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
120
+ power: (a: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
121
+ rayleigh: (scale?: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
122
+ triangular: (left: number, mode: number, right: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
123
+ wald: (mean: number, scale: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
124
+ weibull: (a: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
38
125
  poisson: (lam?: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
39
126
  binomial: (n: number, p: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
127
+ geometric: (p: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
128
+ hypergeometric: (ngood: number, nbad: number, nsample: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
129
+ logseries: (p: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
130
+ negative_binomial: (n: number, p: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
131
+ zipf: (a: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
132
+ multinomial: (n: number, pvals: number[] | ArrayStorage, size?: number | number[]) => ArrayStorage | NDArrayClass;
133
+ multivariate_normal: (mean: number[] | ArrayStorage, cov: number[][] | ArrayStorage, size?: number | number[], check_valid?: "warn" | "raise" | "ignore", tol?: number) => ArrayStorage | NDArrayClass;
134
+ dirichlet: (alpha: number[] | ArrayStorage, size?: number | number[]) => ArrayStorage | NDArrayClass;
135
+ vonmises: (mu: number, kappa: number, size?: number | number[]) => number | ArrayStorage | NDArrayClass;
40
136
  choice: (a: number | ArrayStorage, size?: number | number[], replace?: boolean, p?: ArrayStorage | number[]) => number | ArrayStorage | NDArrayClass;
41
137
  permutation: (x: number | ArrayStorage) => ArrayStorage | NDArrayClass;
42
138
  shuffle: typeof randomOps.shuffle;
43
- get_state: typeof randomOps.get_state;
44
- set_state: typeof randomOps.set_state;
45
- default_rng: typeof randomOps.default_rng;
46
- Generator: typeof randomOps.Generator;
139
+ };
140
+ import { NDArrayCore } from './common/ndarray-core';
141
+ type ArrayInput = NDArrayClass | NDArrayCore | ArrayStorage;
142
+ export declare const fft: {
143
+ fft: (a: ArrayInput, n?: number, axis?: number, norm?: "backward" | "ortho" | "forward") => NDArrayClass;
144
+ ifft: (a: ArrayInput, n?: number, axis?: number, norm?: "backward" | "ortho" | "forward") => NDArrayClass;
145
+ fft2: (a: ArrayInput, s?: [number, number], axes?: [number, number], norm?: "backward" | "ortho" | "forward") => NDArrayClass;
146
+ ifft2: (a: ArrayInput, s?: [number, number], axes?: [number, number], norm?: "backward" | "ortho" | "forward") => NDArrayClass;
147
+ fftn: (a: ArrayInput, s?: number[], axes?: number[], norm?: "backward" | "ortho" | "forward") => NDArrayClass;
148
+ ifftn: (a: ArrayInput, s?: number[], axes?: number[], norm?: "backward" | "ortho" | "forward") => NDArrayClass;
149
+ rfft: (a: ArrayInput, n?: number, axis?: number, norm?: "backward" | "ortho" | "forward") => NDArrayClass;
150
+ irfft: (a: ArrayInput, n?: number, axis?: number, norm?: "backward" | "ortho" | "forward") => NDArrayClass;
151
+ rfft2: (a: ArrayInput, s?: [number, number], axes?: [number, number], norm?: "backward" | "ortho" | "forward") => NDArrayClass;
152
+ irfft2: (a: ArrayInput, s?: [number, number], axes?: [number, number], norm?: "backward" | "ortho" | "forward") => NDArrayClass;
153
+ rfftn: (a: ArrayInput, s?: number[], axes?: number[], norm?: "backward" | "ortho" | "forward") => NDArrayClass;
154
+ irfftn: (a: ArrayInput, s?: number[], axes?: number[], norm?: "backward" | "ortho" | "forward") => NDArrayClass;
155
+ hfft: (a: ArrayInput, n?: number, axis?: number, norm?: "backward" | "ortho" | "forward") => NDArrayClass;
156
+ ihfft: (a: ArrayInput, n?: number, axis?: number, norm?: "backward" | "ortho" | "forward") => NDArrayClass;
157
+ fftfreq: (n: number, d?: number) => NDArrayClass;
158
+ rfftfreq: (n: number, d?: number) => NDArrayClass;
159
+ fftshift: (a: ArrayInput, axes?: number | number[]) => NDArrayClass;
160
+ ifftshift: (a: ArrayInput, axes?: number | number[]) => NDArrayClass;
47
161
  };
48
162
  export declare const __version__: string;
49
163
  //# sourceMappingURL=index.d.ts.map
@@ -4,7 +4,7 @@
4
4
  * NPY is NumPy's native binary format for storing arrays.
5
5
  * Spec: https://numpy.org/doc/stable/reference/generated/numpy.lib.format.html
6
6
  */
7
- import type { DType } from '../../core/dtype';
7
+ import type { DType } from '../../common/dtype';
8
8
  /**
9
9
  * NPY magic number: \x93NUMPY (6 bytes)
10
10
  */
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Parses NumPy .npy files (both v1 and v2/v3 formats) into NDArray objects.
5
5
  */
6
- import { NDArray } from '../../core/ndarray';
6
+ import { NDArrayCore } from '../../common/ndarray-core';
7
7
  import { type NpyMetadata } from './format';
8
8
  /**
9
9
  * Parse an NPY file from a Uint8Array or ArrayBuffer
@@ -13,7 +13,7 @@ import { type NpyMetadata } from './format';
13
13
  * @throws InvalidNpyError if the file format is invalid
14
14
  * @throws UnsupportedDTypeError if the dtype is not supported
15
15
  */
16
- export declare function parseNpy(buffer: ArrayBuffer | Uint8Array): NDArray;
16
+ export declare function parseNpy(buffer: ArrayBuffer | Uint8Array): NDArrayCore;
17
17
  /**
18
18
  * Parse just the NPY header without reading the data
19
19
  *
@@ -24,5 +24,5 @@ export declare function parseNpyHeader(bytes: Uint8Array): NpyMetadata;
24
24
  /**
25
25
  * Parse the data section of an NPY file given parsed metadata
26
26
  */
27
- export declare function parseNpyData(bytes: Uint8Array, metadata: NpyMetadata): NDArray;
27
+ export declare function parseNpyData(bytes: Uint8Array, metadata: NpyMetadata): NDArrayCore;
28
28
  //# sourceMappingURL=parser.d.ts.map
@@ -6,12 +6,12 @@
6
6
  *
7
7
  * v3.0 is identical to v2.0 but allows UTF-8 in dtype descriptions.
8
8
  */
9
- import { NDArray } from '../../core/ndarray';
9
+ import { NDArrayCore } from '../../common/ndarray-core';
10
10
  /**
11
11
  * Serialize an NDArray to NPY format (v3.0)
12
12
  *
13
13
  * @param arr - The NDArray to serialize
14
14
  * @returns A Uint8Array containing the NPY file data
15
15
  */
16
- export declare function serializeNpy(arr: NDArray): Uint8Array;
16
+ export declare function serializeNpy(arr: NDArrayCore): Uint8Array;
17
17
  //# sourceMappingURL=serializer.d.ts.map
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * NPZ is a ZIP archive containing multiple .npy files.
5
5
  */
6
- import { NDArray } from '../../core/ndarray';
6
+ import { NDArrayCore } from '../../common/ndarray-core';
7
7
  /**
8
8
  * Options for parsing NPZ files
9
9
  */
@@ -20,7 +20,7 @@ export interface NpzParseOptions {
20
20
  */
21
21
  export interface NpzParseResult {
22
22
  /** Successfully parsed arrays */
23
- arrays: Map<string, NDArray>;
23
+ arrays: Map<string, NDArrayCore>;
24
24
  /** Names of arrays that were skipped due to unsupported dtypes (only when force=true) */
25
25
  skipped: string[];
26
26
  /** Error messages for skipped arrays */
@@ -49,9 +49,9 @@ export declare function parseNpzSync(buffer: ArrayBuffer | Uint8Array, options?:
49
49
  * @param options - Parse options
50
50
  * @returns Promise resolving to object with array names as keys
51
51
  */
52
- export declare function loadNpz(buffer: ArrayBuffer | Uint8Array, options?: NpzParseOptions): Promise<Record<string, NDArray>>;
52
+ export declare function loadNpz(buffer: ArrayBuffer | Uint8Array, options?: NpzParseOptions): Promise<Record<string, NDArrayCore>>;
53
53
  /**
54
54
  * Synchronous version of loadNpz
55
55
  */
56
- export declare function loadNpzSync(buffer: ArrayBuffer | Uint8Array, options?: NpzParseOptions): Record<string, NDArray>;
56
+ export declare function loadNpzSync(buffer: ArrayBuffer | Uint8Array, options?: NpzParseOptions): Record<string, NDArrayCore>;
57
57
  //# sourceMappingURL=parser.d.ts.map
@@ -3,14 +3,14 @@
3
3
  *
4
4
  * Serializes multiple NDArrays to NPZ format (ZIP archive of .npy files).
5
5
  */
6
- import { NDArray } from '../../core/ndarray';
6
+ import { NDArrayCore } from '../../common/ndarray-core';
7
7
  /**
8
8
  * Input type for arrays - supports:
9
- * - Array of NDArrays (positional, named arr_0, arr_1, etc.)
10
- * - Map of names to NDArrays
9
+ * - Array of NDArrayCores (positional, named arr_0, arr_1, etc.)
10
+ * - Map of names to NDArrayCores
11
11
  * - Object with names as keys
12
12
  */
13
- export type NpzArraysInput = NDArray[] | Map<string, NDArray> | Record<string, NDArray>;
13
+ export type NpzArraysInput = NDArrayCore[] | Map<string, NDArrayCore> | Record<string, NDArrayCore>;
14
14
  /**
15
15
  * Options for serializing NPZ files
16
16
  */
@@ -25,8 +25,8 @@ export interface NpzSerializeOptions {
25
25
  * Serialize multiple arrays to NPZ format
26
26
  *
27
27
  * @param arrays - Arrays to save. Can be:
28
- * - An array of NDArrays (named arr_0, arr_1, etc. like np.savez positional args)
29
- * - A Map of names to NDArrays
28
+ * - An array of NDArrayCores (named arr_0, arr_1, etc. like np.savez positional args)
29
+ * - A Map of names to NDArrayCores
30
30
  * - An object with names as keys (like np.savez keyword args)
31
31
  * @param options - Serialization options
32
32
  * @returns Promise resolving to NPZ file as Uint8Array
@@ -4,8 +4,8 @@
4
4
  * Provides NumPy-compatible loadtxt/genfromtxt functionality.
5
5
  * These functions work with strings and are environment-agnostic.
6
6
  */
7
- import { NDArray } from '../../core/ndarray';
8
- import type { DType } from '../../core/dtype';
7
+ import { NDArrayCore } from '../../common/ndarray-core';
8
+ import type { DType } from '../../common/dtype';
9
9
  /**
10
10
  * Options for parsing text data
11
11
  */
@@ -76,7 +76,7 @@ export interface ParseTxtOptions {
76
76
  * // arr.shape = [3, 3]
77
77
  * ```
78
78
  */
79
- export declare function parseTxt(text: string, options?: ParseTxtOptions): NDArray;
79
+ export declare function parseTxt(text: string, options?: ParseTxtOptions): NDArrayCore;
80
80
  /**
81
81
  * Parse text data into an NDArray with more flexible handling.
82
82
  *
@@ -87,7 +87,7 @@ export declare function parseTxt(text: string, options?: ParseTxtOptions): NDArr
87
87
  * @param options - Parsing options
88
88
  * @returns NDArray with the parsed data
89
89
  */
90
- export declare function genfromtxt(text: string, options?: ParseTxtOptions): NDArray;
90
+ export declare function genfromtxt(text: string, options?: ParseTxtOptions): NDArrayCore;
91
91
  /**
92
92
  * Parse text data using a regular expression.
93
93
  *
@@ -105,5 +105,5 @@ export declare function genfromtxt(text: string, options?: ParseTxtOptions): NDA
105
105
  * // arr = [[1.0, 2.0], [3.0, 4.0]]
106
106
  * ```
107
107
  */
108
- export declare function fromregex(text: string, regexp: RegExp | string, dtype?: DType): NDArray;
108
+ export declare function fromregex(text: string, regexp: RegExp | string, dtype?: DType): NDArrayCore;
109
109
  //# sourceMappingURL=parser.d.ts.map
@@ -4,7 +4,7 @@
4
4
  * Provides NumPy-compatible savetxt functionality.
5
5
  * These functions work with strings and are environment-agnostic.
6
6
  */
7
- import { NDArray } from '../../core/ndarray';
7
+ import { NDArrayCore } from '../../common/ndarray-core';
8
8
  /**
9
9
  * Options for serializing array to text
10
10
  */
@@ -63,5 +63,5 @@ export interface SerializeTxtOptions {
63
63
  * // "1.000000000000000000e+00,2.000000000000000000e+00,3.000000000000000000e+00\n4.000000000000000000e+00,5.000000000000000000e+00,6.000000000000000000e+00\n"
64
64
  * ```
65
65
  */
66
- export declare function serializeTxt(arr: NDArray, options?: SerializeTxtOptions): string;
66
+ export declare function serializeTxt(arr: NDArrayCore, options?: SerializeTxtOptions): string;
67
67
  //# sourceMappingURL=serializer.d.ts.map
@@ -12,13 +12,17 @@
12
12
  *
13
13
  * For browser usage, use the main entry point (no file I/O).
14
14
  */
15
- import { NDArray } from './core/ndarray';
16
- import { type NpzParseOptions, type NpzParseResult } from './io/npz/parser';
15
+ import { NDArray } from './full/ndarray';
16
+ import type { NpzParseOptions } from './io/npz/parser';
17
17
  import { type NpzSerializeOptions, type NpzArraysInput } from './io/npz/serializer';
18
18
  import { type ParseTxtOptions, type SerializeTxtOptions } from './io/txt';
19
- import type { DType } from './core/dtype';
19
+ import type { DType } from './common/dtype';
20
+ interface NpzParseResultNDArray {
21
+ arrays: Map<string, NDArray>;
22
+ skipped: string[];
23
+ errors: Map<string, string>;
24
+ }
20
25
  export * from './index';
21
- export * from './io';
22
26
  /**
23
27
  * Options for loading NPY/NPZ files
24
28
  */
@@ -69,7 +73,7 @@ export declare function saveNpySync(path: string, arr: NDArray): void;
69
73
  * @param options - Load options
70
74
  * @returns Object with array names as keys
71
75
  */
72
- export declare function loadNpzFile(path: string, options?: NpzParseOptions): Promise<NpzParseResult>;
76
+ export declare function loadNpzFile(path: string, options?: NpzParseOptions): Promise<NpzParseResultNDArray>;
73
77
  /**
74
78
  * Synchronously load arrays from a .npz file
75
79
  *
@@ -79,7 +83,7 @@ export declare function loadNpzFile(path: string, options?: NpzParseOptions): Pr
79
83
  * @param options - Load options
80
84
  * @returns Object with array names as keys
81
85
  */
82
- export declare function loadNpzFileSync(path: string, options?: NpzParseOptions): NpzParseResult;
86
+ export declare function loadNpzFileSync(path: string, options?: NpzParseOptions): NpzParseResultNDArray;
83
87
  /**
84
88
  * Save arrays to a .npz file
85
89
  *
@@ -107,7 +111,7 @@ export declare function saveNpzSync(path: string, arrays: NpzArraysInput): void;
107
111
  * @param options - Load options
108
112
  * @returns NDArray for .npy files, or NpzParseResult for .npz files
109
113
  */
110
- export declare function load(path: string, options?: LoadOptions): Promise<NDArray | NpzParseResult>;
114
+ export declare function load(path: string, options?: LoadOptions): Promise<NDArray | NpzParseResultNDArray>;
111
115
  /**
112
116
  * Synchronously load an array or arrays from a .npy or .npz file
113
117
  *
@@ -115,7 +119,7 @@ export declare function load(path: string, options?: LoadOptions): Promise<NDArr
115
119
  * @param options - Load options
116
120
  * @returns NDArray for .npy files, or NpzParseResult for .npz files
117
121
  */
118
- export declare function loadSync(path: string, options?: LoadOptions): NDArray | NpzParseResult;
122
+ export declare function loadSync(path: string, options?: LoadOptions): NDArray | NpzParseResultNDArray;
119
123
  /**
120
124
  * Save an array to a .npy file
121
125
  *
package/package.json CHANGED
@@ -1,18 +1,20 @@
1
1
  {
2
2
  "name": "numpy-ts",
3
- "version": "0.12.0",
4
- "description": "Complete NumPy implementation for TypeScript and JavaScript (81% API coverage)",
3
+ "version": "0.13.0",
4
+ "description": "Complete NumPy implementation for TypeScript and JavaScript (94% API coverage)",
5
5
  "main": "dist/numpy-ts.node.cjs",
6
6
  "browser": "dist/numpy-ts.browser.js",
7
- "module": "dist/numpy-ts.esm.js",
7
+ "module": "dist/esm/index.js",
8
8
  "types": "dist/types/index.d.ts",
9
9
  "type": "module",
10
+ "sideEffects": false,
10
11
  "files": [
11
12
  "dist/**/*.js",
12
13
  "dist/**/*.cjs",
13
14
  "dist/**/*.mjs",
14
15
  "dist/**/*.cjs.map",
15
16
  "dist/**/*.mjs.map",
17
+ "dist/esm/**/*.js",
16
18
  "dist/types/**/*.d.ts",
17
19
  "README.md",
18
20
  "LICENSE"
@@ -22,7 +24,8 @@
22
24
  "types": "./dist/types/index.d.ts",
23
25
  "node": "./dist/numpy-ts.node.cjs",
24
26
  "browser": "./dist/numpy-ts.browser.js",
25
- "default": "./dist/numpy-ts.esm.js"
27
+ "import": "./dist/esm/index.js",
28
+ "default": "./dist/esm/index.js"
26
29
  },
27
30
  "./node": {
28
31
  "types": "./dist/types/node.d.ts",
@@ -30,37 +33,27 @@
30
33
  "require": "./dist/numpy-ts.node-io.cjs",
31
34
  "default": "./dist/numpy-ts.node-io.cjs"
32
35
  },
33
- "./io": {
34
- "types": "./dist/types/io/index.d.ts",
35
- "node": "./dist/numpy-ts.node.cjs",
36
- "browser": "./dist/numpy-ts.browser.js",
37
- "default": "./dist/numpy-ts.esm.js"
38
- },
39
- "./browser": {
40
- "types": "./dist/types/index.d.ts",
41
- "default": "./dist/numpy-ts.browser.js"
36
+ "./core": {
37
+ "types": "./dist/types/core.d.ts",
38
+ "import": "./dist/esm/core.js",
39
+ "default": "./dist/esm/core.js"
42
40
  }
43
41
  },
44
42
  "scripts": {
45
- "dev": "esbuild src/index.ts --bundle --sourcemap --watch --outfile=dist/numpy-ts.dev.js",
46
- "build": "npm run build:clean && tsx build.ts && npm run build:types",
43
+ "generate": "tsx scripts/generate-full.ts && prettier --write src/full/index.ts src/full/ndarray.ts",
44
+ "build": "npm run build:clean && npm run generate && tsx build.ts && npm run build:types",
47
45
  "build:clean": "rm -rf dist",
48
46
  "build:types": "tsc --emitDeclarationOnly --outDir dist/types",
49
- "test": "vitest run --project=unit --project=validation",
50
- "test:quick": "vitest run --project=quick",
47
+ "test": "npm run build && vitest run",
51
48
  "test:unit": "vitest run --project=unit",
52
49
  "test:validation": "vitest run --project=validation",
53
50
  "test:bundles": "npm run build && vitest run --project=bundle-node --project=bundle-esm --project=bundle-browser",
54
- "test:ci": "npm run lint && npm run typecheck && npm test && npm run test:bundles",
55
- "test:summary": "vitest run --reporter=tap | grep -E 'not ok|# tests'",
56
- "test:watch": "vitest watch",
57
- "test:coverage": "vitest run --project=unit --coverage",
58
- "test:coverage:view": "vitest run --project=unit --coverage && open coverage/index.html",
59
- "test:coverage:validation": "vitest run --project=validation-quick --coverage",
60
- "test:coverage:validation:view": "vitest run --project=validation-quick --coverage && open coverage/index.html",
61
- "test:coverage:all": "vitest run --coverage",
62
- "lint": "eslint src tests --ext .ts",
63
- "lint:fix": "eslint src tests --ext .ts --fix",
51
+ "test:tree-shaking": "vitest run --project=tree-shaking",
52
+ "test:ci": "npm run lint && npm run typecheck && npm test",
53
+ "test:coverage": "vitest run --project=unit --project=validation --coverage",
54
+ "test:coverage:view": "open coverage/index.html || xdg-open coverage/index.html",
55
+ "lint": "eslint --cache src tests",
56
+ "lint:fix": "eslint --cache src tests --fix",
64
57
  "format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"",
65
58
  "format:check": "prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"",
66
59
  "typecheck": "tsc --noEmit",
@@ -97,7 +90,11 @@
97
90
  },
98
91
  "homepage": "https://github.com/dupontcyborg/numpy-ts",
99
92
  "devDependencies": {
100
- "@types/node": "^24.9.1",
93
+ "@rollup/plugin-alias": "^6.0.0",
94
+ "@rollup/plugin-node-resolve": "^16.0.1",
95
+ "@rollup/plugin-terser": "^0.4.4",
96
+ "@rollup/plugin-typescript": "^12.1.2",
97
+ "@types/node": "^25.0.3",
101
98
  "@typescript-eslint/eslint-plugin": "^8.46.2",
102
99
  "@typescript-eslint/parser": "^8.46.2",
103
100
  "@vitest/browser": "^4.0.3",
@@ -113,9 +110,13 @@
113
110
  "lint-staged": "^16.2.6",
114
111
  "playwright": "^1.56.1",
115
112
  "prettier": "^3.1.1",
113
+ "rollup": "^4.40.0",
114
+ "ts-loader": "^9.5.2",
115
+ "ts-morph": "^27.0.2",
116
116
  "tsx": "^4.20.6",
117
117
  "typescript": "^5.3.3",
118
- "vitest": "^4.0.3"
118
+ "vitest": "^4.0.3",
119
+ "webpack": "^5.99.9"
119
120
  },
120
121
  "engines": {
121
122
  "node": ">=20.1.0"