@chonkiejs/chunk 0.10.0 → 0.10.1
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/index.js
CHANGED
|
@@ -74,14 +74,14 @@ function toBytes(input) {
|
|
|
74
74
|
export function* chunk(text, options = {}) {
|
|
75
75
|
const isString = typeof text === 'string';
|
|
76
76
|
const bytes = toBytes(text);
|
|
77
|
-
const { size, delimiters, pattern, prefix, consecutive, forwardFallback } = options;
|
|
77
|
+
const { size, delimiters, pattern, patterns, prefix, consecutive, forwardFallback } = options;
|
|
78
78
|
|
|
79
79
|
let flat;
|
|
80
80
|
if (pattern) {
|
|
81
81
|
const patternBytes = toBytes(pattern);
|
|
82
82
|
flat = wasmChunkOffsetsPattern(bytes, size ?? 4096, patternBytes, prefix, consecutive, forwardFallback);
|
|
83
83
|
} else {
|
|
84
|
-
flat = wasmChunkOffsets(bytes, size, delimiters, prefix);
|
|
84
|
+
flat = wasmChunkOffsets(bytes, size, delimiters, prefix, consecutive, forwardFallback, patterns);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
for (let i = 0; i < flat.length; i += 2) {
|
|
@@ -99,6 +99,7 @@ export function* chunk(text, options = {}) {
|
|
|
99
99
|
* @param {number} [options.size=4096] - Target chunk size in bytes
|
|
100
100
|
* @param {string} [options.delimiters="\n.?"] - Delimiter characters
|
|
101
101
|
* @param {string | Uint8Array} [options.pattern] - Multi-byte pattern to split on
|
|
102
|
+
* @param {string[]} [options.patterns] - Multi-byte patterns, composable with delimiters
|
|
102
103
|
* @param {boolean} [options.prefix=false] - Put delimiter/pattern at start of next chunk
|
|
103
104
|
* @param {boolean} [options.consecutive=false] - Split at START of consecutive runs
|
|
104
105
|
* @param {boolean} [options.forwardFallback=false] - Search forward if no pattern in backward window
|
|
@@ -106,14 +107,14 @@ export function* chunk(text, options = {}) {
|
|
|
106
107
|
*/
|
|
107
108
|
export function chunk_offsets(text, options = {}) {
|
|
108
109
|
const bytes = toBytes(text);
|
|
109
|
-
const { size, delimiters, pattern, prefix, consecutive, forwardFallback } = options;
|
|
110
|
+
const { size, delimiters, pattern, patterns, prefix, consecutive, forwardFallback } = options;
|
|
110
111
|
|
|
111
112
|
let flat;
|
|
112
113
|
if (pattern) {
|
|
113
114
|
const patternBytes = toBytes(pattern);
|
|
114
115
|
flat = wasmChunkOffsetsPattern(bytes, size ?? 4096, patternBytes, prefix, consecutive, forwardFallback);
|
|
115
116
|
} else {
|
|
116
|
-
flat = wasmChunkOffsets(bytes, size, delimiters, prefix);
|
|
117
|
+
flat = wasmChunkOffsets(bytes, size, delimiters, prefix, consecutive, forwardFallback, patterns);
|
|
117
118
|
}
|
|
118
119
|
|
|
119
120
|
const pairs = [];
|
|
@@ -275,6 +276,7 @@ export class Chunker {
|
|
|
275
276
|
* @param {number} [options.size=4096] - Target chunk size in bytes
|
|
276
277
|
* @param {string} [options.delimiters="\n.?"] - Delimiter characters
|
|
277
278
|
* @param {string | Uint8Array} [options.pattern] - Multi-byte pattern to split on
|
|
279
|
+
* @param {string[]} [options.patterns] - Multi-byte patterns, composable with delimiters
|
|
278
280
|
* @param {boolean} [options.prefix=false] - Put delimiter/pattern at start of next chunk
|
|
279
281
|
* @param {boolean} [options.consecutive=false] - Split at START of consecutive runs
|
|
280
282
|
* @param {boolean} [options.forwardFallback=false] - Search forward if no pattern in backward window
|
|
@@ -282,13 +284,13 @@ export class Chunker {
|
|
|
282
284
|
constructor(text, options = {}) {
|
|
283
285
|
this._isString = typeof text === 'string';
|
|
284
286
|
const bytes = toBytes(text);
|
|
285
|
-
const { size, delimiters, pattern, prefix, consecutive, forwardFallback } = options;
|
|
287
|
+
const { size, delimiters, pattern, patterns, prefix, consecutive, forwardFallback } = options;
|
|
286
288
|
|
|
287
289
|
if (pattern) {
|
|
288
290
|
const patternBytes = toBytes(pattern);
|
|
289
291
|
this._chunker = WasmChunker.with_pattern(bytes, size ?? 4096, patternBytes, prefix, consecutive, forwardFallback);
|
|
290
292
|
} else {
|
|
291
|
-
this._chunker = new WasmChunker(bytes, size, delimiters, prefix);
|
|
293
|
+
this._chunker = new WasmChunker(bytes, size, delimiters, prefix, consecutive, forwardFallback, patterns);
|
|
292
294
|
}
|
|
293
295
|
}
|
|
294
296
|
|
package/package.json
CHANGED
package/pkg/chonkiejs_chunk.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ export class Chunker {
|
|
|
30
30
|
* @param consecutive - Split at START of consecutive runs (default: false)
|
|
31
31
|
* @param forward_fallback - Search forward if no delimiter in backward window (default: false)
|
|
32
32
|
*/
|
|
33
|
-
constructor(text: Uint8Array, size?: number | null, delimiters?: string | null, prefix?: boolean | null, consecutive?: boolean | null, forward_fallback?: boolean | null);
|
|
33
|
+
constructor(text: Uint8Array, size?: number | null, delimiters?: string | null, prefix?: boolean | null, consecutive?: boolean | null, forward_fallback?: boolean | null, patterns?: Array<any> | null);
|
|
34
34
|
/**
|
|
35
35
|
* Get the next chunk, or undefined if exhausted.
|
|
36
36
|
*/
|
|
@@ -55,7 +55,7 @@ export class Chunker {
|
|
|
55
55
|
* }
|
|
56
56
|
* ```
|
|
57
57
|
*/
|
|
58
|
-
export function chunk_offsets(text: Uint8Array, size?: number | null, delimiters?: string | null, prefix?: boolean | null, consecutive?: boolean | null, forward_fallback?: boolean | null): Uint32Array;
|
|
58
|
+
export function chunk_offsets(text: Uint8Array, size?: number | null, delimiters?: string | null, prefix?: boolean | null, consecutive?: boolean | null, forward_fallback?: boolean | null, patterns?: Array<any> | null): Uint32Array;
|
|
59
59
|
|
|
60
60
|
/**
|
|
61
61
|
* Fast chunking function with multi-byte pattern support.
|
|
@@ -152,10 +152,10 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
|
|
|
152
152
|
export interface InitOutput {
|
|
153
153
|
readonly memory: WebAssembly.Memory;
|
|
154
154
|
readonly __wbg_chunker_free: (a: number, b: number) => void;
|
|
155
|
-
readonly chunk_offsets: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
155
|
+
readonly chunk_offsets: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number];
|
|
156
156
|
readonly chunk_offsets_pattern: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
157
157
|
readonly chunker_collect_offsets: (a: number) => [number, number];
|
|
158
|
-
readonly chunker_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
|
|
158
|
+
readonly chunker_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
|
|
159
159
|
readonly chunker_next: (a: number) => [number, number];
|
|
160
160
|
readonly chunker_reset: (a: number) => void;
|
|
161
161
|
readonly chunker_with_pattern: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
|
|
@@ -164,10 +164,11 @@ export interface InitOutput {
|
|
|
164
164
|
readonly find_merge_indices: (a: number, b: number, c: number) => [number, number];
|
|
165
165
|
readonly merge_splits: (a: number, b: number, c: number, d: number) => [number, number];
|
|
166
166
|
readonly split_offsets: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
167
|
-
readonly __wbindgen_externrefs: WebAssembly.Table;
|
|
168
167
|
readonly __wbindgen_malloc: (a: number, b: number) => number;
|
|
169
168
|
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
|
169
|
+
readonly __wbindgen_externrefs: WebAssembly.Table;
|
|
170
170
|
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
171
|
+
readonly __externref_table_alloc: () => number;
|
|
171
172
|
readonly __wbindgen_start: () => void;
|
|
172
173
|
}
|
|
173
174
|
|
package/pkg/chonkiejs_chunk.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
let wasm;
|
|
2
2
|
|
|
3
|
+
function addToExternrefTable0(obj) {
|
|
4
|
+
const idx = wasm.__externref_table_alloc();
|
|
5
|
+
wasm.__wbindgen_externrefs.set(idx, obj);
|
|
6
|
+
return idx;
|
|
7
|
+
}
|
|
8
|
+
|
|
3
9
|
function getArrayU32FromWasm0(ptr, len) {
|
|
4
10
|
ptr = ptr >>> 0;
|
|
5
11
|
return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);
|
|
@@ -10,6 +16,14 @@ function getArrayU8FromWasm0(ptr, len) {
|
|
|
10
16
|
return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
|
|
11
17
|
}
|
|
12
18
|
|
|
19
|
+
let cachedDataViewMemory0 = null;
|
|
20
|
+
function getDataViewMemory0() {
|
|
21
|
+
if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
|
|
22
|
+
cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
|
|
23
|
+
}
|
|
24
|
+
return cachedDataViewMemory0;
|
|
25
|
+
}
|
|
26
|
+
|
|
13
27
|
function getStringFromWasm0(ptr, len) {
|
|
14
28
|
ptr = ptr >>> 0;
|
|
15
29
|
return decodeText(ptr, len);
|
|
@@ -207,13 +221,14 @@ export class Chunker {
|
|
|
207
221
|
* @param {boolean | null} [prefix]
|
|
208
222
|
* @param {boolean | null} [consecutive]
|
|
209
223
|
* @param {boolean | null} [forward_fallback]
|
|
224
|
+
* @param {Array<any> | null} [patterns]
|
|
210
225
|
*/
|
|
211
|
-
constructor(text, size, delimiters, prefix, consecutive, forward_fallback) {
|
|
226
|
+
constructor(text, size, delimiters, prefix, consecutive, forward_fallback, patterns) {
|
|
212
227
|
const ptr0 = passArray8ToWasm0(text, wasm.__wbindgen_malloc);
|
|
213
228
|
const len0 = WASM_VECTOR_LEN;
|
|
214
229
|
var ptr1 = isLikeNone(delimiters) ? 0 : passStringToWasm0(delimiters, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
215
230
|
var len1 = WASM_VECTOR_LEN;
|
|
216
|
-
const ret = wasm.chunker_new(ptr0, len0, isLikeNone(size) ? 0x100000001 : (size) >>> 0, ptr1, len1, isLikeNone(prefix) ? 0xFFFFFF : prefix ? 1 : 0, isLikeNone(consecutive) ? 0xFFFFFF : consecutive ? 1 : 0, isLikeNone(forward_fallback) ? 0xFFFFFF : forward_fallback ? 1 : 0);
|
|
231
|
+
const ret = wasm.chunker_new(ptr0, len0, isLikeNone(size) ? 0x100000001 : (size) >>> 0, ptr1, len1, isLikeNone(prefix) ? 0xFFFFFF : prefix ? 1 : 0, isLikeNone(consecutive) ? 0xFFFFFF : consecutive ? 1 : 0, isLikeNone(forward_fallback) ? 0xFFFFFF : forward_fallback ? 1 : 0, isLikeNone(patterns) ? 0 : addToExternrefTable0(patterns));
|
|
217
232
|
this.__wbg_ptr = ret >>> 0;
|
|
218
233
|
ChunkerFinalization.register(this, this.__wbg_ptr, this);
|
|
219
234
|
return this;
|
|
@@ -259,14 +274,15 @@ if (Symbol.dispose) Chunker.prototype[Symbol.dispose] = Chunker.prototype.free;
|
|
|
259
274
|
* @param {boolean | null} [prefix]
|
|
260
275
|
* @param {boolean | null} [consecutive]
|
|
261
276
|
* @param {boolean | null} [forward_fallback]
|
|
277
|
+
* @param {Array<any> | null} [patterns]
|
|
262
278
|
* @returns {Uint32Array}
|
|
263
279
|
*/
|
|
264
|
-
export function chunk_offsets(text, size, delimiters, prefix, consecutive, forward_fallback) {
|
|
280
|
+
export function chunk_offsets(text, size, delimiters, prefix, consecutive, forward_fallback, patterns) {
|
|
265
281
|
const ptr0 = passArray8ToWasm0(text, wasm.__wbindgen_malloc);
|
|
266
282
|
const len0 = WASM_VECTOR_LEN;
|
|
267
283
|
var ptr1 = isLikeNone(delimiters) ? 0 : passStringToWasm0(delimiters, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
268
284
|
var len1 = WASM_VECTOR_LEN;
|
|
269
|
-
const ret = wasm.chunk_offsets(ptr0, len0, isLikeNone(size) ? 0x100000001 : (size) >>> 0, ptr1, len1, isLikeNone(prefix) ? 0xFFFFFF : prefix ? 1 : 0, isLikeNone(consecutive) ? 0xFFFFFF : consecutive ? 1 : 0, isLikeNone(forward_fallback) ? 0xFFFFFF : forward_fallback ? 1 : 0);
|
|
285
|
+
const ret = wasm.chunk_offsets(ptr0, len0, isLikeNone(size) ? 0x100000001 : (size) >>> 0, ptr1, len1, isLikeNone(prefix) ? 0xFFFFFF : prefix ? 1 : 0, isLikeNone(consecutive) ? 0xFFFFFF : consecutive ? 1 : 0, isLikeNone(forward_fallback) ? 0xFFFFFF : forward_fallback ? 1 : 0, isLikeNone(patterns) ? 0 : addToExternrefTable0(patterns));
|
|
270
286
|
var v3 = getArrayU32FromWasm0(ret[0], ret[1]).slice();
|
|
271
287
|
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
272
288
|
return v3;
|
|
@@ -460,9 +476,25 @@ async function __wbg_load(module, imports) {
|
|
|
460
476
|
function __wbg_get_imports() {
|
|
461
477
|
const imports = {};
|
|
462
478
|
imports.wbg = {};
|
|
479
|
+
imports.wbg.__wbg___wbindgen_string_get_a2a31e16edf96e42 = function(arg0, arg1) {
|
|
480
|
+
const obj = arg1;
|
|
481
|
+
const ret = typeof(obj) === 'string' ? obj : undefined;
|
|
482
|
+
var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
483
|
+
var len1 = WASM_VECTOR_LEN;
|
|
484
|
+
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
|
|
485
|
+
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
|
|
486
|
+
};
|
|
463
487
|
imports.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e = function(arg0, arg1) {
|
|
464
488
|
throw new Error(getStringFromWasm0(arg0, arg1));
|
|
465
489
|
};
|
|
490
|
+
imports.wbg.__wbg_get_6b7bd52aca3f9671 = function(arg0, arg1) {
|
|
491
|
+
const ret = arg0[arg1 >>> 0];
|
|
492
|
+
return ret;
|
|
493
|
+
};
|
|
494
|
+
imports.wbg.__wbg_length_d45040a40c570362 = function(arg0) {
|
|
495
|
+
const ret = arg0.length;
|
|
496
|
+
return ret;
|
|
497
|
+
};
|
|
466
498
|
imports.wbg.__wbindgen_init_externref_table = function() {
|
|
467
499
|
const table = wasm.__wbindgen_externrefs;
|
|
468
500
|
const offset = table.grow(4);
|
|
@@ -479,6 +511,7 @@ function __wbg_get_imports() {
|
|
|
479
511
|
function __wbg_finalize_init(instance, module) {
|
|
480
512
|
wasm = instance.exports;
|
|
481
513
|
__wbg_init.__wbindgen_wasm_module = module;
|
|
514
|
+
cachedDataViewMemory0 = null;
|
|
482
515
|
cachedUint32ArrayMemory0 = null;
|
|
483
516
|
cachedUint8ArrayMemory0 = null;
|
|
484
517
|
|
|
Binary file
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
export const memory: WebAssembly.Memory;
|
|
4
4
|
export const __wbg_chunker_free: (a: number, b: number) => void;
|
|
5
|
-
export const chunk_offsets: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
5
|
+
export const chunk_offsets: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number];
|
|
6
6
|
export const chunk_offsets_pattern: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
7
7
|
export const chunker_collect_offsets: (a: number) => [number, number];
|
|
8
|
-
export const chunker_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
|
|
8
|
+
export const chunker_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
|
|
9
9
|
export const chunker_next: (a: number) => [number, number];
|
|
10
10
|
export const chunker_reset: (a: number) => void;
|
|
11
11
|
export const chunker_with_pattern: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
|
|
@@ -14,8 +14,9 @@ export const default_target_size: () => number;
|
|
|
14
14
|
export const find_merge_indices: (a: number, b: number, c: number) => [number, number];
|
|
15
15
|
export const merge_splits: (a: number, b: number, c: number, d: number) => [number, number];
|
|
16
16
|
export const split_offsets: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
17
|
-
export const __wbindgen_externrefs: WebAssembly.Table;
|
|
18
17
|
export const __wbindgen_malloc: (a: number, b: number) => number;
|
|
19
18
|
export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
|
19
|
+
export const __wbindgen_externrefs: WebAssembly.Table;
|
|
20
20
|
export const __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
21
|
+
export const __externref_table_alloc: () => number;
|
|
21
22
|
export const __wbindgen_start: () => void;
|