@epic-effx/rsalgo 0.3.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 daveKontro
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,161 @@
1
+ ![Dynamic JSON Badge](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2FdaveKontro%2Frsalgo%2Fmain%2Fpackage.json&query=%24.version&label=version&labelColor=%2305071c&color=%23a8f0e0)
2
+ ![Dynamic JSON Badge](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2FdaveKontro%2Frsalgo%2Fmain%2Fpackage.json&query=%24.engines.node&logo=nodedotjs&label=node&labelColor=%2305071c&color=%23a8f0e0)
3
+ ![Static Badge](https://img.shields.io/badge/npm->=v10-%23a8f0e0?logo=npm&labelColor=%2305071c)
4
+
5
+ # rsalgo
6
+
7
+ <div style="margin-top:20px;">
8
+ <img src="./assets/logo.svg" width="120" height="120" alt="logo" />
9
+ </div>
10
+
11
+ algorithms for .js / .ts written in rust 🦀
12
+
13
+ implementations are compiled to [WebAssembly](https://webassembly.org/) via [wasm-pack](https://rustwasm.github.io/wasm-pack/) and exposed as a typed TypeScript module
14
+
15
+ supports Node.js and browser environments
16
+
17
+ ## installation
18
+ ```
19
+ npm install rsalgo
20
+ ```
21
+
22
+ ## node.js usage
23
+ ```typescript
24
+ import { mergeSort, binarySearch, fibonacciNth, isPrime, breadthFirstSearch, depthFirstSearch } from 'rsalgo'
25
+
26
+ mergeSort({ arr: [8, 3, -1, 5] }) // Int32Array [-1, 3, 5, 8]
27
+ binarySearch({ arr: [1, 2, 3, 4], target: 3 }) // 2
28
+ fibonacciNth(18) // 2584
29
+ isPrime(7) // true
30
+
31
+ const graph = { A: ['B', 'C'], B: ['A'], C: ['A'] }
32
+
33
+ breadthFirstSearch({ graph, start: 'A', onComplete: (order) => order }) // ['A', 'B', 'C']
34
+ depthFirstSearch({ graph, start: 'A', onEnter: console.log }) // A B C
35
+ ```
36
+
37
+ ## browser usage
38
+ ```typescript
39
+ import { mergeSort } from 'rsalgo/browser'
40
+ ```
41
+
42
+ ## algorithms
43
+
44
+ ### sort
45
+ | function | signature | paradigm |
46
+ |---|---|---|
47
+ | `bubbleSort` | `({ arr: number[] }) => Int32Array` | brute force |
48
+ | `insertionSort` | `({ arr: number[] }) => Int32Array` | incremental |
49
+ | `mergeSort` | `({ arr: number[] }) => Int32Array` | divide and conquer |
50
+ | `quickSort` | `({ arr: number[] }) => Int32Array` | divide and conquer |
51
+
52
+ ### search
53
+ | function | signature | paradigm |
54
+ |---|---|---|
55
+ | `linearSearch` | `({ arr: number[], target: number }) => Int32Array` | brute force |
56
+ | `binarySearch` | `({ arr: number[], target: number }) => number` | divide and conquer |
57
+
58
+ ### math
59
+ | function | signature | paradigm |
60
+ |---|---|---|
61
+ | `fibonacci` | `(n: number) => Int32Array` | dynamic programming |
62
+ | `fibonacciNth` | `(n: number) => number` | dynamic programming |
63
+ | `isPrime` | `(n: number) => boolean` | brute force |
64
+
65
+ ### graph
66
+ | function | signature | paradigm |
67
+ |---|---|---|
68
+ | `breadthFirstSearch` | `({ graph: Graph, start: string, onVisit?, onEnqueue?, onComplete? }) => void` | breadth-first |
69
+ | `depthFirstSearch` | `({ graph: Graph, start: string, onEnter?, onExit? }) => void` | depth-first |
70
+
71
+ `Graph = Record<string, string[]>`
72
+
73
+ *more algorithms coming in future releases*
74
+
75
+ ## benchmarks 🔬
76
+
77
+ these benchmarks compare each Rust/WASM implementation against an equivalent TypeScript implementation
78
+
79
+ the results show when the WASM data transfer overhead outweighs the Rust speed advantage
80
+
81
+ run them yourself with `npm run bench`
82
+
83
+ ### sort (random unsorted array, throughput in ops/s)
84
+
85
+ | | n = 100 | n = 1,000 | n = 10,000 | winner |
86
+ |---|---|---|---|---|
87
+ | **bubbleSort rs** | 237,244 | 1,902 | 12 | |
88
+ | **bubbleSort ts** | 156,349 | 1,196 | 8 | **rs ~1.5x** |
89
+ | **insertionSort rs** | 373,282 | 6,300 | 64 | |
90
+ | **insertionSort ts** | 293,871 | 2,960 | 29 | **rs ~2x** |
91
+ | **mergeSort rs** | 44,990 | 2,971 | 175 | |
92
+ | **mergeSort ts** | 10,869 | 1,063 | 99 | **rs ~2x** |
93
+ | **quickSort rs** | 99,865 | 5,555 | 506 | |
94
+ | **quickSort ts** | 158,506 | 7,995 | 581 | **ts ~1.2x** |
95
+
96
+ NOTE: quickSort allocates three new vectors per recursion in Rust - a true in-place partition would reverse this result
97
+
98
+ ### search (sorted array, target at midpoint, throughput in ops/s)
99
+
100
+ | | n = 100 | n = 1,000 | n = 10,000 | n = 100,000 | winner |
101
+ |---|---|---|---|---|---|
102
+ | **linearSearch rs** | 1,039,043 | 394,379 | 55,512 | 2,182 | |
103
+ | **linearSearch ts** | 8,095,173 | 1,470,070 | 150,087 | 14,172 | **ts ~6x** |
104
+ | **binarySearch rs** | 1,439,392 | 554,583 | 80,079 | 2,650 | |
105
+ | **binarySearch ts** | 14,034,290 | 10,932,356 | 8,675,071 | 6,976,545 | **ts dominates** |
106
+
107
+ `new Int32Array(arr)` copies the entire array into WASM memory on every call - paying O(n) transfer cost for O(log n) work
108
+
109
+ the more efficient the algorithm, the harder WASM overhead hits
110
+
111
+ ### math (throughput in ops/s)
112
+
113
+ | | n = 10 | n = 100 | n = 1,000 | n = 10,000 | winner |
114
+ |---|---|---|---|---|---|
115
+ | **fibonacci rs** | 4,742,209 | 1,341,162 | 418,548 | 56,713 | |
116
+ | **fibonacci ts** | 15,872,733 | 2,035,695 | 197,158 | 21,293 | crossover ~n = 500 |
117
+ | **fibonacciNth rs** | 26,793,073 | 14,922,827 | 3,321,753 | 397,530 | |
118
+ | **fibonacciNth ts** | 25,395,909 | 4,767,649 | 549,187 | 55,456 | **rs** beyond n = 10 |
119
+ | **isPrime rs** | - | - | - | - | |
120
+ | **isPrime ts** | - | - | - | - | **tied** across all sizes |
121
+
122
+ ### graph (chain graph by number of nodes, throughput in ops/s)
123
+
124
+ | | n = 10 | n = 100 | n = 1,000 | winner |
125
+ |---|---|---|---|---|
126
+ | **breadthFirstSearch rs** | 89,483 | 9,256 | 888 | |
127
+ | **breadthFirstSearch ts** | 712,050 | 69,645 | 7,813 | **ts ~8x** |
128
+ | **depthFirstSearch rs** | 97,893 | 9,858 | 951 | |
129
+ | **depthFirstSearch ts** | 1,679,643 | 196,711 | 21,213 | **ts ~22x** |
130
+
131
+ graph object deserialization via `serde_wasm_bindgen` adds O(V+E) overhead on every call - unlike typed arrays, the entire nested JS object must be parsed into a Rust `HashMap` before traversal even begins
132
+
133
+ `V` = vertices (nodes), `E` = edges (connections)
134
+
135
+ ### key finding
136
+
137
+ rs wins where computation is heavy relative to data transfer
138
+
139
+ ts wins where data transfer dominates - search pays O(n) array copy for O(log n) work; graph traversal pays full object deserialization on every call, making rs slower by an order of magnitude at all tested sizes
140
+
141
+ ## scripts
142
+
143
+ build Rust → WASM and TypeScript
144
+ ```
145
+ npm run build
146
+ ```
147
+
148
+ run Rust tests
149
+ ```
150
+ npm run test:rust
151
+ ```
152
+
153
+ run TypeScript tests
154
+ ```
155
+ npm run test:js
156
+ ```
157
+
158
+ run benchmarks
159
+ ```
160
+ npm run bench
161
+ ```
Binary file
@@ -0,0 +1,24 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+
4
+ export function binary_search(arr: Int32Array, target: number): number;
5
+
6
+ export function breadth_first_search(graph: any, start: string, on_visit?: Function | null, on_enqueue?: Function | null, on_complete?: Function | null): void;
7
+
8
+ export function bubble_sort(arr: Int32Array): Int32Array;
9
+
10
+ export function depth_first_search(graph: any, start: string, on_enter?: Function | null, on_exit?: Function | null): void;
11
+
12
+ export function fibonacci(n: number): Int32Array;
13
+
14
+ export function fibonacci_nth(n: number): number;
15
+
16
+ export function insertion_sort(arr: Int32Array): Int32Array;
17
+
18
+ export function is_prime(n: number): boolean;
19
+
20
+ export function linear_search(arr: Int32Array, target: number): Int32Array;
21
+
22
+ export function merge_sort(arr: Int32Array): Int32Array;
23
+
24
+ export function quick_sort(arr: Int32Array): Int32Array;
@@ -0,0 +1,5 @@
1
+ import * as wasm from "./algorithms_bg.wasm";
2
+ export * from "./algorithms_bg.js";
3
+ import { __wbg_set_wasm } from "./algorithms_bg.js";
4
+ __wbg_set_wasm(wasm);
5
+ wasm.__wbindgen_start();
@@ -0,0 +1,517 @@
1
+ let wasm;
2
+ export function __wbg_set_wasm(val) {
3
+ wasm = val;
4
+ }
5
+
6
+ function addToExternrefTable0(obj) {
7
+ const idx = wasm.__externref_table_alloc();
8
+ wasm.__wbindgen_externrefs.set(idx, obj);
9
+ return idx;
10
+ }
11
+
12
+ function debugString(val) {
13
+ // primitive types
14
+ const type = typeof val;
15
+ if (type == 'number' || type == 'boolean' || val == null) {
16
+ return `${val}`;
17
+ }
18
+ if (type == 'string') {
19
+ return `"${val}"`;
20
+ }
21
+ if (type == 'symbol') {
22
+ const description = val.description;
23
+ if (description == null) {
24
+ return 'Symbol';
25
+ } else {
26
+ return `Symbol(${description})`;
27
+ }
28
+ }
29
+ if (type == 'function') {
30
+ const name = val.name;
31
+ if (typeof name == 'string' && name.length > 0) {
32
+ return `Function(${name})`;
33
+ } else {
34
+ return 'Function';
35
+ }
36
+ }
37
+ // objects
38
+ if (Array.isArray(val)) {
39
+ const length = val.length;
40
+ let debug = '[';
41
+ if (length > 0) {
42
+ debug += debugString(val[0]);
43
+ }
44
+ for(let i = 1; i < length; i++) {
45
+ debug += ', ' + debugString(val[i]);
46
+ }
47
+ debug += ']';
48
+ return debug;
49
+ }
50
+ // Test for built-in
51
+ const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));
52
+ let className;
53
+ if (builtInMatches && builtInMatches.length > 1) {
54
+ className = builtInMatches[1];
55
+ } else {
56
+ // Failed to match the standard '[object ClassName]'
57
+ return toString.call(val);
58
+ }
59
+ if (className == 'Object') {
60
+ // we're a user defined class or Object
61
+ // JSON.stringify avoids problems with cycles, and is generally much
62
+ // easier than looping through ownProperties of `val`.
63
+ try {
64
+ return 'Object(' + JSON.stringify(val) + ')';
65
+ } catch (_) {
66
+ return 'Object';
67
+ }
68
+ }
69
+ // errors
70
+ if (val instanceof Error) {
71
+ return `${val.name}: ${val.message}\n${val.stack}`;
72
+ }
73
+ // TODO we could test for more things here, like `Set`s and `Map`s.
74
+ return className;
75
+ }
76
+
77
+ function getArrayI32FromWasm0(ptr, len) {
78
+ ptr = ptr >>> 0;
79
+ return getInt32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);
80
+ }
81
+
82
+ function getArrayU8FromWasm0(ptr, len) {
83
+ ptr = ptr >>> 0;
84
+ return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
85
+ }
86
+
87
+ let cachedDataViewMemory0 = null;
88
+ function getDataViewMemory0() {
89
+ if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
90
+ cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
91
+ }
92
+ return cachedDataViewMemory0;
93
+ }
94
+
95
+ let cachedInt32ArrayMemory0 = null;
96
+ function getInt32ArrayMemory0() {
97
+ if (cachedInt32ArrayMemory0 === null || cachedInt32ArrayMemory0.byteLength === 0) {
98
+ cachedInt32ArrayMemory0 = new Int32Array(wasm.memory.buffer);
99
+ }
100
+ return cachedInt32ArrayMemory0;
101
+ }
102
+
103
+ function getStringFromWasm0(ptr, len) {
104
+ ptr = ptr >>> 0;
105
+ return decodeText(ptr, len);
106
+ }
107
+
108
+ let cachedUint32ArrayMemory0 = null;
109
+ function getUint32ArrayMemory0() {
110
+ if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {
111
+ cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);
112
+ }
113
+ return cachedUint32ArrayMemory0;
114
+ }
115
+
116
+ let cachedUint8ArrayMemory0 = null;
117
+ function getUint8ArrayMemory0() {
118
+ if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
119
+ cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
120
+ }
121
+ return cachedUint8ArrayMemory0;
122
+ }
123
+
124
+ function handleError(f, args) {
125
+ try {
126
+ return f.apply(this, args);
127
+ } catch (e) {
128
+ const idx = addToExternrefTable0(e);
129
+ wasm.__wbindgen_exn_store(idx);
130
+ }
131
+ }
132
+
133
+ function isLikeNone(x) {
134
+ return x === undefined || x === null;
135
+ }
136
+
137
+ function passArray32ToWasm0(arg, malloc) {
138
+ const ptr = malloc(arg.length * 4, 4) >>> 0;
139
+ getUint32ArrayMemory0().set(arg, ptr / 4);
140
+ WASM_VECTOR_LEN = arg.length;
141
+ return ptr;
142
+ }
143
+
144
+ function passStringToWasm0(arg, malloc, realloc) {
145
+ if (realloc === undefined) {
146
+ const buf = cachedTextEncoder.encode(arg);
147
+ const ptr = malloc(buf.length, 1) >>> 0;
148
+ getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);
149
+ WASM_VECTOR_LEN = buf.length;
150
+ return ptr;
151
+ }
152
+
153
+ let len = arg.length;
154
+ let ptr = malloc(len, 1) >>> 0;
155
+
156
+ const mem = getUint8ArrayMemory0();
157
+
158
+ let offset = 0;
159
+
160
+ for (; offset < len; offset++) {
161
+ const code = arg.charCodeAt(offset);
162
+ if (code > 0x7F) break;
163
+ mem[ptr + offset] = code;
164
+ }
165
+ if (offset !== len) {
166
+ if (offset !== 0) {
167
+ arg = arg.slice(offset);
168
+ }
169
+ ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
170
+ const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
171
+ const ret = cachedTextEncoder.encodeInto(arg, view);
172
+
173
+ offset += ret.written;
174
+ ptr = realloc(ptr, len, offset, 1) >>> 0;
175
+ }
176
+
177
+ WASM_VECTOR_LEN = offset;
178
+ return ptr;
179
+ }
180
+
181
+ let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
182
+ cachedTextDecoder.decode();
183
+ const MAX_SAFARI_DECODE_BYTES = 2146435072;
184
+ let numBytesDecoded = 0;
185
+ function decodeText(ptr, len) {
186
+ numBytesDecoded += len;
187
+ if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {
188
+ cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
189
+ cachedTextDecoder.decode();
190
+ numBytesDecoded = len;
191
+ }
192
+ return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
193
+ }
194
+
195
+ const cachedTextEncoder = new TextEncoder();
196
+
197
+ if (!('encodeInto' in cachedTextEncoder)) {
198
+ cachedTextEncoder.encodeInto = function (arg, view) {
199
+ const buf = cachedTextEncoder.encode(arg);
200
+ view.set(buf);
201
+ return {
202
+ read: arg.length,
203
+ written: buf.length
204
+ };
205
+ }
206
+ }
207
+
208
+ let WASM_VECTOR_LEN = 0;
209
+
210
+ /**
211
+ * @param {Int32Array} arr
212
+ * @param {number} target
213
+ * @returns {number}
214
+ */
215
+ export function binary_search(arr, target) {
216
+ const ptr0 = passArray32ToWasm0(arr, wasm.__wbindgen_malloc);
217
+ const len0 = WASM_VECTOR_LEN;
218
+ const ret = wasm.binary_search(ptr0, len0, target);
219
+ return ret;
220
+ }
221
+
222
+ /**
223
+ * @param {any} graph
224
+ * @param {string} start
225
+ * @param {Function | null} [on_visit]
226
+ * @param {Function | null} [on_enqueue]
227
+ * @param {Function | null} [on_complete]
228
+ */
229
+ export function breadth_first_search(graph, start, on_visit, on_enqueue, on_complete) {
230
+ const ptr0 = passStringToWasm0(start, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
231
+ const len0 = WASM_VECTOR_LEN;
232
+ wasm.breadth_first_search(graph, ptr0, len0, isLikeNone(on_visit) ? 0 : addToExternrefTable0(on_visit), isLikeNone(on_enqueue) ? 0 : addToExternrefTable0(on_enqueue), isLikeNone(on_complete) ? 0 : addToExternrefTable0(on_complete));
233
+ }
234
+
235
+ /**
236
+ * @param {Int32Array} arr
237
+ * @returns {Int32Array}
238
+ */
239
+ export function bubble_sort(arr) {
240
+ const ptr0 = passArray32ToWasm0(arr, wasm.__wbindgen_malloc);
241
+ const len0 = WASM_VECTOR_LEN;
242
+ const ret = wasm.bubble_sort(ptr0, len0);
243
+ var v2 = getArrayI32FromWasm0(ret[0], ret[1]).slice();
244
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
245
+ return v2;
246
+ }
247
+
248
+ /**
249
+ * @param {any} graph
250
+ * @param {string} start
251
+ * @param {Function | null} [on_enter]
252
+ * @param {Function | null} [on_exit]
253
+ */
254
+ export function depth_first_search(graph, start, on_enter, on_exit) {
255
+ const ptr0 = passStringToWasm0(start, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
256
+ const len0 = WASM_VECTOR_LEN;
257
+ wasm.depth_first_search(graph, ptr0, len0, isLikeNone(on_enter) ? 0 : addToExternrefTable0(on_enter), isLikeNone(on_exit) ? 0 : addToExternrefTable0(on_exit));
258
+ }
259
+
260
+ /**
261
+ * @param {number} n
262
+ * @returns {Int32Array}
263
+ */
264
+ export function fibonacci(n) {
265
+ const ret = wasm.fibonacci(n);
266
+ var v1 = getArrayI32FromWasm0(ret[0], ret[1]).slice();
267
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
268
+ return v1;
269
+ }
270
+
271
+ /**
272
+ * @param {number} n
273
+ * @returns {number}
274
+ */
275
+ export function fibonacci_nth(n) {
276
+ const ret = wasm.fibonacci_nth(n);
277
+ return ret;
278
+ }
279
+
280
+ /**
281
+ * @param {Int32Array} arr
282
+ * @returns {Int32Array}
283
+ */
284
+ export function insertion_sort(arr) {
285
+ const ptr0 = passArray32ToWasm0(arr, wasm.__wbindgen_malloc);
286
+ const len0 = WASM_VECTOR_LEN;
287
+ const ret = wasm.insertion_sort(ptr0, len0);
288
+ var v2 = getArrayI32FromWasm0(ret[0], ret[1]).slice();
289
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
290
+ return v2;
291
+ }
292
+
293
+ /**
294
+ * @param {number} n
295
+ * @returns {boolean}
296
+ */
297
+ export function is_prime(n) {
298
+ const ret = wasm.is_prime(n);
299
+ return ret !== 0;
300
+ }
301
+
302
+ /**
303
+ * @param {Int32Array} arr
304
+ * @param {number} target
305
+ * @returns {Int32Array}
306
+ */
307
+ export function linear_search(arr, target) {
308
+ const ptr0 = passArray32ToWasm0(arr, wasm.__wbindgen_malloc);
309
+ const len0 = WASM_VECTOR_LEN;
310
+ const ret = wasm.linear_search(ptr0, len0, target);
311
+ var v2 = getArrayI32FromWasm0(ret[0], ret[1]).slice();
312
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
313
+ return v2;
314
+ }
315
+
316
+ /**
317
+ * @param {Int32Array} arr
318
+ * @returns {Int32Array}
319
+ */
320
+ export function merge_sort(arr) {
321
+ const ptr0 = passArray32ToWasm0(arr, wasm.__wbindgen_malloc);
322
+ const len0 = WASM_VECTOR_LEN;
323
+ const ret = wasm.merge_sort(ptr0, len0);
324
+ var v2 = getArrayI32FromWasm0(ret[0], ret[1]).slice();
325
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
326
+ return v2;
327
+ }
328
+
329
+ /**
330
+ * @param {Int32Array} arr
331
+ * @returns {Int32Array}
332
+ */
333
+ export function quick_sort(arr) {
334
+ const ptr0 = passArray32ToWasm0(arr, wasm.__wbindgen_malloc);
335
+ const len0 = WASM_VECTOR_LEN;
336
+ const ret = wasm.quick_sort(ptr0, len0);
337
+ var v2 = getArrayI32FromWasm0(ret[0], ret[1]).slice();
338
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
339
+ return v2;
340
+ }
341
+
342
+ export function __wbg_Error_52673b7de5a0ca89(arg0, arg1) {
343
+ const ret = Error(getStringFromWasm0(arg0, arg1));
344
+ return ret;
345
+ };
346
+
347
+ export function __wbg___wbindgen_boolean_get_dea25b33882b895b(arg0) {
348
+ const v = arg0;
349
+ const ret = typeof(v) === 'boolean' ? v : undefined;
350
+ return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;
351
+ };
352
+
353
+ export function __wbg___wbindgen_debug_string_adfb662ae34724b6(arg0, arg1) {
354
+ const ret = debugString(arg1);
355
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
356
+ const len1 = WASM_VECTOR_LEN;
357
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
358
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
359
+ };
360
+
361
+ export function __wbg___wbindgen_is_function_8d400b8b1af978cd(arg0) {
362
+ const ret = typeof(arg0) === 'function';
363
+ return ret;
364
+ };
365
+
366
+ export function __wbg___wbindgen_is_object_ce774f3490692386(arg0) {
367
+ const val = arg0;
368
+ const ret = typeof(val) === 'object' && val !== null;
369
+ return ret;
370
+ };
371
+
372
+ export function __wbg___wbindgen_jsval_loose_eq_766057600fdd1b0d(arg0, arg1) {
373
+ const ret = arg0 == arg1;
374
+ return ret;
375
+ };
376
+
377
+ export function __wbg___wbindgen_number_get_9619185a74197f95(arg0, arg1) {
378
+ const obj = arg1;
379
+ const ret = typeof(obj) === 'number' ? obj : undefined;
380
+ getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);
381
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);
382
+ };
383
+
384
+ export function __wbg___wbindgen_string_get_a2a31e16edf96e42(arg0, arg1) {
385
+ const obj = arg1;
386
+ const ret = typeof(obj) === 'string' ? obj : undefined;
387
+ var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
388
+ var len1 = WASM_VECTOR_LEN;
389
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
390
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
391
+ };
392
+
393
+ export function __wbg___wbindgen_throw_dd24417ed36fc46e(arg0, arg1) {
394
+ throw new Error(getStringFromWasm0(arg0, arg1));
395
+ };
396
+
397
+ export function __wbg_call_3020136f7a2d6e44() { return handleError(function (arg0, arg1, arg2) {
398
+ const ret = arg0.call(arg1, arg2);
399
+ return ret;
400
+ }, arguments) };
401
+
402
+ export function __wbg_call_abb4ff46ce38be40() { return handleError(function (arg0, arg1) {
403
+ const ret = arg0.call(arg1);
404
+ return ret;
405
+ }, arguments) };
406
+
407
+ export function __wbg_done_62ea16af4ce34b24(arg0) {
408
+ const ret = arg0.done;
409
+ return ret;
410
+ };
411
+
412
+ export function __wbg_entries_83c79938054e065f(arg0) {
413
+ const ret = Object.entries(arg0);
414
+ return ret;
415
+ };
416
+
417
+ export function __wbg_get_6b7bd52aca3f9671(arg0, arg1) {
418
+ const ret = arg0[arg1 >>> 0];
419
+ return ret;
420
+ };
421
+
422
+ export function __wbg_get_af9dab7e9603ea93() { return handleError(function (arg0, arg1) {
423
+ const ret = Reflect.get(arg0, arg1);
424
+ return ret;
425
+ }, arguments) };
426
+
427
+ export function __wbg_instanceof_ArrayBuffer_f3320d2419cd0355(arg0) {
428
+ let result;
429
+ try {
430
+ result = arg0 instanceof ArrayBuffer;
431
+ } catch (_) {
432
+ result = false;
433
+ }
434
+ const ret = result;
435
+ return ret;
436
+ };
437
+
438
+ export function __wbg_instanceof_Uint8Array_da54ccc9d3e09434(arg0) {
439
+ let result;
440
+ try {
441
+ result = arg0 instanceof Uint8Array;
442
+ } catch (_) {
443
+ result = false;
444
+ }
445
+ const ret = result;
446
+ return ret;
447
+ };
448
+
449
+ export function __wbg_isArray_51fd9e6422c0a395(arg0) {
450
+ const ret = Array.isArray(arg0);
451
+ return ret;
452
+ };
453
+
454
+ export function __wbg_iterator_27b7c8b35ab3e86b() {
455
+ const ret = Symbol.iterator;
456
+ return ret;
457
+ };
458
+
459
+ export function __wbg_length_22ac23eaec9d8053(arg0) {
460
+ const ret = arg0.length;
461
+ return ret;
462
+ };
463
+
464
+ export function __wbg_length_d45040a40c570362(arg0) {
465
+ const ret = arg0.length;
466
+ return ret;
467
+ };
468
+
469
+ export function __wbg_new_25f239778d6112b9() {
470
+ const ret = new Array();
471
+ return ret;
472
+ };
473
+
474
+ export function __wbg_new_6421f6084cc5bc5a(arg0) {
475
+ const ret = new Uint8Array(arg0);
476
+ return ret;
477
+ };
478
+
479
+ export function __wbg_next_138a17bbf04e926c(arg0) {
480
+ const ret = arg0.next;
481
+ return ret;
482
+ };
483
+
484
+ export function __wbg_next_3cfe5c0fe2a4cc53() { return handleError(function (arg0) {
485
+ const ret = arg0.next();
486
+ return ret;
487
+ }, arguments) };
488
+
489
+ export function __wbg_prototypesetcall_dfe9b766cdc1f1fd(arg0, arg1, arg2) {
490
+ Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);
491
+ };
492
+
493
+ export function __wbg_push_7d9be8f38fc13975(arg0, arg1) {
494
+ const ret = arg0.push(arg1);
495
+ return ret;
496
+ };
497
+
498
+ export function __wbg_value_57b7b035e117f7ee(arg0) {
499
+ const ret = arg0.value;
500
+ return ret;
501
+ };
502
+
503
+ export function __wbindgen_cast_2241b6af4c4b2941(arg0, arg1) {
504
+ // Cast intrinsic for `Ref(String) -> Externref`.
505
+ const ret = getStringFromWasm0(arg0, arg1);
506
+ return ret;
507
+ };
508
+
509
+ export function __wbindgen_init_externref_table() {
510
+ const table = wasm.__wbindgen_externrefs;
511
+ const offset = table.grow(4);
512
+ table.set(0, undefined);
513
+ table.set(offset + 0, undefined);
514
+ table.set(offset + 1, null);
515
+ table.set(offset + 2, true);
516
+ table.set(offset + 3, false);
517
+ };
Binary file
@@ -0,0 +1,21 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ export const memory: WebAssembly.Memory;
4
+ export const binary_search: (a: number, b: number, c: number) => number;
5
+ export const breadth_first_search: (a: any, b: number, c: number, d: number, e: number, f: number) => void;
6
+ export const bubble_sort: (a: number, b: number) => [number, number];
7
+ export const depth_first_search: (a: any, b: number, c: number, d: number, e: number) => void;
8
+ export const fibonacci: (a: number) => [number, number];
9
+ export const fibonacci_nth: (a: number) => number;
10
+ export const insertion_sort: (a: number, b: number) => [number, number];
11
+ export const is_prime: (a: number) => number;
12
+ export const linear_search: (a: number, b: number, c: number) => [number, number];
13
+ export const merge_sort: (a: number, b: number) => [number, number];
14
+ export const quick_sort: (a: number, b: number) => [number, number];
15
+ export const __wbindgen_malloc: (a: number, b: number) => number;
16
+ export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
17
+ export const __wbindgen_exn_store: (a: number) => void;
18
+ export const __externref_table_alloc: () => number;
19
+ export const __wbindgen_externrefs: WebAssembly.Table;
20
+ export const __wbindgen_free: (a: number, b: number, c: number) => void;
21
+ export const __wbindgen_start: () => void;
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "algorithms",
3
+ "type": "module",
4
+ "collaborators": [
5
+ "daveKontro <dkontro@hotmail.com>"
6
+ ],
7
+ "version": "0.1.0",
8
+ "files": [
9
+ "algorithms_bg.wasm",
10
+ "algorithms.js",
11
+ "algorithms_bg.js",
12
+ "algorithms.d.ts"
13
+ ],
14
+ "main": "algorithms.js",
15
+ "types": "algorithms.d.ts",
16
+ "sideEffects": [
17
+ "./algorithms.js",
18
+ "./snippets/*"
19
+ ]
20
+ }
package/dist/index.cjs ADDED
@@ -0,0 +1,2 @@
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),l=o((exports,t)=>{let n={};n.__wbindgen_placeholder__=t.exports;function r(e){let t=R.__externref_table_alloc();return R.__wbindgen_externrefs.set(t,e),t}function i(e){let t=typeof e;if(t==`number`||t==`boolean`||e==null)return`${e}`;if(t==`string`)return`"${e}"`;if(t==`symbol`){let t=e.description;return t==null?`Symbol`:`Symbol(${t})`}if(t==`function`){let t=e.name;return typeof t==`string`&&t.length>0?`Function(${t})`:`Function`}if(Array.isArray(e)){let t=e.length,n=`[`;t>0&&(n+=i(e[0]));for(let r=1;r<t;r++)n+=`, `+i(e[r]);return n+=`]`,n}let n=/\[object ([^\]]+)\]/.exec(toString.call(e)),r;if(n&&n.length>1)r=n[1];else return toString.call(e);if(r==`Object`)try{return`Object(`+JSON.stringify(e)+`)`}catch{return`Object`}return e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:r}function a(e,t){return e>>>=0,u().subarray(e/4,e/4+t)}function o(e,t){return e>>>=0,h().subarray(e/1,e/1+t)}let s=null;function c(){return(s===null||s.buffer.detached===!0||s.buffer.detached===void 0&&s.buffer!==R.memory.buffer)&&(s=new DataView(R.memory.buffer)),s}let l=null;function u(){return(l===null||l.byteLength===0)&&(l=new Int32Array(R.memory.buffer)),l}function d(e,t){return e>>>=0,x(e,t)}let f=null;function p(){return(f===null||f.byteLength===0)&&(f=new Uint32Array(R.memory.buffer)),f}let m=null;function h(){return(m===null||m.byteLength===0)&&(m=new Uint8Array(R.memory.buffer)),m}function g(e,t){try{return e.apply(this,t)}catch(e){let t=r(e);R.__wbindgen_exn_store(t)}}function _(e){return e==null}function v(e,t){let n=t(e.length*4,4)>>>0;return p().set(e,n/4),C=e.length,n}function y(e,t,n){if(n===void 0){let n=S.encode(e),r=t(n.length,1)>>>0;return h().subarray(r,r+n.length).set(n),C=n.length,r}let r=e.length,i=t(r,1)>>>0,a=h(),o=0;for(;o<r;o++){let t=e.charCodeAt(o);if(t>127)break;a[i+o]=t}if(o!==r){o!==0&&(e=e.slice(o)),i=n(i,r,r=o+e.length*3,1)>>>0;let t=h().subarray(i+o,i+r),a=S.encodeInto(e,t);o+=a.written,i=n(i,r,o,1)>>>0}return C=o,i}let b=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});b.decode();function x(e,t){return b.decode(h().subarray(e,e+t))}let S=new TextEncoder;`encodeInto`in S||(S.encodeInto=function(e,t){let n=S.encode(e);return t.set(n),{read:e.length,written:n.length}});let C=0;function w(e,t){let n=v(e,R.__wbindgen_malloc),r=C,i=R.binary_search(n,r,t);return i}exports.binary_search=w;function T(e,t,n,i,a){let o=y(t,R.__wbindgen_malloc,R.__wbindgen_realloc),s=C;R.breadth_first_search(e,o,s,_(n)?0:r(n),_(i)?0:r(i),_(a)?0:r(a))}exports.breadth_first_search=T;function E(e){let t=v(e,R.__wbindgen_malloc),n=C,r=R.bubble_sort(t,n);var i=a(r[0],r[1]).slice();return R.__wbindgen_free(r[0],r[1]*4,4),i}exports.bubble_sort=E;function D(e,t,n,i){let a=y(t,R.__wbindgen_malloc,R.__wbindgen_realloc),o=C;R.depth_first_search(e,a,o,_(n)?0:r(n),_(i)?0:r(i))}exports.depth_first_search=D;function O(e){let t=R.fibonacci(e);var n=a(t[0],t[1]).slice();return R.__wbindgen_free(t[0],t[1]*4,4),n}exports.fibonacci=O;function k(e){let t=R.fibonacci_nth(e);return t}exports.fibonacci_nth=k;function A(e){let t=v(e,R.__wbindgen_malloc),n=C,r=R.insertion_sort(t,n);var i=a(r[0],r[1]).slice();return R.__wbindgen_free(r[0],r[1]*4,4),i}exports.insertion_sort=A;function j(e){let t=R.is_prime(e);return t!==0}exports.is_prime=j;function M(e,t){let n=v(e,R.__wbindgen_malloc),r=C,i=R.linear_search(n,r,t);var o=a(i[0],i[1]).slice();return R.__wbindgen_free(i[0],i[1]*4,4),o}exports.linear_search=M;function N(e){let t=v(e,R.__wbindgen_malloc),n=C,r=R.merge_sort(t,n);var i=a(r[0],r[1]).slice();return R.__wbindgen_free(r[0],r[1]*4,4),i}exports.merge_sort=N;function P(e){let t=v(e,R.__wbindgen_malloc),n=C,r=R.quick_sort(t,n);var i=a(r[0],r[1]).slice();return R.__wbindgen_free(r[0],r[1]*4,4),i}exports.quick_sort=P,exports.__wbg_Error_52673b7de5a0ca89=function(e,t){let n=Error(d(e,t));return n},exports.__wbg___wbindgen_boolean_get_dea25b33882b895b=function(e){let t=e,n=typeof t==`boolean`?t:void 0;return _(n)?16777215:n?1:0},exports.__wbg___wbindgen_debug_string_adfb662ae34724b6=function(e,t){let n=i(t),r=y(n,R.__wbindgen_malloc,R.__wbindgen_realloc),a=C;c().setInt32(e+4*1,a,!0),c().setInt32(e+0,r,!0)},exports.__wbg___wbindgen_is_function_8d400b8b1af978cd=function(e){let t=typeof e==`function`;return t},exports.__wbg___wbindgen_is_object_ce774f3490692386=function(e){let t=e,n=typeof t==`object`&&!!t;return n},exports.__wbg___wbindgen_jsval_loose_eq_766057600fdd1b0d=function(e,t){let n=e==t;return n},exports.__wbg___wbindgen_number_get_9619185a74197f95=function(e,t){let n=t,r=typeof n==`number`?n:void 0;c().setFloat64(e+8*1,_(r)?0:r,!0),c().setInt32(e+0,!_(r),!0)},exports.__wbg___wbindgen_string_get_a2a31e16edf96e42=function(e,t){let n=t,r=typeof n==`string`?n:void 0;var i=_(r)?0:y(r,R.__wbindgen_malloc,R.__wbindgen_realloc),a=C;c().setInt32(e+4*1,a,!0),c().setInt32(e+0,i,!0)},exports.__wbg___wbindgen_throw_dd24417ed36fc46e=function(e,t){throw Error(d(e,t))},exports.__wbg_call_3020136f7a2d6e44=function(){return g(function(e,t,n){let r=e.call(t,n);return r},arguments)},exports.__wbg_call_abb4ff46ce38be40=function(){return g(function(e,t){let n=e.call(t);return n},arguments)},exports.__wbg_done_62ea16af4ce34b24=function(e){let t=e.done;return t},exports.__wbg_entries_83c79938054e065f=function(e){let t=Object.entries(e);return t},exports.__wbg_get_6b7bd52aca3f9671=function(e,t){let n=e[t>>>0];return n},exports.__wbg_get_af9dab7e9603ea93=function(){return g(function(e,t){let n=Reflect.get(e,t);return n},arguments)},exports.__wbg_instanceof_ArrayBuffer_f3320d2419cd0355=function(e){let t;try{t=e instanceof ArrayBuffer}catch{t=!1}let n=t;return n},exports.__wbg_instanceof_Uint8Array_da54ccc9d3e09434=function(e){let t;try{t=e instanceof Uint8Array}catch{t=!1}let n=t;return n},exports.__wbg_isArray_51fd9e6422c0a395=function(e){let t=Array.isArray(e);return t},exports.__wbg_iterator_27b7c8b35ab3e86b=function(){let e=Symbol.iterator;return e},exports.__wbg_length_22ac23eaec9d8053=function(e){let t=e.length;return t},exports.__wbg_length_d45040a40c570362=function(e){let t=e.length;return t},exports.__wbg_new_25f239778d6112b9=function(){let e=[];return e},exports.__wbg_new_6421f6084cc5bc5a=function(e){let t=new Uint8Array(e);return t},exports.__wbg_next_138a17bbf04e926c=function(e){let t=e.next;return t},exports.__wbg_next_3cfe5c0fe2a4cc53=function(){return g(function(e){let t=e.next();return t},arguments)},exports.__wbg_prototypesetcall_dfe9b766cdc1f1fd=function(e,t,n){Uint8Array.prototype.set.call(o(e,t),n)},exports.__wbg_push_7d9be8f38fc13975=function(e,t){let n=e.push(t);return n},exports.__wbg_value_57b7b035e117f7ee=function(e){let t=e.value;return t},exports.__wbindgen_cast_2241b6af4c4b2941=function(e,t){let n=d(e,t);return n},exports.__wbindgen_init_externref_table=function(){let e=R.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)};let F=`${__dirname}/algorithms_bg.wasm`,I=require(`fs`).readFileSync(F),L=new WebAssembly.Module(I),R=exports.__wasm=new WebAssembly.Instance(L,n).exports;R.__wbindgen_start()}),u=c(l(),1);const d=e=>(0,u.fibonacci_nth)(e),f=e=>(0,u.fibonacci)(e);var p=c(l(),1);const m=e=>(0,p.is_prime)(e);var h=c(l(),1);const g=({arr:e,target:t})=>{let n=new Int32Array(e);return(0,h.linear_search)(n,t)};var _=c(l(),1);const v=({arr:e,target:t})=>{let n=new Int32Array(e);return(0,_.binary_search)(n,t)};var y=c(l(),1);const b=({arr:e})=>{let t=new Int32Array(e);return(0,y.bubble_sort)(t)};var x=c(l(),1);const S=({arr:e})=>{let t=new Int32Array(e);return(0,x.insertion_sort)(t)};var C=c(l(),1);const w=({arr:e})=>{let t=new Int32Array(e);return(0,C.merge_sort)(t)};var T=c(l(),1);const E=({arr:e})=>{let t=new Int32Array(e);return(0,T.quick_sort)(t)};var D=c(l(),1);const O=({graph:e,start:t,onVisit:n,onEnqueue:r,onComplete:i})=>{(0,D.breadth_first_search)(e,t,n,r,i)};var k=c(l(),1);const A=({graph:e,start:t,onEnter:n,onExit:r})=>{(0,k.depth_first_search)(e,t,n,r)};exports.binarySearch=v,exports.breadthFirstSearch=O,exports.bubbleSort=b,exports.depthFirstSearch=A,exports.fibonacci=f,exports.fibonacciNth=d,exports.insertionSort=S,exports.isPrime=m,exports.linearSearch=g,exports.mergeSort=w,exports.quickSort=E;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["ptr","fibonacci","n: number","n: number"],"sources":["../src/generated/node/algorithms.js","../src/node/math/fibonacci.ts","../src/node/math/isPrime.ts","../src/node/search/linearSearch.ts","../src/node/search/binarySearch.ts","../src/node/sort/bubbleSort.ts","../src/node/sort/insertionSort.ts","../src/node/sort/mergeSort.ts","../src/node/sort/quickSort.ts","../src/node/graph/breadthFirstSearch.ts","../src/node/graph/depthFirstSearch.ts"],"sourcesContent":["\nlet imports = {};\nimports['__wbindgen_placeholder__'] = module.exports;\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction getArrayI32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getInt32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedInt32ArrayMemory0 = null;\nfunction getInt32ArrayMemory0() {\n if (cachedInt32ArrayMemory0 === null || cachedInt32ArrayMemory0.byteLength === 0) {\n cachedInt32ArrayMemory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachedInt32ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nfunction decodeText(ptr, len) {\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\n/**\n * @param {Int32Array} arr\n * @param {number} target\n * @returns {number}\n */\nfunction binary_search(arr, target) {\n const ptr0 = passArray32ToWasm0(arr, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.binary_search(ptr0, len0, target);\n return ret;\n}\nexports.binary_search = binary_search;\n\n/**\n * @param {any} graph\n * @param {string} start\n * @param {Function | null} [on_visit]\n * @param {Function | null} [on_enqueue]\n * @param {Function | null} [on_complete]\n */\nfunction breadth_first_search(graph, start, on_visit, on_enqueue, on_complete) {\n const ptr0 = passStringToWasm0(start, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.breadth_first_search(graph, ptr0, len0, isLikeNone(on_visit) ? 0 : addToExternrefTable0(on_visit), isLikeNone(on_enqueue) ? 0 : addToExternrefTable0(on_enqueue), isLikeNone(on_complete) ? 0 : addToExternrefTable0(on_complete));\n}\nexports.breadth_first_search = breadth_first_search;\n\n/**\n * @param {Int32Array} arr\n * @returns {Int32Array}\n */\nfunction bubble_sort(arr) {\n const ptr0 = passArray32ToWasm0(arr, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.bubble_sort(ptr0, len0);\n var v2 = getArrayI32FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v2;\n}\nexports.bubble_sort = bubble_sort;\n\n/**\n * @param {any} graph\n * @param {string} start\n * @param {Function | null} [on_enter]\n * @param {Function | null} [on_exit]\n */\nfunction depth_first_search(graph, start, on_enter, on_exit) {\n const ptr0 = passStringToWasm0(start, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.depth_first_search(graph, ptr0, len0, isLikeNone(on_enter) ? 0 : addToExternrefTable0(on_enter), isLikeNone(on_exit) ? 0 : addToExternrefTable0(on_exit));\n}\nexports.depth_first_search = depth_first_search;\n\n/**\n * @param {number} n\n * @returns {Int32Array}\n */\nfunction fibonacci(n) {\n const ret = wasm.fibonacci(n);\n var v1 = getArrayI32FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v1;\n}\nexports.fibonacci = fibonacci;\n\n/**\n * @param {number} n\n * @returns {number}\n */\nfunction fibonacci_nth(n) {\n const ret = wasm.fibonacci_nth(n);\n return ret;\n}\nexports.fibonacci_nth = fibonacci_nth;\n\n/**\n * @param {Int32Array} arr\n * @returns {Int32Array}\n */\nfunction insertion_sort(arr) {\n const ptr0 = passArray32ToWasm0(arr, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.insertion_sort(ptr0, len0);\n var v2 = getArrayI32FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v2;\n}\nexports.insertion_sort = insertion_sort;\n\n/**\n * @param {number} n\n * @returns {boolean}\n */\nfunction is_prime(n) {\n const ret = wasm.is_prime(n);\n return ret !== 0;\n}\nexports.is_prime = is_prime;\n\n/**\n * @param {Int32Array} arr\n * @param {number} target\n * @returns {Int32Array}\n */\nfunction linear_search(arr, target) {\n const ptr0 = passArray32ToWasm0(arr, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.linear_search(ptr0, len0, target);\n var v2 = getArrayI32FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v2;\n}\nexports.linear_search = linear_search;\n\n/**\n * @param {Int32Array} arr\n * @returns {Int32Array}\n */\nfunction merge_sort(arr) {\n const ptr0 = passArray32ToWasm0(arr, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.merge_sort(ptr0, len0);\n var v2 = getArrayI32FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v2;\n}\nexports.merge_sort = merge_sort;\n\n/**\n * @param {Int32Array} arr\n * @returns {Int32Array}\n */\nfunction quick_sort(arr) {\n const ptr0 = passArray32ToWasm0(arr, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.quick_sort(ptr0, len0);\n var v2 = getArrayI32FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v2;\n}\nexports.quick_sort = quick_sort;\n\nexports.__wbg_Error_52673b7de5a0ca89 = function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n};\n\nexports.__wbg___wbindgen_boolean_get_dea25b33882b895b = function(arg0) {\n const v = arg0;\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n};\n\nexports.__wbg___wbindgen_debug_string_adfb662ae34724b6 = function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexports.__wbg___wbindgen_is_function_8d400b8b1af978cd = function(arg0) {\n const ret = typeof(arg0) === 'function';\n return ret;\n};\n\nexports.__wbg___wbindgen_is_object_ce774f3490692386 = function(arg0) {\n const val = arg0;\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n};\n\nexports.__wbg___wbindgen_jsval_loose_eq_766057600fdd1b0d = function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n};\n\nexports.__wbg___wbindgen_number_get_9619185a74197f95 = function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n};\n\nexports.__wbg___wbindgen_string_get_a2a31e16edf96e42 = function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexports.__wbg___wbindgen_throw_dd24417ed36fc46e = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n};\n\nexports.__wbg_call_3020136f7a2d6e44 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = arg0.call(arg1, arg2);\n return ret;\n}, arguments) };\n\nexports.__wbg_call_abb4ff46ce38be40 = function() { return handleError(function (arg0, arg1) {\n const ret = arg0.call(arg1);\n return ret;\n}, arguments) };\n\nexports.__wbg_done_62ea16af4ce34b24 = function(arg0) {\n const ret = arg0.done;\n return ret;\n};\n\nexports.__wbg_entries_83c79938054e065f = function(arg0) {\n const ret = Object.entries(arg0);\n return ret;\n};\n\nexports.__wbg_get_6b7bd52aca3f9671 = function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n};\n\nexports.__wbg_get_af9dab7e9603ea93 = function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n}, arguments) };\n\nexports.__wbg_instanceof_ArrayBuffer_f3320d2419cd0355 = function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexports.__wbg_instanceof_Uint8Array_da54ccc9d3e09434 = function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexports.__wbg_isArray_51fd9e6422c0a395 = function(arg0) {\n const ret = Array.isArray(arg0);\n return ret;\n};\n\nexports.__wbg_iterator_27b7c8b35ab3e86b = function() {\n const ret = Symbol.iterator;\n return ret;\n};\n\nexports.__wbg_length_22ac23eaec9d8053 = function(arg0) {\n const ret = arg0.length;\n return ret;\n};\n\nexports.__wbg_length_d45040a40c570362 = function(arg0) {\n const ret = arg0.length;\n return ret;\n};\n\nexports.__wbg_new_25f239778d6112b9 = function() {\n const ret = new Array();\n return ret;\n};\n\nexports.__wbg_new_6421f6084cc5bc5a = function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n};\n\nexports.__wbg_next_138a17bbf04e926c = function(arg0) {\n const ret = arg0.next;\n return ret;\n};\n\nexports.__wbg_next_3cfe5c0fe2a4cc53 = function() { return handleError(function (arg0) {\n const ret = arg0.next();\n return ret;\n}, arguments) };\n\nexports.__wbg_prototypesetcall_dfe9b766cdc1f1fd = function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n};\n\nexports.__wbg_push_7d9be8f38fc13975 = function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n};\n\nexports.__wbg_value_57b7b035e117f7ee = function(arg0) {\n const ret = arg0.value;\n return ret;\n};\n\nexports.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n};\n\nexports.__wbindgen_init_externref_table = function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n};\n\nconst wasmPath = `${__dirname}/algorithms_bg.wasm`;\nconst wasmBytes = require('fs').readFileSync(wasmPath);\nconst wasmModule = new WebAssembly.Module(wasmBytes);\nconst wasm = exports.__wasm = new WebAssembly.Instance(wasmModule, imports).exports;\n\nwasm.__wbindgen_start();\n","import {\n fibonacci_nth as fibonacci_nth_rs,\n fibonacci as fibonacci_rs,\n} from '../../generated/node/algorithms.js'\nimport type {\n Result,\n FibonacciSequence,\n} from '../../types'\n\nexport const fibonacciNth = (n: number): Result => {\n return fibonacci_nth_rs(n)\n}\n\nexport const fibonacci = (n: number): FibonacciSequence => {\n return fibonacci_rs(n)\n}\n","import { is_prime as is_prime_rs } from '../../generated/node/algorithms.js'\n\nexport const isPrime = (n: number): boolean => {\n return is_prime_rs(n)\n}\n","import {\n linear_search as linear_search_rs,\n} from '../../generated/node/algorithms.js'\nimport type {\n ResultArray,\n LinearSearchOptions,\n} from '../../types'\n\nexport const linearSearch = ({\n arr,\n target,\n}: LinearSearchOptions): ResultArray => {\n const arrForRs = new Int32Array(arr)\n\n return linear_search_rs(arrForRs, target)\n}\n","import {\n binary_search as binary_search_rs,\n} from '../../generated/node/algorithms.js'\nimport type {\n Result,\n BinarySearchOptions,\n} from '../../types'\n\nexport const binarySearch = ({\n arr,\n target,\n}: BinarySearchOptions): Result => {\n const arrForRs = new Int32Array(arr)\n\n return binary_search_rs(arrForRs, target)\n}\n","import {\n bubble_sort as bubble_sort_rs,\n} from '../../generated/node/algorithms.js'\nimport type {\n ResultArray,\n BubbleSortOptions,\n} from '../../types'\n\nexport const bubbleSort = ({\n arr,\n}: BubbleSortOptions): ResultArray => {\n const arrForRs = new Int32Array(arr)\n\n return bubble_sort_rs(arrForRs)\n}\n","import {\n insertion_sort as insertion_sort_rs,\n} from '../../generated/node/algorithms.js'\nimport type {\n ResultArray,\n InsertionSortOptions,\n} from '../../types'\n\nexport const insertionSort = ({\n arr,\n}: InsertionSortOptions): ResultArray => {\n const arrForRs = new Int32Array(arr)\n\n return insertion_sort_rs(arrForRs)\n}\n","import {\n merge_sort as merge_sort_rs,\n} from '../../generated/node/algorithms.js'\nimport type {\n ResultArray,\n MergeSortOptions,\n} from '../../types'\n\nexport const mergeSort = ({\n arr,\n}: MergeSortOptions): ResultArray => {\n const arrForRs = new Int32Array(arr)\n\n return merge_sort_rs(arrForRs)\n}\n","import {\n quick_sort as quick_sort_rs,\n} from '../../generated/node/algorithms.js'\nimport type {\n ResultArray,\n QuickSortOptions,\n} from '../../types'\n\nexport const quickSort = ({\n arr,\n}: QuickSortOptions): ResultArray => {\n const arrForRs = new Int32Array(arr)\n\n return quick_sort_rs(arrForRs)\n}\n","import {\n breadth_first_search as breadth_first_search_rs,\n} from '../../generated/node/algorithms.js'\nimport type {\n BFSOptions,\n} from '../../types'\n\nexport const breadthFirstSearch = ({\n graph,\n start,\n onVisit,\n onEnqueue,\n onComplete,\n}: BFSOptions): void => {\n breadth_first_search_rs(graph, start, onVisit, onEnqueue, onComplete)\n}\n","import {\n depth_first_search as depth_first_search_rs,\n} from '../../generated/node/algorithms.js'\nimport type {\n DFSOptions,\n} from '../../types'\n\nexport const depthFirstSearch = ({\n graph,\n start,\n onEnter,\n onExit,\n}: DFSOptions): void => {\n depth_first_search_rs(graph, start, onEnter, onExit)\n}\n"],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ //#region src/types/types.d.ts
2
+ type Result = number;
3
+ type ResultArray = Int32Array<ArrayBufferLike>;
4
+ type FibonacciSequence = Int32Array<ArrayBufferLike>;
5
+ type SearchArray = number[];
6
+ type SearchTarget = number;
7
+ type SortArray = number[];
8
+ type Graph = Record<string, string[]>;
9
+ type GraphNode = string;
10
+ //#endregion
11
+ //#region src/types/interfaces.d.ts
12
+ interface LinearSearchOptions {
13
+ arr: SearchArray;
14
+ target: SearchTarget;
15
+ }
16
+ interface BinarySearchOptions {
17
+ arr: SearchArray;
18
+ target: SearchTarget;
19
+ }
20
+ interface BubbleSortOptions {
21
+ arr: SortArray;
22
+ }
23
+ interface MergeSortOptions {
24
+ arr: SortArray;
25
+ }
26
+ interface InsertionSortOptions {
27
+ arr: SortArray;
28
+ }
29
+ interface QuickSortOptions {
30
+ arr: SortArray;
31
+ }
32
+ interface BFSOptions {
33
+ graph: Graph;
34
+ start: GraphNode;
35
+ onVisit?: (node: GraphNode) => void;
36
+ onEnqueue?: (node: GraphNode) => void;
37
+ onComplete?: (order: GraphNode[]) => void;
38
+ }
39
+ interface DFSOptions {
40
+ graph: Graph;
41
+ start: GraphNode;
42
+ onEnter?: (node: GraphNode) => void;
43
+ onExit?: (node: GraphNode) => void;
44
+ }
45
+ //#endregion
46
+ //#region src/node/math/fibonacci.d.ts
47
+ declare const fibonacciNth: (n: number) => Result;
48
+ declare const fibonacci: (n: number) => FibonacciSequence;
49
+ //#endregion
50
+ //#region src/node/math/isPrime.d.ts
51
+ declare const isPrime: (n: number) => boolean;
52
+ //#endregion
53
+ //#region src/node/search/linearSearch.d.ts
54
+ declare const linearSearch: ({
55
+ arr,
56
+ target
57
+ }: LinearSearchOptions) => ResultArray;
58
+ //#endregion
59
+ //#region src/node/search/binarySearch.d.ts
60
+ declare const binarySearch: ({
61
+ arr,
62
+ target
63
+ }: BinarySearchOptions) => Result;
64
+ //#endregion
65
+ //#region src/node/sort/bubbleSort.d.ts
66
+ declare const bubbleSort: ({
67
+ arr
68
+ }: BubbleSortOptions) => ResultArray;
69
+ //#endregion
70
+ //#region src/node/sort/insertionSort.d.ts
71
+ declare const insertionSort: ({
72
+ arr
73
+ }: InsertionSortOptions) => ResultArray;
74
+ //#endregion
75
+ //#region src/node/sort/mergeSort.d.ts
76
+ declare const mergeSort: ({
77
+ arr
78
+ }: MergeSortOptions) => ResultArray;
79
+ //#endregion
80
+ //#region src/node/sort/quickSort.d.ts
81
+ declare const quickSort: ({
82
+ arr
83
+ }: QuickSortOptions) => ResultArray;
84
+ //#endregion
85
+ //#region src/node/graph/breadthFirstSearch.d.ts
86
+ declare const breadthFirstSearch: ({
87
+ graph,
88
+ start,
89
+ onVisit,
90
+ onEnqueue,
91
+ onComplete
92
+ }: BFSOptions) => void;
93
+ //#endregion
94
+ //#region src/node/graph/depthFirstSearch.d.ts
95
+ declare const depthFirstSearch: ({
96
+ graph,
97
+ start,
98
+ onEnter,
99
+ onExit
100
+ }: DFSOptions) => void;
101
+ //#endregion
102
+ export { type BFSOptions, type BinarySearchOptions, type BubbleSortOptions, type DFSOptions, type FibonacciSequence, type Graph, type GraphNode, type InsertionSortOptions, type LinearSearchOptions, type MergeSortOptions, type QuickSortOptions, type Result, type ResultArray, type SearchArray, type SearchTarget, type SortArray, binarySearch, breadthFirstSearch, bubbleSort, depthFirstSearch, fibonacci, fibonacciNth, insertionSort, isPrime, linearSearch, mergeSort, quickSort };
103
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1,103 @@
1
+ //#region src/types/types.d.ts
2
+ type Result = number;
3
+ type ResultArray = Int32Array<ArrayBufferLike>;
4
+ type FibonacciSequence = Int32Array<ArrayBufferLike>;
5
+ type SearchArray = number[];
6
+ type SearchTarget = number;
7
+ type SortArray = number[];
8
+ type Graph = Record<string, string[]>;
9
+ type GraphNode = string;
10
+ //#endregion
11
+ //#region src/types/interfaces.d.ts
12
+ interface LinearSearchOptions {
13
+ arr: SearchArray;
14
+ target: SearchTarget;
15
+ }
16
+ interface BinarySearchOptions {
17
+ arr: SearchArray;
18
+ target: SearchTarget;
19
+ }
20
+ interface BubbleSortOptions {
21
+ arr: SortArray;
22
+ }
23
+ interface MergeSortOptions {
24
+ arr: SortArray;
25
+ }
26
+ interface InsertionSortOptions {
27
+ arr: SortArray;
28
+ }
29
+ interface QuickSortOptions {
30
+ arr: SortArray;
31
+ }
32
+ interface BFSOptions {
33
+ graph: Graph;
34
+ start: GraphNode;
35
+ onVisit?: (node: GraphNode) => void;
36
+ onEnqueue?: (node: GraphNode) => void;
37
+ onComplete?: (order: GraphNode[]) => void;
38
+ }
39
+ interface DFSOptions {
40
+ graph: Graph;
41
+ start: GraphNode;
42
+ onEnter?: (node: GraphNode) => void;
43
+ onExit?: (node: GraphNode) => void;
44
+ }
45
+ //#endregion
46
+ //#region src/node/math/fibonacci.d.ts
47
+ declare const fibonacciNth: (n: number) => Result;
48
+ declare const fibonacci: (n: number) => FibonacciSequence;
49
+ //#endregion
50
+ //#region src/node/math/isPrime.d.ts
51
+ declare const isPrime: (n: number) => boolean;
52
+ //#endregion
53
+ //#region src/node/search/linearSearch.d.ts
54
+ declare const linearSearch: ({
55
+ arr,
56
+ target
57
+ }: LinearSearchOptions) => ResultArray;
58
+ //#endregion
59
+ //#region src/node/search/binarySearch.d.ts
60
+ declare const binarySearch: ({
61
+ arr,
62
+ target
63
+ }: BinarySearchOptions) => Result;
64
+ //#endregion
65
+ //#region src/node/sort/bubbleSort.d.ts
66
+ declare const bubbleSort: ({
67
+ arr
68
+ }: BubbleSortOptions) => ResultArray;
69
+ //#endregion
70
+ //#region src/node/sort/insertionSort.d.ts
71
+ declare const insertionSort: ({
72
+ arr
73
+ }: InsertionSortOptions) => ResultArray;
74
+ //#endregion
75
+ //#region src/node/sort/mergeSort.d.ts
76
+ declare const mergeSort: ({
77
+ arr
78
+ }: MergeSortOptions) => ResultArray;
79
+ //#endregion
80
+ //#region src/node/sort/quickSort.d.ts
81
+ declare const quickSort: ({
82
+ arr
83
+ }: QuickSortOptions) => ResultArray;
84
+ //#endregion
85
+ //#region src/node/graph/breadthFirstSearch.d.ts
86
+ declare const breadthFirstSearch: ({
87
+ graph,
88
+ start,
89
+ onVisit,
90
+ onEnqueue,
91
+ onComplete
92
+ }: BFSOptions) => void;
93
+ //#endregion
94
+ //#region src/node/graph/depthFirstSearch.d.ts
95
+ declare const depthFirstSearch: ({
96
+ graph,
97
+ start,
98
+ onEnter,
99
+ onExit
100
+ }: DFSOptions) => void;
101
+ //#endregion
102
+ export { type BFSOptions, type BinarySearchOptions, type BubbleSortOptions, type DFSOptions, type FibonacciSequence, type Graph, type GraphNode, type InsertionSortOptions, type LinearSearchOptions, type MergeSortOptions, type QuickSortOptions, type Result, type ResultArray, type SearchArray, type SearchTarget, type SortArray, binarySearch, breadthFirstSearch, bubbleSort, depthFirstSearch, fibonacci, fibonacciNth, insertionSort, isPrime, linearSearch, mergeSort, quickSort };
103
+ //# sourceMappingURL=index.d.ts.map
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ import{createRequire as e}from"node:module";var t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),c=(e,t,a,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=i(t),l=0,u=c.length,d;l<u;l++)d=c[l],!o.call(e,d)&&d!==a&&n(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(s=r(t,d))||s.enumerable});return e},l=(e,r,i)=>(i=e==null?{}:t(a(e)),c(r||!e||!e.__esModule?n(i,`default`,{value:e,enumerable:!0}):i,e)),u=e(import.meta.url),d=s((exports,t)=>{let n={};n.__wbindgen_placeholder__=t.exports;function r(e){let t=z.__externref_table_alloc();return z.__wbindgen_externrefs.set(t,e),t}function i(e){let t=typeof e;if(t==`number`||t==`boolean`||e==null)return`${e}`;if(t==`string`)return`"${e}"`;if(t==`symbol`){let t=e.description;return t==null?`Symbol`:`Symbol(${t})`}if(t==`function`){let t=e.name;return typeof t==`string`&&t.length>0?`Function(${t})`:`Function`}if(Array.isArray(e)){let t=e.length,n=`[`;t>0&&(n+=i(e[0]));for(let r=1;r<t;r++)n+=`, `+i(e[r]);return n+=`]`,n}let n=/\[object ([^\]]+)\]/.exec(toString.call(e)),r;if(n&&n.length>1)r=n[1];else return toString.call(e);if(r==`Object`)try{return`Object(`+JSON.stringify(e)+`)`}catch{return`Object`}return e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:r}function a(e,t){return e>>>=0,d().subarray(e/4,e/4+t)}function o(e,t){return e>>>=0,g().subarray(e/1,e/1+t)}let s=null;function c(){return(s===null||s.buffer.detached===!0||s.buffer.detached===void 0&&s.buffer!==z.memory.buffer)&&(s=new DataView(z.memory.buffer)),s}let l=null;function d(){return(l===null||l.byteLength===0)&&(l=new Int32Array(z.memory.buffer)),l}function f(e,t){return e>>>=0,S(e,t)}let p=null;function m(){return(p===null||p.byteLength===0)&&(p=new Uint32Array(z.memory.buffer)),p}let h=null;function g(){return(h===null||h.byteLength===0)&&(h=new Uint8Array(z.memory.buffer)),h}function _(e,t){try{return e.apply(this,t)}catch(e){let t=r(e);z.__wbindgen_exn_store(t)}}function v(e){return e==null}function y(e,t){let n=t(e.length*4,4)>>>0;return m().set(e,n/4),w=e.length,n}function b(e,t,n){if(n===void 0){let n=C.encode(e),r=t(n.length,1)>>>0;return g().subarray(r,r+n.length).set(n),w=n.length,r}let r=e.length,i=t(r,1)>>>0,a=g(),o=0;for(;o<r;o++){let t=e.charCodeAt(o);if(t>127)break;a[i+o]=t}if(o!==r){o!==0&&(e=e.slice(o)),i=n(i,r,r=o+e.length*3,1)>>>0;let t=g().subarray(i+o,i+r),a=C.encodeInto(e,t);o+=a.written,i=n(i,r,o,1)>>>0}return w=o,i}let x=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});x.decode();function S(e,t){return x.decode(g().subarray(e,e+t))}let C=new TextEncoder;`encodeInto`in C||(C.encodeInto=function(e,t){let n=C.encode(e);return t.set(n),{read:e.length,written:n.length}});let w=0;function T(e,t){let n=y(e,z.__wbindgen_malloc),r=w,i=z.binary_search(n,r,t);return i}exports.binary_search=T;function E(e,t,n,i,a){let o=b(t,z.__wbindgen_malloc,z.__wbindgen_realloc),s=w;z.breadth_first_search(e,o,s,v(n)?0:r(n),v(i)?0:r(i),v(a)?0:r(a))}exports.breadth_first_search=E;function D(e){let t=y(e,z.__wbindgen_malloc),n=w,r=z.bubble_sort(t,n);var i=a(r[0],r[1]).slice();return z.__wbindgen_free(r[0],r[1]*4,4),i}exports.bubble_sort=D;function O(e,t,n,i){let a=b(t,z.__wbindgen_malloc,z.__wbindgen_realloc),o=w;z.depth_first_search(e,a,o,v(n)?0:r(n),v(i)?0:r(i))}exports.depth_first_search=O;function k(e){let t=z.fibonacci(e);var n=a(t[0],t[1]).slice();return z.__wbindgen_free(t[0],t[1]*4,4),n}exports.fibonacci=k;function A(e){let t=z.fibonacci_nth(e);return t}exports.fibonacci_nth=A;function j(e){let t=y(e,z.__wbindgen_malloc),n=w,r=z.insertion_sort(t,n);var i=a(r[0],r[1]).slice();return z.__wbindgen_free(r[0],r[1]*4,4),i}exports.insertion_sort=j;function M(e){let t=z.is_prime(e);return t!==0}exports.is_prime=M;function N(e,t){let n=y(e,z.__wbindgen_malloc),r=w,i=z.linear_search(n,r,t);var o=a(i[0],i[1]).slice();return z.__wbindgen_free(i[0],i[1]*4,4),o}exports.linear_search=N;function P(e){let t=y(e,z.__wbindgen_malloc),n=w,r=z.merge_sort(t,n);var i=a(r[0],r[1]).slice();return z.__wbindgen_free(r[0],r[1]*4,4),i}exports.merge_sort=P;function F(e){let t=y(e,z.__wbindgen_malloc),n=w,r=z.quick_sort(t,n);var i=a(r[0],r[1]).slice();return z.__wbindgen_free(r[0],r[1]*4,4),i}exports.quick_sort=F,exports.__wbg_Error_52673b7de5a0ca89=function(e,t){let n=Error(f(e,t));return n},exports.__wbg___wbindgen_boolean_get_dea25b33882b895b=function(e){let t=e,n=typeof t==`boolean`?t:void 0;return v(n)?16777215:n?1:0},exports.__wbg___wbindgen_debug_string_adfb662ae34724b6=function(e,t){let n=i(t),r=b(n,z.__wbindgen_malloc,z.__wbindgen_realloc),a=w;c().setInt32(e+4*1,a,!0),c().setInt32(e+0,r,!0)},exports.__wbg___wbindgen_is_function_8d400b8b1af978cd=function(e){let t=typeof e==`function`;return t},exports.__wbg___wbindgen_is_object_ce774f3490692386=function(e){let t=e,n=typeof t==`object`&&!!t;return n},exports.__wbg___wbindgen_jsval_loose_eq_766057600fdd1b0d=function(e,t){let n=e==t;return n},exports.__wbg___wbindgen_number_get_9619185a74197f95=function(e,t){let n=t,r=typeof n==`number`?n:void 0;c().setFloat64(e+8*1,v(r)?0:r,!0),c().setInt32(e+0,!v(r),!0)},exports.__wbg___wbindgen_string_get_a2a31e16edf96e42=function(e,t){let n=t,r=typeof n==`string`?n:void 0;var i=v(r)?0:b(r,z.__wbindgen_malloc,z.__wbindgen_realloc),a=w;c().setInt32(e+4*1,a,!0),c().setInt32(e+0,i,!0)},exports.__wbg___wbindgen_throw_dd24417ed36fc46e=function(e,t){throw Error(f(e,t))},exports.__wbg_call_3020136f7a2d6e44=function(){return _(function(e,t,n){let r=e.call(t,n);return r},arguments)},exports.__wbg_call_abb4ff46ce38be40=function(){return _(function(e,t){let n=e.call(t);return n},arguments)},exports.__wbg_done_62ea16af4ce34b24=function(e){let t=e.done;return t},exports.__wbg_entries_83c79938054e065f=function(e){let t=Object.entries(e);return t},exports.__wbg_get_6b7bd52aca3f9671=function(e,t){let n=e[t>>>0];return n},exports.__wbg_get_af9dab7e9603ea93=function(){return _(function(e,t){let n=Reflect.get(e,t);return n},arguments)},exports.__wbg_instanceof_ArrayBuffer_f3320d2419cd0355=function(e){let t;try{t=e instanceof ArrayBuffer}catch{t=!1}let n=t;return n},exports.__wbg_instanceof_Uint8Array_da54ccc9d3e09434=function(e){let t;try{t=e instanceof Uint8Array}catch{t=!1}let n=t;return n},exports.__wbg_isArray_51fd9e6422c0a395=function(e){let t=Array.isArray(e);return t},exports.__wbg_iterator_27b7c8b35ab3e86b=function(){let e=Symbol.iterator;return e},exports.__wbg_length_22ac23eaec9d8053=function(e){let t=e.length;return t},exports.__wbg_length_d45040a40c570362=function(e){let t=e.length;return t},exports.__wbg_new_25f239778d6112b9=function(){let e=[];return e},exports.__wbg_new_6421f6084cc5bc5a=function(e){let t=new Uint8Array(e);return t},exports.__wbg_next_138a17bbf04e926c=function(e){let t=e.next;return t},exports.__wbg_next_3cfe5c0fe2a4cc53=function(){return _(function(e){let t=e.next();return t},arguments)},exports.__wbg_prototypesetcall_dfe9b766cdc1f1fd=function(e,t,n){Uint8Array.prototype.set.call(o(e,t),n)},exports.__wbg_push_7d9be8f38fc13975=function(e,t){let n=e.push(t);return n},exports.__wbg_value_57b7b035e117f7ee=function(e){let t=e.value;return t},exports.__wbindgen_cast_2241b6af4c4b2941=function(e,t){let n=f(e,t);return n},exports.__wbindgen_init_externref_table=function(){let e=z.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)};let I=`${__dirname}/algorithms_bg.wasm`,L=u(`fs`).readFileSync(I),R=new WebAssembly.Module(L),z=exports.__wasm=new WebAssembly.Instance(R,n).exports;z.__wbindgen_start()}),f=l(d());const p=e=>(0,f.fibonacci_nth)(e),m=e=>(0,f.fibonacci)(e);var h=l(d());const g=e=>(0,h.is_prime)(e);var _=l(d());const v=({arr:e,target:t})=>{let n=new Int32Array(e);return(0,_.linear_search)(n,t)};var y=l(d());const b=({arr:e,target:t})=>{let n=new Int32Array(e);return(0,y.binary_search)(n,t)};var x=l(d());const S=({arr:e})=>{let t=new Int32Array(e);return(0,x.bubble_sort)(t)};var C=l(d());const w=({arr:e})=>{let t=new Int32Array(e);return(0,C.insertion_sort)(t)};var T=l(d());const E=({arr:e})=>{let t=new Int32Array(e);return(0,T.merge_sort)(t)};var D=l(d());const O=({arr:e})=>{let t=new Int32Array(e);return(0,D.quick_sort)(t)};var k=l(d());const A=({graph:e,start:t,onVisit:n,onEnqueue:r,onComplete:i})=>{(0,k.breadth_first_search)(e,t,n,r,i)};var j=l(d());const M=({graph:e,start:t,onEnter:n,onExit:r})=>{(0,j.depth_first_search)(e,t,n,r)};export{b as binarySearch,A as breadthFirstSearch,S as bubbleSort,M as depthFirstSearch,m as fibonacci,p as fibonacciNth,w as insertionSort,g as isPrime,v as linearSearch,E as mergeSort,O as quickSort};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["ptr","fibonacci","n: number","n: number"],"sources":["../src/generated/node/algorithms.js","../src/node/math/fibonacci.ts","../src/node/math/isPrime.ts","../src/node/search/linearSearch.ts","../src/node/search/binarySearch.ts","../src/node/sort/bubbleSort.ts","../src/node/sort/insertionSort.ts","../src/node/sort/mergeSort.ts","../src/node/sort/quickSort.ts","../src/node/graph/breadthFirstSearch.ts","../src/node/graph/depthFirstSearch.ts"],"sourcesContent":["\nlet imports = {};\nimports['__wbindgen_placeholder__'] = module.exports;\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction getArrayI32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getInt32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedInt32ArrayMemory0 = null;\nfunction getInt32ArrayMemory0() {\n if (cachedInt32ArrayMemory0 === null || cachedInt32ArrayMemory0.byteLength === 0) {\n cachedInt32ArrayMemory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachedInt32ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nfunction decodeText(ptr, len) {\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\n/**\n * @param {Int32Array} arr\n * @param {number} target\n * @returns {number}\n */\nfunction binary_search(arr, target) {\n const ptr0 = passArray32ToWasm0(arr, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.binary_search(ptr0, len0, target);\n return ret;\n}\nexports.binary_search = binary_search;\n\n/**\n * @param {any} graph\n * @param {string} start\n * @param {Function | null} [on_visit]\n * @param {Function | null} [on_enqueue]\n * @param {Function | null} [on_complete]\n */\nfunction breadth_first_search(graph, start, on_visit, on_enqueue, on_complete) {\n const ptr0 = passStringToWasm0(start, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.breadth_first_search(graph, ptr0, len0, isLikeNone(on_visit) ? 0 : addToExternrefTable0(on_visit), isLikeNone(on_enqueue) ? 0 : addToExternrefTable0(on_enqueue), isLikeNone(on_complete) ? 0 : addToExternrefTable0(on_complete));\n}\nexports.breadth_first_search = breadth_first_search;\n\n/**\n * @param {Int32Array} arr\n * @returns {Int32Array}\n */\nfunction bubble_sort(arr) {\n const ptr0 = passArray32ToWasm0(arr, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.bubble_sort(ptr0, len0);\n var v2 = getArrayI32FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v2;\n}\nexports.bubble_sort = bubble_sort;\n\n/**\n * @param {any} graph\n * @param {string} start\n * @param {Function | null} [on_enter]\n * @param {Function | null} [on_exit]\n */\nfunction depth_first_search(graph, start, on_enter, on_exit) {\n const ptr0 = passStringToWasm0(start, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.depth_first_search(graph, ptr0, len0, isLikeNone(on_enter) ? 0 : addToExternrefTable0(on_enter), isLikeNone(on_exit) ? 0 : addToExternrefTable0(on_exit));\n}\nexports.depth_first_search = depth_first_search;\n\n/**\n * @param {number} n\n * @returns {Int32Array}\n */\nfunction fibonacci(n) {\n const ret = wasm.fibonacci(n);\n var v1 = getArrayI32FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v1;\n}\nexports.fibonacci = fibonacci;\n\n/**\n * @param {number} n\n * @returns {number}\n */\nfunction fibonacci_nth(n) {\n const ret = wasm.fibonacci_nth(n);\n return ret;\n}\nexports.fibonacci_nth = fibonacci_nth;\n\n/**\n * @param {Int32Array} arr\n * @returns {Int32Array}\n */\nfunction insertion_sort(arr) {\n const ptr0 = passArray32ToWasm0(arr, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.insertion_sort(ptr0, len0);\n var v2 = getArrayI32FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v2;\n}\nexports.insertion_sort = insertion_sort;\n\n/**\n * @param {number} n\n * @returns {boolean}\n */\nfunction is_prime(n) {\n const ret = wasm.is_prime(n);\n return ret !== 0;\n}\nexports.is_prime = is_prime;\n\n/**\n * @param {Int32Array} arr\n * @param {number} target\n * @returns {Int32Array}\n */\nfunction linear_search(arr, target) {\n const ptr0 = passArray32ToWasm0(arr, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.linear_search(ptr0, len0, target);\n var v2 = getArrayI32FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v2;\n}\nexports.linear_search = linear_search;\n\n/**\n * @param {Int32Array} arr\n * @returns {Int32Array}\n */\nfunction merge_sort(arr) {\n const ptr0 = passArray32ToWasm0(arr, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.merge_sort(ptr0, len0);\n var v2 = getArrayI32FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v2;\n}\nexports.merge_sort = merge_sort;\n\n/**\n * @param {Int32Array} arr\n * @returns {Int32Array}\n */\nfunction quick_sort(arr) {\n const ptr0 = passArray32ToWasm0(arr, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.quick_sort(ptr0, len0);\n var v2 = getArrayI32FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v2;\n}\nexports.quick_sort = quick_sort;\n\nexports.__wbg_Error_52673b7de5a0ca89 = function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n};\n\nexports.__wbg___wbindgen_boolean_get_dea25b33882b895b = function(arg0) {\n const v = arg0;\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n};\n\nexports.__wbg___wbindgen_debug_string_adfb662ae34724b6 = function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexports.__wbg___wbindgen_is_function_8d400b8b1af978cd = function(arg0) {\n const ret = typeof(arg0) === 'function';\n return ret;\n};\n\nexports.__wbg___wbindgen_is_object_ce774f3490692386 = function(arg0) {\n const val = arg0;\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n};\n\nexports.__wbg___wbindgen_jsval_loose_eq_766057600fdd1b0d = function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n};\n\nexports.__wbg___wbindgen_number_get_9619185a74197f95 = function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n};\n\nexports.__wbg___wbindgen_string_get_a2a31e16edf96e42 = function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexports.__wbg___wbindgen_throw_dd24417ed36fc46e = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n};\n\nexports.__wbg_call_3020136f7a2d6e44 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = arg0.call(arg1, arg2);\n return ret;\n}, arguments) };\n\nexports.__wbg_call_abb4ff46ce38be40 = function() { return handleError(function (arg0, arg1) {\n const ret = arg0.call(arg1);\n return ret;\n}, arguments) };\n\nexports.__wbg_done_62ea16af4ce34b24 = function(arg0) {\n const ret = arg0.done;\n return ret;\n};\n\nexports.__wbg_entries_83c79938054e065f = function(arg0) {\n const ret = Object.entries(arg0);\n return ret;\n};\n\nexports.__wbg_get_6b7bd52aca3f9671 = function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n};\n\nexports.__wbg_get_af9dab7e9603ea93 = function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n}, arguments) };\n\nexports.__wbg_instanceof_ArrayBuffer_f3320d2419cd0355 = function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexports.__wbg_instanceof_Uint8Array_da54ccc9d3e09434 = function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexports.__wbg_isArray_51fd9e6422c0a395 = function(arg0) {\n const ret = Array.isArray(arg0);\n return ret;\n};\n\nexports.__wbg_iterator_27b7c8b35ab3e86b = function() {\n const ret = Symbol.iterator;\n return ret;\n};\n\nexports.__wbg_length_22ac23eaec9d8053 = function(arg0) {\n const ret = arg0.length;\n return ret;\n};\n\nexports.__wbg_length_d45040a40c570362 = function(arg0) {\n const ret = arg0.length;\n return ret;\n};\n\nexports.__wbg_new_25f239778d6112b9 = function() {\n const ret = new Array();\n return ret;\n};\n\nexports.__wbg_new_6421f6084cc5bc5a = function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n};\n\nexports.__wbg_next_138a17bbf04e926c = function(arg0) {\n const ret = arg0.next;\n return ret;\n};\n\nexports.__wbg_next_3cfe5c0fe2a4cc53 = function() { return handleError(function (arg0) {\n const ret = arg0.next();\n return ret;\n}, arguments) };\n\nexports.__wbg_prototypesetcall_dfe9b766cdc1f1fd = function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n};\n\nexports.__wbg_push_7d9be8f38fc13975 = function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n};\n\nexports.__wbg_value_57b7b035e117f7ee = function(arg0) {\n const ret = arg0.value;\n return ret;\n};\n\nexports.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n};\n\nexports.__wbindgen_init_externref_table = function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n};\n\nconst wasmPath = `${__dirname}/algorithms_bg.wasm`;\nconst wasmBytes = require('fs').readFileSync(wasmPath);\nconst wasmModule = new WebAssembly.Module(wasmBytes);\nconst wasm = exports.__wasm = new WebAssembly.Instance(wasmModule, imports).exports;\n\nwasm.__wbindgen_start();\n","import {\n fibonacci_nth as fibonacci_nth_rs,\n fibonacci as fibonacci_rs,\n} from '../../generated/node/algorithms.js'\nimport type {\n Result,\n FibonacciSequence,\n} from '../../types'\n\nexport const fibonacciNth = (n: number): Result => {\n return fibonacci_nth_rs(n)\n}\n\nexport const fibonacci = (n: number): FibonacciSequence => {\n return fibonacci_rs(n)\n}\n","import { is_prime as is_prime_rs } from '../../generated/node/algorithms.js'\n\nexport const isPrime = (n: number): boolean => {\n return is_prime_rs(n)\n}\n","import {\n linear_search as linear_search_rs,\n} from '../../generated/node/algorithms.js'\nimport type {\n ResultArray,\n LinearSearchOptions,\n} from '../../types'\n\nexport const linearSearch = ({\n arr,\n target,\n}: LinearSearchOptions): ResultArray => {\n const arrForRs = new Int32Array(arr)\n\n return linear_search_rs(arrForRs, target)\n}\n","import {\n binary_search as binary_search_rs,\n} from '../../generated/node/algorithms.js'\nimport type {\n Result,\n BinarySearchOptions,\n} from '../../types'\n\nexport const binarySearch = ({\n arr,\n target,\n}: BinarySearchOptions): Result => {\n const arrForRs = new Int32Array(arr)\n\n return binary_search_rs(arrForRs, target)\n}\n","import {\n bubble_sort as bubble_sort_rs,\n} from '../../generated/node/algorithms.js'\nimport type {\n ResultArray,\n BubbleSortOptions,\n} from '../../types'\n\nexport const bubbleSort = ({\n arr,\n}: BubbleSortOptions): ResultArray => {\n const arrForRs = new Int32Array(arr)\n\n return bubble_sort_rs(arrForRs)\n}\n","import {\n insertion_sort as insertion_sort_rs,\n} from '../../generated/node/algorithms.js'\nimport type {\n ResultArray,\n InsertionSortOptions,\n} from '../../types'\n\nexport const insertionSort = ({\n arr,\n}: InsertionSortOptions): ResultArray => {\n const arrForRs = new Int32Array(arr)\n\n return insertion_sort_rs(arrForRs)\n}\n","import {\n merge_sort as merge_sort_rs,\n} from '../../generated/node/algorithms.js'\nimport type {\n ResultArray,\n MergeSortOptions,\n} from '../../types'\n\nexport const mergeSort = ({\n arr,\n}: MergeSortOptions): ResultArray => {\n const arrForRs = new Int32Array(arr)\n\n return merge_sort_rs(arrForRs)\n}\n","import {\n quick_sort as quick_sort_rs,\n} from '../../generated/node/algorithms.js'\nimport type {\n ResultArray,\n QuickSortOptions,\n} from '../../types'\n\nexport const quickSort = ({\n arr,\n}: QuickSortOptions): ResultArray => {\n const arrForRs = new Int32Array(arr)\n\n return quick_sort_rs(arrForRs)\n}\n","import {\n breadth_first_search as breadth_first_search_rs,\n} from '../../generated/node/algorithms.js'\nimport type {\n BFSOptions,\n} from '../../types'\n\nexport const breadthFirstSearch = ({\n graph,\n start,\n onVisit,\n onEnqueue,\n onComplete,\n}: BFSOptions): void => {\n breadth_first_search_rs(graph, start, onVisit, onEnqueue, onComplete)\n}\n","import {\n depth_first_search as depth_first_search_rs,\n} from '../../generated/node/algorithms.js'\nimport type {\n DFSOptions,\n} from '../../types'\n\nexport const depthFirstSearch = ({\n graph,\n start,\n onEnter,\n onExit,\n}: DFSOptions): void => {\n depth_first_search_rs(graph, start, onEnter, onExit)\n}\n"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,95 @@
1
+ {
2
+ "name": "@epic-effx/rsalgo",
3
+ "version": "0.3.0",
4
+ "description": "fast running algorithms for .js/.ts written in rust",
5
+ "type": "module",
6
+ "main": "./dist/index.cjs",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "require": "./dist/index.cjs",
12
+ "import": "./dist/index.cjs"
13
+ },
14
+ "./browser": {
15
+ "types": "./dist/browser/algorithms.d.ts",
16
+ "import": "./dist/browser/algorithms.js"
17
+ }
18
+ },
19
+ "files": [
20
+ "dist",
21
+ "README.md",
22
+ "LICENSE"
23
+ ],
24
+ "scripts": {
25
+ "build": "npm run clean:dist && npm run build:wasm:node && npm run build:wasm:browser && npm run build:js",
26
+ "build:wasm:node": "wasm-pack build algorithms --target nodejs --out-dir pkg-node && mkdir -p src/generated/node && cp algorithms/pkg-node/algorithms* src/generated/node/",
27
+ "build:wasm:browser": "rm -rf algorithms/pkg-browser src/generated/browser && wasm-pack build algorithms --target bundler --out-dir pkg-browser && mkdir -p src/generated/browser && cp algorithms/pkg-browser/* src/generated/browser/",
28
+ "build:package": "npm run build && npm pack",
29
+ "build:js": "npm run clean:dist && npm run build:js:node && npm run build:js:browser",
30
+ "build:js:node": "tsdown --minify --copy src/generated/node/algorithms_bg.wasm",
31
+ "build:js:browser": "npm run sync:browser",
32
+ "clean:dist": "rm -rf dist",
33
+ "pack:dev": "node ./scripts/pack-dev.mjs",
34
+ "watch:rust": "cd algorithms && cargo watch -s \"wasm-pack build --target nodejs --out-dir pkg-node && mkdir -p ../src/generated/node && cp pkg-node/algorithms* ../src/generated/node/ && wasm-pack build --target bundler --out-dir pkg-browser && mkdir -p ../src/generated/browser && cp pkg-browser/algorithms* ../src/generated/browser/\"",
35
+ "watch:js": "concurrently -k \"npm run watch:js:node\" \"npm run watch:js:browser\"",
36
+ "watch:js:node": "tsdown --watch --copy src/generated/node/algorithms_bg.wasm",
37
+ "watch:js:browser": "chokidar \"src/generated/browser/*\" -c \"npm run sync:browser\"",
38
+ "sync:browser": "mkdir -p dist/browser && cp src/generated/browser/* dist/browser/",
39
+ "watch:pack:dev": "chokidar --await-write-finish \"dist/index.*\" \"dist/browser/*\" -c \"npm run pack:dev\"",
40
+ "test:rust": "cd algorithms && cargo test",
41
+ "test:rust:watch": "cd algorithms && cargo watch -w src -w tests -x check -x test",
42
+ "test:js": "tsx node_modules/mocha/bin/mocha specs/**/*.ts",
43
+ "test:js:watch": "tsx node_modules/mocha/bin/mocha specs/**/*.ts --watch --watch-files src/**/*.ts,specs/**/*.ts",
44
+ "test:js:watch:min": "tsx node_modules/mocha/bin/mocha specs/**/*.ts --watch --watch-files src/**/*.ts,specs/**/*.ts --reporter min",
45
+ "bench": "tsx benchmarks/index.ts",
46
+ "lint": "eslint src --ext .ts",
47
+ "dev:rust": "npm run build:wasm:node && npm run build:wasm:browser && concurrently -k \"npm run watch:rust\" \"npm run test:rust:watch\"",
48
+ "dev": "npm run build:wasm:node && npm run build:wasm:browser && npm run build:js && concurrently -k \"npm run watch:rust\" \"npm run test:rust:watch\" \"npm run watch:js\" \"npm run watch:pack:dev\" \"npm run test:js:watch:min\"",
49
+ "release:patch": "npm version patch && npm run build",
50
+ "release:minor": "npm version minor && npm run build",
51
+ "release:major": "npm version major && npm run build",
52
+ "prepare": "husky"
53
+ },
54
+ "repository": {
55
+ "type": "git",
56
+ "url": "git+https://github.com/daveKontro/rsalgo.git"
57
+ },
58
+ "keywords": [
59
+ "tsdown",
60
+ "rust",
61
+ "cargo",
62
+ "wasm-pack",
63
+ "webassembly",
64
+ "typescript",
65
+ "eslint",
66
+ "husky"
67
+ ],
68
+ "author": "David Kontrovitz",
69
+ "license": "MIT",
70
+ "overrides": {
71
+ "serialize-javascript": "7.0.3"
72
+ },
73
+ "templateMeta": {
74
+ "overridesNote": "overrides patch known transitive vulnerabilities; safe within same major; remove once upstream ranges are updated."
75
+ },
76
+ "devDependencies": {
77
+ "@types/chai": "5.2.3",
78
+ "@types/dotenv-flow": "3.3.3",
79
+ "@types/mocha": "10.0.10",
80
+ "@types/node": "25.0.3",
81
+ "@typescript-eslint/eslint-plugin": "6.5.0",
82
+ "@typescript-eslint/parser": "6.5.0",
83
+ "chai": "6.2.2",
84
+ "chokidar-cli": "3.0.0",
85
+ "concurrently": "9.2.0",
86
+ "dotenv-flow": "4.1.0",
87
+ "eslint": "8.57.1",
88
+ "husky": "9.1.7",
89
+ "mocha": "11.7.6",
90
+ "tinybench": "6.0.2",
91
+ "tsdown": "0.12.9",
92
+ "tsx": "4.21.0",
93
+ "typescript": "5.9.3"
94
+ }
95
+ }